@clipwright/core 0.34.0 → 0.35.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 (179) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/README.md +3 -1
  3. package/dist/account-actors.d.ts +173 -14
  4. package/dist/account-actors.js +142 -10
  5. package/dist/account-actors.js.map +1 -1
  6. package/dist/actor-bounds.d.ts +4 -0
  7. package/dist/actor-bounds.js +4 -0
  8. package/dist/actor-bounds.js.map +1 -1
  9. package/dist/actors.d.ts +31 -0
  10. package/dist/actors.js +26 -0
  11. package/dist/actors.js.map +1 -1
  12. package/dist/assets.d.ts +17 -1
  13. package/dist/assets.js +19 -2
  14. package/dist/assets.js.map +1 -1
  15. package/dist/billing-terms.d.ts +69 -0
  16. package/dist/billing-terms.js +8 -0
  17. package/dist/billing-terms.js.map +1 -1
  18. package/dist/contract-dispositions.d.ts +485 -1
  19. package/dist/contract-dispositions.js +27 -3
  20. package/dist/contract-dispositions.js.map +1 -1
  21. package/dist/contracts/v1/workflow-brief.d.ts +1420 -0
  22. package/dist/contracts/v1/workflow-brief.js +4 -0
  23. package/dist/contracts/v1/workflow-brief.js.map +1 -1
  24. package/dist/contracts/v1/workflow-catalog.d.ts +2141 -105
  25. package/dist/contracts/v1/workflow-catalog.js +4 -2
  26. package/dist/contracts/v1/workflow-catalog.js.map +1 -1
  27. package/dist/contracts/v1/workflow-client.d.ts +1631 -3
  28. package/dist/contracts/v1/workflow-client.js +6 -3
  29. package/dist/contracts/v1/workflow-client.js.map +1 -1
  30. package/dist/contracts/v1/workflow-execution.d.ts +161 -9
  31. package/dist/contracts/v1/workflow-execution.js +15 -7
  32. package/dist/contracts/v1/workflow-execution.js.map +1 -1
  33. package/dist/contracts/v1/workflow-plan.d.ts +3167 -142
  34. package/dist/contracts/v1/workflow-primitives.d.ts +3 -1
  35. package/dist/contracts/v1/workflow-primitives.js +1 -1
  36. package/dist/contracts/v1/workflow-primitives.js.map +1 -1
  37. package/dist/contracts/v1/workflow-run-read.d.ts +114 -1
  38. package/dist/edit-billing.d.ts +12 -0
  39. package/dist/edit-billing.js +8 -0
  40. package/dist/edit-billing.js.map +1 -1
  41. package/dist/edit-long-form.d.ts +1 -1
  42. package/dist/edit-long-form.js +12 -2
  43. package/dist/edit-long-form.js.map +1 -1
  44. package/dist/endpoint-notes.d.ts +3 -0
  45. package/dist/endpoint-notes.js +66 -0
  46. package/dist/endpoint-notes.js.map +1 -0
  47. package/dist/endpoints.d.ts +4 -0
  48. package/dist/endpoints.js +13 -0
  49. package/dist/endpoints.js.map +1 -1
  50. package/dist/errors.d.ts +1 -1
  51. package/dist/errors.js +6 -0
  52. package/dist/errors.js.map +1 -1
  53. package/dist/face-billing.d.ts +55 -0
  54. package/dist/face-billing.js +22 -0
  55. package/dist/face-billing.js.map +1 -1
  56. package/dist/faceless-price.d.ts +26 -2
  57. package/dist/faceless-price.js +33 -6
  58. package/dist/faceless-price.js.map +1 -1
  59. package/dist/faceless-public.d.ts +6 -1
  60. package/dist/faceless-public.js +2 -2
  61. package/dist/faceless-public.js.map +1 -1
  62. package/dist/generations.js +15 -16
  63. package/dist/generations.js.map +1 -1
  64. package/dist/idempotency.d.ts +2 -0
  65. package/dist/idempotency.js +7 -4
  66. package/dist/idempotency.js.map +1 -1
  67. package/dist/index.d.ts +11 -0
  68. package/dist/index.js +13 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/long-form-pricing.d.ts +7 -4
  71. package/dist/long-form-pricing.js +13 -10
  72. package/dist/long-form-pricing.js.map +1 -1
  73. package/dist/long-form-revision.js +1 -1
  74. package/dist/long-form-revision.js.map +1 -1
  75. package/dist/openapi.d.ts +154 -0
  76. package/dist/openapi.js +334 -0
  77. package/dist/openapi.js.map +1 -0
  78. package/dist/pacing.d.ts +15 -0
  79. package/dist/pacing.js +30 -0
  80. package/dist/pacing.js.map +1 -1
  81. package/dist/parts-pricing.d.ts +84 -0
  82. package/dist/parts-pricing.js +105 -0
  83. package/dist/parts-pricing.js.map +1 -0
  84. package/dist/presenter-beats.d.ts +45 -0
  85. package/dist/presenter-beats.js +144 -0
  86. package/dist/presenter-beats.js.map +1 -0
  87. package/dist/prices.d.ts +98 -0
  88. package/dist/prices.js +189 -0
  89. package/dist/prices.js.map +1 -0
  90. package/dist/public-responses.d.ts +23 -0
  91. package/dist/public-responses.js +11 -0
  92. package/dist/public-responses.js.map +1 -0
  93. package/dist/reference-analysis.d.ts +683 -0
  94. package/dist/reference-analysis.js +91 -0
  95. package/dist/reference-analysis.js.map +1 -0
  96. package/dist/reference-kinds.d.ts +6 -0
  97. package/dist/reference-kinds.js +8 -0
  98. package/dist/reference-kinds.js.map +1 -0
  99. package/dist/reference-profile.d.ts +633 -0
  100. package/dist/reference-profile.js +151 -0
  101. package/dist/reference-profile.js.map +1 -0
  102. package/dist/reference-staging.d.ts +571 -0
  103. package/dist/reference-staging.js +151 -0
  104. package/dist/reference-staging.js.map +1 -0
  105. package/dist/reference-voice.d.ts +305 -0
  106. package/dist/reference-voice.js +108 -0
  107. package/dist/reference-voice.js.map +1 -0
  108. package/dist/resolved-timeline.d.ts +53 -1
  109. package/dist/resolved-timeline.js +50 -4
  110. package/dist/resolved-timeline.js.map +1 -1
  111. package/dist/run-static-warnings.js +14 -5
  112. package/dist/run-static-warnings.js.map +1 -1
  113. package/dist/runs.d.ts +75 -3
  114. package/dist/runs.js +6 -1
  115. package/dist/runs.js.map +1 -1
  116. package/dist/skills.d.ts +1805 -24
  117. package/dist/skills.js +129 -19
  118. package/dist/skills.js.map +1 -1
  119. package/dist/templates/callout.d.ts +2 -2
  120. package/dist/templates/callout.js +6 -6
  121. package/dist/templates/callout.js.map +1 -1
  122. package/dist/templates/checklist.js +2 -2
  123. package/dist/templates/checklist.js.map +1 -1
  124. package/dist/templates/index.d.ts +14 -7
  125. package/dist/templates/index.js +29 -17
  126. package/dist/templates/index.js.map +1 -1
  127. package/dist/templates/notification.js +2 -2
  128. package/dist/templates/notification.js.map +1 -1
  129. package/dist/templates/phone-call.d.ts +3 -0
  130. package/dist/templates/phone-call.js +14 -7
  131. package/dist/templates/phone-call.js.map +1 -1
  132. package/dist/templates/progress.js +2 -2
  133. package/dist/templates/progress.js.map +1 -1
  134. package/dist/templates/sounds.d.ts +357 -7
  135. package/dist/templates/sounds.js +34 -12
  136. package/dist/templates/sounds.js.map +1 -1
  137. package/dist/ugc-call.d.ts +89 -0
  138. package/dist/ugc-call.js +111 -0
  139. package/dist/ugc-call.js.map +1 -0
  140. package/dist/ugc-framing.d.ts +26 -0
  141. package/dist/ugc-framing.js +64 -0
  142. package/dist/ugc-framing.js.map +1 -0
  143. package/dist/ugc-layers.d.ts +5 -1
  144. package/dist/ugc-layers.js +6 -1
  145. package/dist/ugc-layers.js.map +1 -1
  146. package/dist/vendor-response.d.ts +4 -0
  147. package/dist/vendor-response.js +12 -0
  148. package/dist/vendor-response.js.map +1 -1
  149. package/dist/voice-admission.d.ts +409 -0
  150. package/dist/voice-listing.js +7 -1
  151. package/dist/voice-listing.js.map +1 -1
  152. package/dist/voice-pace.d.ts +34 -0
  153. package/dist/voice-pace.generated.json +72 -0
  154. package/dist/voice-pace.js +34 -0
  155. package/dist/voice-pace.js.map +1 -0
  156. package/dist/voices.d.ts +21 -8
  157. package/dist/voices.js +44 -19
  158. package/dist/voices.js.map +1 -1
  159. package/dist/workflows/catalog.js +2 -1
  160. package/dist/workflows/catalog.js.map +1 -1
  161. package/dist/workflows/index.d.ts +2 -0
  162. package/dist/workflows/index.js +2 -0
  163. package/dist/workflows/index.js.map +1 -1
  164. package/dist/workflows/methods/faceless-explainer.d.ts +377 -10
  165. package/dist/workflows/methods/kinetic-launch.d.ts +377 -10
  166. package/dist/workflows/methods/product-image-story.d.ts +377 -10
  167. package/dist/workflows/methods/reference-remake.d.ts +870 -0
  168. package/dist/workflows/methods/reference-remake.js +26 -0
  169. package/dist/workflows/methods/reference-remake.js.map +1 -0
  170. package/dist/workflows/methods/shared.d.ts +377 -10
  171. package/dist/workflows/methods/ugc-faq-answer.d.ts +377 -10
  172. package/dist/workflows/methods/ugc-product-intro.d.ts +377 -10
  173. package/dist/workflows/methods/website-proof-demo.d.ts +377 -10
  174. package/dist/workflows/reference-remake.d.ts +663 -0
  175. package/dist/workflows/reference-remake.js +598 -0
  176. package/dist/workflows/reference-remake.js.map +1 -0
  177. package/dist/workflows/validate.js +7 -4
  178. package/dist/workflows/validate.js.map +1 -1
  179. package/package.json +8 -2
