@clipwright/core 0.13.0 → 0.15.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 CHANGED
@@ -10,6 +10,90 @@ 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
+ Entries marked *Dashboard:* changed the web app (the dashboard or a public page of the site)
14
+ and no package. This file is also the public changelog at /changelog, so they are listed here:
15
+ a customer reading it should not miss what appeared in the product. Like *Server-side* entries,
16
+ they are live from the day the web app was deployed, not from the package release they are
17
+ listed under.
18
+
19
+ ## [0.15.0] - 2026-09-14
20
+
21
+ ### Changed
22
+
23
+ - *Server-side:* in `GET /v1/voices`, a catalog voice carries `preview_url` and
24
+ `preview_expires_at` once its sample is recorded: a short clip of that voice on
25
+ `eleven_v3`, in the voice's own language. The link is signed by us and
26
+ expires like a preset's. A voice without a recorded sample for its current
27
+ model and sample text still has neither field, and the list never links to
28
+ the vendor. The sample texts outside English and Russian are machine
29
+ translations that no native speaker has checked. (clipwright#164)
30
+ - *Server-side:* without `voice` or `voice_id`, the voice follows the actor's
31
+ gender: a woman from `actor_id` speaks `sarah`, a man speaks `george`. The
32
+ default actor still speaks `george`, and an explicit voice always wins.
33
+ (clipwright#183)
34
+ - *Server-side:* a request with `image` and no voice gets a warning that the
35
+ male `george` voice is used, naming `voice` and `actor_gender` as the fix.
36
+ `GET /v1/runs/{id}` derives it from the stored input, so runs started before
37
+ this change show it too. A request with `actor_gender` next to `voice` or
38
+ `voice_id` gets a warning that the hint changed nothing. (clipwright#183)
39
+ - *Server-side:* the contract version moved to `2026-09-14`. (clipwright#183)
40
+ - *Dashboard:* `/actors` says that an actor without a chosen voice speaks the
41
+ default voice of their gender. (clipwright#183)
42
+
43
+ ### Added
44
+
45
+ - `actor_gender` (`female` or `male`) in the `make_ugc` input: next to `image`
46
+ it picks the default voice of that gender. It is refused with `actor_id` and
47
+ without `image`, and the remote fetch killswitch turns it off together with
48
+ `image`. The REST API accepts it from the day the API is deployed; the MCP
49
+ tool schema, the SDK types and the CLI flag `--actor-gender` arrive with this
50
+ release. (clipwright#183)
51
+
52
+ - *Dashboard:* `/actors` shows the actor library as a gallery: every published portrait with
53
+ its `actor_id` to copy, next to gender, approximate age, description and version. A person
54
+ can pick a face without calling `GET /v1/actors` first. (clipwright#148)
55
+ - *Dashboard:* `/videos` lists the finished videos of the account. Each one is a still frame
56
+ taken from the delivered file, with the length of the clip and the day it finished, and a
57
+ tile with a frame plays the video. Runs that are still going or that failed stay on the
58
+ Balance page. (clipwright#138)
59
+ - *Dashboard:* `/changelog` renders this file as a public page, so the release notes are
60
+ readable without installing a package. (clipwright#102)
61
+
62
+ ## [0.14.0] - 2026-09-13
63
+
64
+ ### Changed
65
+
66
+ - **Breaking:** *Server-side:* `GET /v1/voices` lists the catalog voices after
67
+ the five presets, by language and then by rank; a voice retired from the
68
+ catalog is not listed. Every entry gains `kind` (`preset` or `catalog`) and
69
+ `supported_models`, the contract models that know the voice's language. A
70
+ catalog voice also carries `verified_models` and whichever of `locale`,
71
+ `accent`, `gender`, `age` and `use_case` the catalog has. The response gains
72
+ `models`: each contract model with its `char_limit` and `languages`. Only a
73
+ preset carries `preview_url`; a catalog voice has no sample yet. Clients
74
+ 0.11.0 and 0.12.0 cannot read this response and fail in `listVoices()`,
75
+ `list_voices` and `clipwright voices`: upgrade to 0.13.0 or later. The
76
+ contract version moved to `2026-09-13.2`. (clipwright#164)
77
+ - *Server-side:* `GET /v1/voices` takes the filters `language`, `gender`, `age`,
78
+ `use_case` and `model`. `model` keeps the voices whose language the model
79
+ knows. A voice without a label matches no value of that filter. An unknown
80
+ value gets 400 `invalid_request` that names the allowed values, and an
81
+ unknown query key gets 400 `unknown_field`; neither returns an empty list.
82
+ (clipwright#164)
83
+ - `listVoices()` takes the same filters as an object, MCP `list_voices` as
84
+ arguments, and `clipwright voices` as `--language`, `--gender`, `--age`,
85
+ `--use-case` and `--model`. `clipwright voices` prints age and use case next
86
+ to language and gender, and cuts a description longer than 100 characters.
87
+ (clipwright#164)
88
+
89
+ ### Added
90
+
91
+ - `@clipwright/core` exports `voicesQuery`, `voicesQueryShape`, `VoicesQuery`
92
+ and `VOICES_QUERY_FIELDS`. `unknownFields` takes an optional list of accepted
93
+ keys, and `UnknownFieldHit.suggestion` is typed `string`. The subpath
94
+ `@clipwright/core/voice-listing` exports `listVoices`, `serverVoicesQuery`
95
+ and `serverVoicesQueryFor`. (clipwright#164)
96
+
13
97
  ## [0.13.0] - 2026-09-13
14
98
 
15
99
  ### Changed
package/dist/actors.d.ts CHANGED
@@ -26,6 +26,23 @@ export declare function actorForInput(input: {
26
26
  gender: Gender;
27
27
  version: number;
28
28
  } | undefined): ActorDescription | null;
29
+ export interface VoiceGenderInput {
30
+ image?: string | undefined;
31
+ actor_id?: string | undefined;
32
+ actor_gender?: Gender | undefined;
33
+ voice?: string | undefined;
34
+ voice_id?: string | undefined;
35
+ }
36
+ /** Пол для голоса по умолчанию: `actor_id` → пин; `image` → `actor_gender`; иначе дефолтный актёр. */
37
+ /** Только из пина того же актёра, не из каталога: личных актёров там нет (docs/18, Д52). */
38
+ export declare function voiceGenderFor(input: VoiceGenderInput, pin?: {
39
+ actor_id: string;
40
+ gender: Gender;
41
+ } | undefined): Gender | undefined;
42
+ export declare const IMAGE_DEFAULT_VOICE_WARNING: string;
43
+ export declare function actorGenderIgnoredWarning(field: "voice" | "voice_id"): string;
44
+ /** Читает только поля входа, без пина: путь рана зовёт его из сохранённого входа. */
45
+ export declare function buildActorGenderWarnings(input: VoiceGenderInput): string[];
29
46
  export declare const actorSelection: z.ZodObject<{
30
47
  actor_id: z.ZodString;
31
48
  version: z.ZodNumber;
package/dist/actors.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { actorId, ASPECT_RATIOS } from "./skills.js";
3
+ import { DEFAULT_VOICE_PRESET, VOICE_PRESETS } from "./voices.js";
3
4
  export const ACTORS_PATH = "/v1/actors";
4
5
  // Default portrait dimensions and gender were measured on 2026-09-09 (#64, D50).
5
6
  export const DEFAULT_ACTOR_SOURCE = { width: 432, height: 768, origin: "default" };
@@ -14,6 +15,30 @@ export function actorForInput(input, selected) {
14
15
  }
15
16
  return input.image === undefined ? DEFAULT_ACTOR : null;
16
17
  }
18
+ /** Пол для голоса по умолчанию: `actor_id` → пин; `image` → `actor_gender`; иначе дефолтный актёр. */
19
+ /** Только из пина того же актёра, не из каталога: личных актёров там нет (docs/18, Д52). */
20
+ export function voiceGenderFor(input, pin) {
21
+ if (input.actor_id !== undefined) {
22
+ if (pin?.actor_id !== input.actor_id) {
23
+ throw new Error("actor identity must be resolved before choosing its voice");
24
+ }
25
+ return pin.gender;
26
+ }
27
+ return input.image === undefined ? DEFAULT_ACTOR_GENDER : input.actor_gender;
28
+ }
29
+ export const IMAGE_DEFAULT_VOICE_WARNING = `no voice was chosen for the face in image: the default ${VOICE_PRESETS[DEFAULT_VOICE_PRESET].gender} ` +
30
+ `voice "${DEFAULT_VOICE_PRESET}" is used; pass voice (from list_voices) or actor_gender to match the face`;
31
+ export function actorGenderIgnoredWarning(field) {
32
+ return `actor_gender did not change the voice: the explicit ${field} is used as requested`;
33
+ }
34
+ /** Читает только поля входа, без пина: путь рана зовёт его из сохранённого входа. */
35
+ export function buildActorGenderWarnings(input) {
36
+ const explicit = input.voice_id !== undefined ? "voice_id" : input.voice !== undefined ? "voice" : undefined;
37
+ if (input.actor_gender !== undefined) {
38
+ return explicit === undefined ? [] : [actorGenderIgnoredWarning(explicit)];
39
+ }
40
+ return input.image !== undefined && explicit === undefined ? [IMAGE_DEFAULT_VOICE_WARNING] : [];
41
+ }
17
42
  export const actorSelection = z.object({
18
43
  actor_id: actorId,
19
44
  version: z.number().int().positive(),
@@ -1 +1 @@
1
- {"version":3,"file":"actors.js","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAGxC,iFAAiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjG,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,MAAM,EAAE,MAAgB,EAAE,CAAC;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC;AAIzD,MAAM,UAAU,aAAa,CAC3B,KAAoE,EACpE,QAA4E;IAE5E,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC7F,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AACD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAC3C,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACzB,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACnC,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE;QACpB,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;KACrC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACX,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"actors.js","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { makeUgcInputShape } from "./skills.js";
8
8
  * обязано её двигать; до этого пересмотра версии не было вообще, поэтому первое
9
9
  * её значение совпадает с месяцем самого пересмотра.
10
10
  */
11
- export declare const CONTRACT_VERSION = "2026-09-13";
11
+ export declare const CONTRACT_VERSION = "2026-09-14";
12
12
  export declare const CONTRACT_VERSION_HEADER = "X-Clipwright-Contract";
13
13
  /**
14
14
  * Решение по одному полю входа.
@@ -104,6 +104,10 @@ export declare const FIELD_DISPOSITIONS: {
104
104
  readonly kind: "implemented";
105
105
  readonly provenBy: "egress";
106
106
  };
107
+ readonly actor_gender: {
108
+ readonly kind: "implemented";
109
+ readonly provenBy: "egress";
110
+ };
107
111
  readonly segments: {
108
112
  readonly kind: "rejected";
109
113
  readonly message: "segmented clips are not available yet: pass `script` with the full spoken text instead";
@@ -157,7 +161,7 @@ export declare function resolveDispositions(flags: ContractFlags): Record<Contra
157
161
  * Отличается от `FIELD_DISPOSITIONS` ровно на применённые флаги: базовая
158
162
  * таблица говорит, что код УМЕЕТ, эта — что он предлагает прямо сейчас.
159
163
  */
160
- export declare const EFFECTIVE_DISPOSITIONS: Record<"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>;
164
+ 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>;
161
165
  type RejectedField = {
162
166
  [K in ContractField]: (typeof FIELD_DISPOSITIONS)[K]["kind"] extends "rejected" ? K : never;
163
167
  }[ContractField];
@@ -237,6 +241,10 @@ export declare const offeredUgcInput: z.ZodObject<{
237
241
  person: z.ZodOptional<z.ZodString>;
238
242
  actor_id: z.ZodOptional<z.ZodString>;
239
243
  image: z.ZodOptional<z.ZodString>;
244
+ actor_gender: z.ZodOptional<z.ZodEnum<{
245
+ female: "female";
246
+ male: "male";
247
+ }>>;
240
248
  name: z.ZodOptional<z.ZodString>;
241
249
  captions: z.ZodDefault<z.ZodBoolean>;
242
250
  caption_style: z.ZodDefault<z.ZodEnum<{
@@ -288,13 +296,13 @@ export declare function rejectedFields(input: Readonly<Record<string, unknown>>)
288
296
  /** Ключ тела вне контракта и поле, на которое он похож, если такое есть. */
289
297
  export interface UnknownFieldHit {
290
298
  field: string;
291
- suggestion?: ContractField | undefined;
299
+ suggestion?: string | undefined;
292
300
  }
293
301
  /** Поля, которые предлагаются клиенту: отклонённые в перечень не входят. */
294
302
  export declare const ACCEPTED_UGC_FIELDS: string[];
295
- /** Ключи верхнего уровня вне контракта. Отклонённые поля контракта сюда не */
296
- /** попадают — их называет `rejectedFields` своей причиной (clipwright#166). */
297
- export declare function unknownFields(raw: unknown): UnknownFieldHit[];
303
+ /** Ключи вне перечня `fields` (по умолчанию — контракт). Отклонённые поля контракта */
304
+ /** сюда не попадают — их называет `rejectedFields` своей причиной (clipwright#166). */
305
+ export declare function unknownFields(raw: unknown, fields?: readonly string[]): UnknownFieldHit[];
298
306
  /**
299
307
  * Warnings реестра для входа рана (правило проекта №3).
300
308
  *
@@ -8,7 +8,7 @@ import { makeUgcInputShape } from "./skills.js";
8
8
  * обязано её двигать; до этого пересмотра версии не было вообще, поэтому первое
9
9
  * её значение совпадает с месяцем самого пересмотра.
10
10
  */
11
- export const CONTRACT_VERSION = "2026-09-13";
11
+ export const CONTRACT_VERSION = "2026-09-14";
12
12
  export const CONTRACT_VERSION_HEADER = "X-Clipwright-Contract";
13
13
  /**
14
14
  * Таблица решений. `as const satisfies Record<…>` даёт СРАЗУ ДВА свойства:
@@ -61,6 +61,7 @@ export const FIELD_DISPOSITIONS = {
61
61
  // выключенном флаге `resolveDispositions` переводит её в `rejected` (см. ниже).
62
62
  image: { kind: "implemented", provenBy: "egress" },
63
63
  actor_id: { kind: "implemented", provenBy: "egress" },
64
+ actor_gender: { kind: "implemented", provenBy: "egress" },
64
65
  // Отклоняются: принять поле, зная, что оно не работает, план запрещает сам
65
66
  // себе.
66
67
  //
@@ -156,6 +157,10 @@ export function resolveDispositions(flags) {
156
157
  actor_id: flags.remoteFetch ? FIELD_DISPOSITIONS.actor_id : {
157
158
  kind: "rejected", message: "actor_id is temporarily disabled (remote media fetch is off); omit it to use the default actor",
158
159
  },
160
+ // Подсказка о лице из `image` без самого `image` не имеет смысла: гасится вместе с ним.
161
+ actor_gender: flags.remoteFetch ? FIELD_DISPOSITIONS.actor_gender : {
162
+ kind: "rejected", message: "actor_gender is temporarily disabled together with image (remote media fetch is off); omit both to use the default actor",
163
+ },
159
164
  // Тот же приём, что у `image` (US-524): базовая строка объявляет, что поле
160
165
  // РАБОТАЕТ, а выключенный флаг переводит её в отказ. Обещать выбор фона,
161
166
  // когда стадия композиции выключена, значило бы принять поле, которое
@@ -286,17 +291,17 @@ export function rejectedFields(input) {
286
291
  const normalizedFieldName = (name) => name.toLowerCase().replace(/[^a-z0-9]/g, "");
287
292
  /** Поля, которые предлагаются клиенту: отклонённые в перечень не входят. */
288
293
  export const ACCEPTED_UGC_FIELDS = Object.keys(offeredUgcInputShape);
289
- /** Ключи верхнего уровня вне контракта. Отклонённые поля контракта сюда не */
290
- /** попадают — их называет `rejectedFields` своей причиной (clipwright#166). */
291
- export function unknownFields(raw) {
294
+ /** Ключи вне перечня `fields` (по умолчанию — контракт). Отклонённые поля контракта */
295
+ /** сюда не попадают — их называет `rejectedFields` своей причиной (clipwright#166). */
296
+ export function unknownFields(raw, fields = CONTRACT_FIELDS) {
292
297
  if (raw === null || typeof raw !== "object" || Array.isArray(raw))
293
298
  return [];
294
- const known = new Set(CONTRACT_FIELDS);
299
+ const known = new Set(fields);
295
300
  return Object.keys(raw)
296
301
  .filter((key) => !known.has(key))
297
302
  .map((field) => ({
298
303
  field,
299
- suggestion: CONTRACT_FIELDS.find((candidate) => normalizedFieldName(candidate) === normalizedFieldName(field)),
304
+ suggestion: fields.find((candidate) => normalizedFieldName(candidate) === normalizedFieldName(field)),
300
305
  }));
301
306
  }
302
307
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"contract-dispositions.js","sourceRoot":"","sources":["../src/contract-dispositions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-dispositions.js","sourceRoot":"","sources":["../src/contract-dispositions.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { resolvedScript, storedUgcInput } from "./skills.js";
2
2
  import { dispositionWarnings } from "./contract-dispositions.js";
3
3
  import { buildSpeechModelWarnings, buildVoiceWarnings, TTS_MODELS } from "./voices.js";
4
+ import { buildActorGenderWarnings } from "./actors.js";
4
5
  import { resolveAspectRatio } from "./aspect.js";
5
6
  import { parseRunPreflight, sourceNotProbedWarning, VOICE_CATALOG_INCOMPLETE_WARNING, } from "./run-preflight.js";
6
7
  // Писатели хранят невыводимое, читатель выводит статику. Рационал — docs/18, Д41.
@@ -58,7 +59,9 @@ export function derivedRunWarnings(storedInput, preflight) {
58
59
  ...dispositionWarnings(input),
59
60
  ...aspectFactWarnings(preflight.aspect, input),
60
61
  ...buildVoiceWarnings({ voice: input.voice, script: resolvedScript(input) }),
61
- ...buildSpeechModelWarnings({ ...input, script: resolvedScript(input) }),
62
+ ...buildActorGenderWarnings(input),
63
+ // Пола пина в сохранённом входе нет; модели пресетов по полу сегодня не расходятся.
64
+ ...buildSpeechModelWarnings({ ...input, script: resolvedScript(input) }, input.actor_gender),
62
65
  ...voiceFactWarnings(preflight.voice),
63
66
  ];
64
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-static-warnings.js","sourceRoot":"","sources":["../src/run-static-warnings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-static-warnings.js","sourceRoot":"","sources":["../src/run-static-warnings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gCAAgC,GAIjC,MAAM,oBAAoB,CAAC;AAE5B,kFAAkF;AAElF,uEAAuE;AACvE,MAAM,CAAC,MAAM,4BAA4B,GACvC,yGAAyG,CAAC;AAE5G,iFAAiF;AACjF,qFAAqF;AACrF,SAAS,0BAA0B,CAAC,IAAiC;IACnE,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,OAAO;QACL,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;QACxC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,kFAAkF;AAClF,SAAS,kBAAkB,CACzB,IAAiC,EACjC,KAAmB;IAEnB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,EAAE,CAAC;IAChE,iFAAiF;IACjF,4EAA4E;IAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC;IACrF,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACjF,gFAAgF;IAChF,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,wFAAwF;AACxF,SAAS,iBAAiB,CAAC,IAAoC;IAC7D,OAAO,IAAI,EAAE,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,wEAAwE;AACxE,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAChC,WAAoB,EACpB,SAAuB;IAEvB,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,8EAA8E;QAC9E,4EAA4E;QAC5E,OAAO;YACL,4BAA4B;YAC5B,GAAG,0BAA0B,CAAC,SAAS,CAAC,MAAM,CAAC;YAC/C,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC;SACtC,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;IACnE,2FAA2F;IAC3F,MAAM,KAAK,GAAiB,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC7D,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO;QACL,GAAG,mBAAmB,CAAC,KAAK,CAAC;QAC7B,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;QAC9C,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5E,GAAG,wBAAwB,CAAC,KAAK,CAAC;QAClC,oFAAoF;QACpF,GAAG,wBAAwB,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC;QAC5F,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,aAAa,CAAC,MAAe;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAED,oFAAoF;AACpF,sFAAsF;AACtF,MAAM,UAAU,kBAAkB,CAChC,MAAe,EACf,WAAoB,EACpB,eAAwB;IAExB,OAAO;QACL,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;YACtE,GAAG,aAAa,CAAC,MAAM,CAAC;SACzB,CAAC;KACH,CAAC;AACJ,CAAC"}
package/dist/skills.d.ts CHANGED
@@ -97,6 +97,10 @@ export declare const makeUgcInputShape: {
97
97
  readonly person: z.ZodOptional<z.ZodString>;
98
98
  readonly actor_id: z.ZodOptional<z.ZodString>;
99
99
  readonly image: z.ZodOptional<z.ZodString>;
100
+ readonly actor_gender: z.ZodOptional<z.ZodEnum<{
101
+ female: "female";
102
+ male: "male";
103
+ }>>;
100
104
  readonly character: z.ZodOptional<z.ZodString>;
101
105
  readonly name: z.ZodOptional<z.ZodString>;
102
106
  readonly broll_url: z.ZodOptional<z.ZodString>;
@@ -178,6 +182,10 @@ export declare const makeUgcInput: z.ZodObject<{
178
182
  person: z.ZodOptional<z.ZodString>;
179
183
  actor_id: z.ZodOptional<z.ZodString>;
180
184
  image: z.ZodOptional<z.ZodString>;
185
+ actor_gender: z.ZodOptional<z.ZodEnum<{
186
+ female: "female";
187
+ male: "male";
188
+ }>>;
181
189
  character: z.ZodOptional<z.ZodString>;
182
190
  name: z.ZodOptional<z.ZodString>;
183
191
  broll_url: z.ZodOptional<z.ZodString>;
@@ -232,6 +240,10 @@ export declare function serverUgcInputWith(voiceRefusal: (voice: string) => stri
232
240
  person: z.ZodOptional<z.ZodString>;
233
241
  actor_id: z.ZodOptional<z.ZodString>;
234
242
  image: z.ZodOptional<z.ZodString>;
243
+ actor_gender: z.ZodOptional<z.ZodEnum<{
244
+ female: "female";
245
+ male: "male";
246
+ }>>;
235
247
  character: z.ZodOptional<z.ZodString>;
236
248
  name: z.ZodOptional<z.ZodString>;
237
249
  broll_url: z.ZodOptional<z.ZodString>;
@@ -286,6 +298,10 @@ export declare const storedUgcInput: z.ZodObject<{
286
298
  person: z.ZodOptional<z.ZodString>;
287
299
  actor_id: z.ZodOptional<z.ZodString>;
288
300
  image: z.ZodOptional<z.ZodString>;
301
+ actor_gender: z.ZodOptional<z.ZodEnum<{
302
+ female: "female";
303
+ male: "male";
304
+ }>>;
289
305
  character: z.ZodOptional<z.ZodString>;
290
306
  name: z.ZodOptional<z.ZodString>;
291
307
  broll_url: z.ZodOptional<z.ZodString>;
package/dist/skills.js CHANGED
@@ -107,7 +107,10 @@ export const makeUgcInputShape = {
107
107
  STRESS_MARKING_DESCRIPTION),
108
108
  segments: z.array(ugcSegment).min(1).max(MAX_SEGMENTS).optional(),
109
109
  person: z.string().min(1).max(500).optional(),
110
- actor_id: actorId.optional().describe("Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them."),
110
+ actor_id: actorId
111
+ .optional()
112
+ .describe("Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. " +
113
+ "Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender."),
111
114
  // ТОЛЬКО https-URL. Вариант `data:` снят (US-524): HeyGen принимает
112
115
  // исключительно `{type:"url"}`, а заливка data-URI в R2 с presigned-выдачей
113
116
  // вскрыла бы инвариант Этапа 4 «R2-URL вендору не передаются». Отказ на входе
@@ -120,7 +123,15 @@ export const makeUgcInputShape = {
120
123
  .optional()
121
124
  .describe("Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes " +
122
125
  "through upload_image (POST /v1/uploads) first — pass the url it returns. Private or loopback " +
123
- "hosts, http and unreachable sources are refused before any charge."),
126
+ "hosts, http and unreachable sources are refused before any charge. We do not detect the " +
127
+ "face's gender: pass actor_gender or voice, or the default male voice is used with a warning."),
128
+ // Без .default(): молчание отличимо от подсказки, и на молчании приходит warning (clipwright#183).
129
+ actor_gender: z
130
+ .enum(["female", "male"])
131
+ .optional()
132
+ .describe("Gender of the face in image: female | male. Only with image: picks the default voice of that " +
133
+ "gender (female: sarah, male: george). Refused with actor_id (its gender is known) and without " +
134
+ "image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing."),
124
135
  character: z.string().regex(/^char_[a-zA-Z0-9]+$/).optional(),
125
136
  name: z.string().max(100).optional(),
126
137
  broll_url: z.string().url().max(MAX_URL_LENGTH).optional(),
@@ -154,7 +165,9 @@ export const makeUgcInputShape = {
154
165
  .optional()
155
166
  .describe(`Voice name from list_voices. Curated presets: ${VOICE_PRESET_NAMES.join(" | ")} ` +
156
167
  "(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. " +
168
+ "return, before any charge. Omitted means the default voice for the actor's gender: the " +
169
+ "gender of actor_id, actor_gender with image, or george for the default actor and for image " +
170
+ "without actor_gender. " +
158
171
  "Mutually exclusive with voice_id."),
159
172
  voice_id: z
160
173
  .string()
@@ -214,14 +227,25 @@ export const makeUgcInput = z
214
227
  })
215
228
  // Потолок символов — по модели: v3 короче v2 вдвое; отказ здесь, до резерва и вендора (#101).
216
229
  // Модель незнакомого клиенту голоса знает только сервер, и потолок он проверит сам (#164).
217
- .refine((v) => modelUnknownToClient(v) || ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v)) === undefined, {
230
+ .refine(
231
+ // Пол `actor_id` клиенту неизвестен: у сегодняшних пресетов модель от пола не зависит.
232
+ (v) => modelUnknownToClient(v) ||
233
+ ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v, v.actor_gender)) === undefined, {
218
234
  path: ["script"],
219
235
  error: (issue) => {
220
236
  const input = issue.input;
221
- return ttsScriptLimitError(spokenTextOf(input), resolveTtsModel(input));
237
+ return ttsScriptLimitError(spokenTextOf(input), resolveTtsModel(input, input.actor_gender));
222
238
  },
223
239
  })
224
240
  .refine((v) => [v.actor_id, v.person, v.image].filter(Boolean).length <= 1, { message: "pass at most one of actor_id | person | image; use list_actors to select a saved actor" })
241
+ .refine((v) => v.actor_gender === undefined || v.actor_id === undefined, {
242
+ path: ["actor_gender"],
243
+ message: "actor_gender cannot be combined with actor_id: the saved actor's gender is already known; omit actor_gender",
244
+ })
245
+ .refine((v) => v.actor_gender === undefined || v.actor_id !== undefined || v.image !== undefined, {
246
+ path: ["actor_gender"],
247
+ message: "actor_gender requires image: it describes the face in your photo; omit it, or pass image",
248
+ })
225
249
  // ПРАВИЛА СЕГМЕНТОВ (US-526). Каждое — ОТДЕЛЬНЫЙ .refine, а не одна проверка
226
250
  // с общим текстом: сообщение обязано называть нарушенное правило, иначе агент
227
251
  // получает «invalid input» и чинит вход перебором. Порядок правил — от того,
@@ -246,11 +270,8 @@ export const makeUgcInput = z
246
270
  v.segments.every((s) => s.kind !== "actor" || s.media_url === undefined), { message: "actor segment must not carry `media_url`: use a media segment for footage" })
247
271
  .refine((v) => v.segments === undefined ||
248
272
  v.segments.every((s) => s.kind !== "media" || s.media_url !== undefined), { message: "media segment requires `media_url`: there is no footage to show otherwise" })
249
- // Голос задаётся ровно одним способом: именем пресета (voice) ИЛИ сырым
250
- // вендорским id (voice_id), не обоими сразу. Взаимоисключение — здесь, в
251
- // makeUgcInput, а НЕ в makeUgcInputShape: .refine превращает схему в
252
- // ZodEffects, у которого нет .shape (ловушка A12), а shape порождает
253
- // tools/list. Оба опущены → резолвер подставит дефолт (клон владельца).
273
+ // Голос — ровно одним способом; здесь, а не в shape: .refine снимает .shape (ловушка A12).
274
+ // Оба опущены → резолвер берёт голос по полу актёра (`resolveVoiceSelection`).
254
275
  .refine((v) => !(v.voice !== undefined && v.voice_id !== undefined), { message: "pass at most one of voice | voice_id" })
255
276
  // Length includes whitespace; a nonempty string can still have no speech.
256
277
  .refine((v) => v.segments !== undefined || countWords(v.script ?? "") >= 1, {
@@ -270,11 +291,11 @@ export function serverUgcInputWith(voiceRefusal) {
270
291
  // Потолок, пропущенный клиентом: модель допущенного голоса каталога сервер знает (#164).
271
292
  .refine((v) => !modelUnknownToClient(v) ||
272
293
  voiceRefusal(v.voice) !== undefined ||
273
- ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v)) === undefined, {
294
+ ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v, v.actor_gender)) === undefined, {
274
295
  path: ["script"],
275
296
  error: (issue) => {
276
297
  const input = issue.input;
277
- return ttsScriptLimitError(spokenTextOf(input), resolveTtsModel(input));
298
+ return ttsScriptLimitError(spokenTextOf(input), resolveTtsModel(input, input.actor_gender));
278
299
  },
279
300
  });
280
301
  }
@@ -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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"}
@@ -14,6 +14,10 @@ export declare const serverUgcInput: import("zod").ZodObject<{
14
14
  person: import("zod").ZodOptional<import("zod").ZodString>;
15
15
  actor_id: import("zod").ZodOptional<import("zod").ZodString>;
16
16
  image: import("zod").ZodOptional<import("zod").ZodString>;
17
+ actor_gender: import("zod").ZodOptional<import("zod").ZodEnum<{
18
+ female: "female";
19
+ male: "male";
20
+ }>>;
17
21
  character: import("zod").ZodOptional<import("zod").ZodString>;
18
22
  name: import("zod").ZodOptional<import("zod").ZodString>;
19
23
  broll_url: import("zod").ZodOptional<import("zod").ZodString>;
@@ -171,5 +171,101 @@ export declare const ttsModelLanguagesFile: z.ZodObject<{
171
171
  }, z.core.$strict>>;
172
172
  }, z.core.$strict>;
173
173
  export type TtsModelLanguagesFile = z.infer<typeof ttsModelLanguagesFile>;
174
+ /** Фильтры `/v1/voices`: разбор запроса, `inputSchema` MCP и параметры SDK. Метки */
175
+ /** `age` и `use_case` берутся из данных каталога, поэтому их допустимый набор знает сервер. */
176
+ export declare const voicesQueryShape: {
177
+ language: z.ZodOptional<z.ZodEnum<{
178
+ bg: "bg";
179
+ cs: "cs";
180
+ da: "da";
181
+ de: "de";
182
+ el: "el";
183
+ en: "en";
184
+ es: "es";
185
+ fi: "fi";
186
+ fil: "fil";
187
+ fr: "fr";
188
+ hi: "hi";
189
+ hr: "hr";
190
+ hu: "hu";
191
+ id: "id";
192
+ it: "it";
193
+ ja: "ja";
194
+ ko: "ko";
195
+ ms: "ms";
196
+ nl: "nl";
197
+ no: "no";
198
+ pl: "pl";
199
+ pt: "pt";
200
+ ro: "ro";
201
+ ru: "ru";
202
+ sk: "sk";
203
+ sv: "sv";
204
+ ta: "ta";
205
+ tr: "tr";
206
+ uk: "uk";
207
+ vi: "vi";
208
+ zh: "zh";
209
+ }>>;
210
+ gender: z.ZodOptional<z.ZodEnum<{
211
+ female: "female";
212
+ male: "male";
213
+ }>>;
214
+ age: z.ZodOptional<z.ZodString>;
215
+ use_case: z.ZodOptional<z.ZodString>;
216
+ model: z.ZodOptional<z.ZodEnum<{
217
+ eleven_flash_v2_5: "eleven_flash_v2_5";
218
+ eleven_turbo_v2_5: "eleven_turbo_v2_5";
219
+ eleven_v3: "eleven_v3";
220
+ }>>;
221
+ };
222
+ export declare const voicesQuery: z.ZodObject<{
223
+ language: z.ZodOptional<z.ZodEnum<{
224
+ bg: "bg";
225
+ cs: "cs";
226
+ da: "da";
227
+ de: "de";
228
+ el: "el";
229
+ en: "en";
230
+ es: "es";
231
+ fi: "fi";
232
+ fil: "fil";
233
+ fr: "fr";
234
+ hi: "hi";
235
+ hr: "hr";
236
+ hu: "hu";
237
+ id: "id";
238
+ it: "it";
239
+ ja: "ja";
240
+ ko: "ko";
241
+ ms: "ms";
242
+ nl: "nl";
243
+ no: "no";
244
+ pl: "pl";
245
+ pt: "pt";
246
+ ro: "ro";
247
+ ru: "ru";
248
+ sk: "sk";
249
+ sv: "sv";
250
+ ta: "ta";
251
+ tr: "tr";
252
+ uk: "uk";
253
+ vi: "vi";
254
+ zh: "zh";
255
+ }>>;
256
+ gender: z.ZodOptional<z.ZodEnum<{
257
+ female: "female";
258
+ male: "male";
259
+ }>>;
260
+ age: z.ZodOptional<z.ZodString>;
261
+ use_case: z.ZodOptional<z.ZodString>;
262
+ model: z.ZodOptional<z.ZodEnum<{
263
+ eleven_flash_v2_5: "eleven_flash_v2_5";
264
+ eleven_turbo_v2_5: "eleven_turbo_v2_5";
265
+ eleven_v3: "eleven_v3";
266
+ }>>;
267
+ }, z.core.$strip>;
268
+ export type VoicesQuery = z.infer<typeof voicesQuery>;
269
+ export declare const VOICES_QUERY_FIELDS: (keyof VoicesQuery)[];
174
270
  /** Нормализация метки на чтении: `middle-aged` → `middle_aged`, пустая → нет метки. */
175
271
  export declare function normalizeVoiceLabel(raw: string | null | undefined): string | undefined;
@@ -40,6 +40,31 @@ export const voiceCatalogFile = z.strictObject({
40
40
  export const ttsModelLanguagesFile = z.strictObject({
41
41
  models: z.array(z.strictObject({ id: z.enum(TTS_MODELS), languages: z.array(z.string().min(1)) })),
42
42
  });
43
+ /** Фильтры `/v1/voices`: разбор запроса, `inputSchema` MCP и параметры SDK. Метки */
44
+ /** `age` и `use_case` берутся из данных каталога, поэтому их допустимый набор знает сервер. */
45
+ export const voicesQueryShape = {
46
+ language: z
47
+ .enum(CATALOG_LANGUAGES)
48
+ .optional()
49
+ .describe("Native language of the voice. A filter, not a limit: any voice speaks any supported language"),
50
+ gender: z.enum(CATALOG_GENDERS).optional().describe("Gender label of the voice"),
51
+ age: z
52
+ .string()
53
+ .min(1)
54
+ .optional()
55
+ .describe("Age label as list_voices prints it (young, middle_aged, old); an unknown value is refused with the allowed list"),
56
+ use_case: z
57
+ .string()
58
+ .min(1)
59
+ .optional()
60
+ .describe("Use case label as list_voices prints it (narrative_story, social_media, …); an unknown value is refused with the allowed list"),
61
+ model: z
62
+ .enum(TTS_MODELS)
63
+ .optional()
64
+ .describe("Only voices whose language this speech model supports"),
65
+ };
66
+ export const voicesQuery = z.object(voicesQueryShape);
67
+ export const VOICES_QUERY_FIELDS = Object.keys(voicesQueryShape);
43
68
  /** Нормализация метки на чтении: `middle-aged` → `middle_aged`, пустая → нет метки. */
44
69
  export function normalizeVoiceLabel(raw) {
45
70
  const value = raw?.trim().toLowerCase().replaceAll("-", "_");
@@ -1 +1 @@
1
- {"version":3,"file":"voice-catalog.js","sourceRoot":"","sources":["../src/voice-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voice-catalog.js","sourceRoot":"","sources":["../src/voice-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ import { type CatalogFileVoice, type TtsModelLanguagesFile, type VoiceCatalogFile, type VoicesQuery } from "./voice-catalog.js";
3
+ import { type VoiceCatalogEntry } from "./voices.js";
4
+ export { TTS_MODEL_LANGUAGES, VOICE_CATALOG } from "./voice-catalog-data.js";
5
+ /** Запрос `/v1/voices` на сервере: незнакомая метка — отказ со списком допустимых, а не пустой список. */
6
+ export declare function serverVoicesQueryFor(voices?: readonly CatalogFileVoice[]): z.ZodObject<{
7
+ language: z.ZodOptional<z.ZodEnum<{
8
+ bg: "bg";
9
+ cs: "cs";
10
+ da: "da";
11
+ de: "de";
12
+ el: "el";
13
+ en: "en";
14
+ es: "es";
15
+ fi: "fi";
16
+ fil: "fil";
17
+ fr: "fr";
18
+ hi: "hi";
19
+ hr: "hr";
20
+ hu: "hu";
21
+ id: "id";
22
+ it: "it";
23
+ ja: "ja";
24
+ ko: "ko";
25
+ ms: "ms";
26
+ nl: "nl";
27
+ no: "no";
28
+ pl: "pl";
29
+ pt: "pt";
30
+ ro: "ro";
31
+ ru: "ru";
32
+ sk: "sk";
33
+ sv: "sv";
34
+ ta: "ta";
35
+ tr: "tr";
36
+ uk: "uk";
37
+ vi: "vi";
38
+ zh: "zh";
39
+ }>>;
40
+ gender: z.ZodOptional<z.ZodEnum<{
41
+ female: "female";
42
+ male: "male";
43
+ }>>;
44
+ model: z.ZodOptional<z.ZodEnum<{
45
+ eleven_flash_v2_5: "eleven_flash_v2_5";
46
+ eleven_turbo_v2_5: "eleven_turbo_v2_5";
47
+ eleven_v3: "eleven_v3";
48
+ }>>;
49
+ age: z.ZodOptional<z.ZodEnum<{
50
+ [x: string]: string;
51
+ }>>;
52
+ use_case: z.ZodOptional<z.ZodEnum<{
53
+ [x: string]: string;
54
+ }>>;
55
+ }, z.core.$strip>;
56
+ export declare const serverVoicesQuery: z.ZodObject<{
57
+ language: z.ZodOptional<z.ZodEnum<{
58
+ bg: "bg";
59
+ cs: "cs";
60
+ da: "da";
61
+ de: "de";
62
+ el: "el";
63
+ en: "en";
64
+ es: "es";
65
+ fi: "fi";
66
+ fil: "fil";
67
+ fr: "fr";
68
+ hi: "hi";
69
+ hr: "hr";
70
+ hu: "hu";
71
+ id: "id";
72
+ it: "it";
73
+ ja: "ja";
74
+ ko: "ko";
75
+ ms: "ms";
76
+ nl: "nl";
77
+ no: "no";
78
+ pl: "pl";
79
+ pt: "pt";
80
+ ro: "ro";
81
+ ru: "ru";
82
+ sk: "sk";
83
+ sv: "sv";
84
+ ta: "ta";
85
+ tr: "tr";
86
+ uk: "uk";
87
+ vi: "vi";
88
+ zh: "zh";
89
+ }>>;
90
+ gender: z.ZodOptional<z.ZodEnum<{
91
+ female: "female";
92
+ male: "male";
93
+ }>>;
94
+ model: z.ZodOptional<z.ZodEnum<{
95
+ eleven_flash_v2_5: "eleven_flash_v2_5";
96
+ eleven_turbo_v2_5: "eleven_turbo_v2_5";
97
+ eleven_v3: "eleven_v3";
98
+ }>>;
99
+ age: z.ZodOptional<z.ZodEnum<{
100
+ [x: string]: string;
101
+ }>>;
102
+ use_case: z.ZodOptional<z.ZodEnum<{
103
+ [x: string]: string;
104
+ }>>;
105
+ }, z.core.$strip>;
106
+ /** Пресеты, затем живые голоса каталога по языку и рангу; поле, которого у голоса нет, не совпадает ни с чем. */
107
+ export declare function listVoices(query: VoicesQuery, catalog?: VoiceCatalogFile, modelLanguages?: TtsModelLanguagesFile): {
108
+ voices: VoiceCatalogEntry[];
109
+ models: {
110
+ id: string;
111
+ char_limit: number;
112
+ languages: string[];
113
+ }[];
114
+ };
@@ -0,0 +1,64 @@
1
+ import { z } from "zod";
2
+ import { CATALOG_LANGUAGES, normalizeVoiceLabel, VOICES_QUERY_FIELDS, voicesQueryShape, } from "./voice-catalog.js";
3
+ import { TTS_MODEL_LANGUAGES, VOICE_CATALOG } from "./voice-catalog-data.js";
4
+ import { resolveTtsModel, TTS_MODEL_CHAR_CAP, TTS_MODELS, VOICE_PRESETS, } from "./voices.js";
5
+ // Подпуть, а не баррел: список читает каталог, а клиентам SDK он не нужен (docs/16).
6
+ // Те же данные сверяет с вендором еженедельная проба воркера.
7
+ export { TTS_MODEL_LANGUAGES, VOICE_CATALOG } from "./voice-catalog-data.js";
8
+ const isLive = (voice) => voice.retired_at === undefined;
9
+ function labelValues(voices, raw) {
10
+ const values = voices.filter(isLive).map((voice) => normalizeVoiceLabel(raw(voice)));
11
+ return [...new Set(values.filter((value) => value !== undefined))].sort();
12
+ }
13
+ /** Запрос `/v1/voices` на сервере: незнакомая метка — отказ со списком допустимых, а не пустой список. */
14
+ export function serverVoicesQueryFor(voices = VOICE_CATALOG.voices) {
15
+ return z.object({
16
+ ...voicesQueryShape,
17
+ age: z.enum(labelValues(voices, (voice) => voice.age_raw)).optional(),
18
+ use_case: z.enum(labelValues(voices, (voice) => voice.use_case_raw)).optional(),
19
+ });
20
+ }
21
+ export const serverVoicesQuery = serverVoicesQueryFor();
22
+ const presentText = (raw) => raw?.trim() || undefined;
23
+ /** Пресеты, затем живые голоса каталога по языку и рангу; поле, которого у голоса нет, не совпадает ни с чем. */
24
+ export function listVoices(query, catalog = VOICE_CATALOG, modelLanguages = TTS_MODEL_LANGUAGES) {
25
+ const languagesOf = (id) => modelLanguages.models.find((model) => model.id === id)?.languages ?? [];
26
+ const supportedModels = (language) => TTS_MODELS.filter((id) => languagesOf(id).includes(language));
27
+ const presets = Object.entries(VOICE_PRESETS).map(([name, preset]) => ({
28
+ name,
29
+ kind: "preset",
30
+ ...preset,
31
+ supported_models: supportedModels(preset.language),
32
+ }));
33
+ const languageRank = (voice) => CATALOG_LANGUAGES.indexOf(voice.language);
34
+ const catalogVoices = catalog.voices
35
+ .filter(isLive)
36
+ .sort((a, b) => languageRank(a) - languageRank(b) || a.rank - b.rank || (a.slug < b.slug ? -1 : 1))
37
+ .map((voice) => ({
38
+ name: voice.slug,
39
+ kind: "catalog",
40
+ language: voice.language,
41
+ locale: presentText(voice.locale),
42
+ accent: presentText(voice.accent),
43
+ gender: normalizeVoiceLabel(voice.gender_raw),
44
+ age: normalizeVoiceLabel(voice.age_raw),
45
+ use_case: normalizeVoiceLabel(voice.use_case_raw),
46
+ description: presentText(voice.description) ?? voice.name,
47
+ model: resolveTtsModel({ voice: voice.slug }),
48
+ supported_models: supportedModels(voice.language),
49
+ verified_models: voice.verified_models,
50
+ }));
51
+ const matches = (entry) => VOICES_QUERY_FIELDS.every((field) => {
52
+ const wanted = query[field];
53
+ if (wanted === undefined)
54
+ return true;
55
+ if (field === "model")
56
+ return entry.supported_models?.includes(wanted) === true;
57
+ return entry[field] === wanted;
58
+ });
59
+ return {
60
+ voices: [...presets, ...catalogVoices].filter(matches),
61
+ models: TTS_MODELS.map((id) => ({ id, char_limit: TTS_MODEL_CHAR_CAP[id], languages: languagesOf(id) })),
62
+ };
63
+ }
64
+ //# sourceMappingURL=voice-listing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-listing.js","sourceRoot":"","sources":["../src/voice-listing.ts"],"names":[],"mappings":"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"}
package/dist/voices.d.ts CHANGED
@@ -133,17 +133,14 @@ export declare const voicesResponse: z.ZodObject<{
133
133
  }, z.core.$strip>>>;
134
134
  }, z.core.$strip>;
135
135
  export type VoicesResponse = z.infer<typeof voicesResponse>;
136
- /**
137
- * Дефолт под текущий аватар (look-01 «warm storyteller»): `george` —
138
- * британский повествовательный голос, семантически совпадает с образом.
139
- * Изначально дефолтом ставился клон владельца, но на английских скриптах он
140
- * давал русский акцент (on-ear владельца 2026-07-20) — сменён на нейтральный
141
- * английский. Клон остаётся доступным пресетом `owner_ru_clone` для русских
142
- * скриптов. Подстановка дефолта — забота резолвера, а не схемы (схема хранит
143
- * `.optional()` без `.default()`, чтобы отличать явный выбор от умолчания —
144
- * нужно для warnings US-517).
145
- */
136
+ /** Голос, когда пол актёра неизвестен; подставляет резолвер, а не схема (US-517). */
137
+ /** История выбора дефолта — docs/16. */
146
138
  export declare const DEFAULT_VOICE_PRESET: "george";
139
+ /** Голос по умолчанию следует полу актёра (clipwright#183, docs/18, Д52). */
140
+ export declare const DEFAULT_VOICE_BY_GENDER: {
141
+ readonly female: "sarah";
142
+ readonly male: "george";
143
+ };
147
144
  /**
148
145
  * Форма сырого `voice_id` вендора. НАМЕРЕННО терпимая (16–32 алфанумерик):
149
146
  * ElevenLabs не документирует формат id, наблюдаемые id — 20 символов, но
@@ -168,27 +165,19 @@ export type VoiceSelection = {
168
165
  kind: "raw";
169
166
  voiceId: string;
170
167
  };
171
- /**
172
- * Чистое разрешение приоритета голосовых полей входа.
173
- *
174
- * Взаимоисключение `voice`/`voice_id` уже гарантировано `.refine` в
175
- * `makeUgcInput` (skills.ts), поэтому здесь — только приоритет и подстановка
176
- * дефолта, без повторной валидации. Приоритет: сырой `voice_id` (явный escape
177
- * hatch) > `voice` (имя пресета) > дефолт (клон владельца). Дефолт живёт тут, а
178
- * не в схеме, потому что схема хранит `.optional()` без `.default()`, чтобы
179
- * отличать явный выбор от умолчания (warnings US-517).
180
- */
168
+ /** Приоритет: сырой `voice_id` > `voice` > голос по полу актёра > `DEFAULT_VOICE_PRESET`. */
169
+ /** Пол даёт `voiceGenderFor` (actors.ts); взаимоисключение полей держит `makeUgcInput`. */
181
170
  export declare function resolveVoiceSelection(input: {
182
171
  voice?: string | undefined;
183
172
  voice_id?: string | undefined;
184
- }): VoiceSelection;
173
+ }, gender?: Gender | undefined): VoiceSelection;
185
174
  /** Модель: явное `tts_model` → модель пресета → дефолт (сырой `voice_id` пресета не имеет). */
186
175
  /** Голос каталога говорит на дефолте, как пресеты (решение владельца #164). */
187
176
  export declare function resolveTtsModel(input: {
188
177
  voice?: string | undefined;
189
178
  voice_id?: string | undefined;
190
179
  tts_model?: TtsModelId | undefined;
191
- }): TtsModelId;
180
+ }, gender?: Gender | undefined): TtsModelId;
192
181
  /**
193
182
  * Семейство письменности скрипта — грубый детектор для языкового warning'а
194
183
  * (US-517). Считает ТОЛЬКО буквенные символы: кириллица (U+0400–U+04FF) против
@@ -226,14 +215,6 @@ export declare const RAW_VOICE_ID_VALIDATION_WARNING = "raw voice_id is verified
226
215
  * заменяется. Поэтому правило старшинства здесь не применяется — но зафиксировано,
227
216
  * чтобы будущая подмена не была ошибочно заглушена условием (iii).
228
217
  *
229
- * ПОЧЕМУ НЕТ ГЕНДЕР-WARNING, И ДОВОД ТЕПЕРЬ ДРУГОЙ. Прежний ссылался на
230
- * отсутствие источника правды о поле АВАТАРА; источник измерен и записан
231
- * (`default-actor.ts`), поэтому довод снят как устаревший. Warning'а всё равно
232
- * нет по причине сильнее: пол актёра отдаётся ДАННЫМИ в поле `actor` ответа
233
- * `quote`, объявлять несоблюдённым нечего (голос исполняется как запрошен), а
234
- * предупреждение на каждом женском голосе клиент снять не может — docs/18, Д50.
235
- * Ни один кодовый путь ниже не порождает строки со словом gender по построению.
236
- *
237
218
  * ПОЧЕМУ тест не подавляет обязательный warning про подмену №3 (принцип DR-2):
238
219
  * обязанность №3 крепится к НЕИСПОЛНЕННОМУ явному запросу (клиент попросил 1080p,
239
220
  * дали 720p) — это подмена, у неё старшинство над (iii). Здесь же голос либо
@@ -251,4 +232,4 @@ export declare function buildSpeechModelWarnings(input: {
251
232
  voice_id?: string | undefined;
252
233
  tts_model?: TtsModelId | undefined;
253
234
  script: string;
254
- }): string[];
235
+ }, gender?: Gender | undefined): string[];
package/dist/voices.js CHANGED
@@ -155,17 +155,17 @@ export const voicesResponse = z.object({
155
155
  voices: z.array(voiceCatalogEntry),
156
156
  models: z.array(voiceModelEntry).optional(),
157
157
  });
158
- /**
159
- * Дефолт под текущий аватар (look-01 «warm storyteller»): `george` —
160
- * британский повествовательный голос, семантически совпадает с образом.
161
- * Изначально дефолтом ставился клон владельца, но на английских скриптах он
162
- * давал русский акцент (on-ear владельца 2026-07-20) — сменён на нейтральный
163
- * английский. Клон остаётся доступным пресетом `owner_ru_clone` для русских
164
- * скриптов. Подстановка дефолта — забота резолвера, а не схемы (схема хранит
165
- * `.optional()` без `.default()`, чтобы отличать явный выбор от умолчания —
166
- * нужно для warnings US-517).
167
- */
158
+ /** Голос, когда пол актёра неизвестен; подставляет резолвер, а не схема (US-517). */
159
+ /** История выбора дефолта — docs/16. */
168
160
  export const DEFAULT_VOICE_PRESET = "george";
161
+ /** Голос по умолчанию следует полу актёра (clipwright#183, docs/18, Д52). */
162
+ export const DEFAULT_VOICE_BY_GENDER = {
163
+ female: "sarah",
164
+ male: "george",
165
+ };
166
+ function defaultVoiceFor(gender) {
167
+ return gender === undefined ? DEFAULT_VOICE_PRESET : DEFAULT_VOICE_BY_GENDER[gender];
168
+ }
169
169
  /**
170
170
  * Форма сырого `voice_id` вендора. НАМЕРЕННО терпимая (16–32 алфанумерик):
171
171
  * ElevenLabs не документирует формат id, наблюдаемые id — 20 символов, но
@@ -174,17 +174,9 @@ export const DEFAULT_VOICE_PRESET = "george";
174
174
  * существования id делает бесплатный префлайт в воркере (US-515).
175
175
  */
176
176
  export const VOICE_ID_PATTERN = /^[A-Za-z0-9]{16,32}$/;
177
- /**
178
- * Чистое разрешение приоритета голосовых полей входа.
179
- *
180
- * Взаимоисключение `voice`/`voice_id` уже гарантировано `.refine` в
181
- * `makeUgcInput` (skills.ts), поэтому здесь — только приоритет и подстановка
182
- * дефолта, без повторной валидации. Приоритет: сырой `voice_id` (явный escape
183
- * hatch) > `voice` (имя пресета) > дефолт (клон владельца). Дефолт живёт тут, а
184
- * не в схеме, потому что схема хранит `.optional()` без `.default()`, чтобы
185
- * отличать явный выбор от умолчания (warnings US-517).
186
- */
187
- export function resolveVoiceSelection(input) {
177
+ /** Приоритет: сырой `voice_id` > `voice` > голос по полу актёра > `DEFAULT_VOICE_PRESET`. */
178
+ /** Пол даёт `voiceGenderFor` (actors.ts); взаимоисключение полей держит `makeUgcInput`. */
179
+ export function resolveVoiceSelection(input, gender) {
188
180
  if (input.voice_id !== undefined) {
189
181
  return { kind: "raw", voiceId: input.voice_id };
190
182
  }
@@ -194,16 +186,16 @@ export function resolveVoiceSelection(input) {
194
186
  return { kind: "catalog", slug: input.voice };
195
187
  return { kind: "preset", preset: input.voice };
196
188
  }
197
- return { kind: "preset", preset: DEFAULT_VOICE_PRESET };
189
+ return { kind: "preset", preset: defaultVoiceFor(gender) };
198
190
  }
199
191
  /** Модель: явное `tts_model` → модель пресета → дефолт (сырой `voice_id` пресета не имеет). */
200
192
  /** Голос каталога говорит на дефолте, как пресеты (решение владельца #164). */
201
- export function resolveTtsModel(input) {
193
+ export function resolveTtsModel(input, gender) {
202
194
  if (input.tts_model !== undefined)
203
195
  return input.tts_model;
204
196
  if (input.voice_id !== undefined)
205
197
  return DEFAULT_TTS_MODEL;
206
- const voice = input.voice ?? DEFAULT_VOICE_PRESET;
198
+ const voice = input.voice ?? defaultVoiceFor(gender);
207
199
  return isVoicePresetName(voice) ? VOICE_PRESETS[voice].model : DEFAULT_TTS_MODEL;
208
200
  }
209
201
  /**
@@ -276,14 +268,6 @@ export const RAW_VOICE_ID_VALIDATION_WARNING = "raw voice_id is verified against
276
268
  * заменяется. Поэтому правило старшинства здесь не применяется — но зафиксировано,
277
269
  * чтобы будущая подмена не была ошибочно заглушена условием (iii).
278
270
  *
279
- * ПОЧЕМУ НЕТ ГЕНДЕР-WARNING, И ДОВОД ТЕПЕРЬ ДРУГОЙ. Прежний ссылался на
280
- * отсутствие источника правды о поле АВАТАРА; источник измерен и записан
281
- * (`default-actor.ts`), поэтому довод снят как устаревший. Warning'а всё равно
282
- * нет по причине сильнее: пол актёра отдаётся ДАННЫМИ в поле `actor` ответа
283
- * `quote`, объявлять несоблюдённым нечего (голос исполняется как запрошен), а
284
- * предупреждение на каждом женском голосе клиент снять не может — docs/18, Д50.
285
- * Ни один кодовый путь ниже не порождает строки со словом gender по построению.
286
- *
287
271
  * ПОЧЕМУ тест не подавляет обязательный warning про подмену №3 (принцип DR-2):
288
272
  * обязанность №3 крепится к НЕИСПОЛНЕННОМУ явному запросу (клиент попросил 1080p,
289
273
  * дали 720p) — это подмена, у неё старшинство над (iii). Здесь же голос либо
@@ -296,8 +280,8 @@ export function buildVoiceWarnings(input) {
296
280
  if (input.voice_id !== undefined) {
297
281
  return [RAW_VOICE_ID_VALIDATION_WARNING];
298
282
  }
299
- // Условие (iii): голос НЕ задан явно → дефолт (клон владельца). На дефолтном
300
- // happy-path языковых warning'ов НЕТ НИКОГДА — это несущий анти-шум US-517.
283
+ // Условие (iii): голос не задан явно → языковых warning'ов нет никогда (анти-шум US-517).
284
+ // Голос по полу актёра обсуждает `buildActorGenderWarnings` (actors.ts).
301
285
  if (input.voice === undefined) {
302
286
  return [];
303
287
  }
@@ -335,8 +319,8 @@ export function buildVoiceWarnings(input) {
335
319
  ];
336
320
  }
337
321
  /** Модель, не читающая ударения, на тексте, где они важны. На умолчании (v3) молчит всегда. */
338
- export function buildSpeechModelWarnings(input) {
339
- const model = resolveTtsModel(input);
322
+ export function buildSpeechModelWarnings(input, gender) {
323
+ const model = resolveTtsModel(input, gender);
340
324
  if (STRESS_MARK_MODELS.has(model))
341
325
  return [];
342
326
  // Знак после латиницы — акцент французского или испанского текста (NFD), не ударение.
@@ -1 +1 @@
1
- {"version":3,"file":"voices.js","sourceRoot":"","sources":["../src/voices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voices.js","sourceRoot":"","sources":["../src/voices.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clipwright/core",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "Zod schemas and the shared request/response contract of the Clipwright UGC video API",
5
5
  "license": "MIT",
6
6
  "author": "Dimantika Sp. z o.o.",
@@ -28,6 +28,10 @@
28
28
  "./voice-admission": {
29
29
  "types": "./dist/voice-admission.d.ts",
30
30
  "default": "./dist/voice-admission.js"
31
+ },
32
+ "./voice-listing": {
33
+ "types": "./dist/voice-listing.d.ts",
34
+ "default": "./dist/voice-listing.js"
31
35
  }
32
36
  },
33
37
  "dependencies": {