@clipwright/core 0.18.0 → 0.20.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 +44 -0
- package/dist/__fixtures__/queue-promises.d.ts +5 -84
- package/dist/__fixtures__/queue-promises.js +7 -84
- package/dist/__fixtures__/queue-promises.js.map +1 -1
- package/dist/account-actors.d.ts +25 -25
- package/dist/account-actors.js +25 -25
- package/dist/account-actors.js.map +1 -1
- package/dist/account.d.ts +4 -10
- package/dist/account.js +6 -12
- package/dist/account.js.map +1 -1
- package/dist/actor-bounds.d.ts +4 -4
- package/dist/actor-bounds.js +4 -4
- package/dist/actor-bounds.js.map +1 -1
- package/dist/actor-qualities.d.ts +3 -3
- package/dist/actor-qualities.js +3 -3
- package/dist/actor-qualities.js.map +1 -1
- package/dist/actors.d.ts +8 -8
- package/dist/actors.js +9 -9
- package/dist/actors.js.map +1 -1
- package/dist/api-failure.d.ts +28 -129
- package/dist/api-failure.js +52 -225
- package/dist/api-failure.js.map +1 -1
- package/dist/aspect.d.ts +26 -96
- package/dist/aspect.js +32 -108
- package/dist/aspect.js.map +1 -1
- package/dist/contract-dispositions.d.ts +42 -167
- package/dist/contract-dispositions.js +54 -184
- package/dist/contract-dispositions.js.map +1 -1
- package/dist/endpoints.d.ts +5 -5
- package/dist/endpoints.js +3 -3
- package/dist/endpoints.js.map +1 -1
- package/dist/errors.d.ts +33 -101
- package/dist/errors.js +42 -108
- package/dist/errors.js.map +1 -1
- package/dist/faceless-cut-style.d.ts +115 -0
- package/dist/faceless-cut-style.js +109 -0
- package/dist/faceless-cut-style.js.map +1 -0
- package/dist/faceless-image-qualification.d.ts +97 -0
- package/dist/faceless-image-qualification.js +145 -0
- package/dist/faceless-image-qualification.js.map +1 -0
- package/dist/faceless-short-61.d.ts +83 -0
- package/dist/faceless-short-61.js +152 -0
- package/dist/faceless-short-61.js.map +1 -0
- package/dist/faceless-storyboard-timing.d.ts +40 -0
- package/dist/faceless-storyboard-timing.js +97 -0
- package/dist/faceless-storyboard-timing.js.map +1 -0
- package/dist/faceless-storyboard-v2-plan.d.ts +3 -0
- package/dist/faceless-storyboard-v2-plan.js +112 -0
- package/dist/faceless-storyboard-v2-plan.js.map +1 -0
- package/dist/faceless-storyboard-v2-timing.d.ts +52 -0
- package/dist/faceless-storyboard-v2-timing.js +136 -0
- package/dist/faceless-storyboard-v2-timing.js.map +1 -0
- package/dist/faceless-storyboard-v2.d.ts +44 -0
- package/dist/faceless-storyboard-v2.js +43 -0
- package/dist/faceless-storyboard-v2.js.map +1 -0
- package/dist/faceless-storyboard.d.ts +55 -0
- package/dist/faceless-storyboard.js +105 -0
- package/dist/faceless-storyboard.js.map +1 -0
- package/dist/idempotency.d.ts +8 -44
- package/dist/idempotency.js +10 -44
- package/dist/idempotency.js.map +1 -1
- package/dist/index.js +21 -25
- package/dist/index.js.map +1 -1
- package/dist/long-form-pricing.d.ts +4 -4
- package/dist/long-form-pricing.js +4 -4
- package/dist/long-form-pricing.js.map +1 -1
- package/dist/long-form-profile.d.ts +2 -2
- package/dist/long-form-profile.js +2 -2
- package/dist/long-form-profile.js.map +1 -1
- package/dist/pacing.d.ts +1 -1
- package/dist/pacing.js +1 -1
- package/dist/pacing.js.map +1 -1
- package/dist/public-endpoints.d.ts +9 -11
- package/dist/public-endpoints.js +11 -13
- package/dist/public-endpoints.js.map +1 -1
- package/dist/rate-limit.d.ts +23 -130
- package/dist/rate-limit.js +27 -132
- package/dist/rate-limit.js.map +1 -1
- package/dist/render-backend.d.ts +30 -145
- package/dist/render-backend.js +4 -27
- package/dist/render-backend.js.map +1 -1
- package/dist/run-preflight.d.ts +4 -4
- package/dist/run-preflight.js +10 -10
- package/dist/run-preflight.js.map +1 -1
- package/dist/run-static-warnings.d.ts +8 -8
- package/dist/run-static-warnings.js +24 -24
- package/dist/run-static-warnings.js.map +1 -1
- package/dist/runs.d.ts +18 -55
- package/dist/runs.js +26 -94
- package/dist/runs.js.map +1 -1
- package/dist/script-integrity.d.ts +6 -7
- package/dist/script-integrity.js +7 -8
- package/dist/script-integrity.js.map +1 -1
- package/dist/semantic-inserts.d.ts +4 -4
- package/dist/semantic-inserts.js +6 -6
- package/dist/semantic-inserts.js.map +1 -1
- package/dist/skills.d.ts +33 -107
- package/dist/skills.js +72 -161
- package/dist/skills.js.map +1 -1
- package/dist/tts-backend.d.ts +13 -42
- package/dist/tts-backend.js +2 -10
- package/dist/tts-backend.js.map +1 -1
- package/dist/uploads.d.ts +4 -4
- package/dist/uploads.js +4 -4
- package/dist/uploads.js.map +1 -1
- package/dist/vendor-response.d.ts +17 -80
- package/dist/vendor-response.js +19 -67
- package/dist/vendor-response.js.map +1 -1
- package/dist/voice-admission.d.ts +5 -5
- package/dist/voice-admission.js +6 -6
- package/dist/voice-admission.js.map +1 -1
- package/dist/voice-catalog-data.d.ts +2 -2
- package/dist/voice-catalog-data.js +2 -2
- package/dist/voice-catalog-data.js.map +1 -1
- package/dist/voice-catalog.d.ts +5 -5
- package/dist/voice-catalog.js +6 -6
- package/dist/voice-catalog.js.map +1 -1
- package/dist/voice-listing.d.ts +4 -4
- package/dist/voice-listing.js +6 -6
- package/dist/voice-listing.js.map +1 -1
- package/dist/voices.d.ts +40 -82
- package/dist/voices.js +56 -99
- package/dist/voices.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,32 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { makeUgcInputShape } from "./skills.js";
|
|
3
|
-
/**
|
|
4
|
-
/**
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
* полем `contract_version` в ответе quote. Любое следующее ломающее изменение
|
|
8
|
-
* обязано её двигать; до этого пересмотра версии не было вообще, поэтому первое
|
|
9
|
-
* её значение совпадает с месяцем самого пересмотра.
|
|
10
|
-
*/
|
|
3
|
+
/** Disposition registry for `make_ugc` input fields: every field must have a recorded */
|
|
4
|
+
/** decision. The type guards completeness; the egress test proves truth. */
|
|
5
|
+
/** Public contract version, sent as the `X-Clipwright-Contract` header and as `contract_version` */
|
|
6
|
+
/** in the quote response. Every breaking change must bump it. */
|
|
11
7
|
export declare const CONTRACT_VERSION = "2026-09-14";
|
|
12
8
|
export declare const CONTRACT_VERSION_HEADER = "X-Clipwright-Contract";
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
* `implemented` — поле доезжает до вендора или до дерева композиции; `provenBy`
|
|
17
|
-
* называет, ЧЕМ это доказано, и мета-тест требует наличия такого теста.
|
|
18
|
-
* `rejected` — поле не работает и приниматься не должно: 400 на входе, до
|
|
19
|
-
* создания рана и до резервирования кредитов.
|
|
20
|
-
* `warned` — поле не работает, но отказ был бы хуже принятия (ломал бы
|
|
21
|
-
* happy-path или дефолт), поэтому несоблюдение объявляется в `warnings[]`.
|
|
22
|
-
*
|
|
23
|
-
* `triggersWhen` существует потому, что часть полей объявлена с `.default()` и
|
|
24
|
-
* после `parse` присутствует ВСЕГДА. Предикат «поле присутствует → warning»
|
|
25
|
-
* выдавал бы предупреждение на каждом дефолтном happy-path — прямое нарушение
|
|
26
|
-
* записанного в нашем же коде теста допустимости (`voices.ts`, условие (iii)).
|
|
27
|
-
* Для полей с дефолтом предикат — `differs-from-default`, для чисто
|
|
28
|
-
* опциональных — `present`.
|
|
29
|
-
*/
|
|
9
|
+
/** `implemented`: reaches the vendor or the composition tree; `rejected`: 400 before any run or reserve; */
|
|
10
|
+
/** `warned`: accepted with a `warnings[]` entry. `triggersWhen` keeps defaulted fields quiet on the happy path. */
|
|
30
11
|
export type Disposition = {
|
|
31
12
|
kind: "stored";
|
|
32
13
|
message: string;
|
|
@@ -41,14 +22,8 @@ export type Disposition = {
|
|
|
41
22
|
warning: string;
|
|
42
23
|
triggersWhen: "present" | "differs-from-default";
|
|
43
24
|
};
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
* `satisfies` — страж полноты (поле входа без строки здесь не компилируется),
|
|
47
|
-
* `as const` — литеральные типы, из которых ниже выводится множество
|
|
48
|
-
* отклонённых полей. Обычная аннотация `: Record<…>` дала бы только первое, и
|
|
49
|
-
* `offeredUgcInputShape` пришлось бы перечислять руками — то есть завести
|
|
50
|
-
* второй источник правды ровно там, где мы чиним последствия первого.
|
|
51
|
-
*/
|
|
25
|
+
/** `satisfies` guards completeness; `as const` keeps literal types, from which the rejected */
|
|
26
|
+
/** set is derived below instead of being listed by hand. */
|
|
52
27
|
export declare const FIELD_DISPOSITIONS: {
|
|
53
28
|
readonly script: {
|
|
54
29
|
readonly kind: "implemented";
|
|
@@ -145,115 +120,46 @@ export declare const FIELD_DISPOSITIONS: {
|
|
|
145
120
|
};
|
|
146
121
|
};
|
|
147
122
|
export type ContractField = keyof typeof FIELD_DISPOSITIONS;
|
|
148
|
-
/**
|
|
149
|
-
|
|
150
|
-
*
|
|
151
|
-
* Смысл ровно один: погасить инцидент. Исходящая сетевая поверхность (проба
|
|
152
|
-
* чужого `image`) выключается флагом, и тогда поле обязано ОТКЛОНЯТЬСЯ, а не
|
|
153
|
-
* приниматься и тихо игнорироваться — иначе выключение килсвитча само стало бы
|
|
154
|
-
* молчаливой подменой, то есть тем дефектом, который реестр и лечит. Запросы
|
|
155
|
-
* БЕЗ `image` при этом продолжают рендериться на дефолтном актёре.
|
|
156
|
-
*/
|
|
123
|
+
/** Operational switches that change a field's disposition without a code change. A disabled */
|
|
124
|
+
/** switch must reject the field, not accept and ignore it. */
|
|
157
125
|
export interface ContractFlags {
|
|
158
126
|
remoteFetch: boolean;
|
|
159
|
-
/**
|
|
127
|
+
/** Composition stage (`CLIPWRIGHT_COMPOSE`). */
|
|
160
128
|
compose: boolean;
|
|
161
|
-
/**
|
|
129
|
+
/** Personal actor generation; absent means off. */
|
|
162
130
|
actorGeneration?: boolean;
|
|
163
131
|
longForm?: boolean;
|
|
164
132
|
}
|
|
165
|
-
/** `create_actor`
|
|
133
|
+
/** `create_actor` is open only with the fetch surface: a personal actor cannot render without it. */
|
|
166
134
|
export declare function isActorGenerationEnabled(env?: Record<string, string | undefined>): boolean;
|
|
167
|
-
/**
|
|
168
|
-
|
|
169
|
-
* на деплое, а не меняется от запроса к запросу, и `tools/list` не должен
|
|
170
|
-
* дрожать между двумя соседними вызовами.
|
|
171
|
-
*/
|
|
135
|
+
/** Flags from the environment, read once per process: a kill switch is set at deploy, */
|
|
136
|
+
/** and `tools/list` must not flicker between calls. */
|
|
172
137
|
export declare function contractFlagsFromEnv(env?: Record<string, string | undefined>): ContractFlags;
|
|
173
138
|
export declare function isLongFormQualificationEnabled(env?: Record<string, string | undefined>): boolean;
|
|
174
139
|
export declare const LONG_FORM_DISABLED_MESSAGE = "long-form qualification is disabled on this deployment; pass script without segments or inserts";
|
|
140
|
+
/** Dispositions with flags applied: the base table says what the code can do, this */
|
|
141
|
+
/** says what it offers right now. */
|
|
175
142
|
export declare function resolveDispositions(flags: ContractFlags): Record<ContractField, Disposition>;
|
|
176
|
-
/**
|
|
177
|
-
|
|
178
|
-
*
|
|
179
|
-
* Отличается от `FIELD_DISPOSITIONS` ровно на применённые флаги: базовая
|
|
180
|
-
* таблица говорит, что код УМЕЕТ, эта — что он предлагает прямо сейчас.
|
|
181
|
-
*/
|
|
143
|
+
/** The process's effective table, from which every surface is built: `FIELD_DISPOSITIONS` */
|
|
144
|
+
/** with the flags applied. */
|
|
182
145
|
export declare const EFFECTIVE_DISPOSITIONS: Record<"actor_gender" | "actor_id" | "aspect_ratio" | "background" | "broll_policy" | "broll_url" | "caption_style" | "captions" | "character" | "disclosure_overlay" | "image" | "inserts" | "look" | "name" | "person" | "resolution" | "script" | "segments" | "tts_model" | "voice" | "voice_id" | "webhook_url", Disposition>;
|
|
183
146
|
type RejectedField = {
|
|
184
147
|
[K in ContractField]: (typeof FIELD_DISPOSITIONS)[K]["kind"] extends "rejected" ? K : never;
|
|
185
148
|
}[ContractField];
|
|
186
|
-
/**
|
|
187
|
-
|
|
188
|
-
* типов, и на уровне значения (см. примечание о топологии ниже). Килсвитч —
|
|
189
|
-
* аварийное состояние сервера, а не форма контракта.
|
|
190
|
-
*/
|
|
149
|
+
/** Offered fields come from the base table, in types and values alike: a kill switch */
|
|
150
|
+
/** is a server emergency state, not the shape of the contract. */
|
|
191
151
|
type OfferedField = Exclude<ContractField, RejectedField>;
|
|
192
|
-
/**
|
|
193
|
-
|
|
194
|
-
*
|
|
195
|
-
* ЗАЧЕМ: `offeredUgcInputShape` убирает отклонённое поле из схемы, но там, где
|
|
196
|
-
* поле почему-либо остаётся видимым, вызыватель обязан прочитать ПРИЧИНУ прямо
|
|
197
|
-
* в описании. Тогда самоописательность — свойство схемы по построению, а не
|
|
198
|
-
* разовая правка двух файлов, которую следующее поле воспроизведёт заново.
|
|
199
|
-
*/
|
|
200
|
-
/**
|
|
201
|
-
* Примечание для JSON-Schema `description` — по БАЗОВОЙ таблице.
|
|
202
|
-
*
|
|
203
|
-
* Варианта «по действующей таблице» здесь нет НАМЕРЕННО, и это следствие
|
|
204
|
-
* топологии: схему видит клиент, а флаги принадлежат серверу. Причину
|
|
205
|
-
* аварийного отказа вызыватель узнаёт из текста 400, а не из описания поля,
|
|
206
|
-
* которое у него в схеме и так осталось.
|
|
207
|
-
*/
|
|
152
|
+
/** Disposition note for the JSON Schema `description`, from the base table: the schema */
|
|
153
|
+
/** belongs to the client, the flags to the server, whose 400 text names emergency refusals. */
|
|
208
154
|
export declare function dispositionNote(field: ContractField): string | null;
|
|
209
|
-
/**
|
|
210
|
-
|
|
211
|
-
*
|
|
212
|
-
* `offeredUgcInputShape` порождает `tools/list` MCP-сервера, а MCP-сервер —
|
|
213
|
-
* stdio-процесс НА МАШИНЕ ПОЛЬЗОВАТЕЛЯ, говорящий с нашим API по HTTP. Значит
|
|
214
|
-
* его `process.env` — окружение КЛИЕНТА, а не сервера. Строй мы предлагаемую
|
|
215
|
-
* поверхность по флагам, аварийный рубильник сервера начал бы управлять
|
|
216
|
-
* клиентской схемой: у пользователя без `CLIPWRIGHT_REMOTE_FETCH` поле `image`
|
|
217
|
-
* пропадало бы из `tools/list`, даже когда на сервере оно работает, — и
|
|
218
|
-
* наоборот, выставив переменную у себя, клиент вернул бы поле в схему, а
|
|
219
|
-
* сервер ответил бы 400.
|
|
220
|
-
*
|
|
221
|
-
* Поэтому граница проведена так:
|
|
222
|
-
* - ЧТО ПРЕДЛАГАЕТСЯ (схема, типы SDK, `--help`) — из БАЗОВОЙ таблицы: это
|
|
223
|
-
* форма контракта, одинаковая у всех;
|
|
224
|
-
* - ЧТО ПРИНИМАЕТСЯ ПРЯМО СЕЙЧАС (`rejectedFields`, `dispositionWarnings`) —
|
|
225
|
-
* из ДЕЙСТВУЮЩЕЙ: это решение сервера, и принимает его сервер.
|
|
226
|
-
* Килсвитч остаётся аварийным отказом на входе API, а не правкой чужой схемы.
|
|
227
|
-
*/
|
|
228
|
-
/**
|
|
229
|
-
* Полный shape входа, где каждое несоблюдённое поле несёт причину в описании.
|
|
230
|
-
* Нужен там, где поверхность обязана показать ВСЕ поля (например, таблица
|
|
231
|
-
* диспозиций в доках); предлагать поля вызывателю следует не отсюда, а из
|
|
232
|
-
* `offeredUgcInputShape`.
|
|
233
|
-
*/
|
|
155
|
+
/** Full input shape where every unhonored field carries its reason. For surfaces that list */
|
|
156
|
+
/** all fields; offer fields to callers from `offeredUgcInputShape` instead. */
|
|
234
157
|
export declare const annotatedUgcInputShape: typeof makeUgcInputShape;
|
|
235
|
-
/**
|
|
236
|
-
|
|
237
|
-
* (блокер B4).
|
|
238
|
-
*
|
|
239
|
-
* Отбивать отклонённое поле четырёхсотым, продолжая объявлять его в
|
|
240
|
-
* `tools/list`, в `--help` и в типах SDK, — это «предлагаем и наказываем»:
|
|
241
|
-
* агент читает схему, видит `character`, вызывает и получает 400. Множество
|
|
242
|
-
* выводится ИЗ РЕЕСТРА, поэтому смена диспозиции переносит поле между
|
|
243
|
-
* поверхностями одной строкой, а не правкой каждого потребителя.
|
|
244
|
-
*/
|
|
158
|
+
/** Offered input surface = full shape minus rejected fields, so no schema offers a field */
|
|
159
|
+
/** that then gets a 400. Derived from the registry, so one line moves a field. */
|
|
245
160
|
export declare const offeredUgcInputShape: Pick<typeof makeUgcInputShape, OfferedField>;
|
|
246
|
-
/**
|
|
247
|
-
|
|
248
|
-
* полного (блокер B4 на поверхности типов). Раньше он строился из полной схемы,
|
|
249
|
-
* и TypeScript-пользователь получал автокомплит на `character`/`webhook_url`,
|
|
250
|
-
* вызывал и получал 400 — тот же дефект «предлагаем и наказываем», только не в
|
|
251
|
-
* MCP. По правилу проекта №2 типы SDK — контрактная поверхность наравне с
|
|
252
|
-
* остальными.
|
|
253
|
-
*
|
|
254
|
-
* ЗАЧЕМ отдельно от `MakeUgcInput` (= выход `z.infer`, где дефолты уже
|
|
255
|
-
* обязательны): без него SDK ждал бы полностью заполненный объект.
|
|
256
|
-
*/
|
|
161
|
+
/** Input type for SDK/CLI/MCP, from the offered shape. Separate from `MakeUgcInput` (the */
|
|
162
|
+
/** `z.infer` output, where defaults are required) so callers need not fill every field. */
|
|
257
163
|
export declare const offeredUgcInput: z.ZodObject<{
|
|
258
164
|
script: z.ZodOptional<z.ZodString>;
|
|
259
165
|
segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -348,63 +254,32 @@ export declare const offeredUgcInput: z.ZodObject<{
|
|
|
348
254
|
}>>;
|
|
349
255
|
}, z.core.$strip>;
|
|
350
256
|
export type MakeUgcInputArgs = z.input<typeof offeredUgcInput>;
|
|
351
|
-
/**
|
|
257
|
+
/** One rejected field found in the input: its name and the refusal reason. */
|
|
352
258
|
export interface RejectedFieldHit {
|
|
353
259
|
field: ContractField;
|
|
354
260
|
message: string;
|
|
355
261
|
}
|
|
356
|
-
/**
|
|
357
|
-
|
|
358
|
-
* зовётся на входе API (400 до создания рана и до резервирования кредитов), в
|
|
359
|
-
* MCP и в SDK.
|
|
360
|
-
*/
|
|
262
|
+
/** Rejected fields present in the input. Called by the API (400 before a run or a */
|
|
263
|
+
/** reserve), by MCP and by the SDK. */
|
|
361
264
|
export declare function rejectedFields(input: Readonly<Record<string, unknown>>): RejectedFieldHit[];
|
|
362
|
-
/**
|
|
265
|
+
/** A body key outside the contract and the field it resembles, if any. */
|
|
363
266
|
export interface UnknownFieldHit {
|
|
364
267
|
field: string;
|
|
365
268
|
suggestion?: string | undefined;
|
|
366
269
|
}
|
|
367
|
-
/**
|
|
270
|
+
/** Fields offered to the client; rejected ones are not listed. */
|
|
368
271
|
export declare const ACCEPTED_UGC_FIELDS: string[];
|
|
369
|
-
/**
|
|
370
|
-
/**
|
|
272
|
+
/** Keys outside `fields` (the contract by default). Rejected contract fields are not */
|
|
273
|
+
/** included: `rejectedFields` names them with their reason. */
|
|
371
274
|
export declare function unknownFields(raw: unknown, fields?: readonly string[]): UnknownFieldHit[];
|
|
372
|
-
/**
|
|
373
|
-
|
|
374
|
-
*
|
|
375
|
-
* Вход ожидается УЖЕ РАСПАРСЕННЫМ: дефолты подставлены, поэтому сравнение с
|
|
376
|
-
* дефолтом различает «клиент промолчал» и «клиент явно попросил другое».
|
|
377
|
-
* Сравнение через `===` достаточно: все дефолтные значения контракта —
|
|
378
|
-
* примитивы (строка или булев).
|
|
379
|
-
*
|
|
380
|
-
* Это статические тексты диспозиций. ДИНАМИЧЕСКИЕ warnings (подмена
|
|
381
|
-
* разрешения/формата, голосовые) порождаются именованными генераторами
|
|
382
|
-
* (`negotiateCapabilities`, `buildVoiceWarnings`,
|
|
383
|
-
* `RAW_VOICE_ID_VALIDATION_WARNING`) — каждый со своим тестом; реестр их не
|
|
384
|
-
* поглощает и на них не претендует.
|
|
385
|
-
*/
|
|
275
|
+
/** Registry warnings for a parsed run input; defaults are filled in, so `===` tells silence */
|
|
276
|
+
/** from an explicit different value. Dynamic warnings come from their own generators. */
|
|
386
277
|
export declare function dispositionWarnings(input: Readonly<Record<string, unknown>>): string[];
|
|
387
|
-
/**
|
|
388
|
-
|
|
389
|
-
*
|
|
390
|
-
* Считается по БАЗОВОЙ таблице, а не по действующей: доказательство относится к
|
|
391
|
-
* КОДУ, и выключенный операционный килсвитч его не отменяет.
|
|
392
|
-
*/
|
|
278
|
+
/** Fields with an `implemented` disposition, input to the coverage meta-tests. From the */
|
|
279
|
+
/** base table: proof belongs to the code, and a disabled kill switch does not revoke it. */
|
|
393
280
|
export declare const IMPLEMENTED_FIELDS: ContractField[];
|
|
394
|
-
/**
|
|
395
|
-
|
|
396
|
-
*
|
|
397
|
-
* До этой стори `implemented` означало ровно одно: «поле доезжает до вендора»,
|
|
398
|
-
* и мета-тест сверял весь список с egress-покрытием. Композиция ввела второй
|
|
399
|
-
* род: `background` до вендора не доезжает НИКОГДА — он применяется у нас, уже
|
|
400
|
-
* после того как вендор отдал клип. Сверять его egress-тестом бессмысленно,
|
|
401
|
-
* а записать в тот же список — значит либо получить вечно красный мета-тест,
|
|
402
|
-
* либо ослабить его до бесполезности.
|
|
403
|
-
*
|
|
404
|
-
* Поэтому список разделён по `provenBy`, и у каждого рода — свой мета-тест:
|
|
405
|
-
* egress-поля сверяются с захватом исходящих запросов, композиционные — с
|
|
406
|
-
* тестами стадии композиции.
|
|
407
|
-
*/
|
|
281
|
+
/** Two kinds of proof, not interchangeable: egress fields are checked against captured */
|
|
282
|
+
/** outgoing requests, composition fields (applied after the vendor) against composition tests. */
|
|
408
283
|
export declare const EGRESS_PROVEN_FIELDS: ContractField[];
|
|
409
284
|
export declare const COMPOSITION_PROVEN_FIELDS: ContractField[];
|
|
410
285
|
export {};
|