@clipwright/core 0.16.0 → 0.18.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 +79 -0
- package/dist/actors.d.ts +4 -0
- package/dist/actors.js +22 -0
- package/dist/actors.js.map +1 -1
- package/dist/aspect.d.ts +3 -0
- package/dist/aspect.js +14 -0
- package/dist/aspect.js.map +1 -1
- package/dist/billing-terms.d.ts +19 -0
- package/dist/billing-terms.js +8 -0
- package/dist/billing-terms.js.map +1 -0
- package/dist/broll-policy.d.ts +31 -0
- package/dist/broll-policy.js +24 -0
- package/dist/broll-policy.js.map +1 -0
- package/dist/contract-dispositions.d.ts +65 -3
- package/dist/contract-dispositions.js +25 -21
- package/dist/contract-dispositions.js.map +1 -1
- package/dist/endpoints.d.ts +2 -2
- package/dist/endpoints.js +18 -13
- package/dist/endpoints.js.map +1 -1
- package/dist/errors.d.ts +7 -1
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -1
- package/dist/face-billing.d.ts +116 -0
- package/dist/face-billing.js +83 -0
- package/dist/face-billing.js.map +1 -0
- package/dist/face-delivery.d.ts +17 -0
- package/dist/face-delivery.js +12 -0
- package/dist/face-delivery.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/long-form-pricing.d.ts +48 -0
- package/dist/long-form-pricing.js +73 -0
- package/dist/long-form-pricing.js.map +1 -0
- package/dist/long-form-profile.d.ts +5 -0
- package/dist/long-form-profile.js +6 -0
- package/dist/long-form-profile.js.map +1 -0
- package/dist/media-timebase.d.ts +2 -0
- package/dist/media-timebase.js +3 -0
- package/dist/media-timebase.js.map +1 -0
- package/dist/public-endpoints.d.ts +2 -0
- package/dist/public-endpoints.js +2 -0
- package/dist/public-endpoints.js.map +1 -1
- package/dist/render-backend.d.ts +3 -1
- package/dist/run-static-warnings.d.ts +6 -2
- package/dist/run-static-warnings.js +15 -11
- package/dist/run-static-warnings.js.map +1 -1
- package/dist/runs.d.ts +115 -0
- package/dist/runs.js +21 -0
- package/dist/runs.js.map +1 -1
- package/dist/semantic-inserts.d.ts +63 -0
- package/dist/semantic-inserts.js +160 -0
- package/dist/semantic-inserts.js.map +1 -0
- package/dist/skills.d.ts +217 -1
- package/dist/skills.js +87 -26
- package/dist/skills.js.map +1 -1
- package/dist/speech-rhythm-contract.d.ts +20 -0
- package/dist/speech-rhythm-contract.js +22 -0
- package/dist/speech-rhythm-contract.js.map +1 -0
- package/dist/speech-rhythm.d.ts +21 -0
- package/dist/speech-rhythm.js +47 -0
- package/dist/speech-rhythm.js.map +1 -0
- package/dist/tts-backend.d.ts +1 -0
- package/dist/tts-backend.js.map +1 -1
- package/dist/voice-admission.d.ts +53 -1
- package/dist/voice-admission.js +32 -1
- package/dist/voice-admission.js.map +1 -1
- package/dist/voice-listing.d.ts +5 -1
- package/dist/voice-listing.js +11 -1
- package/dist/voice-listing.js.map +1 -1
- package/dist/voice-preview-approval.d.ts +27 -0
- package/dist/voice-preview-approval.js +29 -0
- package/dist/voice-preview-approval.js.map +1 -0
- package/dist/voices.d.ts +2 -0
- package/dist/voices.js +3 -0
- package/dist/voices.js.map +1 -1
- package/package.json +13 -1
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,85 @@ 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.18.0] - 2026-09-21
|
|
20
|
+
|
|
21
|
+
Long-form clips can now show a face for a fifth of their length instead of nearly
|
|
22
|
+
all of it, which is what the face-second meter was priced for.
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- `cover_words` on an insert says how many spoken words it covers, counted from
|
|
27
|
+
the first word of its anchor. The share of words left uncovered decides the
|
|
28
|
+
share of the clip that shows a face, and it does not move with the speed the
|
|
29
|
+
voice reads at. Word length still varies: at a 560-word script, asking for 19%
|
|
30
|
+
delivered 16 to 22 in nine hundred and ninety-seven simulated runs out of a
|
|
31
|
+
thousand, measured on this profile's voice. A shorter script scatters wider.
|
|
32
|
+
- A quote for a narrated clip carries `estimatedFaceWordShare`: the share of the
|
|
33
|
+
clip that will show a face, known before anything is synthesised.
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- **Up to 49 inserts per clip**, not two, and at most six appearances of the
|
|
38
|
+
actor between them. Both are counted from the word indexes you send, so an
|
|
39
|
+
input asking for more is refused before anything is paid for.
|
|
40
|
+
- *Server-side* An insert now ends where its first uncovered word begins rather
|
|
41
|
+
than where its last covered word ends, so the pause between two words belongs
|
|
42
|
+
to the insert. Inserts whose coverage meets are adjacent frame for frame and
|
|
43
|
+
no longer leave a fragment of actor footage between them.
|
|
44
|
+
- *Server-side* The credit hold for a narrated clip reserves the words you leave
|
|
45
|
+
uncovered instead of the whole narration. On a clip that covers four fifths of
|
|
46
|
+
its script the hold falls from 2170 credits to 630. Billing is unchanged: it
|
|
47
|
+
has always used the face intervals actually delivered.
|
|
48
|
+
|
|
49
|
+
## [0.17.0] - 2026-09-16
|
|
50
|
+
|
|
51
|
+
Everything here came out of the second dry run by a tester who had not seen the
|
|
52
|
+
product before.
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
|
|
56
|
+
- The MCP server reports money. `make_ugc` carries `credits_reserved` and
|
|
57
|
+
`get_run` carries `credits_charged`, in every state, so an agent no longer has
|
|
58
|
+
to call `get_account` before and after and subtract. The field names come from
|
|
59
|
+
the run schema, so REST and MCP cannot drift apart. (clipwright#209)
|
|
60
|
+
- *Server-side:* in `GET /v1/voices`, each entry of `models` carries
|
|
61
|
+
`vendor_verifies_voices` — whether the vendor's library listing marks any voice
|
|
62
|
+
as verified for that model. It is `false` for `eleven_v3` (measured: none of
|
|
63
|
+
303 live catalog voices), so an empty `verified_models` on that model says
|
|
64
|
+
nothing about the voice. (clipwright#208)
|
|
65
|
+
- *Server-side:* a voice whose gender differs from the actor's is named in
|
|
66
|
+
`warnings`, in the quote and in the run. The combination still runs as asked —
|
|
67
|
+
voicing a man with a female voice is sometimes deliberate — but it is no longer
|
|
68
|
+
silent. (clipwright#210)
|
|
69
|
+
- *Server-side:* an `image` smaller than the output on its short side gets a
|
|
70
|
+
warning that the source is upscaled, with both sizes and the size to send
|
|
71
|
+
instead. The default actor is silent: its size is a property of our own image,
|
|
72
|
+
stated once in the docs. (clipwright#211)
|
|
73
|
+
|
|
74
|
+
### Fixed
|
|
75
|
+
|
|
76
|
+
- *Server-side:* a request body that is not valid JSON answers 400
|
|
77
|
+
`malformed_body`, not 500. A 500 says the failure is ours, so an agent retries
|
|
78
|
+
bytes that will never parse; the new message says both what to fix and that a
|
|
79
|
+
retry fails the same way. (clipwright#212)
|
|
80
|
+
- *Server-side:* a source we cannot use — private or loopback host, http,
|
|
81
|
+
unreachable, redirecting, over 10 MB, or not PNG/JPEG/WebP — is refused with
|
|
82
|
+
400 `unusable_source` before any charge, in the quote and in the run alike.
|
|
83
|
+
It used to be priced: a loopback url answered 200 and an estimate, while the
|
|
84
|
+
tool description promised a refusal. (clipwright#213)
|
|
85
|
+
- *Server-side:* refusals on `script`, `voice`, `voice_id` and `image` are
|
|
86
|
+
written in the product's words instead of the schema library's, and the
|
|
87
|
+
description of `script` no longer names a field the API rejects.
|
|
88
|
+
(clipwright#212)
|
|
89
|
+
- *Dashboard:* the root of the cabinet host sends a signed-in visitor to their
|
|
90
|
+
dashboard instead of showing the landing page with a "Sign in" button.
|
|
91
|
+
(clipwright#214)
|
|
92
|
+
- *Dashboard:* every tile on `/videos` prints its `run_id` and links to the
|
|
93
|
+
support form with it. The id used to live only in the preview image's alt
|
|
94
|
+
text, so tiles without a preview had none at all. (clipwright#215)
|
|
95
|
+
- *Dashboard:* the REST example on `/quickstart` runs unchanged in any shell: one
|
|
96
|
+
line, no backslash continuations and no shell substitution. (clipwright#211)
|
|
97
|
+
|
|
19
98
|
## [0.16.0] - 2026-09-16
|
|
20
99
|
|
|
21
100
|
### Added
|
package/dist/actors.d.ts
CHANGED
|
@@ -47,6 +47,10 @@ export declare function voiceGenderFor(input: VoiceGenderInput, pin?: {
|
|
|
47
47
|
} | undefined): Gender | undefined;
|
|
48
48
|
export declare const IMAGE_DEFAULT_VOICE_WARNING: string;
|
|
49
49
|
export declare function actorGenderIgnoredWarning(field: "voice" | "voice_id"): string;
|
|
50
|
+
export declare function voiceActorGenderWarning(voice: string, voiceGender: Gender, actorGender: Gender): string;
|
|
51
|
+
/** Явный голос исполняется как запрошен, но расхождение с полом актёра */
|
|
52
|
+
/** НАЗЫВАЕТСЯ — правило проекта №3; разбор — `docs/18` Д52 (clipwright#210). */
|
|
53
|
+
export declare function buildVoiceActorMatchWarnings(input: VoiceGenderInput, voiceGenderOf: (voice: string) => Gender | undefined, pinGender?: Gender | undefined): string[];
|
|
50
54
|
/** Читает только поля входа, без пина: путь рана зовёт его из сохранённого входа. */
|
|
51
55
|
export declare function buildActorGenderWarnings(input: VoiceGenderInput): string[];
|
|
52
56
|
export declare const actorSelection: z.ZodObject<{
|
package/dist/actors.js
CHANGED
|
@@ -39,6 +39,28 @@ export const IMAGE_DEFAULT_VOICE_WARNING = `no voice was chosen for the face in
|
|
|
39
39
|
export function actorGenderIgnoredWarning(field) {
|
|
40
40
|
return `actor_gender did not change the voice: the explicit ${field} is used as requested`;
|
|
41
41
|
}
|
|
42
|
+
export function voiceActorGenderWarning(voice, voiceGender, actorGender) {
|
|
43
|
+
return (`voice "${voice}" is ${voiceGender} and the actor is ${actorGender}: the run uses both as asked, ` +
|
|
44
|
+
`so the face and the voice will not match. Choose a ${actorGender} voice from list_voices, ` +
|
|
45
|
+
"or another actor, if that is not what you want.");
|
|
46
|
+
}
|
|
47
|
+
/** Пол актёра БЕЗ броска: у пина его берут из снимка, а не из каталога (#210). */
|
|
48
|
+
function actorGenderOf(input, pinGender) {
|
|
49
|
+
if (input.actor_id !== undefined)
|
|
50
|
+
return pinGender;
|
|
51
|
+
return input.image === undefined ? DEFAULT_ACTOR_GENDER : input.actor_gender;
|
|
52
|
+
}
|
|
53
|
+
/** Явный голос исполняется как запрошен, но расхождение с полом актёра */
|
|
54
|
+
/** НАЗЫВАЕТСЯ — правило проекта №3; разбор — `docs/18` Д52 (clipwright#210). */
|
|
55
|
+
export function buildVoiceActorMatchWarnings(input, voiceGenderOf, pinGender) {
|
|
56
|
+
if (input.voice === undefined)
|
|
57
|
+
return [];
|
|
58
|
+
const voiceGender = voiceGenderOf(input.voice);
|
|
59
|
+
const actorGender = actorGenderOf(input, pinGender);
|
|
60
|
+
if (voiceGender === undefined || actorGender === undefined || voiceGender === actorGender)
|
|
61
|
+
return [];
|
|
62
|
+
return [voiceActorGenderWarning(input.voice, voiceGender, actorGender)];
|
|
63
|
+
}
|
|
42
64
|
/** Читает только поля входа, без пина: путь рана зовёт его из сохранённого входа. */
|
|
43
65
|
export function buildActorGenderWarnings(input) {
|
|
44
66
|
const explicit = input.voice_id !== undefined ? "voice_id" : input.voice !== undefined ? "voice" : undefined;
|
package/dist/actors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actors.js","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actors.js","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"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"}
|
package/dist/aspect.d.ts
CHANGED
|
@@ -117,6 +117,9 @@ export declare function deliveryWarnings(args: {
|
|
|
117
117
|
/** Допуск по длительности: вендор округляет, и доли секунды — не расхождение. */
|
|
118
118
|
durationToleranceSec?: number;
|
|
119
119
|
}): string[];
|
|
120
|
+
/** Растяжение называется, как и снап формата (правило №4), но только у ЧУЖОГО */
|
|
121
|
+
/** кадра: размеры нашего актёра — свойство продукта, `docs/03` §2.2 (#211). */
|
|
122
|
+
export declare function upscaleWarning(source: AspectSource | null, resolution: Resolution, aspectRatio: AspectRatio): string | null;
|
|
120
123
|
/**
|
|
121
124
|
* Кадр, который МЫ ожидаем от вендора: формат ПЛЮС разрешение.
|
|
122
125
|
*
|
package/dist/aspect.js
CHANGED
|
@@ -195,6 +195,20 @@ export function deliveryWarnings(args) {
|
|
|
195
195
|
}
|
|
196
196
|
return warnings;
|
|
197
197
|
}
|
|
198
|
+
/** Растяжение называется, как и снап формата (правило №4), но только у ЧУЖОГО */
|
|
199
|
+
/** кадра: размеры нашего актёра — свойство продукта, `docs/03` §2.2 (#211). */
|
|
200
|
+
export function upscaleWarning(source, resolution, aspectRatio) {
|
|
201
|
+
if (source === null || source.origin !== "probed")
|
|
202
|
+
return null;
|
|
203
|
+
const frame = expectedVendorFrame(resolution, aspectRatio);
|
|
204
|
+
const sourceShort = Math.min(source.width, source.height);
|
|
205
|
+
const frameShort = Math.min(frame.width, frame.height);
|
|
206
|
+
if (sourceShort >= frameShort)
|
|
207
|
+
return null;
|
|
208
|
+
return (`image is ${source.width}×${source.height} and the output is ${frame.width}×${frame.height}: ` +
|
|
209
|
+
`the source is upscaled, which softens the picture. Send at least ${frameShort} px ` +
|
|
210
|
+
"on the short side to avoid it.");
|
|
211
|
+
}
|
|
198
212
|
/** Короткая сторона кадра по разрешению — измерено живьём (docs/11 «шаг 0»). */
|
|
199
213
|
const SHORT_SIDE_BY_RESOLUTION = {
|
|
200
214
|
"720p": 720,
|
package/dist/aspect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aspect.js","sourceRoot":"","sources":["../src/aspect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aspect.js","sourceRoot":"","sources":["../src/aspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqC,MAAM,aAAa,CAAC;AAI/E;;;;;;;;;;GAUG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D,MAAM,EAAE,CAAC,GAAG,EAAE;IACd,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE,GAAG,CAAC;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB,MAAM,CAAC;AAGxD,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,qEAAqE;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,CAAS,EAAE,CAAS;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,IAAI,GAAgB,aAAa,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC5C,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACvE,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;YAC5B,YAAY,GAAG,QAAQ,CAAC;YACxB,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAkBD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,2EAA2E;QAC3E,kEAAkE;QAClE,0EAA0E;QAC1E,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,SAAS,IAAI,oBAAoB;YAC9C,QAAQ,EAAE;gBACR,sFAAsF;aACvF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,MAAM,MAAM,GAAG,SAAS,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;IAE1E,IAAI,QAAQ,IAAI,sBAAsB,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACjE,CAAC;IAED,sEAAsE;IACtE,EAAE;IACF,8EAA8E;IAC9E,sEAAsE;IACtE,wEAAwE;IACxE,8EAA8E;IAC9E,wDAAwD;IACxD,EAAE;IACF,oEAAoE;IACpE,2EAA2E;IAC3E,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,WAAW,GACf,WAAW,GAAG,WAAW;QACvB,CAAC,CAAC,aAAa,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,eAAe,MAAM,6BAA6B;YAC5F,oFAAoF;QACtF,CAAC,CAAC,aAAa,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,eAAe,MAAM,8BAA8B;YAC7F,oEAAoE,CAAC;IAE3E,IAAI,QAAQ,IAAI,qBAAqB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACjE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,wBAAwB,UAAU,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK;YACtF,yCAAyC,MAAM,cAAc,MAAM,EAAE;QACvE,CAAC,CAAC,iBAAiB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,iCAAiC,MAAM,IAAI;YACzF,cAAc,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,0BAA0B,MAAM,iCAAiC,IAAI,CAAC,KAAK,CAClF,QAAQ,GAAG,GAAG,CACf,MAAM,IAAI,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAoB,EACpB,SAAiC;IAEjC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;IACzB,IAAI,YAAY,GAAG,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;IAE1E,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QAC7E,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;YAC5B,IAAI,GAAG,SAAS,CAAC;YACjB,YAAY,GAAG,QAAQ,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AASD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAKhC;IACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC;IACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3E,QAAQ,CAAC,IAAI,CACX,mBAAmB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,UAAU,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,eAAe,CAC7G,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IACjE,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS,EAAE,CAAC;QACxC,0EAA0E;QAC1E,uEAAuE;QACvE,sEAAsE;QACtE,qBAAqB;QACrB,MAAM,mBAAmB,GACvB,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAEvF,QAAQ,CAAC,IAAI,CACX,mBAAmB;YACjB,CAAC,CAAC,6BAA6B,MAAM,CAAC,WAAW,UAAU,SAAS,CAAC,WAAW,YAAY,CAAC,sDAAsD;YACnJ,CAAC,CAAC,mBAAmB,MAAM,CAAC,WAAW,WAAW,SAAS,CAAC,WAAW,gBAAgB,CAC1F,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iFAAiF;AACjF,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAC5B,MAA2B,EAC3B,UAAsB,EACtB,WAAwB;IAExB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,WAAW,IAAI,UAAU;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,CACL,YAAY,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,sBAAsB,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI;QAC9F,oEAAoE,UAAU,MAAM;QACpF,gCAAgC,CACjC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,wBAAwB,GAA+B;IAC3D,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;CACX,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAsB,EACtB,WAAwB;IAExB,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,OAAO,KAAK,IAAI,CAAC;QACf,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;QACrD,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** Server-authored terms, exposed read-only on runs; never accepted as skill input. */
|
|
3
|
+
export declare const faceBillingAdmissionTermsSchema: z.ZodReadonly<z.ZodObject<{
|
|
4
|
+
mode: z.ZodLiteral<"face_seconds">;
|
|
5
|
+
tariffSnapshot: z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
|
|
6
|
+
version: z.ZodLiteral<1>;
|
|
7
|
+
id: z.ZodString;
|
|
8
|
+
creditsPerSecond: z.ZodNumber;
|
|
9
|
+
rounding: z.ZodLiteral<"ceil_aggregate_seconds">;
|
|
10
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
11
|
+
version: z.ZodLiteral<2>;
|
|
12
|
+
pricingVersion: z.ZodString;
|
|
13
|
+
rateCreditsPerFaceSecond: z.ZodNumber;
|
|
14
|
+
minimumCredits: z.ZodNumber;
|
|
15
|
+
rounding: z.ZodLiteral<"ceil_aggregate_seconds">;
|
|
16
|
+
failurePolicy: z.ZodLiteral<"verified_delivery_only">;
|
|
17
|
+
}, z.core.$strict>>]>;
|
|
18
|
+
}, z.core.$strict>>;
|
|
19
|
+
export type FaceBillingAdmissionTerms = z.infer<typeof faceBillingAdmissionTermsSchema>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { faceBillingTariffSchema } from "./face-billing.js";
|
|
3
|
+
/** Server-authored terms, exposed read-only on runs; never accepted as skill input. */
|
|
4
|
+
export const faceBillingAdmissionTermsSchema = z.object({
|
|
5
|
+
mode: z.literal("face_seconds"),
|
|
6
|
+
tariffSnapshot: faceBillingTariffSchema,
|
|
7
|
+
}).strict().readonly();
|
|
8
|
+
//# sourceMappingURL=billing-terms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-terms.js","sourceRoot":"","sources":["../src/billing-terms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,uFAAuF;AACvF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC/B,cAAc,EAAE,uBAAuB;CACxC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const BROLL_POLICIES: readonly ["anyone", "no_actor", "no_people"];
|
|
3
|
+
export declare const DEFAULT_BROLL_POLICY: "no_people";
|
|
4
|
+
export declare const BROLL_POLICY_DESCRIPTION: string;
|
|
5
|
+
export declare const brollPolicy: z.ZodEnum<{
|
|
6
|
+
anyone: "anyone";
|
|
7
|
+
no_actor: "no_actor";
|
|
8
|
+
no_people: "no_people";
|
|
9
|
+
}>;
|
|
10
|
+
export type BrollPolicy = z.infer<typeof brollPolicy>;
|
|
11
|
+
export declare const actorDefaultsInput: z.ZodObject<{
|
|
12
|
+
broll_policy: z.ZodEnum<{
|
|
13
|
+
anyone: "anyone";
|
|
14
|
+
no_actor: "no_actor";
|
|
15
|
+
no_people: "no_people";
|
|
16
|
+
}>;
|
|
17
|
+
}, z.core.$strict>;
|
|
18
|
+
export declare const actorDefaults: z.ZodObject<{
|
|
19
|
+
actor_id: z.ZodString;
|
|
20
|
+
broll_policy: z.ZodEnum<{
|
|
21
|
+
anyone: "anyone";
|
|
22
|
+
no_actor: "no_actor";
|
|
23
|
+
no_people: "no_people";
|
|
24
|
+
}>;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
export type ActorDefaultsInput = z.infer<typeof actorDefaultsInput>;
|
|
27
|
+
export type ActorDefaults = z.infer<typeof actorDefaults>;
|
|
28
|
+
export declare const ACTOR_DEFAULTS_PATH = "/v1/actors/:id/defaults";
|
|
29
|
+
export declare const actorDefaultsPath: (id: string) => string;
|
|
30
|
+
export declare function resolveBrollPolicy(override: BrollPolicy | undefined, actorDefault: unknown): BrollPolicy;
|
|
31
|
+
export declare function storedBrollPolicy(input: unknown): BrollPolicy;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const BROLL_POLICIES = ["anyone", "no_actor", "no_people"];
|
|
3
|
+
export const DEFAULT_BROLL_POLICY = "no_people";
|
|
4
|
+
export const BROLL_POLICY_DESCRIPTION = "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; " +
|
|
5
|
+
"no_people excludes all people, including hands. Segmented media generation is closed. " +
|
|
6
|
+
"This setting is stored only and has no effect on actor-only videos. " +
|
|
7
|
+
"Run override wins over the account actor default; otherwise no_people.";
|
|
8
|
+
export const brollPolicy = z.enum(BROLL_POLICIES).describe(BROLL_POLICY_DESCRIPTION);
|
|
9
|
+
export const actorDefaultsInput = z.strictObject({ broll_policy: brollPolicy });
|
|
10
|
+
export const actorDefaults = z.object({ actor_id: z.string(), broll_policy: brollPolicy });
|
|
11
|
+
export const ACTOR_DEFAULTS_PATH = "/v1/actors/:id/defaults";
|
|
12
|
+
export const actorDefaultsPath = (id) => `/v1/actors/${encodeURIComponent(id)}/defaults`;
|
|
13
|
+
export function resolveBrollPolicy(override, actorDefault) {
|
|
14
|
+
if (override !== undefined)
|
|
15
|
+
return brollPolicy.parse(override);
|
|
16
|
+
const parsed = brollPolicy.safeParse(actorDefault);
|
|
17
|
+
return parsed.success ? parsed.data : DEFAULT_BROLL_POLICY;
|
|
18
|
+
}
|
|
19
|
+
export function storedBrollPolicy(input) {
|
|
20
|
+
const value = input && typeof input === "object" && "resolved_broll_policy" in input
|
|
21
|
+
? input.resolved_broll_policy : undefined;
|
|
22
|
+
return resolveBrollPolicy(undefined, value);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=broll-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broll-policy.js","sourceRoot":"","sources":["../src/broll-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAoB,CAAC;AACzD,MAAM,CAAC,MAAM,wBAAwB,GACnC,kGAAkG;IAClG,wFAAwF;IACxF,sEAAsE;IACtE,wEAAwE,CAAC;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;AAG3F,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,cAAc,kBAAkB,CAAC,EAAE,CAAC,WAAW,CAAC;AAEzG,MAAM,UAAU,kBAAkB,CAAC,QAAiC,EAAE,YAAqB;IACzF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,IAAI,KAAK;QAClF,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,OAAO,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -28,6 +28,9 @@ export declare const CONTRACT_VERSION_HEADER = "X-Clipwright-Contract";
|
|
|
28
28
|
* опциональных — `present`.
|
|
29
29
|
*/
|
|
30
30
|
export type Disposition = {
|
|
31
|
+
kind: "stored";
|
|
32
|
+
message: string;
|
|
33
|
+
} | {
|
|
31
34
|
kind: "implemented";
|
|
32
35
|
provenBy: "egress" | "composition";
|
|
33
36
|
} | {
|
|
@@ -108,9 +111,17 @@ export declare const FIELD_DISPOSITIONS: {
|
|
|
108
111
|
readonly kind: "implemented";
|
|
109
112
|
readonly provenBy: "egress";
|
|
110
113
|
};
|
|
114
|
+
readonly broll_policy: {
|
|
115
|
+
readonly kind: "stored";
|
|
116
|
+
readonly message: string;
|
|
117
|
+
};
|
|
111
118
|
readonly segments: {
|
|
112
|
-
readonly kind: "
|
|
113
|
-
readonly
|
|
119
|
+
readonly kind: "implemented";
|
|
120
|
+
readonly provenBy: "composition";
|
|
121
|
+
};
|
|
122
|
+
readonly inserts: {
|
|
123
|
+
readonly kind: "implemented";
|
|
124
|
+
readonly provenBy: "composition";
|
|
114
125
|
};
|
|
115
126
|
readonly character: {
|
|
116
127
|
readonly kind: "rejected";
|
|
@@ -149,6 +160,7 @@ export interface ContractFlags {
|
|
|
149
160
|
compose: boolean;
|
|
150
161
|
/** Генерация личных актёров (clipwright#120); отсутствие значит «выключено». */
|
|
151
162
|
actorGeneration?: boolean;
|
|
163
|
+
longForm?: boolean;
|
|
152
164
|
}
|
|
153
165
|
/** `create_actor` открыт только вместе с фетч-поверхностью: без неё личного актёра не отрендерить. */
|
|
154
166
|
export declare function isActorGenerationEnabled(env?: Record<string, string | undefined>): boolean;
|
|
@@ -158,6 +170,8 @@ export declare function isActorGenerationEnabled(env?: Record<string, string | u
|
|
|
158
170
|
* дрожать между двумя соседними вызовами.
|
|
159
171
|
*/
|
|
160
172
|
export declare function contractFlagsFromEnv(env?: Record<string, string | undefined>): ContractFlags;
|
|
173
|
+
export declare function isLongFormQualificationEnabled(env?: Record<string, string | undefined>): boolean;
|
|
174
|
+
export declare const LONG_FORM_DISABLED_MESSAGE = "long-form qualification is disabled on this deployment; pass script without segments or inserts";
|
|
161
175
|
export declare function resolveDispositions(flags: ContractFlags): Record<ContractField, Disposition>;
|
|
162
176
|
/**
|
|
163
177
|
* ДЕЙСТВУЮЩАЯ таблица процесса — то, из чего строятся все поверхности.
|
|
@@ -165,7 +179,7 @@ export declare function resolveDispositions(flags: ContractFlags): Record<Contra
|
|
|
165
179
|
* Отличается от `FIELD_DISPOSITIONS` ровно на применённые флаги: базовая
|
|
166
180
|
* таблица говорит, что код УМЕЕТ, эта — что он предлагает прямо сейчас.
|
|
167
181
|
*/
|
|
168
|
-
export declare const EFFECTIVE_DISPOSITIONS: Record<"actor_gender" | "actor_id" | "aspect_ratio" | "background" | "broll_url" | "caption_style" | "captions" | "character" | "disclosure_overlay" | "image" | "look" | "name" | "person" | "resolution" | "script" | "segments" | "tts_model" | "voice" | "voice_id" | "webhook_url", Disposition>;
|
|
182
|
+
export declare const EFFECTIVE_DISPOSITIONS: Record<"actor_gender" | "actor_id" | "aspect_ratio" | "background" | "broll_policy" | "broll_url" | "caption_style" | "captions" | "character" | "disclosure_overlay" | "image" | "inserts" | "look" | "name" | "person" | "resolution" | "script" | "segments" | "tts_model" | "voice" | "voice_id" | "webhook_url", Disposition>;
|
|
169
183
|
type RejectedField = {
|
|
170
184
|
[K in ContractField]: (typeof FIELD_DISPOSITIONS)[K]["kind"] extends "rejected" ? K : never;
|
|
171
185
|
}[ContractField];
|
|
@@ -242,6 +256,49 @@ export declare const offeredUgcInputShape: Pick<typeof makeUgcInputShape, Offere
|
|
|
242
256
|
*/
|
|
243
257
|
export declare const offeredUgcInput: z.ZodObject<{
|
|
244
258
|
script: z.ZodOptional<z.ZodString>;
|
|
259
|
+
segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
260
|
+
kind: z.ZodEnum<{
|
|
261
|
+
actor: "actor";
|
|
262
|
+
media: "media";
|
|
263
|
+
}>;
|
|
264
|
+
script: z.ZodOptional<z.ZodString>;
|
|
265
|
+
media_url: z.ZodOptional<z.ZodString>;
|
|
266
|
+
media_type: z.ZodOptional<z.ZodEnum<{
|
|
267
|
+
image: "image";
|
|
268
|
+
video: "video";
|
|
269
|
+
}>>;
|
|
270
|
+
duration_seconds: z.ZodOptional<z.ZodNumber>;
|
|
271
|
+
image_motion: z.ZodOptional<z.ZodObject<{
|
|
272
|
+
direction: z.ZodEnum<{
|
|
273
|
+
in: "in";
|
|
274
|
+
out: "out";
|
|
275
|
+
}>;
|
|
276
|
+
amount: z.ZodNumber;
|
|
277
|
+
}, z.core.$strip>>;
|
|
278
|
+
}, z.core.$strip>>>;
|
|
279
|
+
inserts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
280
|
+
id: z.ZodString;
|
|
281
|
+
media_url: z.ZodString;
|
|
282
|
+
media_type: z.ZodEnum<{
|
|
283
|
+
image: "image";
|
|
284
|
+
video: "video";
|
|
285
|
+
}>;
|
|
286
|
+
anchor: z.ZodUnion<readonly [z.ZodObject<{
|
|
287
|
+
startWord: z.ZodNumber;
|
|
288
|
+
endWord: z.ZodNumber;
|
|
289
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
290
|
+
quote: z.ZodString;
|
|
291
|
+
occurrence: z.ZodOptional<z.ZodNumber>;
|
|
292
|
+
}, z.core.$strict>]>;
|
|
293
|
+
cover_words: z.ZodOptional<z.ZodNumber>;
|
|
294
|
+
image_motion: z.ZodOptional<z.ZodObject<{
|
|
295
|
+
direction: z.ZodEnum<{
|
|
296
|
+
in: "in";
|
|
297
|
+
out: "out";
|
|
298
|
+
}>;
|
|
299
|
+
amount: z.ZodNumber;
|
|
300
|
+
}, z.core.$strict>>;
|
|
301
|
+
}, z.core.$strict>>>;
|
|
245
302
|
person: z.ZodOptional<z.ZodString>;
|
|
246
303
|
actor_id: z.ZodOptional<z.ZodString>;
|
|
247
304
|
image: z.ZodOptional<z.ZodString>;
|
|
@@ -250,6 +307,11 @@ export declare const offeredUgcInput: z.ZodObject<{
|
|
|
250
307
|
male: "male";
|
|
251
308
|
}>>;
|
|
252
309
|
name: z.ZodOptional<z.ZodString>;
|
|
310
|
+
broll_policy: z.ZodOptional<z.ZodEnum<{
|
|
311
|
+
anyone: "anyone";
|
|
312
|
+
no_actor: "no_actor";
|
|
313
|
+
no_people: "no_people";
|
|
314
|
+
}>>;
|
|
253
315
|
captions: z.ZodDefault<z.ZodBoolean>;
|
|
254
316
|
caption_style: z.ZodDefault<z.ZodEnum<{
|
|
255
317
|
hormozi: "hormozi";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { makeUgcInputShape } from "./skills.js";
|
|
3
|
+
import { BROLL_POLICY_DESCRIPTION } from "./broll-policy.js";
|
|
3
4
|
/** РЕЕСТР ДИСПОЗИЦИЙ ПОЛЕЙ ВХОДА `make_ugc`: у каждого поля обязано быть записанное */
|
|
4
5
|
/** решение. Тип — страж ПОЛНОТЫ, истинность доказывает egress-тест. */
|
|
5
6
|
/**
|
|
@@ -62,27 +63,10 @@ export const FIELD_DISPOSITIONS = {
|
|
|
62
63
|
image: { kind: "implemented", provenBy: "egress" },
|
|
63
64
|
actor_id: { kind: "implemented", provenBy: "egress" },
|
|
64
65
|
actor_gender: { kind: "implemented", provenBy: "egress" },
|
|
65
|
-
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
// страж и должен был сработать: поле добавили — компиляция упала, пока
|
|
70
|
-
// решение не записано. Новое поле без решения не проезжает, кем бы оно ни
|
|
71
|
-
// было добавлено, включая сам план.
|
|
72
|
-
//
|
|
73
|
-
// ПОЧЕМУ `rejected` ПЕРЕЖИЛ US-526 (решение владельца 2026-07-22). План
|
|
74
|
-
// переключал строку на `implemented` с `provenBy: "composition"` уже в
|
|
75
|
-
// US-526, но композиция приезжает только в US-527: без неё N клипов не
|
|
76
|
-
// сводятся в один файл и `final_output` предъявить нечем. `implemented`
|
|
77
|
-
// означает здесь «доказано тестом», а доказывать было бы нечем — то есть
|
|
78
|
-
// строка обещала бы работу, которой нет. US-526 построил механику
|
|
79
|
-
// (раскладку ключей, посегментную озвучку, вендорские области
|
|
80
|
-
// идемпотентности); переключение — одна строка в US-527, когда появится
|
|
81
|
-
// `composed.mp4`, который её докажет.
|
|
82
|
-
segments: {
|
|
83
|
-
kind: "rejected",
|
|
84
|
-
message: "segmented clips are not available yet: pass `script` with the full spoken text instead",
|
|
85
|
-
},
|
|
66
|
+
broll_policy: { kind: "stored", message: BROLL_POLICY_DESCRIPTION },
|
|
67
|
+
// Offered to clients; deployment qualification gates admission below.
|
|
68
|
+
segments: { kind: "implemented", provenBy: "composition" },
|
|
69
|
+
inserts: { kind: "implemented", provenBy: "composition" },
|
|
86
70
|
character: {
|
|
87
71
|
kind: "rejected",
|
|
88
72
|
message: "character is not supported: saved characters do not exist yet. Describe the actor with `person` instead, or omit it to use the default actor",
|
|
@@ -140,8 +124,14 @@ export function contractFlagsFromEnv(env = process.env) {
|
|
|
140
124
|
return {
|
|
141
125
|
remoteFetch: env.CLIPWRIGHT_REMOTE_FETCH === "1",
|
|
142
126
|
compose: env.CLIPWRIGHT_COMPOSE === "1",
|
|
127
|
+
longForm: isLongFormQualificationEnabled(env),
|
|
143
128
|
};
|
|
144
129
|
}
|
|
130
|
+
export function isLongFormQualificationEnabled(env = process.env) {
|
|
131
|
+
return env.CLIPWRIGHT_LONG_FORM_QUALIFICATION === "1" &&
|
|
132
|
+
env.CLIPWRIGHT_COMPOSE === "1" && env.CLIPWRIGHT_REMOTE_FETCH === "1";
|
|
133
|
+
}
|
|
134
|
+
export const LONG_FORM_DISABLED_MESSAGE = "long-form qualification is disabled on this deployment; pass script without segments or inserts";
|
|
145
135
|
const REMOTE_FETCH_DISABLED = {
|
|
146
136
|
kind: "rejected",
|
|
147
137
|
message: "image is temporarily disabled (remote media fetch is off); omit it to render with the default actor",
|
|
@@ -160,9 +150,18 @@ const DISCLOSURE_OVERLAY_DISABLED = {
|
|
|
160
150
|
kind: "rejected",
|
|
161
151
|
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",
|
|
162
152
|
};
|
|
153
|
+
/** Предпосылки длинной формы — ОДНО выражение на все её поля: разъехавшись, */
|
|
154
|
+
/** две копии открыли бы `segments` там, где `inserts` ещё закрыты. */
|
|
155
|
+
function longFormReady(flags) {
|
|
156
|
+
return flags.longForm === true && flags.remoteFetch && flags.compose;
|
|
157
|
+
}
|
|
158
|
+
const LONG_FORM_DISABLED = { kind: "rejected", message: LONG_FORM_DISABLED_MESSAGE };
|
|
163
159
|
export function resolveDispositions(flags) {
|
|
160
|
+
const longForm = longFormReady(flags);
|
|
164
161
|
return {
|
|
165
162
|
...FIELD_DISPOSITIONS,
|
|
163
|
+
segments: longForm ? FIELD_DISPOSITIONS.segments : LONG_FORM_DISABLED,
|
|
164
|
+
inserts: longForm ? FIELD_DISPOSITIONS.inserts : LONG_FORM_DISABLED,
|
|
166
165
|
person: flags.actorGeneration === true ? PERSON_WITH_ACTOR_GENERATION : FIELD_DISPOSITIONS.person,
|
|
167
166
|
image: flags.remoteFetch ? FIELD_DISPOSITIONS.image : REMOTE_FETCH_DISABLED,
|
|
168
167
|
actor_id: flags.remoteFetch ? FIELD_DISPOSITIONS.actor_id : {
|
|
@@ -223,6 +222,8 @@ export function dispositionNote(field) {
|
|
|
223
222
|
return noteFor(FIELD_DISPOSITIONS[field]);
|
|
224
223
|
}
|
|
225
224
|
function noteFor(disposition) {
|
|
225
|
+
if (disposition.kind === "stored")
|
|
226
|
+
return `STORED ONLY: ${disposition.message}`;
|
|
226
227
|
if (disposition.kind === "rejected") {
|
|
227
228
|
return `REJECTED: ${disposition.message}`;
|
|
228
229
|
}
|
|
@@ -336,6 +337,9 @@ export function dispositionWarnings(input) {
|
|
|
336
337
|
const warnings = [];
|
|
337
338
|
for (const field of CONTRACT_FIELDS) {
|
|
338
339
|
const disposition = EFFECTIVE_DISPOSITIONS[field];
|
|
340
|
+
if (disposition.kind === "stored" && input[field] !== undefined) {
|
|
341
|
+
warnings.push(disposition.message);
|
|
342
|
+
}
|
|
339
343
|
if (disposition.kind !== "warned")
|
|
340
344
|
continue;
|
|
341
345
|
const value = input[field];
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"contract-dispositions.js","sourceRoot":"","sources":["../src/contract-dispositions.ts"],"names":[],"mappings":"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"}
|
package/dist/endpoints.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/** Маршруты API (clipwright#135): контрактный тест `apps/api` сверяет их с `app.routes`, */
|
|
2
|
-
/** квикстарт печатает отсюда список «что стоит денег». */
|
|
3
1
|
export interface ApiEndpoint {
|
|
4
2
|
method: "GET" | "POST" | "DELETE";
|
|
5
3
|
/** Путь в записи Hono: параметр — `:id`. */
|
|
@@ -8,6 +6,8 @@ export interface ApiEndpoint {
|
|
|
8
6
|
billed: boolean;
|
|
9
7
|
/** Называет ли его квикстарт. */
|
|
10
8
|
onQuickstart: boolean;
|
|
9
|
+
/** Разбирает ли маршрут тело как JSON. `POST /v1/uploads` принимает байты. */
|
|
10
|
+
jsonBody: boolean;
|
|
11
11
|
}
|
|
12
12
|
export declare const API_ENDPOINTS: readonly ApiEndpoint[];
|
|
13
13
|
/** `GET /v1/runs/{id}` — запись для людей: параметр в фигурных скобках. */
|
package/dist/endpoints.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
/** Маршруты API (clipwright#135): контрактный тест `apps/api` сверяет их с `app.routes`, */
|
|
2
|
+
/** квикстарт печатает отсюда список «что стоит денег». */
|
|
3
|
+
import { ACTOR_DEFAULTS_PATH } from "./broll-policy.js";
|
|
1
4
|
export const API_ENDPOINTS = [
|
|
2
|
-
{ method: "GET", path: "/health", billed: false, onQuickstart: true },
|
|
3
|
-
{ method: "GET", path: "/v1/voices", billed: false, onQuickstart: true },
|
|
4
|
-
{ method: "GET", path: "/v1/account", billed: false, onQuickstart: true },
|
|
5
|
-
{ method: "POST", path: "/v1/skills/make_ugc/quote", billed: false, onQuickstart: true },
|
|
6
|
-
{ method: "GET", path: "/v1/runs/:id", billed: false, onQuickstart: true },
|
|
7
|
-
{ method: "POST", path: "/v1/skills/make_ugc/run", billed: true, onQuickstart: true },
|
|
8
|
-
{ method: "GET", path: "/v1/public/skills", billed: false, onQuickstart: false },
|
|
9
|
-
{ method: "GET", path: "/v1/actors", billed: false, onQuickstart: false },
|
|
10
|
-
{ method: "DELETE", path: "/v1/actors/:id", billed: false, onQuickstart: false },
|
|
11
|
-
{ method: "
|
|
12
|
-
{ method: "POST", path:
|
|
13
|
-
{ method: "POST", path: "/v1/
|
|
14
|
-
{ method: "
|
|
5
|
+
{ method: "GET", path: "/health", billed: false, onQuickstart: true, jsonBody: false },
|
|
6
|
+
{ method: "GET", path: "/v1/voices", billed: false, onQuickstart: true, jsonBody: false },
|
|
7
|
+
{ method: "GET", path: "/v1/account", billed: false, onQuickstart: true, jsonBody: false },
|
|
8
|
+
{ method: "POST", path: "/v1/skills/make_ugc/quote", billed: false, onQuickstart: true, jsonBody: true },
|
|
9
|
+
{ method: "GET", path: "/v1/runs/:id", billed: false, onQuickstart: true, jsonBody: false },
|
|
10
|
+
{ method: "POST", path: "/v1/skills/make_ugc/run", billed: true, onQuickstart: true, jsonBody: true },
|
|
11
|
+
{ method: "GET", path: "/v1/public/skills", billed: false, onQuickstart: false, jsonBody: false },
|
|
12
|
+
{ method: "GET", path: "/v1/actors", billed: false, onQuickstart: false, jsonBody: false },
|
|
13
|
+
{ method: "DELETE", path: "/v1/actors/:id", billed: false, onQuickstart: false, jsonBody: false },
|
|
14
|
+
{ method: "GET", path: ACTOR_DEFAULTS_PATH, billed: false, onQuickstart: false, jsonBody: false },
|
|
15
|
+
{ method: "POST", path: ACTOR_DEFAULTS_PATH, billed: false, onQuickstart: false, jsonBody: true },
|
|
16
|
+
{ method: "POST", path: "/v1/skills/create_actor/quote", billed: false, onQuickstart: false, jsonBody: true },
|
|
17
|
+
{ method: "POST", path: "/v1/skills/create_actor/run", billed: true, onQuickstart: false, jsonBody: true },
|
|
18
|
+
{ method: "POST", path: "/v1/uploads", billed: false, onQuickstart: false, jsonBody: false },
|
|
19
|
+
{ method: "GET", path: "/internal/portfolio-metrics", billed: false, onQuickstart: false, jsonBody: false },
|
|
15
20
|
];
|
|
16
21
|
/** `GET /v1/runs/{id}` — запись для людей: параметр в фигурных скобках. */
|
|
17
22
|
export function endpointLabel(endpoint) {
|