@clipwright/core 0.30.0 → 0.31.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 (97) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/dist/api-failure.js +4 -0
  3. package/dist/api-failure.js.map +1 -1
  4. package/dist/aspect.d.ts +3 -0
  5. package/dist/aspect.js.map +1 -1
  6. package/dist/canvas-fit.d.ts +10 -0
  7. package/dist/canvas-fit.js +8 -0
  8. package/dist/canvas-fit.js.map +1 -0
  9. package/dist/contract-dispositions.d.ts +16 -9
  10. package/dist/contract-dispositions.js +16 -6
  11. package/dist/contract-dispositions.js.map +1 -1
  12. package/dist/contracts/v1/workflow-brief.d.ts +2 -0
  13. package/dist/contracts/v1/workflow-catalog.d.ts +2 -0
  14. package/dist/contracts/v1/workflow-client.d.ts +1 -0
  15. package/dist/contracts/v1/workflow-execution.d.ts +39 -0
  16. package/dist/contracts/v1/workflow-plan.d.ts +3 -0
  17. package/dist/contracts/v1/workflow-run-read.d.ts +26 -0
  18. package/dist/edit-billing.d.ts +1 -0
  19. package/dist/edit-billing.js +1 -1
  20. package/dist/edit-billing.js.map +1 -1
  21. package/dist/edit-long-form.d.ts +13 -3
  22. package/dist/edit-long-form.js +57 -26
  23. package/dist/edit-long-form.js.map +1 -1
  24. package/dist/edit-revision.d.ts +1 -0
  25. package/dist/edit-rules.d.ts +6 -2
  26. package/dist/edit-rules.js +8 -3
  27. package/dist/edit-rules.js.map +1 -1
  28. package/dist/edit-shots.d.ts +12 -4
  29. package/dist/edit-validate.d.ts +1 -1
  30. package/dist/edit-validate.js +76 -2
  31. package/dist/edit-validate.js.map +1 -1
  32. package/dist/edit.d.ts +2 -0
  33. package/dist/edit.js +4 -1
  34. package/dist/edit.js.map +1 -1
  35. package/dist/endpoints.d.ts +2 -0
  36. package/dist/endpoints.js +42 -36
  37. package/dist/endpoints.js.map +1 -1
  38. package/dist/errors.d.ts +1 -1
  39. package/dist/errors.js +7 -0
  40. package/dist/errors.js.map +1 -1
  41. package/dist/faceless-media-record.d.ts +6 -0
  42. package/dist/faceless-media-record.js +3 -1
  43. package/dist/faceless-media-record.js.map +1 -1
  44. package/dist/faceless-public.d.ts +2 -0
  45. package/dist/generations-output.d.ts +19 -0
  46. package/dist/generations-output.js +16 -0
  47. package/dist/generations-output.js.map +1 -0
  48. package/dist/generations.d.ts +262 -0
  49. package/dist/generations.js +215 -0
  50. package/dist/generations.js.map +1 -0
  51. package/dist/idempotency.d.ts +2 -0
  52. package/dist/idempotency.js +8 -0
  53. package/dist/idempotency.js.map +1 -1
  54. package/dist/index.d.ts +4 -0
  55. package/dist/index.js +4 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/long-form-revision.d.ts +244 -0
  58. package/dist/long-form-revision.js +104 -0
  59. package/dist/long-form-revision.js.map +1 -0
  60. package/dist/output-provenance.d.ts +26 -0
  61. package/dist/output-provenance.js +67 -0
  62. package/dist/output-provenance.js.map +1 -0
  63. package/dist/run-static-warnings.js +7 -0
  64. package/dist/run-static-warnings.js.map +1 -1
  65. package/dist/runs.d.ts +26 -0
  66. package/dist/runs.js +6 -0
  67. package/dist/runs.js.map +1 -1
  68. package/dist/skills.d.ts +5 -1
  69. package/dist/skills.js +4 -1
  70. package/dist/skills.js.map +1 -1
  71. package/dist/ugc-delivery.d.ts +64 -0
  72. package/dist/ugc-delivery.js +34 -0
  73. package/dist/ugc-delivery.js.map +1 -0
  74. package/dist/uploads.d.ts +3 -0
  75. package/dist/uploads.js +4 -1
  76. package/dist/uploads.js.map +1 -1
  77. package/dist/voice-admission.d.ts +1 -0
  78. package/dist/workflows/index.d.ts +1 -0
  79. package/dist/workflows/index.js +1 -0
  80. package/dist/workflows/index.js.map +1 -1
  81. package/dist/workflows/methods/faceless-explainer.d.ts +1 -0
  82. package/dist/workflows/methods/kinetic-launch.d.ts +1 -0
  83. package/dist/workflows/methods/product-image-story.d.ts +1 -0
  84. package/dist/workflows/methods/shared.d.ts +1 -0
  85. package/dist/workflows/methods/ugc-faq-answer.d.ts +1 -0
  86. package/dist/workflows/methods/ugc-faq-answer.js +2 -2
  87. package/dist/workflows/methods/ugc-faq-answer.js.map +1 -1
  88. package/dist/workflows/methods/ugc-product-intro.d.ts +1 -0
  89. package/dist/workflows/methods/ugc-product-intro.js +2 -2
  90. package/dist/workflows/methods/ugc-product-intro.js.map +1 -1
  91. package/dist/workflows/methods/website-proof-demo.d.ts +1 -0
  92. package/dist/workflows/product-references.d.ts +4 -0
  93. package/dist/workflows/product-references.js +32 -0
  94. package/dist/workflows/product-references.js.map +1 -0
  95. package/dist/workflows/validate.js +2 -0
  96. package/dist/workflows/validate.js.map +1 -1
  97. package/package.json +1 -1
