@clipwright/core 0.24.0 → 0.26.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 +185 -0
- package/README.md +1 -1
- package/dist/contract-dispositions.d.ts +10 -4
- package/dist/contract-dispositions.js +14 -13
- package/dist/contract-dispositions.js.map +1 -1
- package/dist/endpoints.js +2 -0
- package/dist/endpoints.js.map +1 -1
- package/dist/faceless-price.d.ts +3 -1
- package/dist/faceless-price.js +4 -2
- package/dist/faceless-price.js.map +1 -1
- package/dist/faceless-public-plan.d.ts +7 -0
- package/dist/faceless-public-plan.js +15 -4
- package/dist/faceless-public-plan.js.map +1 -1
- package/dist/faceless-public.d.ts +31 -0
- package/dist/faceless-public.js +24 -1
- package/dist/faceless-public.js.map +1 -1
- package/dist/faceless-storyboard-v2-timing.d.ts +2 -1
- package/dist/faceless-storyboard-v2-timing.js +4 -2
- package/dist/faceless-storyboard-v2-timing.js.map +1 -1
- package/dist/faceless-voices.d.ts +111 -0
- package/dist/faceless-voices.js +70 -0
- package/dist/faceless-voices.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/rate-limit.d.ts +4 -2
- package/dist/rate-limit.js +4 -2
- package/dist/rate-limit.js.map +1 -1
- package/dist/run-static-warnings.js +13 -1
- package/dist/run-static-warnings.js.map +1 -1
- package/dist/runs.d.ts +16 -4
- package/dist/runs.js +26 -9
- package/dist/runs.js.map +1 -1
- package/dist/skills.d.ts +2 -2
- package/dist/skills.js +3 -3
- package/dist/skills.js.map +1 -1
- package/dist/voice-admission.d.ts +45 -0
- package/dist/voice-admission.js +19 -0
- package/dist/voice-admission.js.map +1 -1
- package/dist/voice-catalog.d.ts +11 -0
- package/dist/voice-catalog.js +9 -1
- package/dist/voice-catalog.js.map +1 -1
- package/dist/voice-listing.d.ts +10 -2
- package/dist/voice-listing.js +19 -5
- package/dist/voice-listing.js.map +1 -1
- package/dist/voices.d.ts +2 -0
- package/dist/voices.js +2 -0
- package/dist/voices.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,191 @@ a customer reading it should not miss what appeared in the product. Like *Server
|
|
|
16
16
|
they are live from the day the web app was deployed, not from the package release they are
|
|
17
17
|
listed under.
|
|
18
18
|
|
|
19
|
+
## [0.26.0] - 2026-10-09
|
|
20
|
+
|
|
21
|
+
`make_faceless` takes a narration voice by name: `list_voices` with `skill=make_faceless` lists seventeen voices in
|
|
22
|
+
six languages. The MCP tools `make_faceless` and `quote_faceless` refuse a key they do not declare, and the MCP
|
|
23
|
+
server requires a patched `@modelcontextprotocol/sdk`.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- *Dashboard:* a guide at `/guides/ai-ugc-ads` says what UGC ads and AI UGC ads are, and what the rules of the
|
|
28
|
+
United States, the European Union and the large platforms ask of them. Every source is listed with its date.
|
|
29
|
+
(clipwright#569)
|
|
30
|
+
- *Server-side:* a faceless video file carries its AI disclosure: the statement is embedded in the MP4 and stored in
|
|
31
|
+
the object metadata beside `ai-generated: true` and `generator: clipwright`. When the tag cannot be embedded, the
|
|
32
|
+
video is still delivered and the run says so, with the cause, in `warnings[]`. Faceless files delivered on or before
|
|
33
|
+
2026-10-04 may carry the storage flag alone. (clipwright#489)
|
|
34
|
+
- `@clipwright/core` exports `aiDisclosureObjectMetadata(text, embedded?)`, the builder of that object metadata, and
|
|
35
|
+
`AI_DISCLOSURE_EMBEDDED_METADATA_KEY`. `AI_DISCLOSURE_OBJECT_METADATA` stays the metadata of a video with a
|
|
36
|
+
presenter. (clipwright#489)
|
|
37
|
+
- *Dashboard:* The AI Disclosure page describes one marking for both kinds of video and names the date before which
|
|
38
|
+
a faceless file may carry less. (clipwright#489)
|
|
39
|
+
- *Server-side:* a finished faceless video is delivered even when our own check of the picture objects. The run ends
|
|
40
|
+
`succeeded`, is charged by the delivered duration, and says in `warnings[]` what the check could not confirm and at
|
|
41
|
+
which second: the captions, a scene change, text in the caption area with captions off, or that the check did not
|
|
42
|
+
run. Such a run used to wait for an operator, and the customer got no video. A file that is not the video we
|
|
43
|
+
rendered (wrong length, size or sound) is still refused without a charge. (clipwright#498)
|
|
44
|
+
- *Server-side:* the narration of a faceless video is levelled to -16 LUFS, and quiet and loud phrases are brought
|
|
45
|
+
closer together. It used to keep the level of the speech vendor: about 4 LU quieter, with phrases up to 5 dB apart,
|
|
46
|
+
so a later phrase could sound much louder than the opening. Timing is unchanged. (clipwright#333)
|
|
47
|
+
- *Server-side:* pictures in a faceless video change faster and less evenly: about every two and a half seconds on
|
|
48
|
+
average, where they used to hold for three to four, and a short phrase gets a short shot of its own. A video uses
|
|
49
|
+
more generated pictures, so it takes longer to make; the price is unchanged. (clipwright#519)
|
|
50
|
+
- *Server-side:* a faceless shot that covers two phrases shows one scene. It used to ask for both scenes in one
|
|
51
|
+
picture, which could come back as two pictures stacked in one frame. (clipwright#517)
|
|
52
|
+
- *Server-side:* the step that writes the scene descriptions of a faceless video is told to ask for readable words
|
|
53
|
+
and figures only when the script says them. It used to invent some, such as figures on a blackboard that
|
|
54
|
+
contradicted the narration. This makes invented writing rarer, not impossible; the writing in a finished picture
|
|
55
|
+
is compared with the script by the check of generated pictures described further down. (clipwright#516)
|
|
56
|
+
- *Server-side:* a faceless video file is smaller and closer to the rendered picture. A local render of one
|
|
57
|
+
43-second video with the new settings came to 29 MB at about 5 Mbit/s, where the old settings gave 75 MB at 14.
|
|
58
|
+
Resolution, frame rate, colour and audio are unchanged. (clipwright#518)
|
|
59
|
+
- *Server-side:* a faceless video whose opening clip shows text is delivered, with a `warnings[]` line saying so. It
|
|
60
|
+
used to fail with `opening_clip_rejected: the generated opening clip shows text`, or wait for an operator when the
|
|
61
|
+
frame held a lot of text, so a scene set in a shop or a café often could not be made: the image model draws signs
|
|
62
|
+
and price tags on its own. An opening clip that ends on a fade or is one flat colour still fails without a charge.
|
|
63
|
+
(clipwright#524)
|
|
64
|
+
- *Server-side:* a faceless video may run up to a quarter past `duration_seconds`, never past 90 seconds. It used to
|
|
65
|
+
fail with `voice_outside_selected_duration` when its narration ran more than 5 seconds over, and one script is
|
|
66
|
+
spoken at a different length from run to run, so a script that fitted once could fail the next time. A video more
|
|
67
|
+
than 5 seconds longer than selected says so in `warnings[]`, with both lengths. The price is unchanged: seconds
|
|
68
|
+
past the selection are free. A script is still accepted when its estimated length is 21 seconds to
|
|
69
|
+
`duration_seconds` plus 5, at most 90. (clipwright#529)
|
|
70
|
+
- `@clipwright/core`: `facelessMaxOutputFrames(selected)` returns a quarter past the selection, and the new
|
|
71
|
+
`facelessMaxEstimateFrames(selected)` returns the selection plus 5 seconds, the bound a script estimate must fit.
|
|
72
|
+
(clipwright#529)
|
|
73
|
+
- *Server-side:* a faceless video is ready sooner. After the first picture the others are generated three at a time,
|
|
74
|
+
beside the opening clip, where they used to be made one after another. The price and the result are unchanged.
|
|
75
|
+
(clipwright#520)
|
|
76
|
+
- *Server-side:* at most two faceless videos of one account are made at once; a third waits its turn and is not
|
|
77
|
+
refused. Faceless runs had no such limit. Each line also has a limit across all accounts now, so when many accounts
|
|
78
|
+
render at once a run may wait behind theirs instead of failing at a vendor. Three videos with a presenter per
|
|
79
|
+
account, as before. (clipwright#534)
|
|
80
|
+
- `@clipwright/core` exports `MAX_CONCURRENT_FACELESS_PER_ACCOUNT`. (clipwright#534)
|
|
81
|
+
- *Server-side:* captions of a faceless video break at the script's punctuation. A caption line used to be filled to
|
|
82
|
+
the width of the frame, so it could end one word into the next sentence: "NEXT MORNING A SIGN SOLD", then "OUT BY
|
|
83
|
+
NOON". A line now ends at a sentence mark, crosses a comma only with whole clauses, and a clause too long for one
|
|
84
|
+
line is split into parts of similar width instead of a full line and a leftover word. An abbreviation written with a
|
|
85
|
+
full stop before a capital or a figure ("Dr. Smith", "No. 1") still reads as a sentence end and can leave a one-word
|
|
86
|
+
line. (clipwright#535)
|
|
87
|
+
- *Server-side:* a video with a presenter (`make_ugc` or long-form) comes in a smaller file that is closer to the
|
|
88
|
+
rendered picture. A local render of one 69-second long-form video with the new settings came to 45 MB, where the
|
|
89
|
+
old settings gave 54 MB. Resolution, frame rate, colour and audio are unchanged. (clipwright#526)
|
|
90
|
+
- *Server-side:* a character who appears in several scenes of a faceless video is now described the same way in every
|
|
91
|
+
scene that shows them. The step that writes the scenes fixes one description of every recurring person or animal
|
|
92
|
+
(apparent age, build, hair, clothing), and the picture of each such scene is asked for with it. A secondary character
|
|
93
|
+
used to be a different person in every scene; only the main character, shown in the first picture, stayed the same.
|
|
94
|
+
Faces can still differ a little between scenes. (clipwright#532)
|
|
95
|
+
- `make_faceless` takes `voice`, the narration voice by name: `voice` on `quote_faceless` and `make_faceless`,
|
|
96
|
+
`--voice` on `quote-faceless` and `make-faceless`. `list_voices` with `skill=make_faceless` (`--skill
|
|
97
|
+
make_faceless` on `voices`) lists seventeen narration voices for it, in English, Russian, Spanish, Portuguese,
|
|
98
|
+
French and Italian, each with a language and a gender. Every listed voice now names the one skill that speaks it
|
|
99
|
+
in `skill`. Without `voice` the narration is read as before, by `narrator_en_wise_lady`. An unknown name,
|
|
100
|
+
a `make_ugc` voice and `voice_id` are refused before any charge, and `make_ugc` refuses a faceless voice the same
|
|
101
|
+
way, naming the skill that speaks it. A named voice whose language is written in another alphabet than the
|
|
102
|
+
script adds a line to `warnings[]` of the quote and of the run: the voice may mispronounce the text, and the
|
|
103
|
+
video may come out longer than its length limit and fail. A brief written in the other alphabet, with no letter
|
|
104
|
+
of the voice's, adds that line as a condition, since a brief may ask for the narration's language in words. The faceless voices have
|
|
105
|
+
no audio sample yet. (clipwright#530)
|
|
106
|
+
- **Breaking:** `@clipwright/mcp-server`: `make_faceless` and `quote_faceless` refuse a key they do not declare,
|
|
107
|
+
`voice_id` first of all, before any request is sent. Such a key used to be dropped silently. (clipwright#530)
|
|
108
|
+
- *Server-side:* `GET /v1/voices` without `skill` returns the `make_ugc` voices only, the same list as before, to
|
|
109
|
+
every client version; `skill=make_ugc` returns it too. The faceless voices come only with `skill=make_faceless`,
|
|
110
|
+
as `kind: "faceless_voice"`. (clipwright#530)
|
|
111
|
+
- `@clipwright/core` exports `FACELESS_VOICES`, `FACELESS_VOICE_NAMES`, `DEFAULT_FACELESS_VOICE`,
|
|
112
|
+
`FACELESS_SPEECH_MODEL`, `isFacelessVoiceName`, `buildFacelessVoiceWarnings`, `VOICE_SKILLS`,
|
|
113
|
+
`FACELESS_REJECTED_FIELDS` and `offeredFacelessInput`; `@clipwright/core/voice-admission` exports
|
|
114
|
+
`serverFacelessInput` and `facelessVoiceRefusal`. (clipwright#530)
|
|
115
|
+
- *Server-side:* a generated picture of a faceless video can be checked before the video is assembled: for writing that
|
|
116
|
+
neither the script nor the run's `character_details` contain, and for a frame cut into several pictures. The check
|
|
117
|
+
sits behind a server switch, which was turned on after its first production run had been read; that run, of eighteen
|
|
118
|
+
pictures, took a minute and a half longer than the same video unchecked. A picture
|
|
119
|
+
with either is drawn once more when the run has time and budget for it, and the cleaner of the two is used. What
|
|
120
|
+
remains is named in `warnings[]` with the seconds it is on screen, one line for each thing found; a finding by itself
|
|
121
|
+
does not fail the run. A picture whose check cannot run in its time or within the run's budget is used as it is, and
|
|
122
|
+
one `warnings[]` line says how many pictures went unchecked. The check is a paid step like the others: when its cost
|
|
123
|
+
cannot be established, the run waits for an operator. Scene pictures are also asked for no writing unless the scene
|
|
124
|
+
quotes the script, which removed invented signs and figures from 10 of 10 test pictures. A customer's own image is
|
|
125
|
+
not checked. Writing on a `character_reference` picture is not known to the check: a generated picture that repeats
|
|
126
|
+
it is reported when the writing has a figure or more than two words. (clipwright#516, clipwright#517)
|
|
127
|
+
- *Server-side:* the narration of a faceless video is delivered in two identical channels instead of one. It sounds the
|
|
128
|
+
same, and a loudness meter now reads the -16 LUFS the narration is levelled to; a meter that measured the single
|
|
129
|
+
channel read 3 LU lower. The file grows by about 1 %. (clipwright#526)
|
|
130
|
+
|
|
131
|
+
### Security
|
|
132
|
+
|
|
133
|
+
- `@clipwright/mcp-server` requires `@modelcontextprotocol/sdk` 1.31.0 or newer. Earlier versions let an OAuth client
|
|
134
|
+
send credentials to an authorization server chosen by the MCP server (GHSA-6qxp-vccf-f47h). The server speaks stdio
|
|
135
|
+
and uses no OAuth; a fresh install of 0.25.0 already resolves to a patched version. (clipwright#510)
|
|
136
|
+
|
|
137
|
+
### Fixed
|
|
138
|
+
|
|
139
|
+
- *Server-side:* a faceless video whose opening clip has to end in the middle of a phrase keeps the words a
|
|
140
|
+
`scene_images` picture is anchored to on that picture: the narration starts later, by under three seconds, so the
|
|
141
|
+
clip ends before those words. When no such start exists, the video is still delivered, and `warnings[]` names the image and
|
|
142
|
+
the anchored words spoken while the opening clip was on screen. It used to say nothing. (clipwright#521)
|
|
143
|
+
- *Server-side:* a faceless narration that comes out longer than the video may run is spoken once more, a little
|
|
144
|
+
faster. The run used to fail with `voice_outside_selected_duration` after the story and the speech were made, and
|
|
145
|
+
one script is spoken at a different length from run to run, so a script that fitted once could fail the next time.
|
|
146
|
+
A script that would not fit even at the fastest speech still fails, without a charge. (clipwright#529)
|
|
147
|
+
- *Server-side:* a faceless run no longer stops for review when one picture takes the image service about two minutes.
|
|
148
|
+
Such a picture is rare, about two in a hundred, but a video has eighteen or more, and since the pictures are made
|
|
149
|
+
three at a time (clipwright#520) one slow picture was enough to hold the whole run for an operator. A picture now has
|
|
150
|
+
four minutes before the run gives up on it. (clipwright#544)
|
|
151
|
+
- *Server-side:* two faceless videos made at the same time are much less likely to stop for review. To record what a
|
|
152
|
+
picture cost we ask the image service, which answers only a few such questions a minute; with two videos in work it
|
|
153
|
+
refused some, and a picture with no recorded cost held the whole run for an operator. A refused question now waits
|
|
154
|
+
as long as the service asks and is put again. Under load a video can take a few minutes longer; the limit itself
|
|
155
|
+
stays, so several videos at once can still meet it. (clipwright#553)
|
|
156
|
+
- *Server-side:* at most two faceless videos are made at once across all accounts; a third waits in the queue and
|
|
157
|
+
starts when one of them is done. Three at once asked the image service for more cost records than it answers, and
|
|
158
|
+
two of the three stopped for review. The limit per account stays at two, so one account's two videos can hold the
|
|
159
|
+
line while another account's video waits. (clipwright#553)
|
|
160
|
+
- *Server-side:* the voice preset `owner_ru_clone` speaks again. The cloned voice behind it was replaced at the
|
|
161
|
+
vendor, and a run that named the preset was refused before any charge. The preset now maps to the new voice, still
|
|
162
|
+
on `eleven_v4`, and `list_voices` links a sample spoken by it. (clipwright#497)
|
|
163
|
+
- *Server-side:* the delivery check of a faceless video no longer mistakes a yellow or amber picture for a caption
|
|
164
|
+
fault. It refused a correct video whose picture glowed behind the captions: a lamp, a sunset, fire, gold. The check
|
|
165
|
+
now compares neighbouring frames, so only yellow that moves with the spoken word counts. (clipwright#496)
|
|
166
|
+
- *Server-side:* a video file keeps one metadata box. The AI disclosure used to be added as a second box next to the
|
|
167
|
+
encoder's own, so a reader that takes the first box saw the encoder's comment and no disclosure. The disclosure now
|
|
168
|
+
replaces that comment in the one box, and the encoder tag stays. (clipwright#493)
|
|
169
|
+
|
|
170
|
+
## [0.25.0] - 2026-10-04
|
|
171
|
+
|
|
172
|
+
The AI disclosure names what each video holds, and the clients show it: `get_run` of the MCP server and
|
|
173
|
+
`clipwright runs <id>` carry `ai_disclosure`. The visible "AI-generated" label is gone, and the clients no longer
|
|
174
|
+
offer `disclosure_overlay`.
|
|
175
|
+
|
|
176
|
+
### Removed
|
|
177
|
+
|
|
178
|
+
- **Breaking:** *Server-side:* `disclosure_overlay` is gone: no video carries the visible "AI-generated" label. Quote
|
|
179
|
+
and run refuse the field with 400 `rejected_field` before any charge, and the refusal says where the disclosure is:
|
|
180
|
+
the run response and the file metadata. Clients up to 0.24.0 still list the field in their input schema; stop
|
|
181
|
+
passing it. Label the publication with the platform's own control. The contract version is `2026-10-04`.
|
|
182
|
+
(clipwright#488)
|
|
183
|
+
|
|
184
|
+
### Changed
|
|
185
|
+
|
|
186
|
+
- *Dashboard:* The Privacy Policy says that we keep the site that referred you and any marker in the link that
|
|
187
|
+
brought you to sign-up, and that a notification of each sign-up, with the email address, reaches us through
|
|
188
|
+
Telegram. (clipwright#482)
|
|
189
|
+
- *Server-side:* `ai_disclosure` of a faceless run names what that video holds: "This video was generated with AI:
|
|
190
|
+
the voice, the opening clip and the images are synthetic." A faceless run with `scene_images` says instead that the
|
|
191
|
+
voice and the opening clip are synthetic, and so is every image its author did not supply. Until now a faceless run
|
|
192
|
+
carried the sentence of a video with a presenter, about an actor and lip sync it does not have. A run with a
|
|
193
|
+
presenter keeps its sentence. (clipwright#488)
|
|
194
|
+
- `get_run` of the MCP server returns `ai_disclosure` with a finished video, and `clipwright runs <id>` prints it
|
|
195
|
+
under the video link. Until now neither showed the statement. (clipwright#488)
|
|
196
|
+
- *Server-side:* a run accepted with `disclosure_overlay: true` before the label was removed and composed after it
|
|
197
|
+
says so in `warnings[]`. (clipwright#488)
|
|
198
|
+
- `@clipwright/core` exports `aiDisclosureText(skill, input)` and the two faceless sentences,
|
|
199
|
+
`FACELESS_AI_DISCLOSURE_TEXT` and `FACELESS_OWN_IMAGES_AI_DISCLOSURE_TEXT`. `AI_DISCLOSURE_TEXT` stays the sentence
|
|
200
|
+
of a video with a presenter. (clipwright#488)
|
|
201
|
+
- *Dashboard:* The AI Disclosure page gives the three wordings of the statement, says that a faceless file carries a
|
|
202
|
+
storage flag alone, and no longer describes a visible label. (clipwright#488)
|
|
203
|
+
|
|
19
204
|
## [0.24.0] - 2026-10-03
|
|
20
205
|
|
|
21
206
|
A second speech model, `gemini-3.8-flash-tts`, with thirty voices of its own and a sample of each in English and
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @clipwright/core
|
|
2
2
|
|
|
3
3
|
Zod schemas and the shared request/response contract of the
|
|
4
|
-
[Clipwright](https://clipwright.io) UGC and faceless video API. Published because
|
|
4
|
+
[Clipwright](https://clipwright.io/?ref=npm) UGC and faceless video API. Published because
|
|
5
5
|
the SDK and the MCP server depend on it; the API validates against these same
|
|
6
6
|
schemas, so they are the contract rather than a copy of it.
|
|
7
7
|
|
|
@@ -4,7 +4,7 @@ import { makeUgcInputShape } from "./skills.js";
|
|
|
4
4
|
/** decision. The type guards completeness; the egress test proves truth. */
|
|
5
5
|
/** Public contract version, sent as the `X-Clipwright-Contract` header and as `contract_version` */
|
|
6
6
|
/** in the quote response. Every breaking change must bump it. */
|
|
7
|
-
export declare const CONTRACT_VERSION = "2026-10-
|
|
7
|
+
export declare const CONTRACT_VERSION = "2026-10-04";
|
|
8
8
|
export declare const CONTRACT_VERSION_HEADER = "X-Clipwright-Contract";
|
|
9
9
|
/** `implemented`: reaches the vendor or the composition tree; `rejected`: 400 before any run or reserve; */
|
|
10
10
|
/** `warned`: accepted with a `warnings[]` entry. `triggersWhen` keeps defaulted fields quiet on the happy path. */
|
|
@@ -107,8 +107,8 @@ export declare const FIELD_DISPOSITIONS: {
|
|
|
107
107
|
readonly message: "broll_url is not supported yet: b-roll requires segmented composition. Omit it";
|
|
108
108
|
};
|
|
109
109
|
readonly disclosure_overlay: {
|
|
110
|
-
readonly kind: "
|
|
111
|
-
readonly
|
|
110
|
+
readonly kind: "rejected";
|
|
111
|
+
readonly message: "disclosure_overlay is not supported: the visible label was removed. The output is still marked in the run contract and in the file metadata; label the publication with the platform's own control";
|
|
112
112
|
};
|
|
113
113
|
readonly background: {
|
|
114
114
|
readonly kind: "implemented";
|
|
@@ -119,6 +119,13 @@ export declare const FIELD_DISPOSITIONS: {
|
|
|
119
119
|
readonly message: "webhook_url is not supported: no webhook is ever delivered. Poll get_run with the run_id instead";
|
|
120
120
|
};
|
|
121
121
|
};
|
|
122
|
+
/** `make_faceless` fields refused by name: its input schema keeps the key and answers with this reason. */
|
|
123
|
+
export declare const FACELESS_REJECTED_FIELDS: {
|
|
124
|
+
readonly voice_id: {
|
|
125
|
+
readonly kind: "rejected";
|
|
126
|
+
readonly message: string;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
122
129
|
export type ContractField = keyof typeof FIELD_DISPOSITIONS;
|
|
123
130
|
/** Operational switches that change a field's disposition without a code change. A disabled */
|
|
124
131
|
/** switch must reject the field, not accept and ignore it. */
|
|
@@ -248,7 +255,6 @@ export declare const offeredUgcInput: z.ZodObject<{
|
|
|
248
255
|
eleven_v4: "eleven_v4";
|
|
249
256
|
"gemini-3.8-flash-tts": "gemini-3.8-flash-tts";
|
|
250
257
|
}>>;
|
|
251
|
-
disclosure_overlay: z.ZodOptional<z.ZodBoolean>;
|
|
252
258
|
background: z.ZodOptional<z.ZodEnum<{
|
|
253
259
|
blur: "blur";
|
|
254
260
|
contain: "contain";
|
|
@@ -5,7 +5,7 @@ import { BROLL_POLICY_DESCRIPTION } from "./broll-policy.js";
|
|
|
5
5
|
/** decision. The type guards completeness; the egress test proves truth. */
|
|
6
6
|
/** Public contract version, sent as the `X-Clipwright-Contract` header and as `contract_version` */
|
|
7
7
|
/** in the quote response. Every breaking change must bump it. */
|
|
8
|
-
export const CONTRACT_VERSION = "2026-10-
|
|
8
|
+
export const CONTRACT_VERSION = "2026-10-04";
|
|
9
9
|
export const CONTRACT_VERSION_HEADER = "X-Clipwright-Contract";
|
|
10
10
|
/** `satisfies` guards completeness; `as const` keeps literal types, from which the rejected */
|
|
11
11
|
/** set is derived below instead of being listed by hand. */
|
|
@@ -60,9 +60,11 @@ export const FIELD_DISPOSITIONS = {
|
|
|
60
60
|
kind: "rejected",
|
|
61
61
|
message: "broll_url is not supported yet: b-roll requires segmented composition. Omit it",
|
|
62
62
|
},
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
// The visible label is gone (clipwright#488); the refusal says where the disclosure lives.
|
|
64
|
+
disclosure_overlay: {
|
|
65
|
+
kind: "rejected",
|
|
66
|
+
message: "disclosure_overlay is not supported: the visible label was removed. The output is still marked in the run contract and in the file metadata; label the publication with the platform's own control",
|
|
67
|
+
},
|
|
66
68
|
// Applied by composition and gated by `CLIPWRIGHT_COMPOSE`, like `image` is gated
|
|
67
69
|
// by `CLIPWRIGHT_REMOTE_FETCH`.
|
|
68
70
|
background: { kind: "implemented", provenBy: "composition" },
|
|
@@ -73,6 +75,14 @@ export const FIELD_DISPOSITIONS = {
|
|
|
73
75
|
message: "webhook_url is not supported: no webhook is ever delivered. Poll get_run with the run_id instead",
|
|
74
76
|
},
|
|
75
77
|
};
|
|
78
|
+
/** `make_faceless` fields refused by name: its input schema keeps the key and answers with this reason. */
|
|
79
|
+
export const FACELESS_REJECTED_FIELDS = {
|
|
80
|
+
voice_id: {
|
|
81
|
+
kind: "rejected",
|
|
82
|
+
message: "voice_id is not accepted by make_faceless: pass voice with a name from list_voices (skill=make_faceless), " +
|
|
83
|
+
"or omit both for the default voice",
|
|
84
|
+
},
|
|
85
|
+
};
|
|
76
86
|
/** Input fields in shape declaration order: a deterministic walk of the registry. */
|
|
77
87
|
const CONTRACT_FIELDS = Object.keys(makeUgcInputShape);
|
|
78
88
|
/** `create_actor` is open only with the fetch surface: a personal actor cannot render without it. */
|
|
@@ -108,11 +118,6 @@ const COMPOSE_DISABLED = {
|
|
|
108
118
|
kind: "rejected",
|
|
109
119
|
message: "background is not available: composition is disabled on this deployment. Request an aspect_ratio close to your image instead",
|
|
110
120
|
};
|
|
111
|
-
/** Refusal for `disclosure_overlay` when the composition stage is off. */
|
|
112
|
-
const DISCLOSURE_OVERLAY_DISABLED = {
|
|
113
|
-
kind: "rejected",
|
|
114
|
-
message: "disclosure_overlay is not available: composition is disabled on this deployment. The output is still marked in the run contract and in the file metadata",
|
|
115
|
-
};
|
|
116
121
|
/** Long-form prerequisites in ONE expression for all its fields: two copies could */
|
|
117
122
|
/** open `segments` while `inserts` stay closed. */
|
|
118
123
|
function longFormReady(flags) {
|
|
@@ -138,10 +143,6 @@ export function resolveDispositions(flags) {
|
|
|
138
143
|
},
|
|
139
144
|
// With composition off nothing can apply a background, so the field is rejected.
|
|
140
145
|
background: flags.compose ? FIELD_DISPOSITIONS.background : COMPOSE_DISABLED,
|
|
141
|
-
// Same gating as `background`: the visible overlay is burned in by composition.
|
|
142
|
-
disclosure_overlay: flags.compose
|
|
143
|
-
? FIELD_DISPOSITIONS.disclosure_overlay
|
|
144
|
-
: DISCLOSURE_OVERLAY_DISABLED,
|
|
145
146
|
};
|
|
146
147
|
}
|
|
147
148
|
/** The process's effective table, from which every surface is built: `FIELD_DISPOSITIONS` */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-dispositions.js","sourceRoot":"","sources":["../src/contract-dispositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,yFAAyF;AACzF,4EAA4E;AAE5E,oGAAoG;AACpG,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAc/D,+FAA+F;AAC/F,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACnD,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAClD,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACrD,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAEtD,uEAAuE;IACvE,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EACL,8IAA8I;QAChJ,YAAY,EAAE,SAAS;KACxB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,yDAAyD;QAClE,YAAY,EAAE,SAAS;KACxB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,yDAAyD;QAClE,YAAY,EAAE,sBAAsB;KACrC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,iEAAiE;QAC1E,YAAY,EAAE,sBAAsB;KACrC;IACD,aAAa,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EACL,qFAAqF;QACvF,YAAY,EAAE,sBAAsB;KACrC;IAED,iFAAiF;IACjF,6CAA6C;IAC7C,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACvD,YAAY,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAEzD,6FAA6F;IAC7F,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAClD,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACrD,YAAY,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACzD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE;IAEnE,sEAAsE;IACtE,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE;IAC1D,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE;IACzD,SAAS,EAAE;QACT,IAAI,EAAE,UAAU;QAChB,OAAO,EACL,8IAA8I;KACjJ;IACD,SAAS,EAAE;QACT,IAAI,EAAE,UAAU;QAChB,OAAO,EACL,gFAAgF;KACnF;IACD,
|
|
1
|
+
{"version":3,"file":"contract-dispositions.js","sourceRoot":"","sources":["../src/contract-dispositions.ts"],"names":[],"mappings":"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"}
|
package/dist/endpoints.js
CHANGED
|
@@ -5,6 +5,8 @@ export const API_ENDPOINTS = [
|
|
|
5
5
|
{ method: "POST", path: "/v1/skills/make_faceless/quote", billed: false, onQuickstart: false, jsonBody: true },
|
|
6
6
|
{ method: "POST", path: "/v1/skills/make_faceless/run", billed: true, onQuickstart: false, jsonBody: true },
|
|
7
7
|
{ method: "GET", path: "/health", billed: false, onQuickstart: true, jsonBody: false },
|
|
8
|
+
{ method: "GET", path: "/", billed: false, onQuickstart: false, jsonBody: false },
|
|
9
|
+
{ method: "GET", path: "/robots.txt", billed: false, onQuickstart: false, jsonBody: false },
|
|
8
10
|
{ method: "GET", path: "/v1/voices", billed: false, onQuickstart: true, jsonBody: false },
|
|
9
11
|
{ method: "GET", path: "/v1/account", billed: false, onQuickstart: true, jsonBody: false },
|
|
10
12
|
{ method: "POST", path: "/v1/skills/make_ugc/quote", billed: false, onQuickstart: true, jsonBody: true },
|
package/dist/endpoints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
|
package/dist/faceless-price.d.ts
CHANGED
|
@@ -4,7 +4,9 @@ export declare const FACELESS_TARIFF_ID: "faceless-image-i2v-v1";
|
|
|
4
4
|
export declare const FACELESS_MIN_OUTPUT_FRAMES = 625;
|
|
5
5
|
/** The pre-speech estimate floor keeps the 4 s offset the 26 s floor had from the former 30 s minimum. */
|
|
6
6
|
export declare const FACELESS_MIN_ESTIMATE_SEC = 21;
|
|
7
|
-
/** A
|
|
7
|
+
/** A script is admitted when its estimate fits the selection plus 5 s; a video longer than that is named in `warnings[]`. */
|
|
8
|
+
export declare const facelessMaxEstimateFrames: (selectedFrames: number) => number;
|
|
9
|
+
/** A video may run a quarter past its selection, never past 90 s; the charge stays within the selection's quote (owner, 2026-10-07, #529). */
|
|
8
10
|
export declare const facelessMaxOutputFrames: (selectedFrames: number) => number;
|
|
9
11
|
export declare const facelessQuote: z.ZodObject<{
|
|
10
12
|
outputFrames: z.ZodNumber;
|
package/dist/faceless-price.js
CHANGED
|
@@ -4,8 +4,10 @@ export const FACELESS_TARIFF_ID = "faceless-image-i2v-v1";
|
|
|
4
4
|
export const FACELESS_MIN_OUTPUT_FRAMES = 625;
|
|
5
5
|
/** The pre-speech estimate floor keeps the 4 s offset the 26 s floor had from the former 30 s minimum. */
|
|
6
6
|
export const FACELESS_MIN_ESTIMATE_SEC = 21;
|
|
7
|
-
/** A
|
|
8
|
-
export const
|
|
7
|
+
/** A script is admitted when its estimate fits the selection plus 5 s; a video longer than that is named in `warnings[]`. */
|
|
8
|
+
export const facelessMaxEstimateFrames = (selectedFrames) => Math.min(selectedFrames + 125, 2250);
|
|
9
|
+
/** A video may run a quarter past its selection, never past 90 s; the charge stays within the selection's quote (owner, 2026-10-07, #529). */
|
|
10
|
+
export const facelessMaxOutputFrames = (selectedFrames) => Math.min(Math.floor(selectedFrames * 1.25), 2250);
|
|
9
11
|
export const facelessQuote = z.object({
|
|
10
12
|
outputFrames: z.number().int().min(FACELESS_MIN_OUTPUT_FRAMES).max(2250),
|
|
11
13
|
baseCredits: z.number().int().nonnegative(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faceless-price.js","sourceRoot":"","sources":["../src/faceless-price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAgC,CAAC;AACnE,wFAAwF;AACxF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,0GAA0G;AAC1G,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,
|
|
1
|
+
{"version":3,"file":"faceless-price.js","sourceRoot":"","sources":["../src/faceless-price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAgC,CAAC;AACnE,wFAAwF;AACxF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,0GAA0G;AAC1G,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,6HAA6H;AAC7H,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1G,8IAA8I;AAC9I,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAErH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACxE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC5C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,UAAU,aAAa,CAAC,KAAkD;IAC9E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,GAAG,CAAC;IAC1B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa;QAC/C,YAAY,EAAE,WAAW,GAAG,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;AACxF,CAAC"}
|
|
@@ -75,6 +75,13 @@ export type FacelessPublicPlanOptions = {
|
|
|
75
75
|
keepBeats?: ReadonlySet<number>;
|
|
76
76
|
/** With no beat boundary inside the opener bounds, end the opener at a word gap inside beat 1 (docs/70, clipwright#449). */
|
|
77
77
|
openerWordGap?: boolean;
|
|
78
|
+
/** Word ranges [first, end) no cut may fall inside, such as the words a customer image is anchored to. */
|
|
79
|
+
keepTogether?: ReadonlyArray<{
|
|
80
|
+
first: number;
|
|
81
|
+
end: number;
|
|
82
|
+
}>;
|
|
83
|
+
/** Lets the word gap fall after words of a kept range, which the opener then covers; the caller warns about them. */
|
|
84
|
+
openerGapPastKept?: boolean;
|
|
78
85
|
};
|
|
79
86
|
export declare function planPublicFacelessStory(input: FacelessPublicStory, words: readonly WordTiming[], inputStyle: CutStyleProfile, outputFrames: number, options?: FacelessPublicPlanOptions): FacelessPublicPlan;
|
|
80
87
|
export {};
|
|
@@ -75,6 +75,8 @@ export function parseFacelessPublicStory(input, expectedScript) {
|
|
|
75
75
|
}
|
|
76
76
|
return story;
|
|
77
77
|
}
|
|
78
|
+
/** Per second above the pace band: an emphasis cut is dropped only while the merged shot stays within 0.5 s of the band's top (docs/70, clipwright#519). */
|
|
79
|
+
const PACE_OVER_PENALTY = 2;
|
|
78
80
|
/** The opening VIDEO lasts 3–5 s at 25 fps; rationale in docs/70 (clipwright#442). */
|
|
79
81
|
export const FACELESS_OPENER_MIN_FRAMES = 75, FACELESS_OPENER_MAX_FRAMES = 125;
|
|
80
82
|
export const FACELESS_OPENER_BOUNDS_ERROR = `mandatory opening VIDEO requires ${FACELESS_OPENER_MIN_FRAMES}–${FACELESS_OPENER_MAX_FRAMES} frames`;
|
|
@@ -116,6 +118,7 @@ export function planPublicFacelessStory(input, words, inputStyle, outputFrames,
|
|
|
116
118
|
const cutAfter = (afterWord) => ({ afterWord,
|
|
117
119
|
frame: story.narrationStartFrame + Math.round((words[afterWord].endSec + words[afterWord + 1].startSec) / 2 * 25) });
|
|
118
120
|
const inOpenerBounds = (frame) => frame >= FACELESS_OPENER_MIN_FRAMES && frame <= FACELESS_OPENER_MAX_FRAMES;
|
|
121
|
+
const held = (cut) => options.keepTogether?.some(range => range.first <= cut.afterWord && cut.afterWord + 1 < range.end) ?? false;
|
|
119
122
|
const nodes = story.beats.slice(1).map((beat, i) => ({ beatIndex: i + 1, ...cutAfter(beat.wordStart - 1) }));
|
|
120
123
|
const states = Array(nodes.length + 1);
|
|
121
124
|
const seedOpener = (k) => {
|
|
@@ -126,14 +129,16 @@ export function planPublicFacelessStory(input, words, inputStyle, outputFrames,
|
|
|
126
129
|
for (const [k, node] of nodes.entries()) {
|
|
127
130
|
if (k > 0 && options.keepBeats?.has(k))
|
|
128
131
|
break;
|
|
129
|
-
if (inOpenerBounds(node.frame))
|
|
132
|
+
if (inOpenerBounds(node.frame) && !held(node))
|
|
130
133
|
seedOpener(k);
|
|
131
134
|
}
|
|
132
135
|
if (!states.some(Boolean)) {
|
|
133
136
|
// Word-gap opener: beat 0 alone, cut at beat 1's first in-bounds gap that leaves beat 1 an IMAGE shot's minimum.
|
|
134
137
|
const next = story.beats[1], nextEndFrame = nodes[1]?.frame ?? outputFrames;
|
|
138
|
+
// A kept range reaching into beat 1 belongs to that beat's picture, so the gap falls before its first word.
|
|
139
|
+
const pastKept = (cut) => options.keepTogether?.some(range => range.end > next.wordStart && range.first <= cut.afterWord) ?? false;
|
|
135
140
|
const gap = options.openerWordGap ? Array.from({ length: next.wordEnd - next.wordStart - 1 }, (_, i) => cutAfter(next.wordStart + i))
|
|
136
|
-
.find(cut => inOpenerBounds(cut.frame)) : undefined;
|
|
141
|
+
.find(cut => inOpenerBounds(cut.frame) && (options.openerGapPastKept || !pastKept(cut))) : undefined;
|
|
137
142
|
if (!gap || nextEndFrame - gap.frame < 25)
|
|
138
143
|
throw new Error(FACELESS_OPENER_BOUNDS_ERROR);
|
|
139
144
|
nodes[0] = { beatIndex: 1, ...gap };
|
|
@@ -142,6 +147,8 @@ export function planPublicFacelessStory(input, words, inputStyle, outputFrames,
|
|
|
142
147
|
nodes.push({ beatIndex: story.beats.length, afterWord: words.length - 1, frame: outputFrames });
|
|
143
148
|
const final = nodes.length - 1;
|
|
144
149
|
for (let end = 1; end <= final; end++) {
|
|
150
|
+
if (end < final && held(nodes[end]))
|
|
151
|
+
continue;
|
|
145
152
|
for (let start = 0; start < end; start++) {
|
|
146
153
|
const prior = states[start];
|
|
147
154
|
const duration = nodes[end].frame - nodes[start].frame;
|
|
@@ -150,7 +157,7 @@ export function planPublicFacelessStory(input, words, inputStyle, outputFrames,
|
|
|
150
157
|
const phase = story.beats[nodes[start].beatIndex].phase;
|
|
151
158
|
const phaseRange = style.pacing.by_phase[phase];
|
|
152
159
|
const range = phaseRange && phaseRange.n > 0 ? phaseRange : style.pacing.global_image_frames;
|
|
153
|
-
const score = facelessCutScore(end === final ? null : story.beats[nodes[end].beatIndex].reason, duration, range);
|
|
160
|
+
const score = facelessCutScore(end === final ? null : story.beats[nodes[end].beatIndex].reason, duration, range, PACE_OVER_PENALTY);
|
|
154
161
|
const candidate = { total: prior.total + score.net, path: [...prior.path, end], scores: [...prior.scores, score] };
|
|
155
162
|
const best = states[end];
|
|
156
163
|
const firstDifference = best ? candidate.path.findIndex((v, i) => v !== best.path[i]) : -1;
|
|
@@ -165,14 +172,18 @@ export function planPublicFacelessStory(input, words, inputStyle, outputFrames,
|
|
|
165
172
|
throw new Error("no feasible public storyboard within IMAGE duration bounds");
|
|
166
173
|
let startFrame = 0;
|
|
167
174
|
let beatStart = 0;
|
|
175
|
+
const beatFrame = (beat) => beat === 0 ? 0 : beat < story.beats.length ? cutAfter(story.beats[beat].wordStart - 1).frame : outputFrames;
|
|
168
176
|
const shots = selected.path.map((nodeIndex, i) => {
|
|
169
177
|
const node = nodes[nodeIndex];
|
|
170
178
|
const included = story.beats.slice(beatStart, node.beatIndex);
|
|
171
179
|
const hold = style.motion.pan_transition_n > 0 && style.motion.pan_flip_probability !== null && style.motion.pan_flip_probability < .5;
|
|
180
|
+
// One picture shows one scene: a shot of several beats takes the prompt of the beat on screen longest, the earlier on a tie.
|
|
181
|
+
const onScreen = included.map((_, k) => Math.min(node.frame, beatFrame(beatStart + k + 1)) - Math.max(startFrame, beatFrame(beatStart + k)));
|
|
182
|
+
const lead = onScreen.indexOf(Math.max(...onScreen));
|
|
172
183
|
const shot = {
|
|
173
184
|
id: included[0].id, mediaType: i ? "image" : "video", startFrame, endFrame: node.frame,
|
|
174
185
|
// Absorbed beats carry IMAGE prompts, so the opener keeps only its own beat's prompt.
|
|
175
|
-
beatIds: included.map(b => b.id), visualPrompts:
|
|
186
|
+
beatIds: included.map(b => b.id), visualPrompts: [included[i ? lead : 0].visualPrompt], phase: included[0].phase,
|
|
176
187
|
...(i ? { motion: hold || i % 2 === 1 ? "PAN_UP" : "PAN_DOWN" } : {}),
|
|
177
188
|
...(nodeIndex < final ? { cutAfterWord: node.afterWord } : {}), score: selected.scores[i],
|
|
178
189
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faceless-public-plan.js","sourceRoot":"","sources":["../src/faceless-public-plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"faceless-public-plan.js","sourceRoot":"","sources":["../src/faceless-public-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAwB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;AACpD,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;QAC9D,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC/D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACvC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACV,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,iDAAiD,CAAC;AAC7E,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACxF,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC1H,MAAM,aAAa,GAAG,KAAK,CAAS,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAE,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAE,EAAE,CAAC;IAC1H,CAAC,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,0BAA0B,CAAC,MAAc;IACvD,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpE,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnF,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;aACzD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,wBAAwB,CAAC,KAAc,EAAE,cAAuB;IAC9E,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAC3E,KAA8B,CAAC,MAAM,KAAK,cAAc,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC1H,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC/D,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAU,CAAC;IACzE,IAAI,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,SAAS;YAC7G,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACrG,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAAC,SAAS,GAAG,KAAK,CAAC;IAC/D,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,SAAS,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,IAAI,GAAG,IAAI,MAAM,CAAC,OAAO,GAAG,SAAS;gBAC/E,MAAM,CAAC,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACvH,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4JAA4J;AAC5J,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,sFAAsF;AACtF,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,EAAE,0BAA0B,GAAG,GAAG,CAAC;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GACvC,oCAAoC,0BAA0B,IAAI,0BAA0B,SAAS,CAAC;AAuBxG,MAAM,UAAU,uBAAuB,CACrC,KAA0B,EAAE,KAA4B,EAAE,UAA2B,EAAE,YAAoB,EAC3G,OAAO,GAA8B,EAAE;IAEvC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,0BAA0B,IAAI,YAAY,GAAG,IAAI,EAAE,CAAC;QAC5G,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,EAAE,CAAC;IACxE,IAAI,SAAS,GAAG,YAAY,GAAG,IAAI,IAAI,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;QACzE,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC/H,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACtE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM;YAChH,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAClH,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpF,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC/I,QAAQ,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM;YAChF,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzH,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS;QAClD,KAAK,EAAE,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACzH,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,IAAI,0BAA0B,IAAI,KAAK,IAAI,0BAA0B,CAAC;IACrH,MAAM,IAAI,GAAG,CAAC,GAA0B,EAAE,EAAE,CAC1C,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;IAC9G,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7G,MAAM,MAAM,GAA6B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE;QAC/B,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,SAAS,CAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACtG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3E,CAAC,CAAC;IACF,4FAA4F;IAC5F,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM;QAC9C,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,iHAAiH;QACjH,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,YAAY,CAAC;QAC7E,4GAA4G;QAC5G,MAAM,QAAQ,GAAG,CAAC,GAA0B,EAAE,EAAE,CAC9C,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;QAC3G,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;aAClI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,IAAI,CAAC,GAAG,IAAI,YAAY,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACzF,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;QACpC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;QACtC,IAAI,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC;YAAE,SAAS;QAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAE,CAAC,KAAK,CAAC;YACzD,IAAI,CAAC,KAAK,IAAI,QAAQ,GAAG,EAAE,IAAI,QAAQ,GAAG,GAAG;gBAAE,SAAS;YACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,SAAS,CAAE,CAAC,KAAK,CAAC;YAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,UAAU,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAC7F,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC,SAAS,CAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;YACtI,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACnH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI;gBAC/F,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,IAAI,CAAC;oBAC9G,SAAS,CAAC,IAAI,CAAC,eAAe,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QACnG,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC7F,IAAI,UAAU,GAAG,CAAC,CAAC;IAAC,IAAI,SAAS,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IACjJ,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAuC,EAAE;QACpF,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACvI,6HAA6H;QAC7H,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7I,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACrD,MAAM,IAAI,GAAwC;YAChD,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK;YACvF,sFAAsF;YACtF,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAK;YAClH,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAiB,CAAC,CAAC,CAAC,UAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAE;SAC3F,CAAC;QACF,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3G,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AAC5E,CAAC"}
|