@clipwright/core 0.19.0 → 0.21.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.
Files changed (135) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/__fixtures__/queue-promises.d.ts +5 -84
  3. package/dist/__fixtures__/queue-promises.js +7 -84
  4. package/dist/__fixtures__/queue-promises.js.map +1 -1
  5. package/dist/account-actors.d.ts +25 -25
  6. package/dist/account-actors.js +25 -25
  7. package/dist/account-actors.js.map +1 -1
  8. package/dist/account.d.ts +4 -10
  9. package/dist/account.js +6 -12
  10. package/dist/account.js.map +1 -1
  11. package/dist/actor-bounds.d.ts +4 -4
  12. package/dist/actor-bounds.js +4 -4
  13. package/dist/actor-bounds.js.map +1 -1
  14. package/dist/actor-qualities.d.ts +3 -3
  15. package/dist/actor-qualities.js +3 -3
  16. package/dist/actor-qualities.js.map +1 -1
  17. package/dist/actors.d.ts +8 -8
  18. package/dist/actors.js +9 -9
  19. package/dist/actors.js.map +1 -1
  20. package/dist/api-failure.d.ts +28 -129
  21. package/dist/api-failure.js +52 -225
  22. package/dist/api-failure.js.map +1 -1
  23. package/dist/aspect.d.ts +26 -96
  24. package/dist/aspect.js +32 -108
  25. package/dist/aspect.js.map +1 -1
  26. package/dist/contract-dispositions.d.ts +42 -167
  27. package/dist/contract-dispositions.js +54 -184
  28. package/dist/contract-dispositions.js.map +1 -1
  29. package/dist/endpoints.d.ts +5 -5
  30. package/dist/endpoints.js +5 -3
  31. package/dist/endpoints.js.map +1 -1
  32. package/dist/errors.d.ts +33 -101
  33. package/dist/errors.js +42 -108
  34. package/dist/errors.js.map +1 -1
  35. package/dist/faceless-cut-style.d.ts +115 -0
  36. package/dist/faceless-cut-style.js +109 -0
  37. package/dist/faceless-cut-style.js.map +1 -0
  38. package/dist/faceless-image-qualification.d.ts +97 -0
  39. package/dist/faceless-image-qualification.js +145 -0
  40. package/dist/faceless-image-qualification.js.map +1 -0
  41. package/dist/faceless-price.d.ts +21 -0
  42. package/dist/faceless-price.js +25 -0
  43. package/dist/faceless-price.js.map +1 -0
  44. package/dist/faceless-public-plan.d.ts +71 -0
  45. package/dist/faceless-public-plan.js +166 -0
  46. package/dist/faceless-public-plan.js.map +1 -0
  47. package/dist/faceless-public.d.ts +107 -0
  48. package/dist/faceless-public.js +74 -0
  49. package/dist/faceless-public.js.map +1 -0
  50. package/dist/faceless-short-61.d.ts +83 -0
  51. package/dist/faceless-short-61.js +152 -0
  52. package/dist/faceless-short-61.js.map +1 -0
  53. package/dist/faceless-storyboard-timing.d.ts +40 -0
  54. package/dist/faceless-storyboard-timing.js +97 -0
  55. package/dist/faceless-storyboard-timing.js.map +1 -0
  56. package/dist/faceless-storyboard-v2-plan.d.ts +3 -0
  57. package/dist/faceless-storyboard-v2-plan.js +112 -0
  58. package/dist/faceless-storyboard-v2-plan.js.map +1 -0
  59. package/dist/faceless-storyboard-v2-timing.d.ts +63 -0
  60. package/dist/faceless-storyboard-v2-timing.js +143 -0
  61. package/dist/faceless-storyboard-v2-timing.js.map +1 -0
  62. package/dist/faceless-storyboard-v2.d.ts +44 -0
  63. package/dist/faceless-storyboard-v2.js +43 -0
  64. package/dist/faceless-storyboard-v2.js.map +1 -0
  65. package/dist/faceless-storyboard.d.ts +55 -0
  66. package/dist/faceless-storyboard.js +105 -0
  67. package/dist/faceless-storyboard.js.map +1 -0
  68. package/dist/idempotency.d.ts +10 -44
  69. package/dist/idempotency.js +18 -44
  70. package/dist/idempotency.js.map +1 -1
  71. package/dist/index.d.ts +3 -0
  72. package/dist/index.js +24 -25
  73. package/dist/index.js.map +1 -1
  74. package/dist/long-form-pricing.d.ts +4 -4
  75. package/dist/long-form-pricing.js +4 -4
  76. package/dist/long-form-pricing.js.map +1 -1
  77. package/dist/long-form-profile.d.ts +2 -2
  78. package/dist/long-form-profile.js +2 -2
  79. package/dist/long-form-profile.js.map +1 -1
  80. package/dist/pacing.d.ts +1 -1
  81. package/dist/pacing.js +1 -1
  82. package/dist/pacing.js.map +1 -1
  83. package/dist/public-endpoints.d.ts +9 -11
  84. package/dist/public-endpoints.js +11 -13
  85. package/dist/public-endpoints.js.map +1 -1
  86. package/dist/rate-limit.d.ts +23 -130
  87. package/dist/rate-limit.js +27 -132
  88. package/dist/rate-limit.js.map +1 -1
  89. package/dist/render-backend.d.ts +30 -145
  90. package/dist/render-backend.js +4 -27
  91. package/dist/render-backend.js.map +1 -1
  92. package/dist/run-preflight.d.ts +4 -4
  93. package/dist/run-preflight.js +10 -10
  94. package/dist/run-preflight.js.map +1 -1
  95. package/dist/run-static-warnings.d.ts +8 -8
  96. package/dist/run-static-warnings.js +26 -24
  97. package/dist/run-static-warnings.js.map +1 -1
  98. package/dist/runs.d.ts +34 -55
  99. package/dist/runs.js +28 -94
  100. package/dist/runs.js.map +1 -1
  101. package/dist/script-integrity.d.ts +6 -7
  102. package/dist/script-integrity.js +7 -8
  103. package/dist/script-integrity.js.map +1 -1
  104. package/dist/semantic-inserts.d.ts +4 -4
  105. package/dist/semantic-inserts.js +6 -6
  106. package/dist/semantic-inserts.js.map +1 -1
  107. package/dist/skills.d.ts +37 -108
  108. package/dist/skills.js +77 -161
  109. package/dist/skills.js.map +1 -1
  110. package/dist/tts-backend.d.ts +13 -42
  111. package/dist/tts-backend.js +2 -10
  112. package/dist/tts-backend.js.map +1 -1
  113. package/dist/uploads.d.ts +4 -4
  114. package/dist/uploads.js +4 -4
  115. package/dist/uploads.js.map +1 -1
  116. package/dist/vendor-response.d.ts +17 -80
  117. package/dist/vendor-response.js +19 -67
  118. package/dist/vendor-response.js.map +1 -1
  119. package/dist/voice-admission.d.ts +5 -5
  120. package/dist/voice-admission.js +6 -6
  121. package/dist/voice-admission.js.map +1 -1
  122. package/dist/voice-catalog-data.d.ts +2 -2
  123. package/dist/voice-catalog-data.js +2 -2
  124. package/dist/voice-catalog-data.js.map +1 -1
  125. package/dist/voice-catalog.d.ts +5 -5
  126. package/dist/voice-catalog.generated.json +56 -54
  127. package/dist/voice-catalog.js +6 -6
  128. package/dist/voice-catalog.js.map +1 -1
  129. package/dist/voice-listing.d.ts +4 -4
  130. package/dist/voice-listing.js +6 -6
  131. package/dist/voice-listing.js.map +1 -1
  132. package/dist/voices.d.ts +40 -82
  133. package/dist/voices.js +56 -99
  134. package/dist/voices.js.map +1 -1
  135. package/package.json +1 -1