@@ -0,0 +1,215 @@
1
+ import { z } from "zod";
2
+ import { GENERATION_KINDS } from "./generations-output.js";
3
+ import { runId } from "./runs.js";
4
+ import { uploadId } from "./uploads.js";
5
+ export const GENERATION_MODELS_PATH = "/v1/generations/models";
6
+ export const GENERATE_IMAGE_QUOTE_PATH = "/v1/skills/generate_image/quote";
7
+ export const GENERATE_IMAGE_RUN_PATH = "/v1/skills/generate_image/run";
8
+ export const GENERATE_VIDEO_QUOTE_PATH = "/v1/skills/generate_video/quote";
9
+ export const GENERATE_VIDEO_RUN_PATH = "/v1/skills/generate_video/run";
10
+ export const GENERATION_IMAGE_MODELS = ["seedream-5.0-flash", "flare"];
11
+ export const GENERATION_VIDEO_MODELS = ["seedance-2.0", "seedance-2.0-mini", "seedance-2.0-fast", "seedance-2.5"];
12
+ export const GENERATION_IMAGE_ASPECTS = ["9:16", "16:9", "1:1"];
13
+ export const GENERATION_VIDEO_ASPECTS = ["9:16", "16:9"];
14
+ export const GENERATION_RESOLUTIONS = ["480p", "720p", "1080p"];
15
+ export const GENERATION_VIDEO_MODES = ["text", "first_frame", "reference"];
16
+ export const GENERATION_MAX_REFERENCES = 4;
17
+ export const GENERATION_VIDEO_FPS = 24;
18
+ export const GENERATION_PROMPT_MAX_CHARS = 2000;
19
+ const image = (aspect_ratio, width, height, unit_credits, measured = false) => ({ aspect_ratio, width, height, unit_credits, measured });
20
+ const H264 = { codec: "h264", pix_fmt: "yuv420p" };
21
+ const UNPROBED = { codec: null, pix_fmt: null };
22
+ /** Rows in both aspects of one resolution; `measured` holds the aspects probed live (19.10 paid tests, ffprobe of the clips). */
23
+ function video(resolution, short, long, unit_credits, probed, measured = {}, warning) {
24
+ const extra = warning === undefined ? {} : { warning };
25
+ return [
26
+ { aspect_ratio: "9:16", resolution, width: short, height: long, ...probed, unit_credits, measured: measured.vertical ?? false, ...extra },
27
+ { aspect_ratio: "16:9", resolution, width: long, height: short, ...probed, unit_credits, measured: measured.horizontal ?? false, ...extra },
28
+ ];
29
+ }
30
+ const HEVC10 = { codec: "hevc", pix_fmt: "yuv420p10le" };
31
+ const SEEDANCE_2_0_MODES = { text: true, first_frame: true, reference: false };
32
+ const DRAFT_480P = "480p draft is 496x864 (2.1% off 9:16), as the vendor renders it; we do not crop it";
33
+ /** The one table of models, shapes and prices (D0, D7): schema, quote, admission and the models list read it. */
34
+ export const GENERATION_CAPABILITIES = deepFreeze({
35
+ "seedream-5.0-flash": {
36
+ kind: "image",
37
+ vendor: "byteplus",
38
+ vendor_model: { text: "dola-seedream-5-0-flash-260915", reference: "dola-seedream-5-0-flash-260915" },
39
+ rows: [image("9:16", 1440, 2560, 12, true), image("16:9", 2560, 1440, 12, true), image("1:1", 2048, 2048, 12, true)],
40
+ },
41
+ flare: {
42
+ kind: "image",
43
+ vendor: "fal",
44
+ vendor_model: { text: "openai/gpt-image-2.5/flare/text-to-image", reference: "openai/gpt-image-2.5/flare/edit" },
45
+ rows: [image("9:16", 1008, 1792, 18, true), image("16:9", 1792, 1008, 18), image("1:1", 1024, 1024, 18)],
46
+ },
47
+ "seedance-2.0": {
48
+ kind: "video",
49
+ vendor: "byteplus",
50
+ vendor_model: "dreamina-seedance-2-0-260128",
51
+ fps: GENERATION_VIDEO_FPS,
52
+ modes: SEEDANCE_2_0_MODES,
53
+ duration_s: { min: 4, max: 15 },
54
+ rows: [...video("480p", 480, 854, 45, UNPROBED), ...video("720p", 720, 1280, 100, H264, { vertical: true }),
55
+ ...video("1080p", 1080, 1920, 250, H264, { vertical: true, horizontal: true })],
56
+ },
57
+ "seedance-2.0-mini": {
58
+ kind: "video",
59
+ vendor: "byteplus",
60
+ vendor_model: "dreamina-seedance-2-0-mini-260615",
61
+ fps: GENERATION_VIDEO_FPS,
62
+ modes: { text: true, first_frame: true, reference: true },
63
+ duration_s: { min: 4, max: 15 },
64
+ rows: [...video("480p", 496, 864, 25, H264, { vertical: true }, DRAFT_480P),
65
+ ...video("720p", 720, 1280, 50, H264, { vertical: true, horizontal: true })],
66
+ },
67
+ "seedance-2.0-fast": {
68
+ kind: "video",
69
+ vendor: "byteplus",
70
+ vendor_model: "dreamina-seedance-2-0-fast-260128",
71
+ fps: GENERATION_VIDEO_FPS,
72
+ modes: SEEDANCE_2_0_MODES,
73
+ duration_s: { min: 4, max: 15 },
74
+ rows: [...video("480p", 480, 854, 35, UNPROBED), ...video("720p", 720, 1280, 80, H264, { vertical: true })],
75
+ },
76
+ "seedance-2.5": {
77
+ kind: "video",
78
+ vendor: "byteplus",
79
+ vendor_model: "dreamina-seedance-2-5-260628",
80
+ fps: GENERATION_VIDEO_FPS,
81
+ modes: { text: false, first_frame: true, reference: false },
82
+ duration_s: { min: 4, max: 30 },
83
+ rows: [...video("480p", 480, 854, 70, UNPROBED), ...video("720p", 720, 1280, 150, H264, { vertical: true }),
84
+ ...video("1080p", 1080, 1920, 380, HEVC10, { vertical: true }, "seedance-2.5 at 1080p is HEVC 10-bit (yuv420p10le); some browsers and editors do not play it")],
85
+ },
86
+ });
87
+ function deepFreeze(value) {
88
+ if (value !== null && typeof value === "object" && !Object.isFrozen(value)) {
89
+ Object.freeze(value);
90
+ for (const inner of Object.values(value))
91
+ deepFreeze(inner);
92
+ }
93
+ return value;
94
+ }
95
+ /** A reference: an own upload with its rights confirmed, or a prior image generation of the same account. */
96
+ export const generationReference = z.union([
97
+ z.strictObject({ upload_id: uploadId, rights_confirmed: z.literal(true) }),
98
+ z.strictObject({ run_id: runId }),
99
+ ]);
100
+ const prompt = z.string().trim().min(1).max(GENERATION_PROMPT_MAX_CHARS);
101
+ /** No `visible_ai_label`: an unknown key is refused, never passed to the provenance policy (D12). */
102
+ export const generateImageRequest = z.strictObject({
103
+ prompt,
104
+ model: z.enum(GENERATION_IMAGE_MODELS),
105
+ aspect_ratio: z.enum(GENERATION_IMAGE_ASPECTS),
106
+ references: z.array(generationReference).max(GENERATION_MAX_REFERENCES).optional(),
107
+ });
108
+ /** No audio field: the vendor is always asked for a silent clip. */
109
+ export const generateVideoRequest = z.strictObject({
110
+ prompt,
111
+ model: z.enum(GENERATION_VIDEO_MODELS),
112
+ mode: z.enum(GENERATION_VIDEO_MODES),
113
+ aspect_ratio: z.enum(GENERATION_VIDEO_ASPECTS),
114
+ resolution: z.enum(GENERATION_RESOLUTIONS),
115
+ duration_s: z.number().int().positive().safe(),
116
+ first_frame: generationReference.optional(),
117
+ last_frame: generationReference.optional(),
118
+ references: z.array(generationReference).min(1).max(GENERATION_MAX_REFERENCES).optional(),
119
+ }).superRefine((request, context) => {
120
+ const issue = (path, message) => context.addIssue({ code: z.ZodIssueCode.custom, path: [path], message });
121
+ const { min, max } = GENERATION_CAPABILITIES[request.model].duration_s;
122
+ if (request.duration_s < min || request.duration_s > max) {
123
+ issue("duration_s", `${request.model} takes ${min} to ${max} seconds`);
124
+ }
125
+ if (request.mode === "first_frame" && request.first_frame === undefined)
126
+ issue("first_frame", "first_frame mode requires first_frame");
127
+ if (request.mode !== "first_frame") {
128
+ if (request.first_frame !== undefined)
129
+ issue("first_frame", "first_frame is only accepted in first_frame mode");
130
+ if (request.last_frame !== undefined)
131
+ issue("last_frame", "last_frame is only accepted in first_frame mode");
132
+ }
133
+ if (request.mode === "reference" && request.references === undefined)
134
+ issue("references", "reference mode requires 1 to 4 references");
135
+ if (request.mode !== "reference" && request.references !== undefined)
136
+ issue("references", "references are only accepted in reference mode");
137
+ });
138
+ function isVideoRequest(request) {
139
+ return GENERATION_VIDEO_MODELS.includes(request.model);
140
+ }
141
+ /** The measured row a request falls on, or `null` for a combination we do not offer or have not measured. */
142
+ export function findCapabilityRow(request) {
143
+ if (isVideoRequest(request)) {
144
+ const capability = GENERATION_CAPABILITIES[request.model];
145
+ const { min, max } = capability.duration_s;
146
+ if (!capability.modes[request.mode] || request.duration_s < min || request.duration_s > max)
147
+ return null;
148
+ const row = capability.rows.find((one) => one.aspect_ratio === request.aspect_ratio && one.resolution === request.resolution);
149
+ return row?.measured ? { kind: "video", model: request.model, capability, row } : null;
150
+ }
151
+ const capability = GENERATION_CAPABILITIES[request.model];
152
+ const row = capability.rows.find((one) => one.aspect_ratio === request.aspect_ratio);
153
+ return row?.measured ? { kind: "image", model: request.model, capability, row } : null;
154
+ }
155
+ /** The price from the same table: an image is one unit, a clip one unit per requested second. `null` where no row is offered. */
156
+ export function priceGeneration(request) {
157
+ const match = findCapabilityRow(request);
158
+ if (match === null)
159
+ return null;
160
+ const units = match.kind === "video" && isVideoRequest(request) ? request.duration_s : 1;
161
+ return { unit_credits: match.row.unit_credits, units, credits: match.row.unit_credits * units };
162
+ }
163
+ export const generationQuote = z.strictObject({
164
+ skill: z.enum(["generate_image", "generate_video"]),
165
+ kind: z.enum(GENERATION_KINDS),
166
+ model: z.string().min(1),
167
+ unit: z.enum(["image", "second"]),
168
+ unit_credits: z.number().int().positive(),
169
+ units: z.number().int().positive(),
170
+ credits: z.number().int().positive(),
171
+ width: z.number().int().positive(),
172
+ height: z.number().int().positive(),
173
+ duration_s: z.number().int().positive().nullable(),
174
+ warnings: z.array(z.string()),
175
+ contract_version: z.string().min(1),
176
+ });
177
+ const listedRow = z.strictObject({
178
+ aspect_ratio: z.string().min(1),
179
+ resolution: z.enum(GENERATION_RESOLUTIONS).nullable(),
180
+ width: z.number().int().positive(),
181
+ height: z.number().int().positive(),
182
+ unit_credits: z.number().int().positive(),
183
+ });
184
+ /** One offered model: vendors are not named, and only measured modes and rows are shown. */
185
+ const listedModel = z.strictObject({
186
+ model: z.string().min(1),
187
+ kind: z.enum(GENERATION_KINDS),
188
+ unit: z.enum(["image", "second"]),
189
+ modes: z.array(z.enum(GENERATION_VIDEO_MODES)).nullable(),
190
+ duration_s: z.strictObject({ min: z.number().int().positive(), max: z.number().int().positive() }).nullable(),
191
+ max_references: z.number().int().nonnegative(),
192
+ rows: z.array(listedRow).min(1),
193
+ });
194
+ export const generationModels = z.strictObject({
195
+ models: z.array(listedModel),
196
+ contract_version: z.string().min(1),
197
+ });
198
+ /** The models list from the table: a model with no measured row, or a video model with no measured mode, is left out. */
199
+ export function listGenerationModels() {
200
+ return Object.keys(GENERATION_CAPABILITIES).flatMap((model) => {
201
+ const capability = GENERATION_CAPABILITIES[model];
202
+ if (capability.kind === "image") {
203
+ const rows = capability.rows.filter((row) => row.measured)
204
+ .map(({ aspect_ratio, width, height, unit_credits }) => ({ aspect_ratio, resolution: null, width, height, unit_credits }));
205
+ return rows.length === 0 ? [] : [{ model, kind: "image", unit: "image", modes: null, duration_s: null,
206
+ max_references: GENERATION_MAX_REFERENCES, rows }];
207
+ }
208
+ const modes = GENERATION_VIDEO_MODES.filter((mode) => capability.modes[mode]);
209
+ const rows = capability.rows.filter((row) => row.measured)
210
+ .map(({ aspect_ratio, resolution, width, height, unit_credits }) => ({ aspect_ratio, resolution, width, height, unit_credits }));
211
+ return rows.length === 0 || modes.length === 0 ? [] : [{ model, kind: "video", unit: "second", modes,
212
+ duration_s: { ...capability.duration_s }, max_references: modes.includes("reference") ? GENERATION_MAX_REFERENCES : 0, rows }];
213
+ });
214
+ }
215
+ //# sourceMappingURL=generations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generations.js","sourceRoot":"","sources":["../src/generations.ts"],"names":[],"mappings":"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"}
@@ -14,5 +14,7 @@ export declare function actorIdempotencyKeyFor(input: unknown, clientId: string)
14
14
  export declare function revisionIdempotencyKeyFor(sourceRunId: string, request: unknown, clientId: string): string;
