@vanillaskyai/video 0.8.8 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/PUBLIC-API.md +5 -8
- package/dist/{builtin-server-CUYPIDE7.js → builtin-server-W4PLJUZ5.js} +2 -2
- package/dist/{catalog-types-BIhSpOWK.d.ts → catalog-types-WTbLP6Jh.d.ts} +5 -1
- package/dist/chapter-title-YRLIQY3V.js +7 -0
- package/dist/check-runtime.js +5 -14
- package/dist/{chunk-AITKH6QT.js → chunk-2HFO22K2.js} +15 -40
- package/dist/chunk-4YM2M62S.js +13 -0
- package/dist/chunk-4ZJLPHBV.js +684 -0
- package/dist/chunk-77VY4O7A.js +390 -0
- package/dist/{chunk-MMUXVA47.js → chunk-7M56IUUX.js} +9 -8
- package/dist/chunk-7NZOMTAL.js +63 -0
- package/dist/{chunk-2DOLF4QN.js → chunk-AUPC6MDK.js} +12 -14
- package/dist/{chunk-352ZZCET.js → chunk-EGVQODKU.js} +2 -2
- package/dist/{chunk-2USVB3CY.js → chunk-ELVOT2FQ.js} +284 -177
- package/dist/chunk-EWWCQFTI.js +18 -0
- package/dist/{chunk-KT3M7KDL.js → chunk-HKUI5BTB.js} +3 -3
- package/dist/chunk-IIN5M5HW.js +697 -0
- package/dist/{chunk-LMG3GHLL.js → chunk-IQMYK5DX.js} +29 -3
- package/dist/{chunk-OWBT45EN.js → chunk-IR44XKBI.js} +1 -1
- package/dist/{chunk-MXZSDGZQ.js → chunk-NMFDC2W2.js} +4 -6
- package/dist/{chunk-5SLENAJW.js → chunk-PAJ44TFW.js} +1 -2
- package/dist/{chunk-L7QGGKJ2.js → chunk-PDQFQIQW.js} +1 -1
- package/dist/{chunk-WJ6FLKNC.js → chunk-R3XAOMKP.js} +14 -0
- package/dist/{chunk-2OKB27TG.js → chunk-RXTN2CW6.js} +2 -2
- package/dist/{chunk-XWWLKRNU.js → chunk-TVIU23OM.js} +38 -49
- package/dist/chunk-XX4GXKTX.js +35 -0
- package/dist/chunk-Z67Q5KUW.js +16 -0
- package/dist/{chunk-3VRMKFM7.js → chunk-ZDJNFA52.js} +11 -24
- package/dist/cinema-media-C7OUPNSH.js +12 -0
- package/dist/cli.js +18 -9
- package/dist/comparison-GNZOR7MF.js +37 -0
- package/dist/compose-video-TBFTONUC.js +12 -0
- package/dist/editorial-timeline-EMV5335S.js +43 -0
- package/dist/{events-BQ6z264n.d.ts → events-B4YCc4vc.d.ts} +1 -1
- package/dist/index.d.ts +4 -6
- package/dist/index.js +3 -7
- package/dist/key-figure-P37VK425.js +30 -0
- package/dist/{kit-tQnCPMOM.d.ts → kit-DrRpdn0p.d.ts} +2 -2
- package/dist/mobile-message-OF7T62B7.js +50 -0
- package/dist/quote-T6WYLN7A.js +33 -0
- package/dist/react.d.ts +21 -11
- package/dist/react.js +585 -826
- package/dist/scene-video-backdrop-PCTARAAJ.js +7 -0
- package/dist/server.d.ts +7 -8
- package/dist/server.js +179 -84
- package/dist/{system-prompt-RRXIWDDD.js → system-prompt-SYRT5DWM.js} +1 -1
- package/dist/template-catalog.d.ts +392 -16
- package/dist/template-catalog.js +1 -1
- package/dist/templates.d.ts +5 -5
- package/dist/test.d.ts +3 -3
- package/dist/test.js +18 -18
- package/dist/text-stream-LD364KBI.js +9 -0
- package/dist/{types-DWFO6qca.d.ts → types-CdBmNTGD.d.ts} +1 -1
- package/dist/{types-CEh9eUFu.d.ts → types-DdZw4GRQ.d.ts} +17 -48
- package/dist/validate-4OUD2CLX.js +10 -0
- package/docs/architecture.md +1 -1
- package/docs/concepts.md +1 -1
- package/docs/custom-templates.md +13 -28
- package/docs/customization.md +11 -59
- package/docs/getting-started.md +2 -2
- package/docs/immersive-interface.md +3 -4
- package/docs/maintainers/cinematic-migration.md +38 -0
- package/docs/media-and-audio.md +14 -14
- package/docs/motion-and-effects.md +6 -14
- package/docs/persistence.md +3 -3
- package/docs/production.md +11 -9
- package/docs/provider-integration.md +9 -16
- package/docs/reference/design-system.html +1 -1
- package/docs/reference/protocol.md +14 -4
- package/docs/testing.md +1 -1
- package/package.json +6 -3
- package/registry/items/backgrounds.json +1 -1
- package/registry/items/chapterTitle.json +80 -0
- package/registry/items/cinemaMedia.json +136 -0
- package/registry/items/comparison.json +168 -0
- package/registry/items/editorialTimeline.json +172 -0
- package/registry/items/keyFigure.json +162 -0
- package/registry/items/mobileMessage.json +153 -0
- package/registry/items/quote.json +161 -0
- package/registry/items/template-context.json +1 -1
- package/registry/items/theme.json +1 -1
- package/starters/video-chat/README.md +24 -26
- package/starters/video-chat/package.json +1 -1
- package/starters/video-chat/providers/video.ts +6 -5
- package/starters/video-chat/stock.ts +35 -151
- package/styles/fonts/OFL.txt +93 -0
- package/styles/fonts/manifest.json +66 -0
- package/styles/fonts/roboto-v51-cyrillic-ext.woff2 +0 -0
- package/styles/fonts/roboto-v51-cyrillic.woff2 +0 -0
- package/styles/fonts/roboto-v51-greek-ext.woff2 +0 -0
- package/styles/fonts/roboto-v51-greek.woff2 +0 -0
- package/styles/fonts/roboto-v51-latin-ext.woff2 +0 -0
- package/styles/fonts/roboto-v51-latin.woff2 +0 -0
- package/styles/fonts/roboto-v51-math.woff2 +0 -0
- package/styles/fonts/roboto-v51-symbols.woff2 +0 -0
- package/styles/fonts/roboto-v51-vietnamese.woff2 +0 -0
- package/styles/fonts/roboto.css +91 -0
- package/styles/video-chat.css +30 -22
- package/dist/bg-confetti-HITCGLGD.js +0 -89
- package/dist/bg-emoji-VU4UZYZN.js +0 -150
- package/dist/bg-media-L34PDQXJ.js +0 -106
- package/dist/brand-message-FUJ4STFO.js +0 -256
- package/dist/chart-bar-EGPHJATL.js +0 -310
- package/dist/chart-counter-5FFWQNZO.js +0 -306
- package/dist/chart-progress-ring-JMXQLMLC.js +0 -302
- package/dist/chunk-4UNKZEAT.js +0 -3575
- package/dist/chunk-5CDAM24P.js +0 -31
- package/dist/chunk-AOWSXU2K.js +0 -18
- package/dist/chunk-CJ7F2CE6.js +0 -104
- package/dist/chunk-FRN6WKHA.js +0 -185
- package/dist/chunk-G5JPHBX7.js +0 -336
- package/dist/chunk-L5BTTCZV.js +0 -97
- package/dist/chunk-P22HHFDK.js +0 -43
- package/dist/chunk-PP3MCPN4.js +0 -1998
- package/dist/chunk-QAAO7OAY.js +0 -19
- package/dist/chunk-S7HFLYNN.js +0 -35
- package/dist/chunk-W3VDIBGR.js +0 -217
- package/dist/chunk-XGRA2MUV.js +0 -242
- package/dist/chunk-XTOXFMLM.js +0 -105
- package/dist/chunk-YJJC4N4D.js +0 -761
- package/dist/compose-video-2NFH4DZY.js +0 -13
- package/dist/cta-logo-YR7LYUR5.js +0 -212
- package/dist/cta-media-DQJBKUO2.js +0 -221
- package/dist/incoming-call-54KQ7O5A.js +0 -323
- package/dist/infographic-before-after-ROS52GOW.js +0 -460
- package/dist/infographic-feature-list-E7MGUDAN.js +0 -272
- package/dist/infographic-problem-solution-3S6NGO5N.js +0 -343
- package/dist/infographic-stat-row-SYB7AB7H.js +0 -247
- package/dist/infographic-steps-KCE6JWE2.js +0 -406
- package/dist/prompt-input-MHX4O42G.js +0 -239
- package/dist/reaction-SLEGR3BE.js +0 -122
- package/dist/scene-video-backdrop-XFPX4O3I.js +0 -10
- package/dist/showcase-code-2HLAVKBM.js +0 -357
- package/dist/showcase-phone-Q4HEO4LH.js +0 -278
- package/dist/showcase-terminal-DL45LUFG.js +0 -312
- package/dist/showcase-web-2QZO73FZ.js +0 -396
- package/dist/social-conversation-75SD2637.js +0 -695
- package/dist/social-milestone-GEFUQSBF.js +0 -296
- package/dist/social-notification-FJ5VHVLK.js +0 -247
- package/dist/social-review-stack-KXQCKFRP.js +0 -242
- package/dist/social-testimonial-JZ7CHC7S.js +0 -287
- package/dist/social-tweet-UCDXM25F.js +0 -298
- package/dist/text-stream-54LXABJW.js +0 -10
- package/dist/validate-T7GBU2YF.js +0 -8
- package/registry/items/barChart.json +0 -245
- package/registry/items/beforeAfter.json +0 -180
- package/registry/items/bigNumber.json +0 -232
- package/registry/items/brandMessage.json +0 -164
- package/registry/items/cardList.json +0 -214
- package/registry/items/chatMessenger.json +0 -151
- package/registry/items/chatWhatsapp.json +0 -151
- package/registry/items/codeEditor.json +0 -191
- package/registry/items/confetti.json +0 -107
- package/registry/items/ctaLogo.json +0 -167
- package/registry/items/ctaMedia.json +0 -200
- package/registry/items/emojiBurst.json +0 -101
- package/registry/items/incomingCall.json +0 -177
- package/registry/items/media.json +0 -187
- package/registry/items/milestone.json +0 -212
- package/registry/items/notification.json +0 -189
- package/registry/items/phoneMockup.json +0 -261
- package/registry/items/problemSolution.json +0 -193
- package/registry/items/progressRing.json +0 -206
- package/registry/items/promptInput.json +0 -155
- package/registry/items/reaction.json +0 -176
- package/registry/items/reviewStack.json +0 -231
- package/registry/items/steps.json +0 -215
- package/registry/items/terminal.json +0 -219
- package/registry/items/testimonial.json +0 -171
- package/registry/items/tripleStats.json +0 -235
- package/registry/items/tweet.json +0 -210
- package/registry/items/webMockup.json +0 -280
|
@@ -1,24 +1,400 @@
|
|
|
1
|
-
import { S as SceneTemplateMetadata,
|
|
1
|
+
import { S as SceneTemplateMetadata, b as TemplateTimingMetadata } from './catalog-types-WTbLP6Jh.js';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
declare const BUILTIN_TEMPLATE_SCHEMAS: {
|
|
4
|
+
readonly cinemaMedia: {
|
|
5
|
+
readonly type: "object";
|
|
6
|
+
readonly properties: {
|
|
7
|
+
readonly mediaKeyword: {
|
|
8
|
+
readonly type: "string";
|
|
9
|
+
readonly format: "stock-media-keyword";
|
|
10
|
+
readonly minLength: 1;
|
|
11
|
+
readonly maxLength: 80;
|
|
12
|
+
readonly description: "2–8 word literal subject/action search intent, maximum 80 characters. Host resolves URLs.";
|
|
13
|
+
readonly examples: readonly ["Ocean waves breaking on a rocky shore"];
|
|
14
|
+
};
|
|
15
|
+
readonly mediaUrl: {
|
|
16
|
+
readonly type: "string";
|
|
17
|
+
readonly format: "uri";
|
|
18
|
+
readonly description: "Host-only approved photo or video URL.";
|
|
19
|
+
readonly default: "";
|
|
20
|
+
};
|
|
21
|
+
readonly mediaType: {
|
|
22
|
+
readonly type: "string";
|
|
23
|
+
readonly enum: readonly ["photo", "video"];
|
|
24
|
+
readonly default: "video";
|
|
25
|
+
readonly description: "Host-resolved asset kind.";
|
|
26
|
+
};
|
|
27
|
+
readonly mediaPoster: {
|
|
28
|
+
readonly type: "string";
|
|
29
|
+
readonly format: "uri";
|
|
30
|
+
readonly description: "Host-only approved poster URL for video decoding.";
|
|
31
|
+
readonly default: "";
|
|
32
|
+
};
|
|
33
|
+
readonly shotDirection: {
|
|
34
|
+
readonly type: "string";
|
|
35
|
+
readonly maxLength: 220;
|
|
36
|
+
readonly description: "Optional action, framing and continuity for generation. Preserve the subject; do not request rendered text.";
|
|
37
|
+
};
|
|
38
|
+
readonly mediaSource: {
|
|
39
|
+
readonly type: "string";
|
|
40
|
+
readonly enum: readonly ["generate", "stock"];
|
|
41
|
+
readonly description: "Generate distinctive illustrative shots; use approved stock for familiar observable subjects.";
|
|
42
|
+
};
|
|
43
|
+
readonly fallbackText: {
|
|
44
|
+
readonly type: "string";
|
|
45
|
+
readonly maxLength: 65;
|
|
46
|
+
readonly description: "Optional grounded concise chapter text if this shot cannot be resolved; not visible over footage.";
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
readonly required: readonly [];
|
|
50
|
+
readonly additionalProperties: false;
|
|
51
|
+
readonly "x-vanillasky": {
|
|
52
|
+
readonly allowsStockMedia: true;
|
|
53
|
+
readonly requiredAnyOf: readonly [readonly ["mediaKeyword", "mediaUrl"]];
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
readonly chapterTitle: {
|
|
57
|
+
readonly type: "object";
|
|
58
|
+
readonly properties: {
|
|
59
|
+
readonly title: {
|
|
60
|
+
readonly type: "string";
|
|
61
|
+
readonly maxLength: 65;
|
|
62
|
+
readonly description: "Short title. Line breaks optional.";
|
|
63
|
+
readonly default: "A different perspective";
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
readonly required: readonly ["title"];
|
|
67
|
+
readonly additionalProperties: false;
|
|
68
|
+
};
|
|
69
|
+
readonly editorialTimeline: {
|
|
70
|
+
readonly type: "object";
|
|
71
|
+
readonly properties: {
|
|
72
|
+
readonly events: {
|
|
73
|
+
readonly type: "array";
|
|
74
|
+
readonly minItems: 3;
|
|
75
|
+
readonly maxItems: 5;
|
|
76
|
+
readonly items: {
|
|
77
|
+
readonly type: "object";
|
|
78
|
+
readonly properties: {
|
|
79
|
+
readonly label: {
|
|
80
|
+
readonly type: "string";
|
|
81
|
+
readonly minLength: 1;
|
|
82
|
+
readonly maxLength: 45;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
readonly required: readonly ["label"];
|
|
86
|
+
readonly additionalProperties: false;
|
|
87
|
+
};
|
|
88
|
+
readonly default: readonly [{
|
|
89
|
+
readonly label: "Observe";
|
|
90
|
+
}, {
|
|
91
|
+
readonly label: "Understand";
|
|
92
|
+
}, {
|
|
93
|
+
readonly label: "Act";
|
|
94
|
+
}];
|
|
95
|
+
readonly description: "3–5 ordered events or actions, each with one short label; no dates.";
|
|
96
|
+
};
|
|
97
|
+
readonly mediaKeyword: {
|
|
98
|
+
readonly type: "string";
|
|
99
|
+
readonly format: "stock-media-keyword";
|
|
100
|
+
readonly minLength: 1;
|
|
101
|
+
readonly maxLength: 80;
|
|
102
|
+
readonly description: "2–8 word literal subject/action search intent, maximum 80 characters. Host resolves URLs.";
|
|
103
|
+
readonly examples: readonly ["Ocean waves breaking on a rocky shore"];
|
|
104
|
+
};
|
|
105
|
+
readonly mediaUrl: {
|
|
106
|
+
readonly type: "string";
|
|
107
|
+
readonly format: "uri";
|
|
108
|
+
readonly description: "Host-only approved photo or video URL.";
|
|
109
|
+
readonly default: "";
|
|
110
|
+
};
|
|
111
|
+
readonly mediaType: {
|
|
112
|
+
readonly type: "string";
|
|
113
|
+
readonly enum: readonly ["photo", "video"];
|
|
114
|
+
readonly default: "video";
|
|
115
|
+
readonly description: "Host-resolved asset kind.";
|
|
116
|
+
};
|
|
117
|
+
readonly mediaPoster: {
|
|
118
|
+
readonly type: "string";
|
|
119
|
+
readonly format: "uri";
|
|
120
|
+
readonly description: "Host-only approved poster URL for video decoding.";
|
|
121
|
+
readonly default: "";
|
|
122
|
+
};
|
|
123
|
+
readonly shotDirection: {
|
|
124
|
+
readonly type: "string";
|
|
125
|
+
readonly maxLength: 220;
|
|
126
|
+
readonly description: "Optional action, framing and continuity for generation. Preserve the subject; do not request rendered text.";
|
|
127
|
+
};
|
|
128
|
+
readonly mediaSource: {
|
|
129
|
+
readonly type: "string";
|
|
130
|
+
readonly enum: readonly ["generate", "stock"];
|
|
131
|
+
readonly description: "Generate distinctive illustrative shots; use approved stock for familiar observable subjects.";
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
readonly required: readonly ["events"];
|
|
135
|
+
readonly additionalProperties: false;
|
|
136
|
+
readonly "x-vanillasky": {
|
|
137
|
+
readonly allowsStockMedia: true;
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
readonly mobileMessage: {
|
|
141
|
+
readonly type: "object";
|
|
142
|
+
readonly properties: {
|
|
143
|
+
readonly mediaKeyword: {
|
|
144
|
+
readonly type: "string";
|
|
145
|
+
readonly format: "stock-media-keyword";
|
|
146
|
+
readonly minLength: 1;
|
|
147
|
+
readonly maxLength: 80;
|
|
148
|
+
readonly description: "2–8 word literal subject/action search intent, maximum 80 characters. Host resolves URLs.";
|
|
149
|
+
readonly examples: readonly ["Ocean waves breaking on a rocky shore"];
|
|
150
|
+
};
|
|
151
|
+
readonly mediaUrl: {
|
|
152
|
+
readonly type: "string";
|
|
153
|
+
readonly format: "uri";
|
|
154
|
+
readonly description: "Host-only approved photo or video URL.";
|
|
155
|
+
readonly default: "";
|
|
156
|
+
};
|
|
157
|
+
readonly mediaType: {
|
|
158
|
+
readonly type: "string";
|
|
159
|
+
readonly enum: readonly ["photo", "video"];
|
|
160
|
+
readonly default: "video";
|
|
161
|
+
readonly description: "Host-resolved asset kind.";
|
|
162
|
+
};
|
|
163
|
+
readonly mediaPoster: {
|
|
164
|
+
readonly type: "string";
|
|
165
|
+
readonly format: "uri";
|
|
166
|
+
readonly description: "Host-only approved poster URL for video decoding.";
|
|
167
|
+
readonly default: "";
|
|
168
|
+
};
|
|
169
|
+
readonly message: {
|
|
170
|
+
readonly type: "string";
|
|
171
|
+
readonly maxLength: 120;
|
|
172
|
+
readonly default: "Can we talk?";
|
|
173
|
+
readonly description: "Exact supplied or explicitly illustrative message, preferably 6–16 words.";
|
|
174
|
+
};
|
|
175
|
+
readonly app: {
|
|
176
|
+
readonly type: "string";
|
|
177
|
+
readonly maxLength: 24;
|
|
178
|
+
readonly default: "Messages";
|
|
179
|
+
readonly description: "Optional app label; Messages is the visual default.";
|
|
180
|
+
};
|
|
181
|
+
readonly shotDirection: {
|
|
182
|
+
readonly type: "string";
|
|
183
|
+
readonly maxLength: 220;
|
|
184
|
+
readonly description: "Optional action, framing and continuity for generation. Preserve the subject; do not request rendered text.";
|
|
185
|
+
};
|
|
186
|
+
readonly mediaSource: {
|
|
187
|
+
readonly type: "string";
|
|
188
|
+
readonly enum: readonly ["generate", "stock"];
|
|
189
|
+
readonly description: "Generate distinctive illustrative shots; use approved stock for familiar observable subjects.";
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
readonly required: readonly ["message"];
|
|
193
|
+
readonly additionalProperties: false;
|
|
194
|
+
readonly "x-vanillasky": {
|
|
195
|
+
readonly allowsStockMedia: true;
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
readonly comparison: {
|
|
199
|
+
readonly type: "object";
|
|
200
|
+
readonly properties: {
|
|
201
|
+
readonly leftLabel: {
|
|
202
|
+
readonly type: "string";
|
|
203
|
+
readonly maxLength: 20;
|
|
204
|
+
readonly description: "Optional short identifier for the first alternative.";
|
|
205
|
+
};
|
|
206
|
+
readonly rightLabel: {
|
|
207
|
+
readonly type: "string";
|
|
208
|
+
readonly maxLength: 20;
|
|
209
|
+
readonly description: "Optional short identifier for the second alternative.";
|
|
210
|
+
};
|
|
211
|
+
readonly leftText: {
|
|
212
|
+
readonly type: "string";
|
|
213
|
+
readonly minLength: 1;
|
|
214
|
+
readonly maxLength: 60;
|
|
215
|
+
readonly default: "More distractions";
|
|
216
|
+
readonly description: "First real alternative in one short phrase.";
|
|
217
|
+
};
|
|
218
|
+
readonly rightText: {
|
|
219
|
+
readonly type: "string";
|
|
220
|
+
readonly minLength: 1;
|
|
221
|
+
readonly maxLength: 60;
|
|
222
|
+
readonly default: "More room to think";
|
|
223
|
+
readonly description: "Second real alternative, parallel to the first.";
|
|
224
|
+
};
|
|
225
|
+
readonly mediaKeyword: {
|
|
226
|
+
readonly type: "string";
|
|
227
|
+
readonly format: "stock-media-keyword";
|
|
228
|
+
readonly minLength: 1;
|
|
229
|
+
readonly maxLength: 80;
|
|
230
|
+
readonly description: "2–8 word literal subject/action search intent, maximum 80 characters. Host resolves URLs.";
|
|
231
|
+
readonly examples: readonly ["Ocean waves breaking on a rocky shore"];
|
|
232
|
+
};
|
|
233
|
+
readonly mediaUrl: {
|
|
234
|
+
readonly type: "string";
|
|
235
|
+
readonly format: "uri";
|
|
236
|
+
readonly description: "Host-only approved photo or video URL.";
|
|
237
|
+
readonly default: "";
|
|
238
|
+
};
|
|
239
|
+
readonly mediaType: {
|
|
240
|
+
readonly type: "string";
|
|
241
|
+
readonly enum: readonly ["photo", "video"];
|
|
242
|
+
readonly default: "video";
|
|
243
|
+
readonly description: "Host-resolved asset kind.";
|
|
244
|
+
};
|
|
245
|
+
readonly mediaPoster: {
|
|
246
|
+
readonly type: "string";
|
|
247
|
+
readonly format: "uri";
|
|
248
|
+
readonly description: "Host-only approved poster URL for video decoding.";
|
|
249
|
+
readonly default: "";
|
|
250
|
+
};
|
|
251
|
+
readonly shotDirection: {
|
|
252
|
+
readonly type: "string";
|
|
253
|
+
readonly maxLength: 220;
|
|
254
|
+
readonly description: "Optional action, framing and continuity for generation. Preserve the subject; do not request rendered text.";
|
|
255
|
+
};
|
|
256
|
+
readonly mediaSource: {
|
|
257
|
+
readonly type: "string";
|
|
258
|
+
readonly enum: readonly ["generate", "stock"];
|
|
259
|
+
readonly description: "Generate distinctive illustrative shots; use approved stock for familiar observable subjects.";
|
|
260
|
+
};
|
|
261
|
+
};
|
|
262
|
+
readonly required: readonly ["leftText", "rightText"];
|
|
263
|
+
readonly additionalProperties: false;
|
|
264
|
+
readonly "x-vanillasky": {
|
|
265
|
+
readonly allowsStockMedia: true;
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
readonly quote: {
|
|
269
|
+
readonly type: "object";
|
|
270
|
+
readonly properties: {
|
|
271
|
+
readonly quote: {
|
|
272
|
+
readonly type: "string";
|
|
273
|
+
readonly minLength: 1;
|
|
274
|
+
readonly maxLength: 140;
|
|
275
|
+
readonly format: "grounded-quote";
|
|
276
|
+
readonly examples: readonly ["Look closely. There is always more to see."];
|
|
277
|
+
readonly description: "Exact supplied quotation; do not paraphrase or invent.";
|
|
278
|
+
};
|
|
279
|
+
readonly attribution: {
|
|
280
|
+
readonly type: "string";
|
|
281
|
+
readonly minLength: 1;
|
|
282
|
+
readonly maxLength: 60;
|
|
283
|
+
readonly examples: readonly ["Illustrative example"];
|
|
284
|
+
readonly description: "Grounded attribution belonging to these exact quoted words.";
|
|
285
|
+
};
|
|
286
|
+
readonly mediaKeyword: {
|
|
287
|
+
readonly type: "string";
|
|
288
|
+
readonly format: "stock-media-keyword";
|
|
289
|
+
readonly minLength: 1;
|
|
290
|
+
readonly maxLength: 80;
|
|
291
|
+
readonly description: "2–8 word literal subject/action search intent, maximum 80 characters. Host resolves URLs.";
|
|
292
|
+
readonly examples: readonly ["Ocean waves breaking on a rocky shore"];
|
|
293
|
+
};
|
|
294
|
+
readonly mediaUrl: {
|
|
295
|
+
readonly type: "string";
|
|
296
|
+
readonly format: "uri";
|
|
297
|
+
readonly description: "Host-only approved photo or video URL.";
|
|
298
|
+
readonly default: "";
|
|
299
|
+
};
|
|
300
|
+
readonly mediaType: {
|
|
301
|
+
readonly type: "string";
|
|
302
|
+
readonly enum: readonly ["photo", "video"];
|
|
303
|
+
readonly default: "video";
|
|
304
|
+
readonly description: "Host-resolved asset kind.";
|
|
305
|
+
};
|
|
306
|
+
readonly mediaPoster: {
|
|
307
|
+
readonly type: "string";
|
|
308
|
+
readonly format: "uri";
|
|
309
|
+
readonly description: "Host-only approved poster URL for video decoding.";
|
|
310
|
+
readonly default: "";
|
|
311
|
+
};
|
|
312
|
+
readonly shotDirection: {
|
|
313
|
+
readonly type: "string";
|
|
314
|
+
readonly maxLength: 220;
|
|
315
|
+
readonly description: "Optional action, framing and continuity for generation. Preserve the subject; do not request rendered text.";
|
|
316
|
+
};
|
|
317
|
+
readonly mediaSource: {
|
|
318
|
+
readonly type: "string";
|
|
319
|
+
readonly enum: readonly ["generate", "stock"];
|
|
320
|
+
readonly description: "Generate distinctive illustrative shots; use approved stock for familiar observable subjects.";
|
|
321
|
+
};
|
|
322
|
+
};
|
|
323
|
+
readonly required: readonly ["quote", "attribution"];
|
|
324
|
+
readonly additionalProperties: false;
|
|
325
|
+
readonly "x-vanillasky": {
|
|
326
|
+
readonly allowsStockMedia: true;
|
|
327
|
+
};
|
|
328
|
+
};
|
|
329
|
+
readonly keyFigure: {
|
|
330
|
+
readonly type: "object";
|
|
331
|
+
readonly properties: {
|
|
332
|
+
readonly value: {
|
|
333
|
+
readonly type: "string";
|
|
334
|
+
readonly minLength: 1;
|
|
335
|
+
readonly maxLength: 14;
|
|
336
|
+
readonly format: "grounded-stat";
|
|
337
|
+
readonly examples: readonly ["42%"];
|
|
338
|
+
readonly description: "One supplied supported quantity, preserving its unit.";
|
|
339
|
+
};
|
|
340
|
+
readonly label: {
|
|
341
|
+
readonly type: "string";
|
|
342
|
+
readonly minLength: 1;
|
|
343
|
+
readonly maxLength: 50;
|
|
344
|
+
readonly examples: readonly ["Illustrative example"];
|
|
345
|
+
readonly description: "Exactly one short label identifying the quantity and its context.";
|
|
346
|
+
};
|
|
347
|
+
readonly mediaKeyword: {
|
|
348
|
+
readonly type: "string";
|
|
349
|
+
readonly format: "stock-media-keyword";
|
|
350
|
+
readonly minLength: 1;
|
|
351
|
+
readonly maxLength: 80;
|
|
352
|
+
readonly description: "2–8 word literal subject/action search intent, maximum 80 characters. Host resolves URLs.";
|
|
353
|
+
readonly examples: readonly ["Ocean waves breaking on a rocky shore"];
|
|
354
|
+
};
|
|
355
|
+
readonly mediaUrl: {
|
|
356
|
+
readonly type: "string";
|
|
357
|
+
readonly format: "uri";
|
|
358
|
+
readonly description: "Host-only approved photo or video URL.";
|
|
359
|
+
readonly default: "";
|
|
360
|
+
};
|
|
361
|
+
readonly mediaType: {
|
|
362
|
+
readonly type: "string";
|
|
363
|
+
readonly enum: readonly ["photo", "video"];
|
|
364
|
+
readonly default: "video";
|
|
365
|
+
readonly description: "Host-resolved asset kind.";
|
|
366
|
+
};
|
|
367
|
+
readonly mediaPoster: {
|
|
368
|
+
readonly type: "string";
|
|
369
|
+
readonly format: "uri";
|
|
370
|
+
readonly description: "Host-only approved poster URL for video decoding.";
|
|
371
|
+
readonly default: "";
|
|
372
|
+
};
|
|
373
|
+
readonly shotDirection: {
|
|
374
|
+
readonly type: "string";
|
|
375
|
+
readonly maxLength: 220;
|
|
376
|
+
readonly description: "Optional action, framing and continuity for generation. Preserve the subject; do not request rendered text.";
|
|
377
|
+
};
|
|
378
|
+
readonly mediaSource: {
|
|
379
|
+
readonly type: "string";
|
|
380
|
+
readonly enum: readonly ["generate", "stock"];
|
|
381
|
+
readonly description: "Generate distinctive illustrative shots; use approved stock for familiar observable subjects.";
|
|
382
|
+
};
|
|
383
|
+
};
|
|
384
|
+
readonly required: readonly ["value", "label"];
|
|
385
|
+
readonly additionalProperties: false;
|
|
386
|
+
readonly "x-vanillasky": {
|
|
387
|
+
readonly requiresStat: true;
|
|
388
|
+
readonly allowsStockMedia: true;
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
type BuiltinTemplateId = keyof typeof BUILTIN_TEMPLATE_SCHEMAS;
|
|
4
394
|
interface BuiltinTemplateManifestEntry extends SceneTemplateMetadata {
|
|
5
395
|
id: BuiltinTemplateId;
|
|
6
|
-
label: string;
|
|
7
|
-
description: string;
|
|
8
|
-
family: TemplateFamily;
|
|
9
|
-
jobs: TemplateJob[];
|
|
10
|
-
register: TemplateRegister;
|
|
11
|
-
useWhen: string;
|
|
12
|
-
avoidWhen: string;
|
|
13
|
-
textCanvas: "tight" | "open";
|
|
14
|
-
minDuration: number;
|
|
15
|
-
preferredDuration: number;
|
|
16
396
|
timing: TemplateTimingMetadata;
|
|
17
397
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Canonical, serializable metadata for every bundled template.
|
|
20
|
-
* Schemas own defaults; this manifest owns discovery, selection, and timing hints.
|
|
21
|
-
*/
|
|
22
398
|
declare const BUILTIN_TEMPLATE_MANIFEST: readonly BuiltinTemplateManifestEntry[];
|
|
23
399
|
|
|
24
400
|
export { type BuiltinTemplateId, type BuiltinTemplateManifestEntry as BuiltinTemplateMetadata, BUILTIN_TEMPLATE_MANIFEST as builtinTemplates };
|
package/dist/template-catalog.js
CHANGED
package/dist/templates.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { I as InferTemplateJsonSchema, S as SceneTemplateProps, a as SceneTemplate } from './kit-
|
|
2
|
-
export { T as TemplateRegistry, c as createTemplateRegistry } from './kit-
|
|
1
|
+
import { I as InferTemplateJsonSchema, S as SceneTemplateProps, a as SceneTemplate } from './kit-DrRpdn0p.js';
|
|
2
|
+
export { T as TemplateRegistry, c as createTemplateRegistry } from './kit-DrRpdn0p.js';
|
|
3
3
|
import { ComponentType } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
export {
|
|
6
|
-
import './types-
|
|
4
|
+
import { T as TemplateJsonSchema, S as SceneTemplateMetadata } from './catalog-types-WTbLP6Jh.js';
|
|
5
|
+
export { a as TemplateFamily, b as TemplateTimingMetadata, c as TemplateTransitionTiming } from './catalog-types-WTbLP6Jh.js';
|
|
6
|
+
import './types-DdZw4GRQ.js';
|
|
7
7
|
|
|
8
8
|
interface TemplateExample<Variables extends Record<string, unknown> = Record<string, unknown>> {
|
|
9
9
|
name: string;
|
package/dist/test.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as VideoScene, b as VideoOrientation, V as VideoStyle, c as Video, d as VideoAudio,
|
|
2
|
-
import { V as VideoWarning, a as VideoFinishReason } from './events-
|
|
1
|
+
import { e as VideoScene, f as VIDEO_PROTOCOL_VERSION, b as VideoOrientation, V as VideoStyle, c as Video, d as VideoAudio, j as VideoInput } from './types-DdZw4GRQ.js';
|
|
2
|
+
import { V as VideoWarning, a as VideoFinishReason } from './events-B4YCc4vc.js';
|
|
3
3
|
|
|
4
4
|
type MockVideoStreamPart = {
|
|
5
5
|
type: "scene.add";
|
|
@@ -35,7 +35,7 @@ interface MockProviderTextStream {
|
|
|
35
35
|
finishReason: Promise<"stop" | "length" | "content-filter">;
|
|
36
36
|
}
|
|
37
37
|
type SimulatedEventEnvelope<TType extends string, TData> = {
|
|
38
|
-
protocolVersion:
|
|
38
|
+
protocolVersion: typeof VIDEO_PROTOCOL_VERSION;
|
|
39
39
|
runId: string;
|
|
40
40
|
sequence: number;
|
|
41
41
|
eventId: string;
|
package/dist/test.js
CHANGED
|
@@ -25,8 +25,8 @@ var portrait = {
|
|
|
25
25
|
type: "scene.add",
|
|
26
26
|
scene: {
|
|
27
27
|
id: "portrait-summary",
|
|
28
|
-
templateId: "
|
|
29
|
-
variables: {
|
|
28
|
+
templateId: "mobileMessage",
|
|
29
|
+
variables: { app: "VanillaSky", message: "Grounded product update" },
|
|
30
30
|
timing: { fixedDuration: 4 }
|
|
31
31
|
}
|
|
32
32
|
},
|
|
@@ -43,8 +43,8 @@ var landscape = {
|
|
|
43
43
|
type: "scene.add",
|
|
44
44
|
scene: {
|
|
45
45
|
id: "landscape-metric",
|
|
46
|
-
templateId: "
|
|
47
|
-
variables: {
|
|
46
|
+
templateId: "keyFigure",
|
|
47
|
+
variables: { value: "42 million", label: "Revenue" },
|
|
48
48
|
timing: { fixedDuration: 4 }
|
|
49
49
|
}
|
|
50
50
|
},
|
|
@@ -60,8 +60,8 @@ var truncated = [
|
|
|
60
60
|
type: "scene.add",
|
|
61
61
|
scene: {
|
|
62
62
|
id: "truncated-partial",
|
|
63
|
-
templateId: "
|
|
64
|
-
variables: {
|
|
63
|
+
templateId: "mobileMessage",
|
|
64
|
+
variables: { app: "VanillaSky", message: "Playable partial result" },
|
|
65
65
|
timing: { fixedDuration: 4 }
|
|
66
66
|
}
|
|
67
67
|
},
|
|
@@ -81,8 +81,8 @@ var invalidScene = [
|
|
|
81
81
|
type: "scene.add",
|
|
82
82
|
scene: {
|
|
83
83
|
id: "valid-after-invalid",
|
|
84
|
-
templateId: "
|
|
85
|
-
variables: {
|
|
84
|
+
templateId: "mobileMessage",
|
|
85
|
+
variables: { app: "VanillaSky", message: "Recovered after invalid content" },
|
|
86
86
|
timing: { fixedDuration: 4 }
|
|
87
87
|
}
|
|
88
88
|
},
|
|
@@ -99,8 +99,8 @@ var contentFilter = [
|
|
|
99
99
|
type: "scene.add",
|
|
100
100
|
scene: {
|
|
101
101
|
id: "content-filter-partial",
|
|
102
|
-
templateId: "
|
|
103
|
-
variables: {
|
|
102
|
+
templateId: "mobileMessage",
|
|
103
|
+
variables: { app: "VanillaSky", message: "Safe partial result" },
|
|
104
104
|
timing: { fixedDuration: 4 }
|
|
105
105
|
}
|
|
106
106
|
},
|
|
@@ -111,8 +111,8 @@ var abort = [
|
|
|
111
111
|
type: "scene.add",
|
|
112
112
|
scene: {
|
|
113
113
|
id: "abort-partial",
|
|
114
|
-
templateId: "
|
|
115
|
-
variables: {
|
|
114
|
+
templateId: "mobileMessage",
|
|
115
|
+
variables: { app: "VanillaSky", message: "Partial result before cancellation" },
|
|
116
116
|
timing: { fixedDuration: 4 }
|
|
117
117
|
}
|
|
118
118
|
},
|
|
@@ -123,8 +123,8 @@ var timeout = [
|
|
|
123
123
|
type: "scene.add",
|
|
124
124
|
scene: {
|
|
125
125
|
id: "timeout-partial",
|
|
126
|
-
templateId: "
|
|
127
|
-
variables: {
|
|
126
|
+
templateId: "mobileMessage",
|
|
127
|
+
variables: { app: "VanillaSky", message: "Partial result before timeout" },
|
|
128
128
|
timing: { fixedDuration: 4 }
|
|
129
129
|
}
|
|
130
130
|
},
|
|
@@ -233,10 +233,10 @@ async function* simulateVideoStream(parts, options = {}) {
|
|
|
233
233
|
if (timeoutMs != null && (!Number.isFinite(timeoutMs) || timeoutMs < 0)) {
|
|
234
234
|
throw new Error("Simulation timeoutMs must be a non-negative finite number");
|
|
235
235
|
}
|
|
236
|
-
const { createVideo } = await import("./compose-video-
|
|
237
|
-
const { createTextDeltaVideoPlanner } = await import("./text-stream-
|
|
238
|
-
const { BUILTIN_SERVER_TEMPLATE_KIT } = await import("./builtin-server-
|
|
239
|
-
const { createTemplateSceneValidator } = await import("./validate-
|
|
236
|
+
const { createVideo } = await import("./compose-video-TBFTONUC.js");
|
|
237
|
+
const { createTextDeltaVideoPlanner } = await import("./text-stream-LD364KBI.js");
|
|
238
|
+
const { BUILTIN_SERVER_TEMPLATE_KIT } = await import("./builtin-server-W4PLJUZ5.js");
|
|
239
|
+
const { createTemplateSceneValidator } = await import("./validate-4OUD2CLX.js");
|
|
240
240
|
const controller = new AbortController();
|
|
241
241
|
const forwardAbort = () => controller.abort(options.signal?.reason);
|
|
242
242
|
if (options.signal?.aborted) forwardAbort();
|
|
@@ -1,46 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** Host-authored timing, derived from prepared speech rather than model guesses. */
|
|
2
|
+
interface VideoNarrationGroup {
|
|
3
|
+
id: string;
|
|
4
|
+
text: string;
|
|
5
|
+
offsetSeconds: number;
|
|
6
|
+
durationSeconds: number;
|
|
7
|
+
totalSeconds: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
declare const VIDEO_PROTOCOL_VERSION: "0.6";
|
|
11
|
+
declare const VIDEO_SCHEMA_VERSION: "0.2";
|
|
3
12
|
type VideoOrientation = "portrait" | "landscape";
|
|
4
13
|
type VideoKnowledgeMode = "input-only" | "general";
|
|
5
|
-
interface VideoBrandColors {
|
|
6
|
-
primary: string;
|
|
7
|
-
secondary: string;
|
|
8
|
-
foreground: string;
|
|
9
|
-
surface: string;
|
|
10
|
-
surfaceElevated: string;
|
|
11
|
-
muted: string;
|
|
12
|
-
}
|
|
13
|
-
type VideoBackgroundPreset = "cosmic" | "horizon" | "twilight" | "meadow" | "velvet" | "flamingo" | "peach" | "saffron" | "black" | "midnight" | "aubergine" | "coal" | "navy";
|
|
14
|
-
type VideoBackgroundInput = VideoBackgroundPreset | {
|
|
15
|
-
color: string;
|
|
16
|
-
} | {
|
|
17
|
-
colors: [string, string];
|
|
18
|
-
};
|
|
19
|
-
type VideoBackground = {
|
|
20
|
-
type: "solid";
|
|
21
|
-
color: string;
|
|
22
|
-
} | {
|
|
23
|
-
type: "gradient";
|
|
24
|
-
colors: [string, string];
|
|
25
|
-
};
|
|
26
|
-
interface VideoBrandInput {
|
|
27
|
-
name?: string;
|
|
28
|
-
logoUrl?: string;
|
|
29
|
-
font?: string;
|
|
30
|
-
scriptFont?: string;
|
|
31
|
-
background?: VideoBackgroundInput;
|
|
32
|
-
colors?: Partial<VideoBrandColors>;
|
|
33
|
-
}
|
|
34
|
-
interface VideoBrand {
|
|
35
|
-
name?: string;
|
|
36
|
-
logoUrl?: string;
|
|
37
|
-
font: string;
|
|
38
|
-
scriptFont: string;
|
|
39
|
-
background: VideoBackground;
|
|
40
|
-
colors: VideoBrandColors;
|
|
41
|
-
}
|
|
42
14
|
interface VideoStyle {
|
|
43
|
-
brand: VideoBrand;
|
|
44
15
|
preset?: string;
|
|
45
16
|
defaultBackgroundEffect?: string;
|
|
46
17
|
defaultTextArchetype?: string;
|
|
@@ -50,12 +21,6 @@ interface VideoStyle {
|
|
|
50
21
|
/**
|
|
51
22
|
* The visual language generated media is produced in.
|
|
52
23
|
*
|
|
53
|
-
* A style has two halves once media can be generated: the brand decides how
|
|
54
|
-
* captions are drawn, and this decides what the footage behind them looks
|
|
55
|
-
* like. They have to travel together - pale illustrated ground under dark
|
|
56
|
-
* documentary footage is unreadable - so this belongs on the style rather
|
|
57
|
-
* than being threaded into each provider call by hand.
|
|
58
|
-
*
|
|
59
24
|
* Nothing is rendered from it. It reaches `resolveMedia`, which is where a
|
|
60
25
|
* provider prompt is written.
|
|
61
26
|
*/
|
|
@@ -97,6 +62,8 @@ interface VideoScene {
|
|
|
97
62
|
* on-screen copy.
|
|
98
63
|
*/
|
|
99
64
|
narration?: string;
|
|
65
|
+
/** Optional host-authored offsets into one prepared paragraph across adjacent scenes. */
|
|
66
|
+
narrationGroup?: VideoNarrationGroup;
|
|
100
67
|
}
|
|
101
68
|
interface VideoAudio {
|
|
102
69
|
trackId: string;
|
|
@@ -155,7 +122,6 @@ interface VideoInput {
|
|
|
155
122
|
style?: VideoStyleOptions;
|
|
156
123
|
/** Custom opening copy, or false to let the host show loading UI instead. Omit for the deterministic fallback. */
|
|
157
124
|
opening?: string | false;
|
|
158
|
-
brand?: VideoBrandInput;
|
|
159
125
|
/** Viewer or account context that may appear verbatim. It is data, never instructions. */
|
|
160
126
|
personalization?: Record<string, unknown>;
|
|
161
127
|
/** Optional approved pool. The planner may use zero or more relevant assets. */
|
|
@@ -211,6 +177,9 @@ interface VideoTemplatePacing {
|
|
|
211
177
|
minDuration?: number;
|
|
212
178
|
preferredDuration?: number;
|
|
213
179
|
timing?: {
|
|
180
|
+
readonly revealSeconds?: number;
|
|
181
|
+
readonly holdSeconds?: number;
|
|
182
|
+
readonly exitSeconds?: number;
|
|
214
183
|
readonly contentFields: readonly string[];
|
|
215
184
|
readonly contentUnit: "words" | "characters" | "items";
|
|
216
185
|
};
|
|
@@ -222,4 +191,4 @@ interface VideoSnapshotRetention {
|
|
|
222
191
|
suppliedMediaUrls?: boolean;
|
|
223
192
|
}
|
|
224
193
|
|
|
225
|
-
export { type VideoStyle as V, type VideoCapabilities as a, type VideoOrientation as b, type Video as c, type VideoAudio as d, type VideoScene as e, VIDEO_PROTOCOL_VERSION as f, type
|
|
194
|
+
export { type VideoStyle as V, type VideoCapabilities as a, type VideoOrientation as b, type Video as c, type VideoAudio as d, type VideoScene as e, VIDEO_PROTOCOL_VERSION as f, type VideoTemplatePacing as g, type VideoNarrationGroup as h, type VideoStyleOptions as i, type VideoInput as j, type VideoGenerationContext as k, type VideoPlanner as l, type VideoRequest as m, type VideoSceneValidator as n, type VideoSnapshotRetention as o, type VideoResumeCursor as p, type VideoSceneValidationContext as q };
|