@@ -1,30 +1,20 @@
1
1
  import { z } from "zod";
2
2
  import { makeUgcInputShape } from "./skills.js";
3
3
  import { BROLL_POLICY_DESCRIPTION } from "./broll-policy.js";
4
- /** РЕЕСТР ДИСПОЗИЦИЙ ПОЛЕЙ ВХОДА `make_ugc`: у каждого поля обязано быть записанное */
5
- /** решение. Тип — страж ПОЛНОТЫ, истинность доказывает egress-тест. */
6
- /**
7
- * Версия публичного контракта. Отдаётся заголовком `X-Clipwright-Contract` и
8
- * полем `contract_version` в ответе quote. Любое следующее ломающее изменение
9
- * обязано её двигать; до этого пересмотра версии не было вообще, поэтому первое
10
- * её значение совпадает с месяцем самого пересмотра.
11
- */
4
+ /** Disposition registry for `make_ugc` input fields: every field must have a recorded */
5
+ /** decision. The type guards completeness; the egress test proves truth. */
6
+ /** Public contract version, sent as the `X-Clipwright-Contract` header and as `contract_version` */
7
+ /** in the quote response. Every breaking change must bump it. */
12
8
  export const CONTRACT_VERSION = "2026-09-14";
13
9
  export const CONTRACT_VERSION_HEADER = "X-Clipwright-Contract";