15
15
  /** The key of a shot candidate: the source run and the request with its take, parsed, under the client's prefix. */
16
16
  export declare function candidateIdempotencyKeyFor(sourceRunId: string, request: unknown, clientId: string): string;
17
+ /** The key of a single generation: the skill and its request, parsed, under the client's prefix. */
18
+ export declare function generationIdempotencyKeyFor(skill: "generate_image" | "generate_video", request: unknown, clientId: string): string;
17
19
  /** The same key for `make_faceless`, parsed by its own union schema. */
18
20
  export declare function facelessIdempotencyKeyFor(input: unknown, clientId: string): string;
@@ -3,6 +3,7 @@ import { createActorInput } from "./account-actors.js";
3
3
  import { candidateRequest } from "./edit-candidate.js";
4
4
  import { revisionRequest } from "./edit-revision.js";
5
5
  import { makeFacelessInput } from "./faceless-public.js";
6
+ import { generateImageRequest, generateVideoRequest } from "./generations.js";
6
7
  import { runId } from "./runs.js";
7
8
  import { makeUgcInput } from "./skills.js";
8
9
  // Request fingerprint and per-client idempotency key. A subpath export, not the barrel:
@@ -62,6 +63,13 @@ export function candidateIdempotencyKeyFor(sourceRunId, request, clientId) {
62
63
  .update(clientId + JSON.stringify(canonicalize(parsed)))
63
64
  .digest("hex");
64
65
  }
