@clipwright/core 0.12.0 → 0.13.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 +39 -0
- package/dist/contract-dispositions.d.ts +1 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/skills.d.ts +56 -20
- package/dist/skills.js +32 -10
- package/dist/skills.js.map +1 -1
- package/dist/tts-model-languages.generated.json +157 -0
- package/dist/voice-admission.d.ts +55 -0
- package/dist/voice-admission.js +20 -0
- package/dist/voice-admission.js.map +1 -0
- package/dist/voice-catalog-data.d.ts +33 -0
- package/dist/voice-catalog-data.js +8 -0
- package/dist/voice-catalog-data.js.map +1 -0
- package/dist/voice-catalog.d.ts +175 -0
- package/dist/voice-catalog.generated.json +6364 -0
- package/dist/voice-catalog.js +48 -0
- package/dist/voice-catalog.js.map +1 -0
- package/dist/voices.d.ts +41 -28
- package/dist/voices.js +35 -8
- package/dist/voices.js.map +1 -1
- package/package.json +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,45 @@ on the client side. Entries marked *Server-side* changed the API itself: every
|
|
|
10
10
|
client version sees them from the day the API was deployed, not from the package
|
|
11
11
|
release they are listed under.
|
|
12
12
|
|
|
13
|
+
## [0.13.0] - 2026-09-13
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- `listVoices()`, MCP `list_voices` and `clipwright voices` accept a voice name
|
|
18
|
+
outside the five presets, a `gender` other than `female` or `male`, a voice
|
|
19
|
+
without `language`, and the new optional fields `kind`, `locale`, `accent`,
|
|
20
|
+
`age`, `use_case`, `supported_models` and `verified_models`, plus a top-level
|
|
21
|
+
`models` list. Unknown keys are dropped, as before. Until now the first such
|
|
22
|
+
voice made all three fail. (clipwright#164)
|
|
23
|
+
- A voice name the client does not know goes to the API, which decides.
|
|
24
|
+
`clipwright make --voice` checks only the form of the name: letters, digits,
|
|
25
|
+
`_` and `-`, up to 64 characters. The SDK and MCP `make_ugc` no longer refuse
|
|
26
|
+
such a name before sending it. In `tools/list`, `voice` is a string with a
|
|
27
|
+
pattern instead of an enum of preset names. The API itself is unchanged: a
|
|
28
|
+
name that is not a preset still gets 400 `invalid_request` with the same
|
|
29
|
+
message, before any charge. (clipwright#164)
|
|
30
|
+
- In `VoiceCatalogEntry`, `name` and `gender` are typed `string`, and
|
|
31
|
+
`language` is optional. In `MakeUgcInputArgs`, `voice` is typed `string`.
|
|
32
|
+
(clipwright#164)
|
|
33
|
+
- *Server-side:* quote and run accept a voice from the catalog by its name, as
|
|
34
|
+
well as a preset. A catalog voice speaks `eleven_v3` unless `tts_model` names
|
|
35
|
+
another model, and its script limit follows that model: 5,001 characters
|
|
36
|
+
without `tts_model` get 400 before any charge, as with a preset. A name that
|
|
37
|
+
is neither a preset nor a catalog voice gets 400 `invalid_request` that says
|
|
38
|
+
the voice is unknown; a voice retired from the catalog gets 400 that says it
|
|
39
|
+
was retired. Both point to `list_voices`. The language of a voice limits
|
|
40
|
+
nothing: any catalog voice speaks any language. A run already stored with a
|
|
41
|
+
voice that was later retired still reads, with its warnings.
|
|
42
|
+
(clipwright#164)
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
|
|
46
|
+
- `@clipwright/core` exports `VOICE_NAME_PATTERN`, `isVoicePresetName`,
|
|
47
|
+
`serverUgcInputWith` and `voiceModelEntry`. The subpath
|
|
48
|
+
`@clipwright/core/voice-admission` exports `serverUgcInput`, which checks a
|
|
49
|
+
voice name against the catalog, and `catalogVoiceRefusal`. The catalog stays
|
|
50
|
+
out of the main entry point. (clipwright#164)
|
|
51
|
+
|
|
13
52
|
## [0.12.0] - 2026-09-13
|
|
14
53
|
|
|
15
54
|
### Changed
|
|
@@ -259,13 +259,7 @@ export declare const offeredUgcInput: z.ZodObject<{
|
|
|
259
259
|
"4k": "4k";
|
|
260
260
|
"720p": "720p";
|
|
261
261
|
}>>;
|
|
262
|
-
voice: z.ZodOptional<z.
|
|
263
|
-
daria_ru_female: "daria_ru_female";
|
|
264
|
-
eric: "eric";
|
|
265
|
-
george: "george";
|
|
266
|
-
owner_ru_clone: "owner_ru_clone";
|
|
267
|
-
sarah: "sarah";
|
|
268
|
-
}>>;
|
|
262
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
269
263
|
voice_id: z.ZodOptional<z.ZodString>;
|
|
270
264
|
tts_model: z.ZodOptional<z.ZodEnum<{
|
|
271
265
|
eleven_flash_v2_5: "eleven_flash_v2_5";
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./contract-dispositions.js";
|
|
|
4
4
|
export * from "./aspect.js";
|
|
5
5
|
export * from "./default-actor.js";
|
|
6
6
|
export * from "./voices.js";
|
|
7
|
+
export * from "./voice-catalog.js";
|
|
7
8
|
export * from "./runs.js";
|
|
8
9
|
export * from "./errors.js";
|
|
9
10
|
export * from "./script-integrity.js";
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from "./aspect.js";
|
|
|
10
10
|
// Актёр отдельным модулем: `aspect.js` реэкспортирует из него источник кадра.
|
|
11
11
|
export * from "./default-actor.js";
|
|
12
12
|
export * from "./voices.js";
|
|
13
|
+
export * from "./voice-catalog.js";
|
|
13
14
|
export * from "./runs.js";
|
|
14
15
|
// Тела отказов: форма ответа об ошибке — тоже контракт, и с появлением чисел в
|
|
15
16
|
// теле (402) она перестала быть выводимой из кода ответа.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,gFAAgF;AAChF,6EAA6E;AAC7E,2BAA2B;AAC3B,cAAc,4BAA4B,CAAC;AAC3C,4EAA4E;AAC5E,gEAAgE;AAChE,cAAc,aAAa,CAAC;AAC5B,8EAA8E;AAC9E,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,+EAA+E;AAC/E,0DAA0D;AAC1D,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,yEAAyE;AACzE,iEAAiE;AACjE,cAAc,iBAAiB,CAAC;AAChC,2EAA2E;AAC3E,4EAA4E;AAC5E,2BAA2B;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,0FAA0F;AAC1F,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,4EAA4E;AAC5E,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,8EAA8E;AAC9E,0EAA0E;AAC1E,aAAa;AACb,cAAc,sBAAsB,CAAC;AACrC,6EAA6E;AAC7E,4DAA4D;AAC5D,cAAc,uBAAuB,CAAC;AACtC,6FAA6F;AAC7F,cAAc,gBAAgB,CAAC;AAC/B,+EAA+E;AAC/E,wDAAwD;AACxD,cAAc,0BAA0B,CAAC;AACzC,2EAA2E;AAC3E,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,gFAAgF;AAChF,6EAA6E;AAC7E,2BAA2B;AAC3B,cAAc,4BAA4B,CAAC;AAC3C,4EAA4E;AAC5E,gEAAgE;AAChE,cAAc,aAAa,CAAC;AAC5B,8EAA8E;AAC9E,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,+EAA+E;AAC/E,0DAA0D;AAC1D,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,yEAAyE;AACzE,iEAAiE;AACjE,cAAc,iBAAiB,CAAC;AAChC,2EAA2E;AAC3E,4EAA4E;AAC5E,2BAA2B;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,0FAA0F;AAC1F,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,4EAA4E;AAC5E,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,8EAA8E;AAC9E,0EAA0E;AAC1E,aAAa;AACb,cAAc,sBAAsB,CAAC;AACrC,6EAA6E;AAC7E,4DAA4D;AAC5D,cAAc,uBAAuB,CAAC;AACtC,6FAA6F;AAC7F,cAAc,gBAAgB,CAAC;AAC/B,+EAA+E;AAC/E,wDAAwD;AACxD,cAAc,0BAA0B,CAAC;AACzC,2EAA2E;AAC3E,cAAc,oBAAoB,CAAC"}
|
package/dist/skills.d.ts
CHANGED
|
@@ -121,13 +121,7 @@ export declare const makeUgcInputShape: {
|
|
|
121
121
|
"4k": "4k";
|
|
122
122
|
"720p": "720p";
|
|
123
123
|
}>>;
|
|
124
|
-
readonly voice: z.ZodOptional<z.
|
|
125
|
-
daria_ru_female: "daria_ru_female";
|
|
126
|
-
eric: "eric";
|
|
127
|
-
george: "george";
|
|
128
|
-
owner_ru_clone: "owner_ru_clone";
|
|
129
|
-
sarah: "sarah";
|
|
130
|
-
}>>;
|
|
124
|
+
readonly voice: z.ZodOptional<z.ZodString>;
|
|
131
125
|
readonly voice_id: z.ZodOptional<z.ZodString>;
|
|
132
126
|
readonly tts_model: z.ZodOptional<z.ZodEnum<{
|
|
133
127
|
eleven_flash_v2_5: "eleven_flash_v2_5";
|
|
@@ -208,13 +202,61 @@ export declare const makeUgcInput: z.ZodObject<{
|
|
|
208
202
|
"4k": "4k";
|
|
209
203
|
"720p": "720p";
|
|
210
204
|
}>>;
|
|
211
|
-
voice: z.ZodOptional<z.
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
205
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
206
|
+
voice_id: z.ZodOptional<z.ZodString>;
|
|
207
|
+
tts_model: z.ZodOptional<z.ZodEnum<{
|
|
208
|
+
eleven_flash_v2_5: "eleven_flash_v2_5";
|
|
209
|
+
eleven_turbo_v2_5: "eleven_turbo_v2_5";
|
|
210
|
+
eleven_v3: "eleven_v3";
|
|
211
|
+
}>>;
|
|
212
|
+
webhook_url: z.ZodOptional<z.ZodString>;
|
|
213
|
+
disclosure_overlay: z.ZodOptional<z.ZodBoolean>;
|
|
214
|
+
background: z.ZodOptional<z.ZodEnum<{
|
|
215
|
+
blur: "blur";
|
|
216
|
+
contain: "contain";
|
|
217
|
+
white: "white";
|
|
217
218
|
}>>;
|
|
219
|
+
}, z.core.$strip>;
|
|
220
|
+
/** Вход API: имя голоса сверяет `voiceRefusal` сервера. Каталог сюда не импортируется — */
|
|
221
|
+
/** баррел читают клиенты; сервер берёт готовую схему из `@clipwright/core/voice-admission`. */
|
|
222
|
+
export declare function serverUgcInputWith(voiceRefusal: (voice: string) => string | undefined): z.ZodObject<{
|
|
223
|
+
script: z.ZodOptional<z.ZodString>;
|
|
224
|
+
segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
225
|
+
kind: z.ZodEnum<{
|
|
226
|
+
actor: "actor";
|
|
227
|
+
media: "media";
|
|
228
|
+
}>;
|
|
229
|
+
script: z.ZodOptional<z.ZodString>;
|
|
230
|
+
media_url: z.ZodOptional<z.ZodString>;
|
|
231
|
+
}, z.core.$strip>>>;
|
|
232
|
+
person: z.ZodOptional<z.ZodString>;
|
|
233
|
+
actor_id: z.ZodOptional<z.ZodString>;
|
|
234
|
+
image: z.ZodOptional<z.ZodString>;
|
|
235
|
+
character: z.ZodOptional<z.ZodString>;
|
|
236
|
+
name: z.ZodOptional<z.ZodString>;
|
|
237
|
+
broll_url: z.ZodOptional<z.ZodString>;
|
|
238
|
+
captions: z.ZodDefault<z.ZodBoolean>;
|
|
239
|
+
caption_style: z.ZodDefault<z.ZodEnum<{
|
|
240
|
+
hormozi: "hormozi";
|
|
241
|
+
minimal: "minimal";
|
|
242
|
+
tiktok: "tiktok";
|
|
243
|
+
}>>;
|
|
244
|
+
look: z.ZodDefault<z.ZodEnum<{
|
|
245
|
+
commercial: "commercial";
|
|
246
|
+
natural: "natural";
|
|
247
|
+
raw_iphone: "raw_iphone";
|
|
248
|
+
}>>;
|
|
249
|
+
aspect_ratio: z.ZodOptional<z.ZodEnum<{
|
|
250
|
+
"16:9": "16:9";
|
|
251
|
+
"1:1": "1:1";
|
|
252
|
+
"9:16": "9:16";
|
|
253
|
+
}>>;
|
|
254
|
+
resolution: z.ZodOptional<z.ZodEnum<{
|
|
255
|
+
"1080p": "1080p";
|
|
256
|
+
"4k": "4k";
|
|
257
|
+
"720p": "720p";
|
|
258
|
+
}>>;
|
|
259
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
218
260
|
voice_id: z.ZodOptional<z.ZodString>;
|
|
219
261
|
tts_model: z.ZodOptional<z.ZodEnum<{
|
|
220
262
|
eleven_flash_v2_5: "eleven_flash_v2_5";
|
|
@@ -268,13 +310,7 @@ export declare const storedUgcInput: z.ZodObject<{
|
|
|
268
310
|
"4k": "4k";
|
|
269
311
|
"720p": "720p";
|
|
270
312
|
}>>;
|
|
271
|
-
voice: z.ZodOptional<z.
|
|
272
|
-
daria_ru_female: "daria_ru_female";
|
|
273
|
-
eric: "eric";
|
|
274
|
-
george: "george";
|
|
275
|
-
owner_ru_clone: "owner_ru_clone";
|
|
276
|
-
sarah: "sarah";
|
|
277
|
-
}>>;
|
|
313
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
278
314
|
voice_id: z.ZodOptional<z.ZodString>;
|
|
279
315
|
webhook_url: z.ZodOptional<z.ZodString>;
|
|
280
316
|
disclosure_overlay: z.ZodOptional<z.ZodBoolean>;
|
package/dist/skills.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { countWords } from "./pacing.js";
|
|
3
|
-
import { resolveTtsModel, MAX_SCRIPT_CHARS, SCRIPT_LENGTH_DESCRIPTION, STRESS_MARKING_DESCRIPTION, ttsScriptLimitError, TTS_MODELS, VOICE_ID_PATTERN, VOICE_PRESET_NAMES, } from "./voices.js";
|
|
3
|
+
import { resolveTtsModel, MAX_SCRIPT_CHARS, SCRIPT_LENGTH_DESCRIPTION, STRESS_MARKING_DESCRIPTION, ttsScriptLimitError, TTS_MODELS, isVoicePresetName, VOICE_ID_PATTERN, VOICE_NAME_PATTERN, VOICE_PRESET_NAMES, } from "./voices.js";
|
|
4
4
|
export const CAPTION_STYLES = ["hormozi", "tiktok", "minimal"];
|
|
5
5
|
export const LOOKS = ["natural", "commercial", "raw_iphone"];
|
|
6
6
|
/**
|
|
@@ -146,16 +146,15 @@ export const makeUgcInputShape = {
|
|
|
146
146
|
.enum(RESOLUTIONS)
|
|
147
147
|
.optional()
|
|
148
148
|
.describe(`Output resolution: ${RESOLUTIONS.join(" | ")} (short side 720 / 1080 / 2160 px). Omitted means 1080p.`),
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
// можно только так. Дефолт (клон владельца) подставляет резолвер в адаптере,
|
|
152
|
-
// а не схема; явность нужна тестам warnings (US-517). voice — наше имя пресета
|
|
153
|
-
// (enum порождает tools/list), voice_id — сырой вендорский id как escape hatch.
|
|
149
|
+
// Без .default(), как resolution: явный выбор голоса отличим от молчания (US-517).
|
|
150
|
+
// voice — форма имени, список сверяет `serverUgcInput` (#164); voice_id — сырой id вендора.
|
|
154
151
|
voice: z
|
|
155
|
-
.
|
|
152
|
+
.string()
|
|
153
|
+
.regex(VOICE_NAME_PATTERN)
|
|
156
154
|
.optional()
|
|
157
|
-
.describe(`Curated
|
|
158
|
-
"owner_ru_clone is the Russian cloned voice).
|
|
155
|
+
.describe(`Voice name from list_voices. Curated presets: ${VOICE_PRESET_NAMES.join(" | ")} ` +
|
|
156
|
+
"(owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not " +
|
|
157
|
+
"return, before any charge. Omitted means the voice matched to the avatar. " +
|
|
159
158
|
"Mutually exclusive with voice_id."),
|
|
160
159
|
voice_id: z
|
|
161
160
|
.string()
|
|
@@ -214,7 +213,8 @@ export const makeUgcInput = z
|
|
|
214
213
|
message: "pass exactly one of script | segments",
|
|
215
214
|
})
|
|
216
215
|
// Потолок символов — по модели: v3 короче v2 вдвое; отказ здесь, до резерва и вендора (#101).
|
|
217
|
-
|
|
216
|
+
// Модель незнакомого клиенту голоса знает только сервер, и потолок он проверит сам (#164).
|
|
217
|
+
.refine((v) => modelUnknownToClient(v) || ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v)) === undefined, {
|
|
218
218
|
path: ["script"],
|
|
219
219
|
error: (issue) => {
|
|
220
220
|
const input = issue.input;
|
|
@@ -256,6 +256,28 @@ export const makeUgcInput = z
|
|
|
256
256
|
.refine((v) => v.segments !== undefined || countWords(v.script ?? "") >= 1, {
|
|
257
257
|
message: "script has 0 speakable words",
|
|
258
258
|
});
|
|
259
|
+
function modelUnknownToClient(v) {
|
|
260
|
+
return v.tts_model === undefined && v.voice !== undefined && !isVoicePresetName(v.voice);
|
|
261
|
+
}
|
|
262
|
+
/** Вход API: имя голоса сверяет `voiceRefusal` сервера. Каталог сюда не импортируется — */
|
|
263
|
+
/** баррел читают клиенты; сервер берёт готовую схему из `@clipwright/core/voice-admission`. */
|
|
264
|
+
export function serverUgcInputWith(voiceRefusal) {
|
|
265
|
+
return makeUgcInput
|
|
266
|
+
.refine((v) => v.voice === undefined || voiceRefusal(v.voice) === undefined, {
|
|
267
|
+
path: ["voice"],
|
|
268
|
+
error: (issue) => voiceRefusal(issue.input.voice),
|
|
269
|
+
})
|
|
270
|
+
// Потолок, пропущенный клиентом: модель допущенного голоса каталога сервер знает (#164).
|
|
271
|
+
.refine((v) => !modelUnknownToClient(v) ||
|
|
272
|
+
voiceRefusal(v.voice) !== undefined ||
|
|
273
|
+
ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v)) === undefined, {
|
|
274
|
+
path: ["script"],
|
|
275
|
+
error: (issue) => {
|
|
276
|
+
const input = issue.input;
|
|
277
|
+
return ttsScriptLimitError(spokenTextOf(input), resolveTtsModel(input));
|
|
278
|
+
},
|
|
279
|
+
});
|
|
280
|
+
}
|
|
259
281
|
/** Сохранённый вход рана: правила допуска он уже прошёл, и смена модели или */
|
|
260
282
|
/** потолка не должна делать старый ран нечитаемым (#145). */
|
|
261
283
|
export const storedUgcInput = z.object({ ...makeUgcInputShape, tts_model: z.string().optional() });
|
package/dist/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
{
|
|
2
|
+
"models": [
|
|
3
|
+
{
|
|
4
|
+
"id": "eleven_v3",
|
|
5
|
+
"languages": [
|
|
6
|
+
"af",
|
|
7
|
+
"ar",
|
|
8
|
+
"as",
|
|
9
|
+
"az",
|
|
10
|
+
"be",
|
|
11
|
+
"bg",
|
|
12
|
+
"bn",
|
|
13
|
+
"bs",
|
|
14
|
+
"ca",
|
|
15
|
+
"ceb",
|
|
16
|
+
"cs",
|
|
17
|
+
"cy",
|
|
18
|
+
"da",
|
|
19
|
+
"de",
|
|
20
|
+
"el",
|
|
21
|
+
"en",
|
|
22
|
+
"es",
|
|
23
|
+
"et",
|
|
24
|
+
"fa",
|
|
25
|
+
"fi",
|
|
26
|
+
"fil",
|
|
27
|
+
"fr",
|
|
28
|
+
"ga",
|
|
29
|
+
"gl",
|
|
30
|
+
"gu",
|
|
31
|
+
"ha",
|
|
32
|
+
"he",
|
|
33
|
+
"hi",
|
|
34
|
+
"hr",
|
|
35
|
+
"hu",
|
|
36
|
+
"hy",
|
|
37
|
+
"id",
|
|
38
|
+
"is",
|
|
39
|
+
"it",
|
|
40
|
+
"ja",
|
|
41
|
+
"jv",
|
|
42
|
+
"ka",
|
|
43
|
+
"kk",
|
|
44
|
+
"kn",
|
|
45
|
+
"ko",
|
|
46
|
+
"ky",
|
|
47
|
+
"lb",
|
|
48
|
+
"ln",
|
|
49
|
+
"lt",
|
|
50
|
+
"lv",
|
|
51
|
+
"mk",
|
|
52
|
+
"ml",
|
|
53
|
+
"mr",
|
|
54
|
+
"ms",
|
|
55
|
+
"ne",
|
|
56
|
+
"nl",
|
|
57
|
+
"no",
|
|
58
|
+
"ny",
|
|
59
|
+
"pa",
|
|
60
|
+
"pl",
|
|
61
|
+
"ps",
|
|
62
|
+
"pt",
|
|
63
|
+
"ro",
|
|
64
|
+
"ru",
|
|
65
|
+
"sd",
|
|
66
|
+
"sk",
|
|
67
|
+
"sl",
|
|
68
|
+
"so",
|
|
69
|
+
"sr",
|
|
70
|
+
"sv",
|
|
71
|
+
"sw",
|
|
72
|
+
"ta",
|
|
73
|
+
"te",
|
|
74
|
+
"th",
|
|
75
|
+
"tr",
|
|
76
|
+
"uk",
|
|
77
|
+
"ur",
|
|
78
|
+
"vi",
|
|
79
|
+
"zh"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "eleven_flash_v2_5",
|
|
84
|
+
"languages": [
|
|
85
|
+
"ar",
|
|
86
|
+
"bg",
|
|
87
|
+
"cs",
|
|
88
|
+
"da",
|
|
89
|
+
"de",
|
|
90
|
+
"el",
|
|
91
|
+
"en",
|
|
92
|
+
"es",
|
|
93
|
+
"fi",
|
|
94
|
+
"fil",
|
|
95
|
+
"fr",
|
|
96
|
+
"hi",
|
|
97
|
+
"hr",
|
|
98
|
+
"hu",
|
|
99
|
+
"id",
|
|
100
|
+
"it",
|
|
101
|
+
"ja",
|
|
102
|
+
"ko",
|
|
103
|
+
"ms",
|
|
104
|
+
"nl",
|
|
105
|
+
"no",
|
|
106
|
+
"pl",
|
|
107
|
+
"pt",
|
|
108
|
+
"ro",
|
|
109
|
+
"ru",
|
|
110
|
+
"sk",
|
|
111
|
+
"sv",
|
|
112
|
+
"ta",
|
|
113
|
+
"tr",
|
|
114
|
+
"uk",
|
|
115
|
+
"vi",
|
|
116
|
+
"zh"
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "eleven_turbo_v2_5",
|
|
121
|
+
"languages": [
|
|
122
|
+
"ar",
|
|
123
|
+
"bg",
|
|
124
|
+
"cs",
|
|
125
|
+
"da",
|
|
126
|
+
"de",
|
|
127
|
+
"el",
|
|
128
|
+
"en",
|
|
129
|
+
"es",
|
|
130
|
+
"fi",
|
|
131
|
+
"fil",
|
|
132
|
+
"fr",
|
|
133
|
+
"hi",
|
|
134
|
+
"hr",
|
|
135
|
+
"hu",
|
|
136
|
+
"id",
|
|
137
|
+
"it",
|
|
138
|
+
"ja",
|
|
139
|
+
"ko",
|
|
140
|
+
"ms",
|
|
141
|
+
"nl",
|
|
142
|
+
"no",
|
|
143
|
+
"pl",
|
|
144
|
+
"pt",
|
|
145
|
+
"ro",
|
|
146
|
+
"ru",
|
|
147
|
+
"sk",
|
|
148
|
+
"sv",
|
|
149
|
+
"ta",
|
|
150
|
+
"tr",
|
|
151
|
+
"uk",
|
|
152
|
+
"vi",
|
|
153
|
+
"zh"
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { CatalogFileVoice } from "./voice-catalog.js";
|
|
2
|
+
/** Почему API не допускает имя голоса; `undefined` — пресет или живой голос каталога. */
|
|
3
|
+
export declare function catalogVoiceRefusal(voice: string, voices?: readonly CatalogFileVoice[]): string | undefined;
|
|
4
|
+
export declare const serverUgcInput: import("zod").ZodObject<{
|
|
5
|
+
script: import("zod").ZodOptional<import("zod").ZodString>;
|
|
6
|
+
segments: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
7
|
+
kind: import("zod").ZodEnum<{
|
|
8
|
+
actor: "actor";
|
|
9
|
+
media: "media";
|
|
10
|
+
}>;
|
|
11
|
+
script: import("zod").ZodOptional<import("zod").ZodString>;
|
|
12
|
+
media_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
13
|
+
}, import("zod/v4/core").$strip>>>;
|
|
14
|
+
person: import("zod").ZodOptional<import("zod").ZodString>;
|
|
15
|
+
actor_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
16
|
+
image: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
+
character: import("zod").ZodOptional<import("zod").ZodString>;
|
|
18
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
19
|
+
broll_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
20
|
+
captions: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
21
|
+
caption_style: import("zod").ZodDefault<import("zod").ZodEnum<{
|
|
22
|
+
hormozi: "hormozi";
|
|
23
|
+
minimal: "minimal";
|
|
24
|
+
tiktok: "tiktok";
|
|
25
|
+
}>>;
|
|
26
|
+
look: import("zod").ZodDefault<import("zod").ZodEnum<{
|
|
27
|
+
commercial: "commercial";
|
|
28
|
+
natural: "natural";
|
|
29
|
+
raw_iphone: "raw_iphone";
|
|
30
|
+
}>>;
|
|
31
|
+
aspect_ratio: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
32
|
+
"16:9": "16:9";
|
|
33
|
+
"1:1": "1:1";
|
|
34
|
+
"9:16": "9:16";
|
|
35
|
+
}>>;
|
|
36
|
+
resolution: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
37
|
+
"1080p": "1080p";
|
|
38
|
+
"4k": "4k";
|
|
39
|
+
"720p": "720p";
|
|
40
|
+
}>>;
|
|
41
|
+
voice: import("zod").ZodOptional<import("zod").ZodString>;
|
|
42
|
+
voice_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
43
|
+
tts_model: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
44
|
+
eleven_flash_v2_5: "eleven_flash_v2_5";
|
|
45
|
+
eleven_turbo_v2_5: "eleven_turbo_v2_5";
|
|
46
|
+
eleven_v3: "eleven_v3";
|
|
47
|
+
}>>;
|
|
48
|
+
webhook_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
49
|
+
disclosure_overlay: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
50
|
+
background: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
51
|
+
blur: "blur";
|
|
52
|
+
contain: "contain";
|
|
53
|
+
white: "white";
|
|
54
|
+
}>>;
|
|
55
|
+
}, import("zod/v4/core").$strip>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { serverUgcInputWith } from "./skills.js";
|
|
2
|
+
import { VOICE_CATALOG } from "./voice-catalog-data.js";
|
|
3
|
+
import { isVoicePresetName } from "./voices.js";
|
|
4
|
+
// Подпуть, а не баррел: каталог весит сотни килобайт, и клиентам SDK он не нужен (docs/16).
|
|
5
|
+
/** Почему API не допускает имя голоса; `undefined` — пресет или живой голос каталога. */
|
|
6
|
+
export function catalogVoiceRefusal(voice, voices = VOICE_CATALOG.voices) {
|
|
7
|
+
if (isVoicePresetName(voice))
|
|
8
|
+
return undefined;
|
|
9
|
+
const entry = voices.find((item) => item.slug === voice);
|
|
10
|
+
if (entry === undefined) {
|
|
11
|
+
return `unknown voice "${voice}": call list_voices for the voice names this API accepts`;
|
|
12
|
+
}
|
|
13
|
+
if (entry.retired_at !== undefined) {
|
|
14
|
+
return (`voice "${voice}" was retired from the catalog on ${entry.retired_at.slice(0, 10)} ` +
|
|
15
|
+
"and is no longer accepted; call list_voices to choose another voice");
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
export const serverUgcInput = serverUgcInputWith((voice) => catalogVoiceRefusal(voice));
|
|
20
|
+
//# sourceMappingURL=voice-admission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-admission.js","sourceRoot":"","sources":["../src/voice-admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,4FAA4F;AAE5F,yFAAyF;AACzF,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,MAAM,GAAgC,aAAa,CAAC,MAAM;IAE1D,IAAI,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,kBAAkB,KAAK,0DAA0D,CAAC;IAC3F,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CACL,UAAU,KAAK,qCAAqC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;YACpF,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Сгенерированные файлы, разобранные схемой. В баррел не входит: клиентам SDK */
|
|
2
|
+
/** каталог не нужен, а подключать ли его подпутём, решает S5 (#164). */
|
|
3
|
+
export declare const VOICE_CATALOG: {
|
|
4
|
+
shortfall: Partial<Record<"bg" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fil" | "fr" | "hi" | "hr" | "hu" | "id" | "it" | "ja" | "ko" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sv" | "ta" | "tr" | "uk" | "vi" | "zh", {
|
|
5
|
+
female?: number | undefined;
|
|
6
|
+
male?: number | undefined;
|
|
7
|
+
}>>;
|
|
8
|
+
voices: {
|
|
9
|
+
slug: string;
|
|
10
|
+
language: "bg" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fil" | "fr" | "hi" | "hr" | "hu" | "id" | "it" | "ja" | "ko" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sv" | "ta" | "tr" | "uk" | "vi" | "zh";
|
|
11
|
+
locale: string | null;
|
|
12
|
+
accent: string | null;
|
|
13
|
+
gender_raw: string | null;
|
|
14
|
+
age_raw: string | null;
|
|
15
|
+
use_case_raw: string | null;
|
|
16
|
+
descriptive_raw: string | null;
|
|
17
|
+
name: string;
|
|
18
|
+
description: string | null;
|
|
19
|
+
category: string | null;
|
|
20
|
+
verified_models: ("eleven_flash_v2_5" | "eleven_turbo_v2_5" | "eleven_v3")[];
|
|
21
|
+
notice_period_days: number;
|
|
22
|
+
featured: boolean;
|
|
23
|
+
rank: number;
|
|
24
|
+
retired_at?: string | undefined;
|
|
25
|
+
refreshed_at: string;
|
|
26
|
+
}[];
|
|
27
|
+
};
|
|
28
|
+
export declare const TTS_MODEL_LANGUAGES: {
|
|
29
|
+
models: {
|
|
30
|
+
id: "eleven_flash_v2_5" | "eleven_turbo_v2_5" | "eleven_v3";
|
|
31
|
+
languages: string[];
|
|
32
|
+
}[];
|
|
33
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import catalogJson from "./voice-catalog.generated.json" with { type: "json" };
|
|
2
|
+
import modelsJson from "./tts-model-languages.generated.json" with { type: "json" };
|
|
3
|
+
import { ttsModelLanguagesFile, voiceCatalogFile } from "./voice-catalog.js";
|
|
4
|
+
/** Сгенерированные файлы, разобранные схемой. В баррел не входит: клиентам SDK */
|
|
5
|
+
/** каталог не нужен, а подключать ли его подпутём, решает S5 (#164). */
|
|
6
|
+
export const VOICE_CATALOG = voiceCatalogFile.parse(catalogJson);
|
|
7
|
+
export const TTS_MODEL_LANGUAGES = ttsModelLanguagesFile.parse(modelsJson);
|
|
8
|
+
//# sourceMappingURL=voice-catalog-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-catalog-data.js","sourceRoot":"","sources":["../src/voice-catalog-data.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,UAAU,MAAM,sCAAsC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,kFAAkF;AAClF,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC"}
|