@@ -0,0 +1,151 @@
1
+ import { z } from "zod";
2
+ import { REFERENCE_GRAPHIC_KINDS, REFERENCE_SOURCE_KINDS } from "./reference-kinds.js";
3
+ import { referenceStaging, stagingIssues } from "./reference-staging.js";
4
+ import { referenceVoice } from "./reference-voice.js";
5
+ import { CAPTION_EMPHASIS_LOOKS } from "./skills.js";
6
+ import { TEMPLATE_KIND_IDS, TEMPLATE_SOUND_BEATS } from "./templates/index.js";
7
+ import { PRESENTER_FRAMINGS } from "./ugc-layers.js";
8
+ export { REFERENCE_GRAPHIC_KINDS, REFERENCE_SOURCE_KINDS } from "./reference-kinds.js";
9
+ // Reference profile (reference-to-video S1): a reference ad's style in our vocabulary, beats in shares of its length, never its media.
10
+ export const REFERENCE_PROFILE_VERSION = "reference-profile-v1";
11
+ export const REFERENCE_FORMATS = ["talking_head_graphics", "faceless", "broll", "other"];
12
+ export const REFERENCE_BEAT_ROLES = ["hook", "problem", "agitation", "solution", "demo", "proof", "before_after", "social_proof", "offer", "cta",
13
+ "other"];
14
+ export const REFERENCE_POSITIONS = ["full_screen", "top", "center", "bottom", "top_left", "top_right", "bottom_left", "bottom_right", "split_top",
15
+ "split_bottom", "other"];
16
+ export const REFERENCE_CAMERAS = ["static", "punch_in", "zoom_out", "shake", "other"];
17
+ export const REFERENCE_TRANSITIONS = ["none", "cut", "wipe", "flash", "zoom", "other"];
18
+ export const REFERENCE_SOUND_KINDS = [...TEMPLATE_SOUND_BEATS, "music", "recorded_audio", "other"];
19
+ export const REFERENCE_PRESENTER_BEHAVIOURS = ["speaking", "listening", "reacting", "absent"];
20
+ export const REFERENCE_CAPTION_POSITIONS = ["top", "middle", "lower", "bottom"];
21
+ export const MAX_REFERENCE_SUMMARY_CHARS = 200;
22
+ /** What a graphic does at a state change, in a closed set: the reference's own words never reach a stored profile. */
23
+ export const REFERENCE_STATE_CHANGES = ["appears", "disappears", "toggles_on", "toggles_off", "checked", "value_changes", "highlighted", "other"];
24
+ const customIssue = "custom";
25
+ const frac = z.number().min(0).max(1);
26
+ const seconds = z.number().min(0);
27
+ const text = (max) => z.string().max(max);
28
+ const referenceGraphic = z.strictObject({
29
+ kind: z.enum(REFERENCE_GRAPHIC_KINDS),
30
+ source_kind: z.enum(REFERENCE_SOURCE_KINDS).describe("The analyser's own word for it, or other."),
31
+ position: z.enum(REFERENCE_POSITIONS),
32
+ state_changes: z.array(z.strictObject({ at_frac: frac.describe("Share of the beat."), change: z.enum(REFERENCE_STATE_CHANGES) })).max(12),
33
+ label_hint: text(120),
34
+ });
35
+ const referenceBeat = z.strictObject({
36
+ start_frac: frac, end_frac: frac,
37
+ start_s: seconds.describe("Seconds of the reference, kept as evidence only."), end_s: seconds,
38
+ role: z.enum(REFERENCE_BEAT_ROLES),
39
+ spoken_summary: text(MAX_REFERENCE_SUMMARY_CHARS),
40
+ graphics: z.array(referenceGraphic).max(8),
41
+ camera: z.enum(REFERENCE_CAMERAS),
42
+ transition_in: z.enum(REFERENCE_TRANSITIONS),
43
+ sounds: z.array(z.strictObject({ at_frac: frac, kind: z.enum(REFERENCE_SOUND_KINDS) })).max(12),
44
+ presenter_behaviour: z.enum(REFERENCE_PRESENTER_BEHAVIOURS),
45
+ });
46
+ export const referenceProfile = z.strictObject({
47
+ version: z.literal(REFERENCE_PROFILE_VERSION),
48
+ source: z.strictObject({ digest: z.string().regex(/^sha256:[0-9a-f]{64}$/), duration_s: z.number().positive(), width: z.number().int().positive(),
49
+ height: z.number().int().positive(), url: z.string().url().max(2048).optional() }),
50
+ format: z.enum(REFERENCE_FORMATS),
51
+ beats: z.array(referenceBeat).min(1).max(40),
52
+ captions: z.strictObject({ present: z.boolean(), words_per_caption_max: z.number().int().min(1).max(12), position: z.enum(REFERENCE_CAPTION_POSITIONS),
53
+ emphasis_style: z.enum([...CAPTION_EMPHASIS_LOOKS, "none"]), hidden_under_graphics: z.boolean() }),
54
+ pacing: z.strictObject({ layer_change_every_s: z.number().positive(), face_share: frac }),
55
+ palette: z.array(z.string().regex(/^#[0-9A-F]{6}$/)).max(8),
56
+ music: text(200),
57
+ unmapped: z.array(z.strictObject({ what: text(200), beat_index: z.number().int().min(0), suggested_substitute: text(200) })).max(40),
58
+ analysis: z.strictObject({ models: z.array(z.string().min(1).max(60)).min(1), cost_usd: z.number().min(0).optional(),
59
+ latency_ms: z.number().int().min(0),
60
+ warnings: z.array(text(200)).max(8).optional().describe("What the analysis could not measure, such as the voice pass; also in warnings[].") }),
61
+ /** Optional since S7: a profile written before it has none and still parses. */
62
+ voice: referenceVoice.optional(),
63
+ /** Optional since #884 S5d; absent reads as close. */
64
+ presenter_framing: z.enum(PRESENTER_FRAMINGS).optional()
65
+ .describe("wide: the top of the presenter's head is below ~35% of the frame height, with visible room above; close otherwise."),
66
+ /** Optional since #884 S5d; absent reads as false. */
67
+ presenter_mic: z.boolean().optional()
68
+ .describe("true when the presenter holds a small handheld or clip-on microphone in their hand while speaking (not clipped to clothing)."),
69
+ /** Optional since #914 D1: a profile without it parses, and every field inside it is absent when not measured. */
70
+ staging: referenceStaging.optional(),
71
+ }).superRefine((profile, ctx) => {
72
+ const issue = (path, message) => ctx.addIssue({ code: customIssue, path, message });
73
+ if (profile.staging) {
74
+ for (const found of stagingIssues(profile.staging, profile.beats, profile.source.duration_s))
75
+ issue(["staging", ...found.path], found.message);
76
+ }
77
+ profile.beats.forEach((beat, index) => {
78
+ if (beat.end_frac <= beat.start_frac)
79
+ issue(["beats", index, "end_frac"], "ends where or before the beat starts");
80
+ else if (beat.end_s <= beat.start_s)
81
+ issue(["beats", index, "end_s"], "ends where or before the beat starts");
82
+ if (beat.end_s > profile.source.duration_s)
83
+ issue(["beats", index, "end_s"], `lies past the source's ${profile.source.duration_s} s`);
84
+ const before = profile.beats[index - 1];
85
+ if (before && beat.start_frac < before.end_frac)
86
+ issue(["beats", index, "start_frac"], "overlaps the beat before it: beats are ordered and apart");
87
+ beat.graphics.forEach((graphic, at) => {
88
+ if ((graphic.kind === "particles" || graphic.kind === "unmapped") && !profile.unmapped.some(entry => entry.beat_index === index)) {
89
+ issue(["beats", index, "graphics", at, "kind"], `${graphic.kind} is not drawn: name it in unmapped with a substitute (rule 3)`);
90
+ }
91
+ });
92
+ });
93
+ profile.unmapped.forEach((entry, index) => {
94
+ if (entry.beat_index >= profile.beats.length)
95
+ issue(["unmapped", index, "beat_index"], `there are ${profile.beats.length} beats`);
96
+ });
97
+ });
98
+ /** Readers keep a newer profile whole and need only the gaps it names. */
99
+ export const referenceProfileRead = z.looseObject({ version: z.string(), beats: z.array(z.looseObject({ role: z.string() })).default([]),
100
+ unmapped: z.array(z.looseObject({ what: z.string(), beat_index: z.number(), suggested_substitute: z.string() })).default([]) });
101
+ /** What the plan does not reproduce from its reference, one warning per unmapped entry (rule 3, C5). */
102
+ export function referenceProfileWarnings(profile) {
103
+ if (!profile)
104
+ return [];
105
+ return (profile.unmapped ?? []).map(entry => {
106
+ const role = profile.beats?.[entry.beat_index]?.role;
107
+ return `Reference beat ${entry.beat_index + 1}${role ? ` (${role})` : ""}: ${entry.what} is not reproduced; instead: ${entry.suggested_substitute}.`;
108
+ });
109
+ }
110
+ const DIRECT = {
111
+ ...Object.fromEntries(TEMPLATE_KIND_IDS.map(kind => [kind, kind])),
112
+ toggle_checklist: "checklist", before_after_split: "compare", split_screen: "layout_split", particles: "particles",
113
+ };
114
+ const SUBSTITUTES = {
115
+ particles: "a stat or title_card on the same words; particles are not drawn",
116
+ };
117
+ /** An analyser's free-text state change as one of our categories; an unrecognised one is other, never kept as text. */
118
+ export function mapAnalyserStateChange(text) {
119
+ const s = text.trim().toLowerCase();
120
+ if (REFERENCE_STATE_CHANGES.includes(s))
121
+ return s;
122
+ if (/disappear|vanish|hide|hidden|remov|dismiss|fade[sd]? out|slide[sd]? out/.test(s))
123
+ return "disappears";
124
+ if (/appear|show|pop|slide[sd]? in|fade[sd]? in|enter|reveal/.test(s))
125
+ return "appears";
126
+ if (/\boff\b|uncheck|untick|disabl|deselect/.test(s))
127
+ return "toggles_off";
128
+ if (/check|tick|complet|done/.test(s))
129
+ return "checked";
130
+ if (/\bon\b|enabl|activat|select/.test(s))
131
+ return "toggles_on";
132
+ if (/highlight|glow|pulse|flash|circl|emphasi/.test(s))
133
+ return "highlighted";
134
+ if (/chang|updat|increas|decreas|count|grow|rise|fall|\d/.test(s))
135
+ return "value_changes";
136
+ return "other";
137
+ }
138
+ /** The analyser's name for a graphic when it is one we know, else other. */
139
+ export function mapAnalyserSourceKind(text) {
140
+ const s = text.trim();
141
+ return REFERENCE_SOURCE_KINDS.includes(s) ? s : "other";
142
+ }
143
+ /** Our kind for an analyser's graphic: product UI and screenshots fill the frame as an insert, or sit over the presenter; what we cannot draw
144
+ * carries its substitute. */
145
+ export function mapAnalyserGraphic(kind, position) {
146
+ if (kind === "product_ui" || kind === "screenshot")
147
+ return { kind: position === "full_screen" ? "insert_media" : "overlay_media" };
148
+ const ours = Object.hasOwn(DIRECT, kind) ? DIRECT[kind] : "unmapped";
149
+ return ours === "particles" || ours === "unmapped" ? { kind: ours, unmapped: SUBSTITUTES[ours] ?? "a title_card with its label, or leave it out" } : { kind: ours };
150
+ }
151
+ //# sourceMappingURL=reference-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-profile.js","sourceRoot":"","sources":["../src/reference-profile.ts"],"names":[],"mappings":"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"}