@agentmedia/schema 0.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,253 @@
1
+ export declare const GENERATORS: {
2
+ readonly ugc_video: {
3
+ readonly description: "Generate a UGC-style video from a script or prompt";
4
+ readonly inputSchema: import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodObject<{
5
+ script: import("zod").ZodOptional<import("zod").ZodString>;
6
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
7
+ product_url: import("zod").ZodOptional<import("zod").ZodString>;
8
+ actor_slug: import("zod").ZodOptional<import("zod").ZodString>;
9
+ persona_slug: import("zod").ZodOptional<import("zod").ZodString>;
10
+ face_photo_url: import("zod").ZodOptional<import("zod").ZodString>;
11
+ voice: import("zod").ZodOptional<import("zod").ZodString>;
12
+ target_duration: import("zod").ZodOptional<import("zod").ZodEffects<import("zod").ZodNumber, number, number>>;
13
+ style: import("zod").ZodOptional<import("zod").ZodString>;
14
+ tone: import("zod").ZodOptional<import("zod").ZodEnum<["energetic", "calm", "confident", "dramatic"]>>;
15
+ voice_speed: import("zod").ZodOptional<import("zod").ZodNumber>;
16
+ music: import("zod").ZodOptional<import("zod").ZodEnum<["chill", "energetic", "corporate", "dramatic", "upbeat"]>>;
17
+ cta: import("zod").ZodOptional<import("zod").ZodString>;
18
+ aspect_ratio: import("zod").ZodOptional<import("zod").ZodEnum<["9:16", "16:9", "1:1"]>>;
19
+ template: import("zod").ZodOptional<import("zod").ZodString>;
20
+ composition_mode: import("zod").ZodOptional<import("zod").ZodLiteral<"pip">>;
21
+ pip_options: import("zod").ZodOptional<import("zod").ZodObject<{
22
+ position: import("zod").ZodOptional<import("zod").ZodEnum<["bottom-center", "bottom-left", "bottom-right"]>>;
23
+ size: import("zod").ZodOptional<import("zod").ZodEnum<["small", "medium", "large"]>>;
24
+ animation: import("zod").ZodOptional<import("zod").ZodEnum<["slide-up", "slide-left", "slide-right", "fade", "scale"]>>;
25
+ frame_style: import("zod").ZodOptional<import("zod").ZodEnum<["none", "rounded", "shadow"]>>;
26
+ }, "strict", import("zod").ZodTypeAny, {
27
+ position?: "bottom-center" | "bottom-left" | "bottom-right" | undefined;
28
+ size?: "medium" | "small" | "large" | undefined;
29
+ animation?: "slide-up" | "slide-left" | "slide-right" | "fade" | "scale" | undefined;
30
+ frame_style?: "none" | "rounded" | "shadow" | undefined;
31
+ }, {
32
+ position?: "bottom-center" | "bottom-left" | "bottom-right" | undefined;
33
+ size?: "medium" | "small" | "large" | undefined;
34
+ animation?: "slide-up" | "slide-left" | "slide-right" | "fade" | "scale" | undefined;
35
+ frame_style?: "none" | "rounded" | "shadow" | undefined;
36
+ }>>;
37
+ allow_broll: import("zod").ZodOptional<import("zod").ZodBoolean>;
38
+ broll_model: import("zod").ZodOptional<import("zod").ZodEnum<["kling3", "hailuo2", "wan21"]>>;
39
+ broll_images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
40
+ product_image_url: import("zod").ZodOptional<import("zod").ZodString>;
41
+ dub_language: import("zod").ZodOptional<import("zod").ZodString>;
42
+ webhook_url: import("zod").ZodOptional<import("zod").ZodString>;
43
+ scenes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
44
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["talking_head", "broll"]>>;
45
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
46
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["talking_head", "broll"]>>;
47
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
48
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["talking_head", "broll"]>>;
49
+ }, import("zod").ZodTypeAny, "passthrough">>, "many">>;
50
+ }, "strip", import("zod").ZodTypeAny, {
51
+ persona_slug?: string | undefined;
52
+ face_photo_url?: string | undefined;
53
+ voice?: string | undefined;
54
+ aspect_ratio?: "9:16" | "16:9" | "1:1" | undefined;
55
+ style?: string | undefined;
56
+ music?: "energetic" | "dramatic" | "chill" | "corporate" | "upbeat" | undefined;
57
+ cta?: string | undefined;
58
+ actor_slug?: string | undefined;
59
+ target_duration?: number | undefined;
60
+ allow_broll?: boolean | undefined;
61
+ broll_images?: string[] | undefined;
62
+ script?: string | undefined;
63
+ prompt?: string | undefined;
64
+ product_url?: string | undefined;
65
+ tone?: "energetic" | "calm" | "confident" | "dramatic" | undefined;
66
+ voice_speed?: number | undefined;
67
+ template?: string | undefined;
68
+ composition_mode?: "pip" | undefined;
69
+ pip_options?: {
70
+ position?: "bottom-center" | "bottom-left" | "bottom-right" | undefined;
71
+ size?: "medium" | "small" | "large" | undefined;
72
+ animation?: "slide-up" | "slide-left" | "slide-right" | "fade" | "scale" | undefined;
73
+ frame_style?: "none" | "rounded" | "shadow" | undefined;
74
+ } | undefined;
75
+ broll_model?: "kling3" | "hailuo2" | "wan21" | undefined;
76
+ product_image_url?: string | undefined;
77
+ dub_language?: string | undefined;
78
+ webhook_url?: string | undefined;
79
+ scenes?: import("zod").objectOutputType<{
80
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["talking_head", "broll"]>>;
81
+ }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
82
+ }, {
83
+ persona_slug?: string | undefined;
84
+ face_photo_url?: string | undefined;
85
+ voice?: string | undefined;
86
+ aspect_ratio?: "9:16" | "16:9" | "1:1" | undefined;
87
+ style?: string | undefined;
88
+ music?: "energetic" | "dramatic" | "chill" | "corporate" | "upbeat" | undefined;
89
+ cta?: string | undefined;
90
+ actor_slug?: string | undefined;
91
+ target_duration?: number | undefined;
92
+ allow_broll?: boolean | undefined;
93
+ broll_images?: string[] | undefined;
94
+ script?: string | undefined;
95
+ prompt?: string | undefined;
96
+ product_url?: string | undefined;
97
+ tone?: "energetic" | "calm" | "confident" | "dramatic" | undefined;
98
+ voice_speed?: number | undefined;
99
+ template?: string | undefined;
100
+ composition_mode?: "pip" | undefined;
101
+ pip_options?: {
102
+ position?: "bottom-center" | "bottom-left" | "bottom-right" | undefined;
103
+ size?: "medium" | "small" | "large" | undefined;
104
+ animation?: "slide-up" | "slide-left" | "slide-right" | "fade" | "scale" | undefined;
105
+ frame_style?: "none" | "rounded" | "shadow" | undefined;
106
+ } | undefined;
107
+ broll_model?: "kling3" | "hailuo2" | "wan21" | undefined;
108
+ product_image_url?: string | undefined;
109
+ dub_language?: string | undefined;
110
+ webhook_url?: string | undefined;
111
+ scenes?: import("zod").objectInputType<{
112
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["talking_head", "broll"]>>;
113
+ }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
114
+ }>, {
115
+ persona_slug?: string | undefined;
116
+ face_photo_url?: string | undefined;
117
+ voice?: string | undefined;
118
+ aspect_ratio?: "9:16" | "16:9" | "1:1" | undefined;
119
+ style?: string | undefined;
120
+ music?: "energetic" | "dramatic" | "chill" | "corporate" | "upbeat" | undefined;
121
+ cta?: string | undefined;
122
+ actor_slug?: string | undefined;
123
+ target_duration?: number | undefined;
124
+ allow_broll?: boolean | undefined;
125
+ broll_images?: string[] | undefined;
126
+ script?: string | undefined;
127
+ prompt?: string | undefined;
128
+ product_url?: string | undefined;
129
+ tone?: "energetic" | "calm" | "confident" | "dramatic" | undefined;
130
+ voice_speed?: number | undefined;
131
+ template?: string | undefined;
132
+ composition_mode?: "pip" | undefined;
133
+ pip_options?: {
134
+ position?: "bottom-center" | "bottom-left" | "bottom-right" | undefined;
135
+ size?: "medium" | "small" | "large" | undefined;
136
+ animation?: "slide-up" | "slide-left" | "slide-right" | "fade" | "scale" | undefined;
137
+ frame_style?: "none" | "rounded" | "shadow" | undefined;
138
+ } | undefined;
139
+ broll_model?: "kling3" | "hailuo2" | "wan21" | undefined;
140
+ product_image_url?: string | undefined;
141
+ dub_language?: string | undefined;
142
+ webhook_url?: string | undefined;
143
+ scenes?: import("zod").objectOutputType<{
144
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["talking_head", "broll"]>>;
145
+ }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
146
+ }, {
147
+ persona_slug?: string | undefined;
148
+ face_photo_url?: string | undefined;
149
+ voice?: string | undefined;
150
+ aspect_ratio?: "9:16" | "16:9" | "1:1" | undefined;
151
+ style?: string | undefined;
152
+ music?: "energetic" | "dramatic" | "chill" | "corporate" | "upbeat" | undefined;
153
+ cta?: string | undefined;
154
+ actor_slug?: string | undefined;
155
+ target_duration?: number | undefined;
156
+ allow_broll?: boolean | undefined;
157
+ broll_images?: string[] | undefined;
158
+ script?: string | undefined;
159
+ prompt?: string | undefined;
160
+ product_url?: string | undefined;
161
+ tone?: "energetic" | "calm" | "confident" | "dramatic" | undefined;
162
+ voice_speed?: number | undefined;
163
+ template?: string | undefined;
164
+ composition_mode?: "pip" | undefined;
165
+ pip_options?: {
166
+ position?: "bottom-center" | "bottom-left" | "bottom-right" | undefined;
167
+ size?: "medium" | "small" | "large" | undefined;
168
+ animation?: "slide-up" | "slide-left" | "slide-right" | "fade" | "scale" | undefined;
169
+ frame_style?: "none" | "rounded" | "shadow" | undefined;
170
+ } | undefined;
171
+ broll_model?: "kling3" | "hailuo2" | "wan21" | undefined;
172
+ product_image_url?: string | undefined;
173
+ dub_language?: string | undefined;
174
+ webhook_url?: string | undefined;
175
+ scenes?: import("zod").objectInputType<{
176
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["talking_head", "broll"]>>;
177
+ }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
178
+ }>, {
179
+ persona_slug?: string | undefined;
180
+ face_photo_url?: string | undefined;
181
+ voice?: string | undefined;
182
+ aspect_ratio?: "9:16" | "16:9" | "1:1" | undefined;
183
+ style?: string | undefined;
184
+ music?: "energetic" | "dramatic" | "chill" | "corporate" | "upbeat" | undefined;
185
+ cta?: string | undefined;
186
+ actor_slug?: string | undefined;
187
+ target_duration?: number | undefined;
188
+ allow_broll?: boolean | undefined;
189
+ broll_images?: string[] | undefined;
190
+ script?: string | undefined;
191
+ prompt?: string | undefined;
192
+ product_url?: string | undefined;
193
+ tone?: "energetic" | "calm" | "confident" | "dramatic" | undefined;
194
+ voice_speed?: number | undefined;
195
+ template?: string | undefined;
196
+ composition_mode?: "pip" | undefined;
197
+ pip_options?: {
198
+ position?: "bottom-center" | "bottom-left" | "bottom-right" | undefined;
199
+ size?: "medium" | "small" | "large" | undefined;
200
+ animation?: "slide-up" | "slide-left" | "slide-right" | "fade" | "scale" | undefined;
201
+ frame_style?: "none" | "rounded" | "shadow" | undefined;
202
+ } | undefined;
203
+ broll_model?: "kling3" | "hailuo2" | "wan21" | undefined;
204
+ product_image_url?: string | undefined;
205
+ dub_language?: string | undefined;
206
+ webhook_url?: string | undefined;
207
+ scenes?: import("zod").objectOutputType<{
208
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["talking_head", "broll"]>>;
209
+ }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
210
+ }, unknown>;
211
+ readonly output: "video_url";
212
+ };
213
+ readonly product_review: {
214
+ readonly description: "Generate a product review video from a product URL";
215
+ readonly inputSchema: import("zod").ZodObject<{
216
+ product_url: import("zod").ZodString;
217
+ angle: import("zod").ZodOptional<import("zod").ZodEnum<["honest", "enthusiastic", "roast", "tutorial", "comparison"]>>;
218
+ tone: import("zod").ZodOptional<import("zod").ZodEnum<["energetic", "calm", "confident", "dramatic"]>>;
219
+ actor_slug: import("zod").ZodOptional<import("zod").ZodString>;
220
+ target_duration: import("zod").ZodOptional<import("zod").ZodEffects<import("zod").ZodNumber, number, number>>;
221
+ }, "strip", import("zod").ZodTypeAny, {
222
+ product_url: string;
223
+ actor_slug?: string | undefined;
224
+ target_duration?: number | undefined;
225
+ tone?: "energetic" | "calm" | "confident" | "dramatic" | undefined;
226
+ angle?: "honest" | "enthusiastic" | "roast" | "tutorial" | "comparison" | undefined;
227
+ }, {
228
+ product_url: string;
229
+ actor_slug?: string | undefined;
230
+ target_duration?: number | undefined;
231
+ tone?: "energetic" | "calm" | "confident" | "dramatic" | undefined;
232
+ angle?: "honest" | "enthusiastic" | "roast" | "tutorial" | "comparison" | undefined;
233
+ }>;
234
+ readonly output: "video_url";
235
+ };
236
+ readonly subtitle: {
237
+ readonly description: "Add styled subtitles to an existing video";
238
+ readonly inputSchema: import("zod").ZodObject<{
239
+ video_url: import("zod").ZodString;
240
+ style: import("zod").ZodOptional<import("zod").ZodEnum<["hormozi", "minimal", "bold", "karaoke", "clean", "tiktok", "neon", "fire", "glow", "pop", "aesthetic", "impact", "pastel", "electric", "boxed", "gradient", "spotlight"]>>;
241
+ }, "strip", import("zod").ZodTypeAny, {
242
+ video_url: string;
243
+ style?: "hormozi" | "minimal" | "bold" | "karaoke" | "clean" | "tiktok" | "neon" | "fire" | "glow" | "pop" | "aesthetic" | "impact" | "pastel" | "electric" | "boxed" | "gradient" | "spotlight" | undefined;
244
+ }, {
245
+ video_url: string;
246
+ style?: "hormozi" | "minimal" | "bold" | "karaoke" | "clean" | "tiktok" | "neon" | "fire" | "glow" | "pop" | "aesthetic" | "impact" | "pastel" | "electric" | "boxed" | "gradient" | "spotlight" | undefined;
247
+ }>;
248
+ readonly output: "video_url";
249
+ };
250
+ };
251
+ export type GeneratorId = keyof typeof GENERATORS;
252
+ export declare const GENERATOR_IDS: GeneratorId[];
253
+ //# sourceMappingURL=generators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators.d.ts","sourceRoot":"","sources":["../src/generators.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBb,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,UAAU,CAAC;AAElD,eAAO,MAAM,aAAa,EAA8B,WAAW,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ // Copyright 2026 agent-media contributors. Apache-2.0 license.
2
+ /**
3
+ * Generator registry — the single interface all consumers read from.
4
+ *
5
+ * Each generator is an opaque black box with a schema-defined input
6
+ * contract and a predictable output. Users and integrations never see
7
+ * internals (models, pipelines, rendering).
8
+ */
9
+ import { CreateVideoSchema, ProductReviewSchema, SubtitleSchema } from './video.js';
10
+ export const GENERATORS = {
11
+ ugc_video: {
12
+ description: 'Generate a UGC-style video from a script or prompt',
13
+ inputSchema: CreateVideoSchema,
14
+ output: 'video_url',
15
+ },
16
+ product_review: {
17
+ description: 'Generate a product review video from a product URL',
18
+ inputSchema: ProductReviewSchema,
19
+ output: 'video_url',
20
+ },
21
+ subtitle: {
22
+ description: 'Add styled subtitles to an existing video',
23
+ inputSchema: SubtitleSchema,
24
+ output: 'video_url',
25
+ },
26
+ };
27
+ export const GENERATOR_IDS = Object.keys(GENERATORS);
28
+ //# sourceMappingURL=generators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators.js","sourceRoot":"","sources":["../src/generators.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE;QACT,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,iBAAiB;QAC9B,MAAM,EAAE,WAAoB;KAC7B;IACD,cAAc,EAAE;QACd,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,mBAAmB;QAChC,MAAM,EAAE,WAAoB;KAC7B;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,WAAoB;KAC7B;CACO,CAAC;AAIX,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @agent-media/schema — Single source of truth for all enums, types,
3
+ * and validation schemas in the agent-media platform.
4
+ */
5
+ export * from './video.js';
6
+ export * from './generators.js';
7
+ export * from './actors.js';
8
+ export * from './account.js';
9
+ export * from './errors.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ // Copyright 2026 agent-media contributors. Apache-2.0 license.
2
+ /**
3
+ * @agent-media/schema — Single source of truth for all enums, types,
4
+ * and validation schemas in the agent-media platform.
5
+ */
6
+ export * from './video.js';
7
+ export * from './generators.js';
8
+ export * from './actors.js';
9
+ export * from './account.js';
10
+ export * from './errors.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}