14
- /**
15
- * Таблица решений. `as const satisfies Record<…>` даёт СРАЗУ ДВА свойства:
16
- * `satisfies` — страж полноты (поле входа без строки здесь не компилируется),
17
- * `as const` — литеральные типы, из которых ниже выводится множество
18
- * отклонённых полей. Обычная аннотация `: Record<…>` дала бы только первое, и
19
- * `offeredUgcInputShape` пришлось бы перечислять руками — то есть завести
20
- * второй источник правды ровно там, где мы чиним последствия первого.
21
- */
10
+ /** `satisfies` guards completeness; `as const` keeps literal types, from which the rejected */
11
+ /** set is derived below instead of being listed by hand. */
22
12
  export const FIELD_DISPOSITIONS = {
23
13
  script: { kind: "implemented", provenBy: "egress" },
24
14
  voice: { kind: "implemented", provenBy: "egress" },
25
15
  voice_id: { kind: "implemented", provenBy: "egress" },
26
16
  tts_model: { kind: "implemented", provenBy: "egress" },
27
- // Поля, которые не доезжают до рендера и объявляются несоблюдёнными.
17
+ // Fields that do not reach the render and are reported as not honored.
28
18
  person: {
29
19
  kind: "warned",
30
20
  warning: "person is not honored yet: this request uses the default actor; choose actor_id from list_actors or provide image to select a different face",
@@ -50,16 +40,11 @@ export const FIELD_DISPOSITIONS = {
50
40
  warning: "caption_style is not honored: captions are not rendered in this prototype (stage-B)",
51
41
  triggersWhen: "differs-from-default",
52
42
  },
53
- // US-522 перевёл обе строки из `warned` в `implemented`: адаптер больше не
54
- // шлёт вендору литералы `1080p`/`9:16`, а берёт значения из запроса. Именно
55
- // `resolution` был самым опасным полем аудита — он ЧИТАЛСЯ в таске и потому
56
- // выглядел рабочим, а до вендора не доезжал. Поэтому обе строки прикрыты
57
- // egress-тестами: три разрешения обязаны дать три РАЗНЫХ тела `/v3/videos`.
43
+ // Both reach the vendor from the request; egress tests require three resolutions
44
+ // to produce three different request bodies.
58
45
  resolution: { kind: "implemented", provenBy: "egress" },
59
46
  aspect_ratio: { kind: "implemented", provenBy: "egress" },
60
- // US-524 довёл `image` до вендора. Диспозиция ОБУСЛОВЛЕНА килсвитчем
61
- // `CLIPWRIGHT_REMOTE_FETCH`: базовая строка здесь — `implemented`, а при
62
- // выключенном флаге `resolveDispositions` переводит её в `rejected` (см. ниже).
47
+ // Gated by `CLIPWRIGHT_REMOTE_FETCH`: `resolveDispositions` rejects it when the flag is off.
63
48
  image: { kind: "implemented", provenBy: "egress" },
64
49
  actor_id: { kind: "implemented", provenBy: "egress" },
65
50
  actor_gender: { kind: "implemented", provenBy: "egress" },
@@ -75,51 +60,33 @@ export const FIELD_DISPOSITIONS = {
75
60
  kind: "rejected",
76
61
  message: "broll_url is not supported yet: b-roll requires segmented composition. Omit it",
77
62
  },
78
- // Заведено US-528 вместе с самой маркировкой; US-539 перевёл строку из
79
- // `rejected` в `implemented`. Плашка требует выжигания в кадр, то есть
80
- // композиции, — она появилась в US-527 и доказана живым `composed.mp4`.
81
- // Диспозиция ОБУСЛОВЛЕНА килсвитчем `CLIPWRIGHT_COMPOSE` тем же приёмом, что
82
- // и `background`: при выключенной стадии выжечь плашку некому, и поле снова
83
- // отклоняется, а не принимается и тихо игнорируется.
63
+ // Burned in by composition; gated by `CLIPWRIGHT_COMPOSE`, so with composition off
64
+ // the field is rejected rather than silently ignored.
84
65
  disclosure_overlay: { kind: "implemented", provenBy: "composition" },
85
- // Заведено US-527 вместе с самой укладкой. Поле принимается только тогда,
86
- // когда композиция действительно кладёт клип в кадр — до этого оно обещало
87
- // бы выбор фона, которого некому исполнить. Переключение доказывается
88
- // рендером, а не готовностью схемы.
89
- // US-527 перевёл строку из `rejected` в `implemented`: композиция реально
90
- // кладёт клип в кадр и объявляет долю полей в `warnings[]`. Диспозиция
91
- // ОБУСЛОВЛЕНА килсвитчем `CLIPWRIGHT_COMPOSE` — как `image` обусловлен
92
- // `CLIPWRIGHT_REMOTE_FETCH`: при выключенной стадии поле снова отклоняется,
93
- // потому что исполнять выбор фона в этот момент некому.
66
+ // Applied by composition and gated by `CLIPWRIGHT_COMPOSE`, like `image` is gated
67
+ // by `CLIPWRIGHT_REMOTE_FETCH`.
94
68
  background: { kind: "implemented", provenBy: "composition" },
95
- // ЕДИНСТВЕННАЯ форма раскрытия, которая доходит. Проигнорированный `look`
96
- // портит кадр — пользователь видит результат. Проигнорированный
97
- // `webhook_url` ломает интеграцию: агент подписался и ПЕРЕСТАЛ поллить, а
98
- // `warnings[]` доставляются через `get_run` — по тому самому каналу, от
99
- // которого клиент отказался. Предупреждение на канале, который никто не
100
- // слушает, раскрытием не является; поэтому здесь только синхронный отказ.
69
+ // Only a synchronous refusal reaches the caller: a subscriber stops polling, and
70
+ // `warnings[]` arrive through the very `get_run` channel it abandoned.
101
71
  webhook_url: {
102
72
  kind: "rejected",
103
73
  message: "webhook_url is not supported: no webhook is ever delivered. Poll get_run with the run_id instead",
104
74
  },
105
75
  };
106
- /** Поля входа в порядке объявления shape — детерминированный обход реестра. */
76
+ /** Input fields in shape declaration order: a deterministic walk of the registry. */
107
77
  const CONTRACT_FIELDS = Object.keys(makeUgcInputShape);
108
- /** `create_actor` открыт только вместе с фетч-поверхностью: без неё личного актёра не отрендерить. */
78
+ /** `create_actor` is open only with the fetch surface: a personal actor cannot render without it. */
109
79
  export function isActorGenerationEnabled(env = process.env) {
110
80
  return env.CLIPWRIGHT_ACTOR_GENERATION === "1" && env.CLIPWRIGHT_REMOTE_FETCH === "1";
111
81
  }
112
- /** Лицо словами делает `create_actor`, поэтому при включённой генерации совет ведёт туда. */
82
+ /** `create_actor` builds a face from words, so with generation on the advice points there. */
113
83
  const PERSON_WITH_ACTOR_GENERATION = {
114
84
  kind: "warned",
115
85
  warning: "person is not honored: this request uses the default actor; create a personal actor from the description with create_actor, then pass its actor_id",
116
86
  triggersWhen: "present",
117
87
  };
118
- /**
119
- * Значение флагов из окружения. Читается один раз на процесс: килсвитч ставится
120
- * на деплое, а не меняется от запроса к запросу, и `tools/list` не должен
121
- * дрожать между двумя соседними вызовами.
122
- */
88
+ /** Flags from the environment, read once per process: a kill switch is set at deploy, */
89
+ /** and `tools/list` must not flicker between calls. */
123
90
  export function contractFlagsFromEnv(env = process.env) {
124
91
  return {
125
92
  remoteFetch: env.CLIPWRIGHT_REMOTE_FETCH === "1",
@@ -136,26 +103,24 @@ const REMOTE_FETCH_DISABLED = {
136
103
  kind: "rejected",
137
104
  message: "image is temporarily disabled (remote media fetch is off); omit it to render with the default actor",
138
105
  };
139
- /**
140
- * Таблица диспозиций С УЧЁТОМ флагов. Базовая `FIELD_DISPOSITIONS` описывает,
141
- * что код умеет; эта функция — что он предлагает ПРЯМО СЕЙЧАС.
142
- */
143
- /** Отказ по `background`, когда стадия композиции выключена. */
106
+ /** Refusal for `background` when the composition stage is off. */
144
107
  const COMPOSE_DISABLED = {
145
108
  kind: "rejected",
146
109
  message: "background is not available: composition is disabled on this deployment. Request an aspect_ratio close to your image instead",
147
110
  };
148
- /** Отказ по `disclosure_overlay`, когда стадия композиции выключена. */
111
+ /** Refusal for `disclosure_overlay` when the composition stage is off. */
149
112
  const DISCLOSURE_OVERLAY_DISABLED = {
150
113
  kind: "rejected",
151
114
  message: "disclosure_overlay is not available: composition is disabled on this deployment. The output is still marked in the run contract and in the file metadata",
152
115
  };
153
- /** Предпосылки длинной формы — ОДНО выражение на все её поля: разъехавшись, */
154
- /** две копии открыли бы `segments` там, где `inserts` ещё закрыты. */
116
+ /** Long-form prerequisites in ONE expression for all its fields: two copies could */
117
+ /** open `segments` while `inserts` stay closed. */
155
118
  function longFormReady(flags) {
156
119
  return flags.longForm === true && flags.remoteFetch && flags.compose;
157
120
  }
158
121
  const LONG_FORM_DISABLED = { kind: "rejected", message: LONG_FORM_DISABLED_MESSAGE };
122
+ /** Dispositions with flags applied: the base table says what the code can do, this */
123
+ /** says what it offers right now. */
159
124
  export function resolveDispositions(flags) {
160
125
  const longForm = longFormReady(flags);
161
126
  return {
@@ -167,57 +132,31 @@ export function resolveDispositions(flags) {
167
132
  actor_id: flags.remoteFetch ? FIELD_DISPOSITIONS.actor_id : {
168
133
  kind: "rejected", message: "actor_id is temporarily disabled (remote media fetch is off); omit it to use the default actor",
169
134
  },
170
- // Подсказка о лице из `image` без самого `image` не имеет смысла: гасится вместе с ним.
135
+ // A face hint for `image` means nothing without `image`, so it switches off with it.
171
136
  actor_gender: flags.remoteFetch ? FIELD_DISPOSITIONS.actor_gender : {
172
137
  kind: "rejected", message: "actor_gender is temporarily disabled together with image (remote media fetch is off); omit both to use the default actor",
173
138
  },
174
- // Тот же приём, что у `image` (US-524): базовая строка объявляет, что поле
175
- // РАБОТАЕТ, а выключенный флаг переводит её в отказ. Обещать выбор фона,
176
- // когда стадия композиции выключена, значило бы принять поле, которое
177
- // некому исполнить.
139
+ // With composition off nothing can apply a background, so the field is rejected.
178
140
  background: flags.compose ? FIELD_DISPOSITIONS.background : COMPOSE_DISABLED,
179
- // Та же обусловленность, что у `background`: видимая плашка выжигается
180
- // стадией композиции, и при выключенном флаге исполнять её некому.
141
+ // Same gating as `background`: the visible overlay is burned in by composition.
181
142
  disclosure_overlay: flags.compose
182
143
  ? FIELD_DISPOSITIONS.disclosure_overlay
183
144
  : DISCLOSURE_OVERLAY_DISABLED,
184
145
  };
185
146
  }
186
- /**
187
- * ДЕЙСТВУЮЩАЯ таблица процесса — то, из чего строятся все поверхности.
188
- *
189
- * Отличается от `FIELD_DISPOSITIONS` ровно на применённые флаги: базовая
190
- * таблица говорит, что код УМЕЕТ, эта — что он предлагает прямо сейчас.
191
- */
147
+ /** The process's effective table, from which every surface is built: `FIELD_DISPOSITIONS` */
148
+ /** with the flags applied. */
192
149
  export const EFFECTIVE_DISPOSITIONS = resolveDispositions({
193
150
  ...contractFlagsFromEnv(),
194
151
  actorGeneration: isActorGenerationEnabled(),
195
152
  });
196
- /**
197
- * Дефолт поля — то, что схема подставит на `undefined`. Берём у самой схемы, а
198
- * не переписываем значения рядом: второй список дефолтов разошёлся бы с первым
199
- * тем же способом, которым разошлись схема и рендер.
200
- */
153
+ /** A field's default, taken from the schema itself: a second list of defaults would drift. */
201
154
  const FIELD_DEFAULTS = Object.fromEntries(CONTRACT_FIELDS.map((field) => {
202
155
  const parsed = makeUgcInputShape[field].safeParse(undefined);
203
156
  return [field, parsed.success ? parsed.data : undefined];
204
157
  }));
205
- /**
206
- * Текст диспозиции для JSON-Schema `description` (блокер B9).
207
- *
208
- * ЗАЧЕМ: `offeredUgcInputShape` убирает отклонённое поле из схемы, но там, где
209
- * поле почему-либо остаётся видимым, вызыватель обязан прочитать ПРИЧИНУ прямо
210
- * в описании. Тогда самоописательность — свойство схемы по построению, а не
211
- * разовая правка двух файлов, которую следующее поле воспроизведёт заново.
212
- */
213
- /**
214
- * Примечание для JSON-Schema `description` — по БАЗОВОЙ таблице.
215
- *
216
- * Варианта «по действующей таблице» здесь нет НАМЕРЕННО, и это следствие
217
- * топологии: схему видит клиент, а флаги принадлежат серверу. Причину
218
- * аварийного отказа вызыватель узнаёт из текста 400, а не из описания поля,
219
- * которое у него в схеме и так осталось.
220
- */
158
+ /** Disposition note for the JSON Schema `description`, from the base table: the schema */
159
+ /** belongs to the client, the flags to the server, whose 400 text names emergency refusals. */
221
160
  export function dispositionNote(field) {
222
161
  return noteFor(FIELD_DISPOSITIONS[field]);
223
162
  }
@@ -237,60 +176,19 @@ function annotate(field) {
237
176
  const schema = makeUgcInputShape[field];
238
177
  return (note ? schema.describe(note) : schema);
239
178
  }
240
- /**
241
- * ПРИМЕЧАНИЕ О ТОПОЛОГИИ, БЕЗ КОТОРОГО ВЫБОР НИЖЕ ВЫГЛЯДИТ ПРОИЗВОЛЬНЫМ.
242
- *
243
- * `offeredUgcInputShape` порождает `tools/list` MCP-сервера, а MCP-сервер —
244
- * stdio-процесс НА МАШИНЕ ПОЛЬЗОВАТЕЛЯ, говорящий с нашим API по HTTP. Значит
245
- * его `process.env` — окружение КЛИЕНТА, а не сервера. Строй мы предлагаемую
246
- * поверхность по флагам, аварийный рубильник сервера начал бы управлять
247
- * клиентской схемой: у пользователя без `CLIPWRIGHT_REMOTE_FETCH` поле `image`
248
- * пропадало бы из `tools/list`, даже когда на сервере оно работает, — и
249
- * наоборот, выставив переменную у себя, клиент вернул бы поле в схему, а
250
- * сервер ответил бы 400.
251
- *
252
- * Поэтому граница проведена так:
253
- * - ЧТО ПРЕДЛАГАЕТСЯ (схема, типы SDK, `--help`) — из БАЗОВОЙ таблицы: это
254
- * форма контракта, одинаковая у всех;
255
- * - ЧТО ПРИНИМАЕТСЯ ПРЯМО СЕЙЧАС (`rejectedFields`, `dispositionWarnings`) —
256
- * из ДЕЙСТВУЮЩЕЙ: это решение сервера, и принимает его сервер.
257
- * Килсвитч остаётся аварийным отказом на входе API, а не правкой чужой схемы.
258
- */
259
- /**
260
- * Полный shape входа, где каждое несоблюдённое поле несёт причину в описании.
261
- * Нужен там, где поверхность обязана показать ВСЕ поля (например, таблица
262
- * диспозиций в доках); предлагать поля вызывателю следует не отсюда, а из
263
- * `offeredUgcInputShape`.
264
- */
179
+ // The MCP server runs on the user's machine, so its env is the client's. What is offered
180
+ // comes from the base table; what is accepted right now comes from the effective one.
181
+ /** Full input shape where every unhonored field carries its reason. For surfaces that list */
182
+ /** all fields; offer fields to callers from `offeredUgcInputShape` instead. */
265
183
  export const annotatedUgcInputShape = Object.fromEntries(CONTRACT_FIELDS.map((field) => [field, annotate(field)]));
266
- /**
267
- * ПРЕДЛАГАЕМАЯ поверхность входа = полный shape МИНУС отклонённые поля
268
- * (блокер B4).
269
- *
270
- * Отбивать отклонённое поле четырёхсотым, продолжая объявлять его в
271
- * `tools/list`, в `--help` и в типах SDK, — это «предлагаем и наказываем»:
272
- * агент читает схему, видит `character`, вызывает и получает 400. Множество
273
- * выводится ИЗ РЕЕСТРА, поэтому смена диспозиции переносит поле между
274
- * поверхностями одной строкой, а не правкой каждого потребителя.
275
- */
184
+ /** Offered input surface = full shape minus rejected fields, so no schema offers a field */
185
+ /** that then gets a 400. Derived from the registry, so one line moves a field. */
276
186
  export const offeredUgcInputShape = Object.fromEntries(CONTRACT_FIELDS.filter((field) => FIELD_DISPOSITIONS[field].kind !== "rejected").map((field) => [field, annotate(field)]));
277
- /**
278
- * Тип ВХОДА для SDK/CLI/MCP — выводится из ПРЕДЛАГАЕМОГО shape, а не из
279
- * полного (блокер B4 на поверхности типов). Раньше он строился из полной схемы,
280
- * и TypeScript-пользователь получал автокомплит на `character`/`webhook_url`,
281
- * вызывал и получал 400 — тот же дефект «предлагаем и наказываем», только не в
282
- * MCP. По правилу проекта №2 типы SDK — контрактная поверхность наравне с
283
- * остальными.
284
- *
285
- * ЗАЧЕМ отдельно от `MakeUgcInput` (= выход `z.infer`, где дефолты уже
286
- * обязательны): без него SDK ждал бы полностью заполненный объект.
287
- */
187
+ /** Input type for SDK/CLI/MCP, from the offered shape. Separate from `MakeUgcInput` (the */
188
+ /** `z.infer` output, where defaults are required) so callers need not fill every field. */
288
189
  export const offeredUgcInput = z.object(offeredUgcInputShape);
289
- /**
290
- * Отклонённые поля, ПРИСУТСТВУЮЩИЕ во входе. Один вызов — три поверхности:
291
- * зовётся на входе API (400 до создания рана и до резервирования кредитов), в
292
- * MCP и в SDK.
293
- */
190
+ /** Rejected fields present in the input. Called by the API (400 before a run or a */
191
+ /** reserve), by MCP and by the SDK. */
294
192
  export function rejectedFields(input) {
295
193
  const hits = [];
296
194
  for (const field of CONTRACT_FIELDS) {
@@ -304,10 +202,10 @@ export function rejectedFields(input) {
304
202
  return hits;
305
203
  }
306
204
  const normalizedFieldName = (name) => name.toLowerCase().replace(/[^a-z0-9]/g, "");
307
- /** Поля, которые предлагаются клиенту: отклонённые в перечень не входят. */
205
+ /** Fields offered to the client; rejected ones are not listed. */
308
206
  export const ACCEPTED_UGC_FIELDS = Object.keys(offeredUgcInputShape);
309
- /** Ключи вне перечня `fields` (по умолчанию — контракт). Отклонённые поля контракта */
310
- /** сюда не попадают — их называет `rejectedFields` своей причиной (clipwright#166). */
207
+ /** Keys outside `fields` (the contract by default). Rejected contract fields are not */
208
+ /** included: `rejectedFields` names them with their reason. */
311
209
  export function unknownFields(raw, fields = CONTRACT_FIELDS) {
312
210
  if (raw === null || typeof raw !== "object" || Array.isArray(raw))
313
211
  return [];
@@ -319,20 +217,8 @@ export function unknownFields(raw, fields = CONTRACT_FIELDS) {
319
217
  suggestion: fields.find((candidate) => normalizedFieldName(candidate) === normalizedFieldName(field)),
320
218
  }));
321
219
  }
322
- /**
323
- * Warnings реестра для входа рана (правило проекта №3).
324
- *
325
- * Вход ожидается УЖЕ РАСПАРСЕННЫМ: дефолты подставлены, поэтому сравнение с
326
- * дефолтом различает «клиент промолчал» и «клиент явно попросил другое».
327
- * Сравнение через `===` достаточно: все дефолтные значения контракта —
328
- * примитивы (строка или булев).
329
- *
330
- * Это статические тексты диспозиций. ДИНАМИЧЕСКИЕ warnings (подмена
331
- * разрешения/формата, голосовые) порождаются именованными генераторами
332
- * (`negotiateCapabilities`, `buildVoiceWarnings`,
333
- * `RAW_VOICE_ID_VALIDATION_WARNING`) — каждый со своим тестом; реестр их не
334
- * поглощает и на них не претендует.
335
- */
220
+ /** Registry warnings for a parsed run input; defaults are filled in, so `===` tells silence */
221
+ /** from an explicit different value. Dynamic warnings come from their own generators. */
336
222
  export function dispositionWarnings(input) {
337
223
  const warnings = [];
338
224
  for (const field of CONTRACT_FIELDS) {
@@ -353,27 +239,11 @@ export function dispositionWarnings(input) {
353
239
  }
354
240
  return warnings;
355
241
  }
356
- /**
357
- * Поля с диспозицией `implemented` — вход мета-тестов покрытия.
358
- *
359
- * Считается по БАЗОВОЙ таблице, а не по действующей: доказательство относится к
360
- * КОДУ, и выключенный операционный килсвитч его не отменяет.
361
- */
242
+ /** Fields with an `implemented` disposition, input to the coverage meta-tests. From the */
243
+ /** base table: proof belongs to the code, and a disabled kill switch does not revoke it. */
362
244
  export const IMPLEMENTED_FIELDS = CONTRACT_FIELDS.filter((field) => FIELD_DISPOSITIONS[field].kind === "implemented");
363
- /**
364
- * ДВА РОДА ДОКАЗАТЕЛЬСТВА, И ОНИ НЕ ВЗАИМОЗАМЕНЯЕМЫ (US-527).
365
- *
366
- * До этой стори `implemented` означало ровно одно: «поле доезжает до вендора»,
367
- * и мета-тест сверял весь список с egress-покрытием. Композиция ввела второй
368
- * род: `background` до вендора не доезжает НИКОГДА — он применяется у нас, уже
369
- * после того как вендор отдал клип. Сверять его egress-тестом бессмысленно,
370
- * а записать в тот же список — значит либо получить вечно красный мета-тест,
371
- * либо ослабить его до бесполезности.
372
- *
373
- * Поэтому список разделён по `provenBy`, и у каждого рода — свой мета-тест:
374
- * egress-поля сверяются с захватом исходящих запросов, композиционные — с
375
- * тестами стадии композиции.
376
- */
245
+ /** Two kinds of proof, not interchangeable: egress fields are checked against captured */
246
+ /** outgoing requests, composition fields (applied after the vendor) against composition tests. */
377
247
  export const EGRESS_PROVEN_FIELDS = CONTRACT_FIELDS.filter((field) => {
378
248
  const disposition = FIELD_DISPOSITIONS[field];
379
249
  return disposition.kind === "implemented" && disposition.provenBy === "egress";
@@ -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,15 +1,15 @@
1
1
  export interface ApiEndpoint {
2
2
  method: "GET" | "POST" | "DELETE";
3
- /** Путь в записи Hono: параметр — `:id`. */
3
+ /** The path in Hono notation: a parameter is `:id`. */
4
4
  path: string;
5
- /** Может ли вызов списать кредиты. */
5
+ /** Whether the call may charge credits. */
6
6
  billed: boolean;
7
- /** Называет ли его квикстарт. */
7
+ /** Whether the quickstart names it. */
8
8
  onQuickstart: boolean;
9
- /** Разбирает ли маршрут тело как JSON. `POST /v1/uploads` принимает байты. */
9
+ /** Whether the route parses the body as JSON. `POST /v1/uploads` takes bytes. */
10
10
  jsonBody: boolean;
11
11
  }
12
12
  export declare const API_ENDPOINTS: readonly ApiEndpoint[];
13
- /** `GET /v1/runs/{id}` — запись для людей: параметр в фигурных скобках. */
13
+ /** `GET /v1/runs/{id}`: the human notation, with the parameter in curly braces. */
14
14
  export declare function endpointLabel(endpoint: ApiEndpoint): string;
15
15
  export declare const QUICKSTART_ENDPOINTS: readonly ApiEndpoint[];
package/dist/endpoints.js CHANGED
@@ -1,7 +1,9 @@
1
- /** Маршруты API (clipwright#135): контрактный тест `apps/api` сверяет их с `app.routes`, */
2
- /** квикстарт печатает отсюда список «что стоит денег». */
1
+ /** API routes: the API contract test checks them against `app.routes`, and the quickstart */
2
+ /** prints the "what costs money" list from here. */
3
3
  import { ACTOR_DEFAULTS_PATH } from "./broll-policy.js";
4
4
  export const API_ENDPOINTS = [
5
+ { method: "POST", path: "/v1/skills/make_faceless/quote", billed: false, onQuickstart: false, jsonBody: true },
6
+ { method: "POST", path: "/v1/skills/make_faceless/run", billed: true, onQuickstart: false, jsonBody: true },
5
7
  { method: "GET", path: "/health", billed: false, onQuickstart: true, jsonBody: false },
6
8
  { method: "GET", path: "/v1/voices", billed: false, onQuickstart: true, jsonBody: false },
7
9
  { method: "GET", path: "/v1/account", billed: false, onQuickstart: true, jsonBody: false },
@@ -18,7 +20,7 @@ export const API_ENDPOINTS = [
18
20
  { method: "POST", path: "/v1/uploads", billed: false, onQuickstart: false, jsonBody: false },
19
21
  { method: "GET", path: "/internal/portfolio-metrics", billed: false, onQuickstart: false, jsonBody: false },
20
22
  ];
21
- /** `GET /v1/runs/{id}` — запись для людей: параметр в фигурных скобках. */
23
+ /** `GET /v1/runs/{id}`: the human notation, with the parameter in curly braces. */
22
24
  export function endpointLabel(endpoint) {
23
25
  return `${endpoint.method} ${endpoint.path.replace(/:(\w+)/g, "{$1}")}`;
24
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,0DAA0D;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAcxD,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACtF,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzF,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1F,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC3F,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1F,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7G,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1G,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5F,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;CAC5G,CAAC;AAEF,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,QAAqB;IACjD,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA2B,aAAa,CAAC,MAAM,CAC9E,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CACpC,CAAC"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}