66
+ /** The key of a single generation: the skill and its request, parsed, under the client's prefix. */
67
+ export function generationIdempotencyKeyFor(skill, request, clientId) {
68
+ const parsed = { skill, request: skill === "generate_image" ? generateImageRequest.parse(request) : generateVideoRequest.parse(request) };
69
+ return createHash("sha256")
70
+ .update(clientId + JSON.stringify(canonicalize(parsed)))
71
+ .digest("hex");
72
+ }
65
73
  /** The same key for `make_faceless`, parsed by its own union schema. */
66
74
  export function facelessIdempotencyKeyFor(input, clientId) {
67
75
  const parsed = makeFacelessInput.parse(input);
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -35,7 +35,11 @@ export * from "./media-timebase.js";
35
35
  export * from "./billing-terms.js";
36
36
  export * from "./voice-preview-approval.js";
37
37
  export * from "./face-delivery.js";
38
+ export * from "./ugc-delivery.js";
38
39
  export * from "./faceless-public-plan.js";
39
40
  export * from "./faceless-media-record.js";
40
41
  export * from "./edit.js";
41
42
  export * from "./workflows/index.js";
43
+ export * from "./output-provenance.js";
44
+ export * from "./generations.js";
45
+ export * from "./generations-output.js";
package/dist/index.js CHANGED
@@ -56,8 +56,12 @@ export * from "./media-timebase.js";
56
56
  export * from "./billing-terms.js";
57
57
  export * from "./voice-preview-approval.js";
58
58
  export * from "./face-delivery.js";
59
+ export * from "./ugc-delivery.js";
59
60
  export * from "./faceless-public-plan.js";
60
61
  export * from "./faceless-media-record.js";
61
62
  export * from "./edit.js";
62
63
  export * from "./workflows/index.js";
64
+ export * from "./output-provenance.js";
65
+ export * from "./generations.js";
66
+ export * from "./generations-output.js";
63
67
  //# sourceMappingURL=index.js.map
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,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,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;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,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;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,244 @@
1
+ import { z } from "zod";
2
+ import { type ResolvedTimeline } from "./resolved-timeline.js";
3
+ /** How a long-form run fills what a picture leaves of the canvas (`makeUgcInput.background`). */
4
+ export declare const LONG_FORM_BACKGROUNDS: readonly ["white", "blur", "contain"];
5
+ export type LongFormBackground = (typeof LONG_FORM_BACKGROUNDS)[number];
6
+ /** A picture's zoom, as `makeUgcInput` takes it. */
7
+ export declare const longFormImageMotion: z.ZodObject<{
8
+ direction: z.ZodEnum<{
9
+ in: "in";
10
+ out: "out";
11
+ }>;
12
+ amount: z.ZodNumber;
13
+ }, z.core.$strict>;
14
+ export type LongFormImageMotion = z.infer<typeof longFormImageMotion>;
15
+ /** What a render needs beyond the timeline, copied from the root's input at admission; a position absent from the motions does not move. */
16
+ export declare const longFormRevisionRender: z.ZodObject<{
17
+ aspect_ratio: z.ZodEnum<{
18
+ "16:9": "16:9";
19
+ "1:1": "1:1";
20
+ "9:16": "9:16";
21
+ }>;
22
+ width: z.ZodNumber;
23
+ height: z.ZodNumber;
24
+ background: z.ZodNullable<z.ZodEnum<{
25
+ blur: "blur";
26
+ contain: "contain";
27
+ white: "white";
28
+ }>>;
29
+ motion_by_position: z.ZodRecord<z.ZodString, z.ZodObject<{
30
+ direction: z.ZodEnum<{
31
+ in: "in";
32
+ out: "out";
33
+ }>;
34
+ amount: z.ZodNumber;
35
+ }, z.core.$strict>>;
36
+ }, z.core.$strict>;
37
+ export type LongFormRevisionRender = z.infer<typeof longFormRevisionRender>;
38
+ /** The stored input of a `revise_long_form` run: the request as resolved, and what admission froze about it. */
39
+ export declare const longFormRevisionInput: z.ZodObject<{
40
+ input_mode: z.ZodLiteral<"revision">;
41
+ revision: z.ZodObject<{
42
+ source_run_id: z.ZodString;
43
+ document: z.ZodObject<{
44
+ v: z.ZodLiteral<1>;
45
+ source_run_id: z.ZodString;
46
+ timebase: z.ZodObject<{
47
+ fps: z.ZodNumber;
48
+ }, z.core.$strict>;
49
+ duration_frames: z.ZodNumber;
50
+ shots: z.ZodArray<z.ZodObject<{
51
+ id: z.ZodString;
52
+ track: z.ZodEnum<{
53
+ presenter: "presenter";
54
+ visual: "visual";
55
+ }>;
56
+ kind: z.ZodEnum<{
57
+ clip: "clip";
58
+ picture: "picture";
59
+ presenter: "presenter";
60
+ }>;
61
+ start_frame: z.ZodNumber;
62
+ end_frame: z.ZodNumber;
63
+ media_offset_frames: z.ZodOptional<z.ZodNumber>;
64
+ asset: z.ZodDiscriminatedUnion<[z.ZodObject<{
65
+ from: z.ZodLiteral<"source">;
66
+ shot_id: z.ZodString;
67
+ }, z.core.$strict>, z.ZodObject<{
68
+ from: z.ZodLiteral<"candidate">;
69
+ run_id: z.ZodString;
70
+ }, z.core.$strict>, z.ZodObject<{
71
+ from: z.ZodLiteral<"upload">;
72
+ upload_id: z.ZodString;
73
+ }, z.core.$strict>, z.ZodObject<{
74
+ from: z.ZodLiteral<"generate">;
75
+ operation: z.ZodDiscriminatedUnion<[z.ZodObject<{
76
+ mode: z.ZodLiteral<"retake">;
77
+ }, z.core.$strict>, z.ZodObject<{
78
+ mode: z.ZodLiteral<"new_picture">;
79
+ description: z.ZodString;
80
+ }, z.core.$strict>, z.ZodObject<{
81
+ mode: z.ZodLiteral<"edit_picture">;
82
+ instruction: z.ZodString;
83
+ }, z.core.$strict>, z.ZodObject<{
84
+ mode: z.ZodLiteral<"animate">;
85
+ motion: z.ZodOptional<z.ZodString>;
86
+ }, z.core.$strict>], "mode">;
87
+ }, z.core.$strict>], "from">;
88
+ }, z.core.$strict>>;
89
+ discarded: z.ZodDefault<z.ZodArray<z.ZodString>>;
90
+ }, z.core.$strict>;
91
+ }, z.core.$strict>;
92
+ resolved_revision: z.ZodObject<{
93
+ root_run_id: z.ZodString;
94
+ summary: z.ZodObject<{
95
+ retimed: z.ZodArray<z.ZodString>;
96
+ deleted: z.ZodArray<z.ZodString>;
97
+ added: z.ZodArray<z.ZodString>;
98
+ replaced: z.ZodArray<z.ZodObject<{
99
+ shot_id: z.ZodString;
100
+ from: z.ZodEnum<{
101
+ candidate: "candidate";
102
+ source: "source";
103
+ upload: "upload";
104
+ }>;
105
+ }, z.core.$strict>>;
106
+ generated: z.ZodArray<z.ZodObject<{
107
+ shot_id: z.ZodString;
108
+ kind: z.ZodEnum<{
109
+ clip: "clip";
110
+ picture: "picture";
111
+ presenter: "presenter";
112
+ }>;
113
+ mode: z.ZodEnum<{
114
+ animate: "animate";
115
+ edit_picture: "edit_picture";
116
+ new_picture: "new_picture";
117
+ retake: "retake";
118
+ }>;
119
+ }, z.core.$strict>>;
120
+ changed: z.ZodBoolean;
121
+ }, z.core.$strict>;
122
+ billing: z.ZodObject<{
123
+ tariff_id: z.ZodString;
124
+ lines: z.ZodArray<z.ZodObject<{
125
+ shot_id: z.ZodString;
126
+ unit: z.ZodEnum<{
127
+ clip: "clip";
128
+ clip_with_new_picture: "clip_with_new_picture";
129
+ kept_clip: "kept_clip";
130
+ kept_picture: "kept_picture";
131
+ picture: "picture";
132
+ }>;
133
+ credits: z.ZodNumber;
134
+ }, z.core.$strict>>;
135
+ render_credits: z.ZodNumber;
136
+ zero_unit: z.ZodNullable<z.ZodEnum<{
137
+ free: "free";
138
+ priced: "priced";
139
+ }>>;
140
+ total_credits: z.ZodNumber;
141
+ }, z.core.$strict>;
142
+ render: z.ZodObject<{
143
+ aspect_ratio: z.ZodEnum<{
144
+ "16:9": "16:9";
145
+ "1:1": "1:1";
146
+ "9:16": "9:16";
147
+ }>;
148
+ width: z.ZodNumber;
149
+ height: z.ZodNumber;
150
+ background: z.ZodNullable<z.ZodEnum<{
151
+ blur: "blur";
152
+ contain: "contain";
153
+ white: "white";
154
+ }>>;
155
+ motion_by_position: z.ZodRecord<z.ZodString, z.ZodObject<{
156
+ direction: z.ZodEnum<{
157
+ in: "in";
158
+ out: "out";
159
+ }>;
160
+ amount: z.ZodNumber;
161
+ }, z.core.$strict>>;
162
+ }, z.core.$strict>;
163
+ }, z.core.$strict>;
164
+ }, z.core.$strict>;
165
+ export type LongFormRevisionInput = z.infer<typeof longFormRevisionInput>;
166
+ /** One changed visual shot, drawn above the source tiling over its whole span. A cover has no motion; an insert keeps its slot's. */
167
+ export declare const longFormOverlay: z.ZodObject<{
168
+ shot_id: z.ZodString;
169
+ start_frame: z.ZodNumber;
170
+ end_frame: z.ZodNumber;
171
+ object: z.ZodObject<{
172
+ key: z.ZodString;
173
+ sha256: z.ZodString;
174
+ bytes: z.ZodNumber;
175
+ width: z.ZodNumber;
176
+ height: z.ZodNumber;
177
+ content_type: z.ZodEnum<{
178
+ "image/jpeg": "image/jpeg";
179
+ "image/png": "image/png";
180
+ }>;
181
+ }, z.core.$strict>;
182
+ origin: z.ZodEnum<{
183
+ source: "source";
184
+ upload: "upload";
185
+ }>;
186
+ motion: z.ZodNullable<z.ZodObject<{
187
+ direction: z.ZodEnum<{
188
+ in: "in";
189
+ out: "out";
190
+ }>;
191
+ amount: z.ZodNumber;
192
+ }, z.core.$strict>>;
193
+ }, z.core.$strict>;
194
+ export type LongFormOverlay = z.infer<typeof longFormOverlay>;
195
+ declare const recordShape: z.ZodObject<{
196
+ version: z.ZodLiteral<1>;
197
+ run_id: z.ZodString;
198
+ account_id: z.ZodString;
199
+ source_run_id: z.ZodString;
200
+ root_run_id: z.ZodString;
201
+ base: z.ZodUnknown;
202
+ visual: z.ZodArray<z.ZodObject<{
203
+ shot_id: z.ZodString;
204
+ start_frame: z.ZodNumber;
205
+ end_frame: z.ZodNumber;
206
+ object: z.ZodObject<{
207
+ key: z.ZodString;
208
+ sha256: z.ZodString;
209
+ bytes: z.ZodNumber;
210
+ width: z.ZodNumber;
211
+ height: z.ZodNumber;
212
+ content_type: z.ZodEnum<{
213
+ "image/jpeg": "image/jpeg";
214
+ "image/png": "image/png";
215
+ }>;
216
+ }, z.core.$strict>;
217
+ origin: z.ZodEnum<{
218
+ source: "source";
219
+ upload: "upload";
220
+ }>;
221
+ motion: z.ZodNullable<z.ZodObject<{
222
+ direction: z.ZodEnum<{
223
+ in: "in";
224
+ out: "out";
225
+ }>;
226
+ amount: z.ZodNumber;
227
+ }, z.core.$strict>>;
228
+ }, z.core.$strict>>;
229
+ }, z.core.$strict>;
230
+ /** What a delivered long-form revision rendered: the source tiling rebound to its own run and keys, and its overlays. */
231
+ export type LongFormRevisionRecord = Omit<z.infer<typeof recordShape>, "base"> & {
232
+ base: ResolvedTimeline;
233
+ };
234
+ /** Where a long-form revision's record is stored, and the most bytes it may take there. */
235
+ export declare const longFormRevisionRecordKey: (id: string) => string;
236
+ export declare const LONG_FORM_REVISION_RECORD_MAX_BYTES = 512000;
237
+ /** Whether a key names an object of this run: a plain path under `runs/<runId>/`, with no segment to climb out by. */
238
+ export declare function longFormOwnKey(key: string, id: string): boolean;
239
+ /** The stored record of the run being read, checked against that run and against itself: every key and overlay belong to it. */
240
+ export declare function readLongFormRevisionRecord(stored: string | Uint8Array, expected: {
241
+ runId: string;
242
+ accountId: string;
243
+ }): LongFormRevisionRecord;
244
+ export {};