@clipwright/core 0.19.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.
Files changed (124) hide show
  1. package/CHANGELOG.md +14 -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 +3 -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-short-61.d.ts +83 -0
  42. package/dist/faceless-short-61.js +152 -0
  43. package/dist/faceless-short-61.js.map +1 -0
  44. package/dist/faceless-storyboard-timing.d.ts +40 -0
  45. package/dist/faceless-storyboard-timing.js +97 -0
  46. package/dist/faceless-storyboard-timing.js.map +1 -0
  47. package/dist/faceless-storyboard-v2-plan.d.ts +3 -0
  48. package/dist/faceless-storyboard-v2-plan.js +112 -0
  49. package/dist/faceless-storyboard-v2-plan.js.map +1 -0
  50. package/dist/faceless-storyboard-v2-timing.d.ts +52 -0
  51. package/dist/faceless-storyboard-v2-timing.js +136 -0
  52. package/dist/faceless-storyboard-v2-timing.js.map +1 -0
  53. package/dist/faceless-storyboard-v2.d.ts +44 -0
  54. package/dist/faceless-storyboard-v2.js +43 -0
  55. package/dist/faceless-storyboard-v2.js.map +1 -0
  56. package/dist/faceless-storyboard.d.ts +55 -0
  57. package/dist/faceless-storyboard.js +105 -0
  58. package/dist/faceless-storyboard.js.map +1 -0
  59. package/dist/idempotency.d.ts +8 -44
  60. package/dist/idempotency.js +10 -44
  61. package/dist/idempotency.js.map +1 -1
  62. package/dist/index.js +21 -25
  63. package/dist/index.js.map +1 -1
  64. package/dist/long-form-pricing.d.ts +4 -4
  65. package/dist/long-form-pricing.js +4 -4
  66. package/dist/long-form-pricing.js.map +1 -1
  67. package/dist/long-form-profile.d.ts +2 -2
  68. package/dist/long-form-profile.js +2 -2
  69. package/dist/long-form-profile.js.map +1 -1
  70. package/dist/pacing.d.ts +1 -1
  71. package/dist/pacing.js +1 -1
  72. package/dist/pacing.js.map +1 -1
  73. package/dist/public-endpoints.d.ts +9 -11
  74. package/dist/public-endpoints.js +11 -13
  75. package/dist/public-endpoints.js.map +1 -1
  76. package/dist/rate-limit.d.ts +23 -130
  77. package/dist/rate-limit.js +27 -132
  78. package/dist/rate-limit.js.map +1 -1
  79. package/dist/render-backend.d.ts +30 -145
  80. package/dist/render-backend.js +4 -27
  81. package/dist/render-backend.js.map +1 -1
  82. package/dist/run-preflight.d.ts +4 -4
  83. package/dist/run-preflight.js +10 -10
  84. package/dist/run-preflight.js.map +1 -1
  85. package/dist/run-static-warnings.d.ts +8 -8
  86. package/dist/run-static-warnings.js +24 -24
  87. package/dist/run-static-warnings.js.map +1 -1
  88. package/dist/runs.d.ts +18 -55
  89. package/dist/runs.js +26 -94
  90. package/dist/runs.js.map +1 -1
  91. package/dist/script-integrity.d.ts +6 -7
  92. package/dist/script-integrity.js +7 -8
  93. package/dist/script-integrity.js.map +1 -1
  94. package/dist/semantic-inserts.d.ts +4 -4
  95. package/dist/semantic-inserts.js +6 -6
  96. package/dist/semantic-inserts.js.map +1 -1
  97. package/dist/skills.d.ts +33 -107
  98. package/dist/skills.js +69 -160
  99. package/dist/skills.js.map +1 -1
  100. package/dist/tts-backend.d.ts +13 -42
  101. package/dist/tts-backend.js +2 -10
  102. package/dist/tts-backend.js.map +1 -1
  103. package/dist/uploads.d.ts +4 -4
  104. package/dist/uploads.js +4 -4
  105. package/dist/uploads.js.map +1 -1
  106. package/dist/vendor-response.d.ts +17 -80
  107. package/dist/vendor-response.js +19 -67
  108. package/dist/vendor-response.js.map +1 -1
  109. package/dist/voice-admission.d.ts +5 -5
  110. package/dist/voice-admission.js +6 -6
  111. package/dist/voice-admission.js.map +1 -1
  112. package/dist/voice-catalog-data.d.ts +2 -2
  113. package/dist/voice-catalog-data.js +2 -2
  114. package/dist/voice-catalog-data.js.map +1 -1
  115. package/dist/voice-catalog.d.ts +5 -5
  116. package/dist/voice-catalog.js +6 -6
  117. package/dist/voice-catalog.js.map +1 -1
  118. package/dist/voice-listing.d.ts +4 -4
  119. package/dist/voice-listing.js +6 -6
  120. package/dist/voice-listing.js.map +1 -1
  121. package/dist/voices.d.ts +40 -82
  122. package/dist/voices.js +56 -99
  123. package/dist/voices.js.map +1 -1
  124. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faceless-storyboard-v2-timing.js","sourceRoot":"","sources":["../src/faceless-storyboard-v2-timing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ declare const proposal: z.ZodObject<{
3
+ version: z.ZodLiteral<"faceless_storyboard_61_v2">;
4
+ premise: z.ZodString;
5
+ script: z.ZodString;
6
+ provenance: z.ZodDiscriminatedUnion<[z.ZodObject<{
7
+ kind: z.ZodLiteral<"fixture">;
8
+ }, z.core.$strict>, z.ZodObject<{
9
+ kind: z.ZodLiteral<"model">;
10
+ model: z.ZodString;
11
+ promptSha256: z.ZodString;
12
+ responseSha256: z.ZodString;
13
+ }, z.core.$strict>], "kind">;
14
+ beats: z.ZodArray<z.ZodObject<{
15
+ id: z.ZodString;
16
+ wordStart: z.ZodNumber;
17
+ wordEnd: z.ZodNumber;
18
+ reason: z.ZodEnum<{
19
+ action: "action";
20
+ emphasis: "emphasis";
21
+ place: "place";
22
+ reveal: "reveal";
23
+ }>;
24
+ mediaType: z.ZodEnum<{
25
+ image: "image";
26
+ video: "video";
27
+ }>;
28
+ visualPrompt: z.ZodString;
29
+ phase: z.ZodEnum<{
30
+ climax: "climax";
31
+ development: "development";
32
+ resolution: "resolution";
33
+ setup: "setup";
34
+ }>;
35
+ }, z.core.$strict>>;
36
+ captionPhrases: z.ZodArray<z.ZodObject<{
37
+ wordStart: z.ZodNumber;
38
+ wordEnd: z.ZodNumber;
39
+ accentWord: z.ZodNumber;
40
+ }, z.core.$strict>>;
41
+ }, z.core.$strict>;
42
+ export type StoryboardV2Proposal = z.infer<typeof proposal>;
43
+ export declare function parseStoryboardV2(input: unknown): StoryboardV2Proposal;
44
+ export {};
@@ -0,0 +1,43 @@
1
+ import { z } from "zod";
2
+ import { parseStoryboardProposal } from "./faceless-storyboard.js";
3
+ const nonblank = z.string().trim().min(1);
4
+ const index = z.number().int().nonnegative();
5
+ const sha256 = z.string().regex(/^[0-9a-fA-F]{64}$/);
6
+ const phase = z.enum(["setup", "development", "climax", "resolution"]);
7
+ const phaseOrder = { setup: 0, development: 1, climax: 2, resolution: 3 };
8
+ const proposal = z.strictObject({
9
+ version: z.literal("faceless_storyboard_61_v2"),
10
+ premise: nonblank,
11
+ script: nonblank,
12
+ provenance: z.discriminatedUnion("kind", [
13
+ z.strictObject({ kind: z.literal("fixture") }),
14
+ z.strictObject({ kind: z.literal("model"), model: nonblank, promptSha256: sha256, responseSha256: sha256 }),
15
+ ]),
16
+ beats: z.array(z.strictObject({
17
+ id: nonblank, wordStart: index, wordEnd: index,
18
+ reason: z.enum(["action", "place", "reveal", "emphasis"]),
19
+ mediaType: z.enum(["video", "image"]), visualPrompt: nonblank, phase,
20
+ })).min(2),
21
+ captionPhrases: z.array(z.strictObject({ wordStart: index, wordEnd: index, accentWord: index })).min(1),
22
+ });
23
+ export function parseStoryboardV2(input) {
24
+ const parsed = proposal.parse(input);
25
+ const { beats, version: _version, ...v1Fields } = parsed;
26
+ parseStoryboardProposal({
27
+ ...v1Fields,
28
+ version: "faceless_storyboard_61_v1",
29
+ beats: beats.map(({ phase: _phase, ...beat }) => beat),
30
+ });
31
+ if (parsed.provenance.kind === "model") {
32
+ const wordCount = parsed.script.normalize("NFKC").match(/[\p{L}\p{N}\p{M}]+(?:['’][\p{L}\p{N}\p{M}]+)*/gu)?.length ?? 0;
33
+ if (wordCount < 155 || wordCount > 165)
34
+ throw new Error("model storyboard requires 155–165 spoken words");
35
+ }
36
+ for (let i = 1; i < beats.length; i++) {
37
+ if (phaseOrder[beats[i].phase] < phaseOrder[beats[i - 1].phase]) {
38
+ throw new Error("storyboard phases must be ordered");
39
+ }
40
+ }
41
+ return parsed;
42
+ }
43
+ //# sourceMappingURL=faceless-storyboard-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faceless-storyboard-v2.js","sourceRoot":"","sources":["../src/faceless-storyboard-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ type WordTiming = {
3
+ word: string;
4
+ startSec: number;
5
+ endSec: number;
6
+ };
7
+ type PhraseRange = {
8
+ wordStart: number;
9
+ wordEnd: number;
10
+ accentWord: number;
11
+ };
12
+ declare const proposalSchema: z.ZodObject<{
13
+ version: z.ZodLiteral<"faceless_storyboard_61_v1">;
14
+ premise: z.ZodString;
15
+ script: z.ZodString;
16
+ provenance: z.ZodDiscriminatedUnion<[z.ZodObject<{
17
+ kind: z.ZodLiteral<"fixture">;
18
+ }, z.core.$strict>, z.ZodObject<{
19
+ kind: z.ZodLiteral<"model">;
20
+ model: z.ZodString;
21
+ promptSha256: z.ZodString;
22
+ responseSha256: z.ZodString;
23
+ }, z.core.$strict>], "kind">;
24
+ beats: z.ZodArray<z.ZodObject<{
25
+ wordStart: z.ZodNumber;
26
+ wordEnd: z.ZodNumber;
27
+ id: z.ZodString;
28
+ reason: z.ZodEnum<{
29
+ action: "action";
30
+ emphasis: "emphasis";
31
+ place: "place";
32
+ reveal: "reveal";
33
+ }>;
34
+ mediaType: z.ZodEnum<{
35
+ image: "image";
36
+ video: "video";
37
+ }>;
38
+ visualPrompt: z.ZodString;
39
+ }, z.core.$strict>>;
40
+ captionPhrases: z.ZodArray<z.ZodObject<{
41
+ wordStart: z.ZodNumber;
42
+ wordEnd: z.ZodNumber;
43
+ accentWord: z.ZodNumber;
44
+ }, z.core.$strict>>;
45
+ }, z.core.$strict>;
46
+ export type StoryboardProposal = Omit<z.infer<typeof proposalSchema>, "captionPhrases"> & {
47
+ captionPhrases: PhraseRange[];
48
+ };
49
+ export declare function parseStoryboardProposal(input: unknown): StoryboardProposal;
50
+ export declare function assertStoryboardWords(script: string, words: readonly WordTiming[]): void;
51
+ export declare function storyboardImageBudget(sceneCount: number, replacementCount: number): {
52
+ allowance: 24;
53
+ remaining: number;
54
+ };
55
+ export {};
@@ -0,0 +1,105 @@
1
+ import { z } from "zod";
2
+ const tokenPattern = /[\p{L}\p{N}\p{M}]+(?:['’][\p{L}\p{N}\p{M}]+)*/gu;
3
+ const nonblank = z.string().trim().min(1);
4
+ const index = z.number().int().nonnegative();
5
+ const sha256 = z.string().regex(/^[0-9a-fA-F]{64}$/);
6
+ const range = {
7
+ wordStart: index,
8
+ wordEnd: index,
9
+ };
10
+ const proposalSchema = z.strictObject({
11
+ version: z.literal("faceless_storyboard_61_v1"),
12
+ premise: nonblank,
13
+ script: nonblank,
14
+ provenance: z.discriminatedUnion("kind", [
15
+ z.strictObject({ kind: z.literal("fixture") }),
16
+ z.strictObject({
17
+ kind: z.literal("model"),
18
+ model: nonblank,
19
+ promptSha256: sha256,
20
+ responseSha256: sha256,
21
+ }),
22
+ ]),
23
+ beats: z.array(z.strictObject({
24
+ id: nonblank,
25
+ ...range,
26
+ reason: z.enum(["action", "place", "reveal", "emphasis"]),
27
+ mediaType: z.enum(["video", "image"]),
28
+ visualPrompt: nonblank,
29
+ })).min(2),
30
+ captionPhrases: z.array(z.strictObject({
31
+ ...range,
32
+ accentWord: index,
33
+ })).min(1),
34
+ });
35
+ function tokens(input) {
36
+ return input.normalize("NFKC").match(tokenPattern) ?? [];
37
+ }
38
+ function lexical(input) {
39
+ return input.normalize("NFKC").replace(/[’]/gu, "'").normalize("NFD")
40
+ .replace(/\p{M}/gu, "").toLocaleLowerCase("und");
41
+ }
42
+ export function parseStoryboardProposal(input) {
43
+ const proposal = proposalSchema.parse(input);
44
+ const wordCount = tokens(proposal.script).length;
45
+ if (wordCount === 0)
46
+ throw new Error("storyboard script has no words");
47
+ let nextWord = 0;
48
+ const ids = new Set();
49
+ for (const [position, beat] of proposal.beats.entries()) {
50
+ if (ids.has(beat.id))
51
+ throw new Error("storyboard beat IDs must be unique");
52
+ ids.add(beat.id);
53
+ if (beat.wordStart !== nextWord || beat.wordEnd <= beat.wordStart || beat.wordEnd > wordCount) {
54
+ throw new Error("storyboard beats must partition script words");
55
+ }
56
+ if (beat.mediaType !== (position === 0 ? "video" : "image")) {
57
+ throw new Error("storyboard requires one first VIDEO beat and later IMAGE beats");
58
+ }
59
+ nextWord = beat.wordEnd;
60
+ }
61
+ if (nextWord !== wordCount)
62
+ throw new Error("storyboard beats must partition script words");
63
+ nextWord = 0;
64
+ for (const phrase of proposal.captionPhrases) {
65
+ if (phrase.wordStart !== nextWord || phrase.wordEnd <= phrase.wordStart || phrase.wordEnd > wordCount) {
66
+ throw new Error("storyboard caption phrases must partition script words");
67
+ }
68
+ if (phrase.accentWord < phrase.wordStart || phrase.accentWord >= phrase.wordEnd) {
69
+ throw new Error("storyboard caption accent must belong to its phrase");
70
+ }
71
+ nextWord = phrase.wordEnd;
72
+ }
73
+ if (nextWord !== wordCount)
74
+ throw new Error("storyboard caption phrases must partition script words");
75
+ return proposal;
76
+ }
77
+ export function assertStoryboardWords(script, words) {
78
+ const scriptWords = tokens(script);
79
+ if (scriptWords.length === 0 || scriptWords.length !== words.length) {
80
+ throw new Error("storyboard word count mismatch");
81
+ }
82
+ for (let i = 0; i < words.length; i++) {
83
+ const timed = words[i];
84
+ const measured = tokens(timed.word);
85
+ if (measured.length !== 1 || lexical(measured[0]) !== lexical(scriptWords[i])) {
86
+ throw new Error(`storyboard word ${i} differs from script`);
87
+ }
88
+ if (!Number.isFinite(timed.startSec) || !Number.isFinite(timed.endSec) ||
89
+ timed.startSec < 0 || timed.endSec <= timed.startSec ||
90
+ (i > 0 && timed.startSec < words[i - 1].endSec)) {
91
+ throw new Error(`storyboard word ${i} has invalid timing`);
92
+ }
93
+ }
94
+ }
95
+ export function storyboardImageBudget(sceneCount, replacementCount) {
96
+ if (!Number.isSafeInteger(sceneCount) || sceneCount < 0 ||
97
+ !Number.isSafeInteger(replacementCount) || replacementCount < 2) {
98
+ throw new Error("storyboard image allowance requires valid scenes and two reserved replacements");
99
+ }
100
+ const remaining = 24 - 2 - 1 - sceneCount - replacementCount;
101
+ if (remaining < 0)
102
+ throw new Error("storyboard image allowance exceeded");
103
+ return { allowance: 24, remaining };
104
+ }
105
+ //# sourceMappingURL=faceless-storyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faceless-storyboard.js","sourceRoot":"","sources":["../src/faceless-storyboard.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,12 @@
1
- /**
2
- * Отпечаток запроса под ключом идемпотентности + ключ идемпотентности per-client.
3
- *
4
- * ЗАЧЕМ ЭТОТ МОДУЛЬ ЖИВЁТ ПОДПУТЁМ `@clipwright/core/idempotency`, А НЕ В barrel:
5
- * он тянет `node:crypto`. Barrel `@clipwright/core` импортируют И `apps/web`
6
- * (через `transpilePackages` в `next.config.ts`), и клиентские компоненты Next.
7
- * Стоит `node:crypto` протечь в barrel — `next build` падает на клиентском
8
- * бандле. Поэтому barrel НЕ реэкспортирует этот файл; те, кому нужен ключ (SDK,
9
- * apps/api), импортируют строго подпуть.
10
- */
11
- /**
12
- * Canonical JSON: ключи объектов отсортированы, порядок элементов массива
13
- * сохранён (в массиве порядок — часть значения, сортировать его нельзя).
14
- *
15
- * Нужен потому, что JSON.stringify сохраняет порядок вставки ключей, а он
16
- * зависит от того, как агент собрал тело запроса. Два побайтово разных, но
17
- * семантически одинаковых запроса обязаны дать один хеш, иначе штатный ретрай
18
- * прилетит в 409 и агент будет считать это конфликтом.
19
- *
20
- * `undefined` внутри объектов отбрасывается — как и в JSON.stringify, чтобы
21
- * «ключ отсутствует» и «ключ = undefined» не расходились в хеше.
22
- */
1
+ /** Canonical JSON: object keys sorted, array order kept (order is part of an array's value), */
2
+ /** `undefined` dropped. Semantically equal bodies must hash alike, or a retry gets a 409. */
23
3
  export declare function canonicalize(value: unknown): unknown;
24
- /**
25
- * Хешируется вход ПОСЛЕ zod-парсинга, то есть с уже подставленными дефолтами.
26
- * Это осознанная нормализация: «captions не передан» и «captions: false» —
27
- * один и тот же запрос и обязаны совпасть по хешу. Хешировать сырое тело
28
- * нельзя ещё и потому, что тогда лишний пробел в JSON давал бы 409.
29
- */
4
+ /** Hashes the input AFTER zod parsing, defaults filled in: "captions omitted" and */
5
+ /** "captions: false" are one request. Hashing the raw body would 409 on extra whitespace. */
30
6
  export declare function requestHash(input: unknown): string;
31
- /**
32
- * Ключ идемпотентности, детерминированный от входа И идентичности клиента.
33
- *
34
- * ЗАЧЕМ ПАРСИТЬ ВНУТРИ, А НЕ ПРИНИМАТЬ ГОТОВЫЙ ХЕШ: единственный корректный
35
- * путь построить ключ — прогнать сырой вход через `makeUgcInput.parse`, чтобы
36
- * подставились дефолты, и только потом канонизировать. Прямой `requestHash`
37
- * по сырому телу (без parse) даёт РАЗНЫЕ ключи для «captions не передан» и
38
- * «captions: false» — это дефект 3.1 (штатный ретрай агента → ложный новый ран).
39
- *
40
- * ЗАЧЕМ ПРИМЕШИВАТЬ `clientId`: два разных клиента могут прислать побайтово
41
- * один вход; без разделения по клиенту второй получил бы ран первого. `clientId`
42
- * идёт ПРЕФИКСОМ хеша — разные клиенты на одном входе дают разные ключи
43
- * (дефект 3.2), один клиент на одном входе — стабильный ключ (дедуп денег).
44
- */
7
+ /** Idempotency key from input AND client identity. Parses inside so defaults are filled */
8
+ /** before hashing; `clientId` prefixes the hash so clients never share a run. */
45
9
  export declare function idempotencyKeyFor(input: unknown, clientId: string): string;
46
- /** Тот же ключ для `create_actor` (clipwright#120): своя схема, свои дефолты. */
47
- /** Разбором `make_ugc` здесь не обойтись — он срезал бы поля актёра в ноль. */
10
+ /** The same key for `create_actor`, with its own schema and defaults: the `make_ugc` */
11
+ /** parse would strip every actor field. */
48
12
  export declare function actorIdempotencyKeyFor(input: unknown, clientId: string): string;
@@ -1,28 +1,10 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { createActorInput } from "./account-actors.js";
3
3
  import { makeUgcInput } from "./skills.js";
4
- /**
5
- * Отпечаток запроса под ключом идемпотентности + ключ идемпотентности per-client.
6
- *
7
- * ЗАЧЕМ ЭТОТ МОДУЛЬ ЖИВЁТ ПОДПУТЁМ `@clipwright/core/idempotency`, А НЕ В barrel:
8
- * он тянет `node:crypto`. Barrel `@clipwright/core` импортируют И `apps/web`
9
- * (через `transpilePackages` в `next.config.ts`), и клиентские компоненты Next.
10
- * Стоит `node:crypto` протечь в barrel — `next build` падает на клиентском
11
- * бандле. Поэтому barrel НЕ реэкспортирует этот файл; те, кому нужен ключ (SDK,
12
- * apps/api), импортируют строго подпуть.
13
- */
14
- /**
15
- * Canonical JSON: ключи объектов отсортированы, порядок элементов массива
16
- * сохранён (в массиве порядок — часть значения, сортировать его нельзя).
17
- *
18
- * Нужен потому, что JSON.stringify сохраняет порядок вставки ключей, а он
19
- * зависит от того, как агент собрал тело запроса. Два побайтово разных, но
20
- * семантически одинаковых запроса обязаны дать один хеш, иначе штатный ретрай
21
- * прилетит в 409 и агент будет считать это конфликтом.
22
- *
23
- * `undefined` внутри объектов отбрасывается — как и в JSON.stringify, чтобы
24
- * «ключ отсутствует» и «ключ = undefined» не расходились в хеше.
25
- */
4
+ // Request fingerprint and per-client idempotency key. A subpath export, not the barrel:
5
+ // `node:crypto` in the barrel would break Next client bundles.
6
+ /** Canonical JSON: object keys sorted, array order kept (order is part of an array's value), */
7
+ /** `undefined` dropped. Semantically equal bodies must hash alike, or a retry gets a 409. */
26
8
  export function canonicalize(value) {
27
9
  if (Array.isArray(value)) {
28
10
  return value.map(canonicalize);
@@ -39,39 +21,23 @@ export function canonicalize(value) {
39
21
  }
40
22
  return value;
41
23
  }
42
- /**
43
- * Хешируется вход ПОСЛЕ zod-парсинга, то есть с уже подставленными дефолтами.
44
- * Это осознанная нормализация: «captions не передан» и «captions: false» —
45
- * один и тот же запрос и обязаны совпасть по хешу. Хешировать сырое тело
46
- * нельзя ещё и потому, что тогда лишний пробел в JSON давал бы 409.
47
- */
24
+ /** Hashes the input AFTER zod parsing, defaults filled in: "captions omitted" and */
25
+ /** "captions: false" are one request. Hashing the raw body would 409 on extra whitespace. */
48
26
  export function requestHash(input) {
49
27
  return createHash("sha256")
50
28
  .update(JSON.stringify(canonicalize(input)))
51
29
  .digest("hex");
52
30
  }
53
- /**
54
- * Ключ идемпотентности, детерминированный от входа И идентичности клиента.
55
- *
56
- * ЗАЧЕМ ПАРСИТЬ ВНУТРИ, А НЕ ПРИНИМАТЬ ГОТОВЫЙ ХЕШ: единственный корректный
57
- * путь построить ключ — прогнать сырой вход через `makeUgcInput.parse`, чтобы
58
- * подставились дефолты, и только потом канонизировать. Прямой `requestHash`
59
- * по сырому телу (без parse) даёт РАЗНЫЕ ключи для «captions не передан» и
60
- * «captions: false» — это дефект 3.1 (штатный ретрай агента → ложный новый ран).
61
- *
62
- * ЗАЧЕМ ПРИМЕШИВАТЬ `clientId`: два разных клиента могут прислать побайтово
63
- * один вход; без разделения по клиенту второй получил бы ран первого. `clientId`
64
- * идёт ПРЕФИКСОМ хеша — разные клиенты на одном входе дают разные ключи
65
- * (дефект 3.2), один клиент на одном входе — стабильный ключ (дедуп денег).
66
- */
31
+ /** Idempotency key from input AND client identity. Parses inside so defaults are filled */
32
+ /** before hashing; `clientId` prefixes the hash so clients never share a run. */
67
33
  export function idempotencyKeyFor(input, clientId) {
68
34
  const parsed = makeUgcInput.parse(input);
69
35
  return createHash("sha256")
70
36
  .update(clientId + JSON.stringify(canonicalize(parsed)))
71
37
  .digest("hex");
72
38
  }
73
- /** Тот же ключ для `create_actor` (clipwright#120): своя схема, свои дефолты. */
74
- /** Разбором `make_ugc` здесь не обойтись — он срезал бы поля актёра в ноль. */
39
+ /** The same key for `create_actor`, with its own schema and defaults: the `make_ugc` */
40
+ /** parse would strip every actor field. */
75
41
  export function actorIdempotencyKeyFor(input, clientId) {
76
42
  const parsed = createActorInput.parse(input);
77
43
  return createHash("sha256")
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,QAAgB;IAChE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;SACvD,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,iFAAiF;AACjF,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,QAAgB;IACrE,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;SACvD,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,wFAAwF;AACxF,+DAA+D;AAE/D,gGAAgG;AAChG,6FAA6F;AAC7F,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qFAAqF;AACrF,6FAA6F;AAC7F,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,2FAA2F;AAC3F,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,QAAgB;IAChE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;SACvD,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,wFAAwF;AACxF,2CAA2C;AAC3C,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,QAAgB;IACrE,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;SACvD,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
package/dist/index.js CHANGED
@@ -1,50 +1,46 @@
1
1
  export * from "./skills.js";
2
2
  export * from "./actors.js";
3
- // Личные актёры аккаунта: вход и итог скилла `create_actor` (clipwright#120).
3
+ // Personal actors of an account: input and result of the `create_actor` skill.
4
4
  export * from "./account-actors.js";
5
- // Реестр диспозиций импортирует shape из skills.js — направление одностороннее,
6
- // цикла нет. Отсюда же приходит MakeUgcInputArgs (выводится из предлагаемого
7
- // shape, а не из полного).
5
+ // The disposition registry imports the shape from skills.js one way, so there is no cycle.
6
+ // MakeUgcInputArgs comes from here, derived from the offered shape, not the full one.
8
7
  export * from "./contract-dispositions.js";
9
- // Резолвер формата: чистые функции, ноль сети. Импортирует ASPECT_RATIOS из
10
- // skills.js — направление то же одностороннее, что и у реестра.
8
+ // Format resolver: pure functions, no network; imports ASPECT_RATIOS from skills.js one way.
11
9
  export * from "./aspect.js";
12
- // Актёр отдельным модулем: `aspect.js` реэкспортирует из него источник кадра.
10
+ // The actor is its own module: `aspect.js` re-exports the frame source from it.
13
11
  export * from "./default-actor.js";
14
12
  export * from "./voices.js";
15
13
  export * from "./voice-catalog.js";
16
14
  export * from "./runs.js";
17
- // Тела отказов: форма ответа об ошибке — тоже контракт, и с появлением чисел в
18
- // теле (402) она перестала быть выводимой из кода ответа.
15
+ // Refusal bodies: the error shape is contract too, and once a 402 carries numbers it no
16
+ // longer follows from the status code.
19
17
  export * from "./errors.js";
20
18
  export * from "./script-integrity.js";
21
- // Rate limit: форма 429 и имена заголовков — тот же контракт, что и тела
22
- // отказов выше, и по той же причине не выводится из кода ответа.
19
+ // Rate limit: the 429 shape and header names, the same kind of contract as the refusal
20
+ // bodies above.
23
21
  export * from "./rate-limit.js";
24
- // Разбор отказа: тела уже описаны выше, здесь — что с ними ДЕЛАТЬ. Живёт в
25
- // core, потому что решение «ретраить или остановиться» обязано быть общим у
26
- // SDK, MCP и CLI (US-622).
22
+ // Failure parsing: what to DO with the bodies above. In core so SDK, MCP and CLI share
23
+ // one retry decision.
27
24
  export * from "./api-failure.js";
28
25
  export * from "./account.js";
29
- // Загрузка изображения для `image` (clipwright#99): контракт ответа, потолки, проба типа.
26
+ // Image upload for `image`: response contract, caps, type probe.
30
27
  export * from "./uploads.js";
31
28
  export * from "./pacing.js";
32
- // Вендор-нейтральные контракты: всё вендорское живёт в адаптерах, не здесь.
29
+ // Vendor-neutral contracts: everything vendor-specific lives in adapters, not here.
33
30
  export * from "./render-backend.js";
34
31
  export * from "./tts-backend.js";
35
- // Обязанность реализаций обоих контрактов выше: пометить ошибку кодом ответа,
36
- // если ответ был. Без неё «вендор отказал» и «ответа не было» неразличимы
37
- // (US-606a).
32
+ // Implementations of both contracts above mark errors with the response status, if any;
33
+ // without it "the vendor refused" and "no response" look the same.
38
34
  export * from "./vendor-response.js";
39
- // Публичные адреса и имена пакетов: их печатают SDK, документация и лендинг,
40
- // поэтому расхождение видит посетитель, а не тест (US-614).
35
+ // Public addresses and package names, printed by the SDK, docs and landing page, so a
36
+ // mismatch is seen by visitors, not tests.
41
37
  export * from "./public-endpoints.js";
42
- // Маршруты API и их цена: сверяются с `app.routes`, печатаются квикстартом (clipwright#135).
38
+ // API routes and their price: checked against `app.routes`, printed by the quickstart.
43
39
  export * from "./endpoints.js";
44
- // Статические warnings рана выводятся из сохранённого входа — один ответ у API
45
- // и у кабинета на любом состоянии рана (clipwright#64).
40
+ // A run's static warnings are derived from its stored input: one answer for the API
41
+ // and the dashboard in any run state.
46
42
  export * from "./run-static-warnings.js";
47
- // Невыводимые исходы префлайта: форма долговечного факта (clipwright#146).
43
+ // Preflight outcomes that cannot be derived: the durable fact shape.
48
44
  export * from "./run-preflight.js";
49
45
  export * from "./speech-rhythm.js";
50
46
  export * from "./broll-policy.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,8EAA8E;AAC9E,cAAc,qBAAqB,CAAC;AACpC,gFAAgF;AAChF,6EAA6E;AAC7E,2BAA2B;AAC3B,cAAc,4BAA4B,CAAC;AAC3C,4EAA4E;AAC5E,gEAAgE;AAChE,cAAc,aAAa,CAAC;AAC5B,8EAA8E;AAC9E,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,+EAA+E;AAC/E,0DAA0D;AAC1D,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,yEAAyE;AACzE,iEAAiE;AACjE,cAAc,iBAAiB,CAAC;AAChC,2EAA2E;AAC3E,4EAA4E;AAC5E,2BAA2B;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,0FAA0F;AAC1F,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,4EAA4E;AAC5E,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,8EAA8E;AAC9E,0EAA0E;AAC1E,aAAa;AACb,cAAc,sBAAsB,CAAC;AACrC,6EAA6E;AAC7E,4DAA4D;AAC5D,cAAc,uBAAuB,CAAC;AACtC,6FAA6F;AAC7F,cAAc,gBAAgB,CAAC;AAC/B,+EAA+E;AAC/E,wDAAwD;AACxD,cAAc,0BAA0B,CAAC;AACzC,2EAA2E;AAC3E,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,+EAA+E;AAC/E,cAAc,qBAAqB,CAAC;AACpC,2FAA2F;AAC3F,sFAAsF;AACtF,cAAc,4BAA4B,CAAC;AAC3C,6FAA6F;AAC7F,cAAc,aAAa,CAAC;AAC5B,gFAAgF;AAChF,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,wFAAwF;AACxF,uCAAuC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,uFAAuF;AACvF,gBAAgB;AAChB,cAAc,iBAAiB,CAAC;AAChC,uFAAuF;AACvF,sBAAsB;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,iEAAiE;AACjE,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,oFAAoF;AACpF,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,wFAAwF;AACxF,mEAAmE;AACnE,cAAc,sBAAsB,CAAC;AACrC,sFAAsF;AACtF,2CAA2C;AAC3C,cAAc,uBAAuB,CAAC;AACtC,uFAAuF;AACvF,cAAc,gBAAgB,CAAC;AAC/B,oFAAoF;AACpF,sCAAsC;AACtC,cAAc,0BAA0B,CAAC;AACzC,qEAAqE;AACrE,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC"}
@@ -8,8 +8,8 @@ export declare const LONG_FORM_LAUNCH_TARIFF: Readonly<{
8
8
  readonly rounding: "ceil_aggregate_seconds";
9
9
  readonly failurePolicy: "verified_delivery_only";
10
10
  }>;
11
- /** Действующие тарифы лица ПЕРЕЧНЕМ: публичный текст обходит его, а не две */
12
- /** известные константы, иначе третий тариф уехал бы молча (#255). */
11
+ /** Active face tariffs as a LIST: public text walks it, not two known constants, so a */
12
+ /** third tariff cannot ship silently. */
13
13
  export declare const FACE_BILLING_TARIFFS: readonly FaceBillingTariff[];
14
14
  export declare function faceTariffRate(tariff: FaceBillingTariff): number;
15
15
  export declare function faceTariffPricingVersion(tariff: FaceBillingTariff): string;
@@ -22,8 +22,8 @@ export declare function calculateFaceCharge(intervals: readonly FaceBillingInter
22
22
  credits: number;
23
23
  minimumApplied: boolean;
24
24
  };
25
- /** ЗАПАС РЕЗЕРВА НА ФОРМУ РЕЧИ — НАЗВАННАЯ граница, не выведенное число: */
26
- /** честное произведение трёх членов плавает по раскладкам (ADR #265). */
25
+ /** Reserve headroom for speech shape: a NAMED bound, not a derived number, since the */
26
+ /** honest product of three terms varies by layout. */
27
27
  export declare const FACE_RESERVE_SHAPE_MARGIN = 1.15;
28
28
  export declare const longFormQuoteSchema: z.ZodReadonly<z.ZodObject<{
29
29
  pricingVersion: z.ZodString;
@@ -4,8 +4,8 @@ export const LONG_FORM_LAUNCH_TARIFF = Object.freeze({
4
4
  version: 2, pricingVersion: "long-form-v1", rateCreditsPerFaceSecond: 10,
5
5
  minimumCredits: 400, rounding: "ceil_aggregate_seconds", failurePolicy: "verified_delivery_only",
6
6
  });
7
- /** Действующие тарифы лица ПЕРЕЧНЕМ: публичный текст обходит его, а не две */
8
- /** известные константы, иначе третий тариф уехал бы молча (#255). */
7
+ /** Active face tariffs as a LIST: public text walks it, not two known constants, so a */
8
+ /** third tariff cannot ship silently. */
9
9
  export const FACE_BILLING_TARIFFS = Object.freeze([
10
10
  LONG_FORM_LAUNCH_TARIFF,
11
11
  ]);
@@ -46,8 +46,8 @@ export function calculateFaceCharge(intervals, fps, tariff) {
46
46
  return { faceFrames: Number(frames), billableFaceSeconds: Number(seconds), credits: Number(credits),
47
47
  minimumApplied: usageCredits < minimum };
48
48
  }
49
- /** ЗАПАС РЕЗЕРВА НА ФОРМУ РЕЧИ — НАЗВАННАЯ граница, не выведенное число: */
50
- /** честное произведение трёх членов плавает по раскладкам (ADR #265). */
49
+ /** Reserve headroom for speech shape: a NAMED bound, not a derived number, since the */
50
+ /** honest product of three terms varies by layout. */
51
51
  export const FACE_RESERVE_SHAPE_MARGIN = 1.15;
52
52
  const credits = z.number().int().nonnegative().max(2_147_483_647);
53
53
  const pricing = {
@@ -1 +1 @@
1
- {"version":3,"file":"long-form-pricing.js","sourceRoot":"","sources":["../src/long-form-pricing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"long-form-pricing.js","sourceRoot":"","sources":["../src/long-form-pricing.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** Test ceiling, not a claim that this profile has passed live qualification. */
2
2
  export declare const LONG_FORM_QUALIFICATION_MAX_DURATION_SEC = 300;
3
- /** Потолок слотов замороженного таймлайна; из него выводится MAX_INSERTS, */
4
- /** поэтому числа не разъезжаются (`docs/adr/0004-insert-word-coverage.md`). */
3
+ /** Slot cap of a frozen timeline; MAX_INSERTS is derived from it, so the numbers */
4
+ /** cannot drift. */
5
5
  export declare const RESOLVED_TIMELINE_MAX_SLOTS = 100;