@clipwright/core 0.38.2 → 0.40.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 (260) hide show
  1. package/dist/account-actors.d.ts +93 -2
  2. package/dist/account-actors.js +135 -20
  3. package/dist/account-actors.js.map +1 -1
  4. package/dist/account.d.ts +17 -0
  5. package/dist/account.js +13 -0
  6. package/dist/account.js.map +1 -1
  7. package/dist/actors.d.ts +24 -2
  8. package/dist/actors.js +30 -9
  9. package/dist/actors.js.map +1 -1
  10. package/dist/ad-pause-trim.d.ts +21 -0
  11. package/dist/ad-pause-trim.js +16 -0
  12. package/dist/ad-pause-trim.js.map +1 -0
  13. package/dist/aspect.d.ts +5 -0
  14. package/dist/aspect.js +7 -0
  15. package/dist/aspect.js.map +1 -1
  16. package/dist/assets.d.ts +9 -1
  17. package/dist/assets.js +23 -13
  18. package/dist/assets.js.map +1 -1
  19. package/dist/billing-terms.d.ts +8 -0
  20. package/dist/broll-policy.js +2 -3
  21. package/dist/broll-policy.js.map +1 -1
  22. package/dist/caption-geometry.js +10 -8
  23. package/dist/caption-geometry.js.map +1 -1
  24. package/dist/contract-dispositions.d.ts +1575 -100
  25. package/dist/contract-dispositions.js +100 -14
  26. package/dist/contract-dispositions.js.map +1 -1
  27. package/dist/contracts/v1/workflow-brief.d.ts +10762 -2790
  28. package/dist/contracts/v1/workflow-brief.js +16 -1
  29. package/dist/contracts/v1/workflow-brief.js.map +1 -1
  30. package/dist/contracts/v1/workflow-catalog.d.ts +11612 -3536
  31. package/dist/contracts/v1/workflow-client.d.ts +5429 -1187
  32. package/dist/contracts/v1/workflow-client.js +9 -5
  33. package/dist/contracts/v1/workflow-client.js.map +1 -1
  34. package/dist/contracts/v1/workflow-execution.d.ts +242 -0
  35. package/dist/contracts/v1/workflow-execution.js +2 -2
  36. package/dist/contracts/v1/workflow-execution.js.map +1 -1
  37. package/dist/contracts/v1/workflow-next.d.ts +225 -0
  38. package/dist/contracts/v1/workflow-next.js +21 -0
  39. package/dist/contracts/v1/workflow-next.js.map +1 -0
  40. package/dist/contracts/v1/workflow-plan.d.ts +18556 -6429
  41. package/dist/contracts/v1/workflow-plan.js +2 -1
  42. package/dist/contracts/v1/workflow-plan.js.map +1 -1
  43. package/dist/contracts/v1/workflow-primitives.d.ts +20 -1
  44. package/dist/contracts/v1/workflow-primitives.js +8 -2
  45. package/dist/contracts/v1/workflow-primitives.js.map +1 -1
  46. package/dist/contracts/v1/workflow-run-read.d.ts +51 -0
  47. package/dist/contracts/v1/workflow-run-read.js +1 -0
  48. package/dist/contracts/v1/workflow-run-read.js.map +1 -1
  49. package/dist/creator-profile.d.ts +1 -0
  50. package/dist/creator-profile.js +13 -7
  51. package/dist/creator-profile.js.map +1 -1
  52. package/dist/design.d.ts +921 -0
  53. package/dist/design.js +183 -0
  54. package/dist/design.js.map +1 -0
  55. package/dist/edit-candidate.d.ts +2 -0
  56. package/dist/edit-candidate.js +3 -0
  57. package/dist/edit-candidate.js.map +1 -1
  58. package/dist/edit-faceless.js +2 -1
  59. package/dist/edit-faceless.js.map +1 -1
  60. package/dist/endpoint-notes.js +21 -2
  61. package/dist/endpoint-notes.js.map +1 -1
  62. package/dist/endpoints.js +21 -4
  63. package/dist/endpoints.js.map +1 -1
  64. package/dist/errors.d.ts +1 -1
  65. package/dist/errors.js +7 -0
  66. package/dist/errors.js.map +1 -1
  67. package/dist/face-billing.d.ts +39 -0
  68. package/dist/face-billing.js +11 -1
  69. package/dist/face-billing.js.map +1 -1
  70. package/dist/faceless-action-shots.d.ts +31 -0
  71. package/dist/faceless-action-shots.js +51 -0
  72. package/dist/faceless-action-shots.js.map +1 -0
  73. package/dist/faceless-media-record.d.ts +56 -0
  74. package/dist/faceless-media-record.js +6 -2
  75. package/dist/faceless-media-record.js.map +1 -1
  76. package/dist/faceless-price.d.ts +22 -0
  77. package/dist/faceless-price.js +27 -3
  78. package/dist/faceless-price.js.map +1 -1
  79. package/dist/faceless-public-plan.d.ts +10 -1
  80. package/dist/faceless-public-plan.js +4 -0
  81. package/dist/faceless-public-plan.js.map +1 -1
  82. package/dist/faceless-public.d.ts +5583 -184
  83. package/dist/faceless-public.js +110 -12
  84. package/dist/faceless-public.js.map +1 -1
  85. package/dist/feedback.js +3 -2
  86. package/dist/feedback.js.map +1 -1
  87. package/dist/generations-output.js +1 -1
  88. package/dist/generations-output.js.map +1 -1
  89. package/dist/generations.js +1 -1
  90. package/dist/index.d.ts +10 -0
  91. package/dist/index.js +11 -0
  92. package/dist/index.js.map +1 -1
  93. package/dist/live-shot-kinds.d.ts +22 -0
  94. package/dist/live-shot-kinds.js +17 -0
  95. package/dist/live-shot-kinds.js.map +1 -0
  96. package/dist/mcp-ugc-descriptions.d.ts +32 -0
  97. package/dist/mcp-ugc-descriptions.js +112 -0
  98. package/dist/mcp-ugc-descriptions.js.map +1 -0
  99. package/dist/motion-styles.d.ts +54 -0
  100. package/dist/motion-styles.js +67 -0
  101. package/dist/motion-styles.js.map +1 -0
  102. package/dist/moves.d.ts +222 -0
  103. package/dist/moves.js +81 -0
  104. package/dist/moves.js.map +1 -0
  105. package/dist/music.d.ts +18 -0
  106. package/dist/music.js +29 -0
  107. package/dist/music.js.map +1 -0
  108. package/dist/openapi.d.ts +3 -1
  109. package/dist/openapi.js +34 -7
  110. package/dist/openapi.js.map +1 -1
  111. package/dist/parts-pricing.d.ts +14 -3
  112. package/dist/parts-pricing.js +23 -5
  113. package/dist/parts-pricing.js.map +1 -1
  114. package/dist/prices.d.ts +6 -1
  115. package/dist/prices.js +56 -17
  116. package/dist/prices.js.map +1 -1
  117. package/dist/reference-analysis.d.ts +139 -0
  118. package/dist/reference-analysis.js +56 -34
  119. package/dist/reference-analysis.js.map +1 -1
  120. package/dist/reference-display.js +5 -0
  121. package/dist/reference-display.js.map +1 -1
  122. package/dist/reference-kinds.d.ts +3 -2
  123. package/dist/reference-kinds.js +2 -1
  124. package/dist/reference-kinds.js.map +1 -1
  125. package/dist/reference-profile.d.ts +435 -0
  126. package/dist/reference-profile.js +40 -1
  127. package/dist/reference-profile.js.map +1 -1
  128. package/dist/reference-staging.d.ts +54 -2
  129. package/dist/reference-staging.js +28 -5
  130. package/dist/reference-staging.js.map +1 -1
  131. package/dist/reference-text-spans.d.ts +26 -0
  132. package/dist/reference-text-spans.js +76 -0
  133. package/dist/reference-text-spans.js.map +1 -0
  134. package/dist/resolved-timeline.d.ts +173 -0
  135. package/dist/resolved-timeline.js +15 -4
  136. package/dist/resolved-timeline.js.map +1 -1
  137. package/dist/run-media.d.ts +5 -0
  138. package/dist/run-media.js +17 -0
  139. package/dist/run-media.js.map +1 -0
  140. package/dist/run-static-warnings.js +16 -2
  141. package/dist/run-static-warnings.js.map +1 -1
  142. package/dist/runs.d.ts +56 -0
  143. package/dist/runs.js +12 -0
  144. package/dist/runs.js.map +1 -1
  145. package/dist/scene-graph.d.ts +547 -0
  146. package/dist/scene-graph.js +296 -0
  147. package/dist/scene-graph.js.map +1 -0
  148. package/dist/scene-place.d.ts +2 -0
  149. package/dist/scene-place.js +6 -0
  150. package/dist/scene-place.js.map +1 -1
  151. package/dist/semantic-inserts.d.ts +2 -1
  152. package/dist/semantic-inserts.js +6 -5
  153. package/dist/semantic-inserts.js.map +1 -1
  154. package/dist/skills.d.ts +11737 -5424
  155. package/dist/skills.js +239 -52
  156. package/dist/skills.js.map +1 -1
  157. package/dist/templates/chart.d.ts +35 -0
  158. package/dist/templates/chart.js +38 -0
  159. package/dist/templates/chart.js.map +1 -0
  160. package/dist/templates/chat-window.d.ts +58 -0
  161. package/dist/templates/chat-window.js +57 -0
  162. package/dist/templates/chat-window.js.map +1 -0
  163. package/dist/templates/compare.d.ts +10 -2
  164. package/dist/templates/compare.js +13 -9
  165. package/dist/templates/compare.js.map +1 -1
  166. package/dist/templates/hand-title.d.ts +32 -0
  167. package/dist/templates/hand-title.js +47 -0
  168. package/dist/templates/hand-title.js.map +1 -0
  169. package/dist/templates/index.d.ts +32 -6
  170. package/dist/templates/index.js +91 -47
  171. package/dist/templates/index.js.map +1 -1
  172. package/dist/templates/lower-third.d.ts +11 -0
  173. package/dist/templates/lower-third.js +8 -3
  174. package/dist/templates/lower-third.js.map +1 -1
  175. package/dist/templates/notification.d.ts +24 -2
  176. package/dist/templates/notification.js +21 -12
  177. package/dist/templates/notification.js.map +1 -1
  178. package/dist/templates/phone-screen.d.ts +37 -0
  179. package/dist/templates/phone-screen.js +41 -0
  180. package/dist/templates/phone-screen.js.map +1 -0
  181. package/dist/templates/pointer-chips.d.ts +40 -0
  182. package/dist/templates/pointer-chips.js +53 -0
  183. package/dist/templates/pointer-chips.js.map +1 -0
  184. package/dist/templates/quote.d.ts +2 -2
  185. package/dist/templates/quote.js +5 -5
  186. package/dist/templates/quote.js.map +1 -1
  187. package/dist/templates/race.d.ts +32 -0
  188. package/dist/templates/race.js +43 -0
  189. package/dist/templates/race.js.map +1 -0
  190. package/dist/templates/size.d.ts +20 -0
  191. package/dist/templates/size.js +14 -0
  192. package/dist/templates/size.js.map +1 -1
  193. package/dist/templates/slot.js +1 -1
  194. package/dist/templates/slot.js.map +1 -1
  195. package/dist/templates/sounds.d.ts +221 -4
  196. package/dist/templates/sounds.js +40 -10
  197. package/dist/templates/sounds.js.map +1 -1
  198. package/dist/templates/terminal.d.ts +46 -0
  199. package/dist/templates/terminal.js +46 -0
  200. package/dist/templates/terminal.js.map +1 -0
  201. package/dist/templates/video-grid.d.ts +52 -0
  202. package/dist/templates/video-grid.js +50 -0
  203. package/dist/templates/video-grid.js.map +1 -0
  204. package/dist/templates/word-fill.d.ts +22 -0
  205. package/dist/templates/word-fill.js +29 -0
  206. package/dist/templates/word-fill.js.map +1 -0
  207. package/dist/templates/word-title.d.ts +24 -0
  208. package/dist/templates/word-title.js +33 -0
  209. package/dist/templates/word-title.js.map +1 -0
  210. package/dist/trend-search.d.ts +336 -0
  211. package/dist/trend-search.js +307 -0
  212. package/dist/trend-search.js.map +1 -0
  213. package/dist/ugc-framing.d.ts +2 -1
  214. package/dist/ugc-framing.js +3 -2
  215. package/dist/ugc-framing.js.map +1 -1
  216. package/dist/ugc-layers.d.ts +36 -4
  217. package/dist/ugc-layers.js +26 -5
  218. package/dist/ugc-layers.js.map +1 -1
  219. package/dist/ugc-scenes.d.ts +40 -0
  220. package/dist/ugc-scenes.js +35 -0
  221. package/dist/ugc-scenes.js.map +1 -0
  222. package/dist/uploads.d.ts +1 -1
  223. package/dist/uploads.js +9 -9
  224. package/dist/uploads.js.map +1 -1
  225. package/dist/voice-admission.d.ts +4767 -836
  226. package/dist/voice-catalog-data.d.ts +1 -0
  227. package/dist/voice-catalog.d.ts +2 -0
  228. package/dist/voice-catalog.generated.json +286 -0
  229. package/dist/voice-catalog.js +1 -0
  230. package/dist/voice-catalog.js.map +1 -1
  231. package/dist/voice-pace.generated.json +65 -0
  232. package/dist/voices.d.ts +1 -0
  233. package/dist/voices.js +2 -1
  234. package/dist/voices.js.map +1 -1
  235. package/dist/workflows/index.d.ts +2 -0
  236. package/dist/workflows/index.js +1 -0
  237. package/dist/workflows/index.js.map +1 -1
  238. package/dist/workflows/methods/faceless-explainer.d.ts +2275 -188
  239. package/dist/workflows/methods/kinetic-launch.d.ts +2275 -188
  240. package/dist/workflows/methods/product-image-story.d.ts +2275 -188
  241. package/dist/workflows/methods/reference-remake.d.ts +2275 -188
  242. package/dist/workflows/methods/shared.d.ts +2275 -188
  243. package/dist/workflows/methods/ugc-faq-answer.d.ts +2275 -188
  244. package/dist/workflows/methods/ugc-product-intro.d.ts +2275 -188
  245. package/dist/workflows/methods/website-proof-demo.d.ts +2275 -188
  246. package/dist/workflows/motion-director.d.ts +59 -0
  247. package/dist/workflows/motion-director.js +118 -0
  248. package/dist/workflows/motion-director.js.map +1 -0
  249. package/dist/workflows/reference-remake.d.ts +1172 -2
  250. package/dist/workflows/reference-remake.js +943 -118
  251. package/dist/workflows/reference-remake.js.map +1 -1
  252. package/dist/workflows/remake-chooser.d.ts +16 -0
  253. package/dist/workflows/remake-chooser.js +10 -0
  254. package/dist/workflows/remake-chooser.js.map +1 -0
  255. package/dist/workflows/remake-motion.d.ts +100 -0
  256. package/dist/workflows/remake-motion.js +237 -0
  257. package/dist/workflows/remake-motion.js.map +1 -0
  258. package/dist/workflows/validate.js +1 -1
  259. package/dist/workflows/validate.js.map +1 -1
  260. package/package.json +5 -1
@@ -3,13 +3,20 @@ import { editSummaryWire, revisionBilling } from "./edit-billing.js";
3
3
  import { editDocument } from "./edit-document.js";
4
4
  import { runId } from "./runs.js";
5
5
  import { uploadResponse } from "./uploads.js";
6
- import { MAX_URL_LENGTH } from "./skills.js";
6
+ import { MAX_URL_LENGTH, motionStyle, ugcScene, ugcTemplate } from "./skills.js";
7
+ import { MOTION_STYLE_UNUSED_WARNING, motionStyleAsked, motionStyleHasCanvas, motionStyleRefusals } from "./motion-styles.js";
8
+ import { MAX_SCENES, sceneRefusals } from "./ugc-scenes.js";
9
+ import { MAX_MOVES, moveRefusals, MOVES_DESCRIPTION, ugcMove } from "./moves.js";
10
+ import { MAX_TEMPLATES, templateMediaOf, templateRefusals } from "./templates/index.js";
7
11
  import { FACELESS_REJECTED_FIELDS } from "./contract-dispositions.js";
8
- import { FACELESS_MAX_OUTPUT_FRAMES, FACELESS_MAX_SELECTED_SECONDS, FACELESS_MIN_OUTPUT_FRAMES, FACELESS_MIN_SELECTED_SECONDS, facelessQuote } from "./faceless-price.js";
12
+ import { FACELESS_MAX_OUTPUT_FRAMES, FACELESS_MAX_SELECTED_SECONDS, FACELESS_MAX_SHOTS, FACELESS_MIN_OUTPUT_FRAMES, FACELESS_MIN_SELECTED_SECONDS, facelessQuote } from "./faceless-price.js";
9
13
  import { DEFAULT_FACELESS_VOICE } from "./faceless-voices.js";
10
14
  import { resolveFacelessCustomerAnchors } from "./faceless-customer-anchors.js";
11
15
  import { FACELESS_TRANSITION_LOOKS } from "./faceless-media-record.js";
12
16
  import { VOICE_NAME_PATTERN } from "./voices.js";
17
+ import { FACELESS_MUSIC_REFUSAL, musicRequest } from "./music.js";
18
+ import { facelessSoundRefusals, facelessTemplateSounds, mcpTemplateSounds } from "./templates/sounds.js";
19
+ import { FACELESS_SHOT_TRANSITIONS, facelessActionShotRefusals } from "./faceless-action-shots.js";
13
20
  const qualifiedImageUrl = uploadResponse.shape.url.max(MAX_URL_LENGTH).refine((value) => {
14
21
  const host = new URL(value).hostname.toLowerCase();
15
22
  return host !== "localhost" && !host.endsWith(".localhost") &&
@@ -38,6 +45,22 @@ const briefTransitions = z.strictObject({
38
45
  at: z.literal("scene_changes", { error: "transitions.at word anchors need input_mode script; a brief takes \"scene_changes\"" })
39
46
  .default("scene_changes"),
40
47
  });
48
+ /** A brief that names no transitions gets a flash on every scene change at admission (#1067); `false` keeps plain cuts. */
49
+ export const FACELESS_BRIEF_DEFAULT_TRANSITIONS = Object.freeze({ look: "flash", at: "scene_changes" });
50
+ /** `false` or the object; a union names no branch on its own, so the refusal carries the object's first issue with its path. */
51
+ const orPlainCuts = (schema) => z.union([z.literal(false), schema], { error: issue => {
52
+ if (issue.input === null || typeof issue.input !== "object" || Array.isArray(issue.input))
53
+ return "transitions is false (plain cuts) or { look, at }";
54
+ const inner = schema.safeParse(issue.input).error?.issues[0];
55
+ return inner && `${["transitions", ...inner.path.map(String)].join(".")}: ${inner.message}`;
56
+ } });
57
+ /** Sound refusals against the look the run draws: a brief without the field draws the default flash. */
58
+ function refuseSounds(input, context) {
59
+ const look = input.transitions === undefined && input.input_mode === "brief" ? FACELESS_BRIEF_DEFAULT_TRANSITIONS.look
60
+ : input.transitions ? input.transitions.look : undefined;
61
+ for (const { path, message } of facelessSoundRefusals({ ...input, look }))
62
+ context.addIssue({ code: customIssue, path, message });
63
+ }
41
64
  const common = {
42
65
  duration_seconds: z.number().min(FACELESS_MIN_SELECTED_SECONDS).max(FACELESS_MAX_SELECTED_SECONDS).refine((seconds) => Number.isInteger(seconds * 25), "duration_seconds must align to a 25 fps frame boundary"),
43
66
  style_reference: qualifiedImageUrl.optional(),
@@ -50,13 +73,64 @@ const common = {
50
73
  .regex(VOICE_NAME_PATTERN, "voice is not a voice name: take one from list_voices with skill=make_faceless")
51
74
  .optional(),
52
75
  voice_id: z.never({ error: FACELESS_REJECTED_FIELDS.voice_id.message }).optional(),
76
+ // Opt-in, so a run that never asked keeps its silent scene changes (rule 3).
77
+ edit_sounds: z.boolean().optional(),
78
+ template_sounds: facelessTemplateSounds.optional(),
79
+ music: musicRequest.optional(),
80
+ // A style dresses the captions, templates and scenes over the pictures (#1123); its spans sit on a script's words.
81
+ motion_style: motionStyle.optional(),
53
82
  };
83
+ /** The line a faceless quote and run name when a style has nothing to dress: captions off and no templates or scenes (#1123). */
84
+ export function facelessMotionStyleWarnings(input) {
85
+ return motionStyleAsked(input) && !motionStyleHasCanvas({ ...input, captions: input.captions !== false }) ? [MOTION_STYLE_UNUSED_WARNING] : [];
86
+ }
87
+ /** Templates over the pictures (#1113): kinds on the script's words; a slot that shows a picture or clip of the customer's is refused. */
88
+ export const FACELESS_TEMPLATE_MEDIA_REFUSAL = "a template that shows your picture or clip (asset_id) is not available on make_faceless; " +
89
+ "drop that slot or the template";
90
+ function refuseTemplates(input, context) {
91
+ if (!input.templates)
92
+ return;
93
+ for (const media of templateMediaOf(input.templates)) {
94
+ context.addIssue({ code: customIssue, path: ["templates", media.index, "data", media.slot], message: FACELESS_TEMPLATE_MEDIA_REFUSAL });
95
+ }
96
+ for (const { path, message } of templateRefusals({ script: input.script, templates: input.templates, aspect_ratio: "9:16" })) {
97
+ context.addIssue({ code: customIssue, path, message });
98
+ }
99
+ }
100
+ /** Action shots (#1113): a moving clip from the picture under the named words, on those words, instead of the still. */
101
+ export const facelessActionShot = z.strictObject({
102
+ id: z.string().trim().min(1).max(64),
103
+ anchor: facelessSceneAnchor,
104
+ action: z.string().trim().min(1).max(500),
105
+ transition: z.enum(FACELESS_SHOT_TRANSITIONS).optional(),
106
+ });
107
+ export const FACELESS_SHOTS_BRIEF_REFUSAL = "shots need input_mode script: they sit on the narration's words";
108
+ export const FACELESS_SHOTS_DISABLED_MESSAGE = "shots are not available on make_faceless right now; omit shots";
109
+ export const FACELESS_SCENES_DISABLED_MESSAGE = "scenes are not available on make_faceless right now; omit scenes";
54
110
  const scriptInput = z.object({ ...common,
55
111
  input_mode: z.literal("script"),
56
112
  script: z.string().trim().min(1).max(10_000),
57
- transitions: scriptTransitions.optional(),
113
+ transitions: orPlainCuts(scriptTransitions).optional(),
114
+ templates: z.array(ugcTemplate).min(1).max(MAX_TEMPLATES).optional(),
115
+ shots: z.array(facelessActionShot).min(1).max(FACELESS_MAX_SHOTS, `at most ${FACELESS_MAX_SHOTS} shots a video`).optional(),
116
+ scenes: z.array(ugcScene).min(1).max(MAX_SCENES).optional(),
117
+ moves: z.array(ugcMove).min(1).max(MAX_MOVES).optional(),
58
118
  }).strict().superRefine((input, context) => {
59
- if (!Array.isArray(input.transitions?.at))
119
+ refuseSounds(input, context);
120
+ refuseTemplates(input, context);
121
+ for (const { path, message } of moveRefusals({ script: input.script, moves: input.moves }))
122
+ context.addIssue({ code: customIssue, path, message });
123
+ // Scenes sit on the script's words as on make_ugc and share the templates' ids (#1113).
124
+ for (const { path, message } of sceneRefusals({ script: input.script, scenes: input.scenes, templates: input.templates })) {
125
+ context.addIssue({ code: customIssue, path, message });
126
+ }
127
+ for (const { path, message } of motionStyleRefusals(input))
128
+ context.addIssue({ code: customIssue, path, message });
129
+ if (input.shots)
130
+ for (const { path, message } of facelessActionShotRefusals({ script: input.script, shots: input.shots,
131
+ scene_images: input.scene_images }))
132
+ context.addIssue({ code: customIssue, path, message });
133
+ if (!input.transitions || !Array.isArray(input.transitions.at))
60
134
  return;
61
135
  for (const [index, { anchor }] of input.transitions.at.entries()) {
62
136
  try {
@@ -73,8 +147,18 @@ const scriptInput = z.object({ ...common,
73
147
  const briefInput = z.object({ ...common,
74
148
  input_mode: z.literal("brief"),
75
149
  brief: z.string().trim().min(1).max(5_000),
76
- transitions: briefTransitions.optional(),
77
- }).strict();
150
+ transitions: orPlainCuts(briefTransitions).optional(),
151
+ // A brief's narration is written by the run, so no template can name its words.
152
+ templates: z.never({ error: "templates need input_mode script: they sit on the narration's words" }).optional(),
153
+ shots: z.never({ error: FACELESS_SHOTS_BRIEF_REFUSAL }).optional(),
154
+ scenes: z.never({ error: "scenes need input_mode script: they sit on the narration's words" }).optional(),
155
+ moves: z.never({ error: "moves need input_mode script: they sit on the narration's words" }).optional(),
156
+ }).strict().superRefine((input, context) => {
157
+ refuseSounds(input, context);
158
+ if (input.motion_style?.spans)
159
+ context.addIssue({ code: customIssue, path: ["motion_style", "spans"],
160
+ message: "motion_style spans need input_mode script: they sit on the narration's words; a brief takes style only" });
161
+ });
78
162
  export const makeFacelessInput = z.discriminatedUnion("input_mode", [scriptInput, briefInput]);
79
163
  /** The stored input of a revision: the request as resolved, and what admission froze about it. */
80
164
  export const facelessRevisionInput = z.strictObject({
@@ -85,9 +169,12 @@ export const facelessRevisionInput = z.strictObject({
85
169
  /** What a `make_faceless` run stores as its input: a generate request or a revision. */
86
170
  export const facelessStoredInput = z.discriminatedUnion("input_mode", [scriptInput, briefInput, facelessRevisionInput]);
87
171
  /** Admission and the run validate accepted input without canonicalizing its narration again. */
172
+ /** A brief's default flash is frozen here, so the stored input names what the video draws; a stored input is read as stored. */
88
173
  export function parseFacelessInputPreservingScript(input) {
89
174
  const parsed = makeFacelessInput.parse(input);
90
- return parsed.input_mode === "script" ? { ...parsed, script: input.script } : parsed;
175
+ if (parsed.input_mode === "script")
176
+ return { ...parsed, script: input.script };
177
+ return parsed.transitions === undefined ? { ...parsed, transitions: { ...FACELESS_BRIEF_DEFAULT_TRANSITIONS } } : parsed;
91
178
  }
92
179
  export function parseFacelessStoredInputPreservingScript(input) {
93
180
  const parsed = facelessStoredInput.parse(input);
@@ -108,16 +195,27 @@ export const offeredFacelessInputShape = {
108
195
  duration_seconds: common.duration_seconds
109
196
  .describe("Selected length, 30 to 90 seconds, on a 1/25 s frame boundary. The video ends with its narration and runs at least 25 seconds, usually at most a quarter past the selection and 90 seconds; when the narration takes longer, the video runs to its end. A video more than 5 seconds longer than the selection says so in warnings[]. The charge never exceeds the quote. A script is accepted when its estimated length is 21 seconds to the selection plus 5, at most 90."),
110
197
  style_reference: common.style_reference
111
- .describe("Optional public https image whose visual style the scenes follow."),
198
+ .describe("Public https image whose visual style the scenes follow."),
112
199
  character_reference: common.character_reference
113
- .describe("Optional public https image of a person or figure to keep consistent across scenes."),
200
+ .describe("Public https image of a person or figure to keep consistent across scenes."),
114
201
  character_details: common.character_details
115
- .describe("Optional fixed visual details for the referenced person or figure, such as hairstyle, clothing and absent accessories; applied to every generated scene."),
202
+ .describe("Fixed visual details of that person or figure, such as hair, clothing and absent accessories; kept in every generated scene."),
116
203
  scene_images: common.scene_images
117
- .describe("Optional images of your own, each placed at a word range or quote of the narration."),
204
+ .describe("Your images, each placed at a word range or quote of the narration."),
118
205
  captions: common.captions.describe("Burned-in captions; on by default."),
119
206
  transitions: scriptInput.shape.transitions
120
- .describe("Optional flash or light leak on the cuts: every scene change, or the one nearest each anchor (script only). No extra charge."),
207
+ .describe("Flash or light leak on the cuts, with its sound: every scene change, or the one nearest each anchor (script only). " +
208
+ "Omitted on a brief: a flash on every scene change; false for plain cuts. No extra charge."),
209
+ edit_sounds: common.edit_sounds.describe("A low sound on every scene change, its peak on the cut; template_sounds.edit picks it. Price unchanged."),
210
+ // The slim form keeps tools/list small; the client parses with makeFacelessInput, which checks beats and names.
211
+ template_sounds: mcpTemplateSounds.optional().describe("false for no sounds, or { flash, whoosh (light leak), edit: name } from list_template_sounds."),
212
+ music: common.music.describe(`REJECTED for now: ${FACELESS_MUSIC_REFUSAL}. Before any charge.`),
213
+ // No shape here keeps tools/list small: the items are make_ugc's, which the client and the server check strictly.
214
+ templates: z.unknown().optional().describe("Script only: as make_ugc, no asset_id. Free."),
215
+ shots: z.unknown().optional().describe("Script only: 1-3 {id, anchor, action}, 5 s max each."),
216
+ scenes: z.unknown().optional().describe("Script only: as make_ugc scenes."),
217
+ motion_style: z.unknown().optional().describe("As make_ugc motion_style; spans script only. Free."),
218
+ moves: z.unknown().optional().describe(`Script only: ${MOVES_DESCRIPTION}`),
121
219
  voice: common.voice
122
220
  .describe("Narration voice: a name from list_voices with skill=make_faceless (kind faceless_voice). " +
123
221
  `Omitted means ${DEFAULT_FACELESS_VOICE}. Choose a voice in the language of the narration: a voice reads any ` +
@@ -1 +1 @@
1
- {"version":3,"file":"faceless-public.js","sourceRoot":"","sources":["../src/faceless-public.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"faceless-public.js","sourceRoot":"","sources":["../src/faceless-public.ts"],"names":[],"mappings":"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"}
package/dist/feedback.js CHANGED
@@ -23,7 +23,8 @@ export const feedbackResponse = z.object({
23
23
  });
24
24
  export const SEND_FEEDBACK_DESCRIPTION = "Tell Clipwright what is missing or wrong. Call it when no tool does what the user asked (kind missing_capability), " +
25
25
  "or when an answer was confusing (confusing), wrong (wrong_result) or far too slow (slow), instead of rephrasing the " +
26
- "request and giving up. Say what the user wanted, what you tried and what came back; pass run_id when it is about a run. " +
27
- "We read every one. Free, spends nothing. Sending the same kind, text and run again within 24 hours answers the same " +
26
+ "request and giving up. " +
27
+ "We read every one; when we reply, get_account lists the reply under support_replies with this feedback_id. " +
28
+ "Free, spends nothing. Sending the same kind, text and run again within 24 hours answers the same " +
28
29
  `feedback_id. ${FEEDBACK_PER_HOUR} per hour per account.`;
29
30
  //# sourceMappingURL=feedback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,4HAA4H;AAC5H,iGAAiG;AAEjG,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,oBAAoB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAU,CAAC;AAGnG,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,iHAAiH;AACjH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,yGAAyG;AACzG,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CACnC,yGAAyG;QACzG,6FAA6F,CAAC;IAChG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;SACxD,QAAQ,CAAC,0EAA0E,CAAC;IACvF,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAClE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAC1B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,yBAAyB,GACpC,qHAAqH;IACrH,sHAAsH;IACtH,0HAA0H;IAC1H,sHAAsH;IACtH,gBAAgB,iBAAiB,wBAAwB,CAAC"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,4HAA4H;AAC5H,iGAAiG;AAEjG,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,oBAAoB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAU,CAAC;AAGnG,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,iHAAiH;AACjH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,yGAAyG;AACzG,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CACnC,yGAAyG;QACzG,6FAA6F,CAAC;IAChG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;SACxD,QAAQ,CAAC,0EAA0E,CAAC;IACvF,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAClE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAC1B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,yBAAyB,GACpC,qHAAqH;IACrH,sHAAsH;IACtH,yBAAyB;IACzB,6GAA6G;IAC7G,mGAAmG;IACnG,gBAAgB,iBAAiB,wBAAwB,CAAC"}
@@ -11,6 +11,6 @@ export const runGeneration = z.strictObject({
11
11
  width: z.number().int().positive(),
12
12
  height: z.number().int().positive(),
13
13
  duration_s: z.number().positive().nullable(),
14
- reusable_until: z.string().datetime(),
14
+ reusable_until: z.string().datetime().describe("Until then, create_asset with source.run_id turns this file into an asset_id for templates and inserts."),
15
15
  });
16
16
  //# sourceMappingURL=generations-output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generations-output.js","sourceRoot":"","sources":["../src/generations-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+GAA+G;AAC/G,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAG5D,mHAAmH;AACnH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC9B,+EAA+E;IAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"generations-output.js","sourceRoot":"","sources":["../src/generations-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+GAA+G;AAC/G,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAG5D,mHAAmH;AACnH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC9B,+EAA+E;IAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yGAAyG,CAAC;CAC1J,CAAC,CAAC"}
@@ -95,7 +95,7 @@ export const GENERATION_CAPABILITIES = deepFreeze({
95
95
  fps: GENERATION_VIDEO_FPS,
96
96
  modes: { text: true, first_frame: true, reference: false },
97
97
  duration_s: { min: 3, max: 15 },
98
- rows: video("720p", 720, 1280, 11, H264, { vertical: true, horizontal: true }),
98
+ rows: video("720p", 720, 1280, 12, H264, { vertical: true, horizontal: true }),
99
99
  },
100
100
  // 360p 9:16 is not yet seen live.
101
101
  "gemini-omni-flash-1.1": {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  export * from "./skills.js";
2
+ export * from "./design.js";
2
3
  export * from "./ugc-layers.js";
4
+ export * from "./ugc-scenes.js";
5
+ export * from "./motion-styles.js";
6
+ export * from "./moves.js";
3
7
  export * from "./scene-place.js";
4
8
  export { CAPTION_EDGES, CAPTION_GEOMETRY, CAPTION_GEOMETRY_ALIASES, captionBandBox, captionEdgeAt, captionGeometryOf, type CaptionEdge } from "./caption-geometry.js";
5
9
  export * from "./ugc-framing.js";
@@ -8,8 +12,10 @@ export * from "./ugc-interview.js";
8
12
  export * from "./caption-language.js";
9
13
  export * from "./templates/index.js";
10
14
  export * from "./ugc-video-media.js";
15
+ export * from "./ad-pause-trim.js";
11
16
  export * from "./faceless-public.js";
12
17
  export * from "./faceless-customer-anchors.js";
18
+ export * from "./faceless-action-shots.js";
13
19
  export * from "./faceless-image-placement.js";
14
20
  export * from "./faceless-voices.js";
15
21
  export * from "./faceless-price.js";
@@ -28,6 +34,7 @@ export * from "./api-failure.js";
28
34
  export * from "./account.js";
29
35
  export * from "./uploads.js";
30
36
  export * from "./assets.js";
37
+ export * from "./run-media.js";
31
38
  export * from "./pacing.js";
32
39
  export * from "./render-backend.js";
33
40
  export * from "./tts-backend.js";
@@ -46,6 +53,7 @@ export * from "./speech-rhythm-contract.js";
46
53
  export * from "./face-billing.js";
47
54
  export * from "./long-form-pricing.js";
48
55
  export * from "./parts-pricing.js";
56
+ export * from "./music.js";
49
57
  export * from "./media-timebase.js";
50
58
  export * from "./billing-terms.js";
51
59
  export * from "./voice-preview-approval.js";
@@ -60,8 +68,10 @@ export * from "./generations.js";
60
68
  export * from "./generations-output.js";
61
69
  export * from "./reference-profile.js";
62
70
  export * from "./reference-staging.js";
71
+ export * from "./reference-text-spans.js";
63
72
  export * from "./reference-voice.js";
64
73
  export * from "./reference-analysis.js";
65
74
  export * from "./reference-display.js";
66
75
  export * from "./creator-profile.js";
76
+ export * from "./trend-search.js";
67
77
  export * from "./presenter-beats.js";
package/dist/index.js CHANGED
@@ -1,5 +1,9 @@
1
1
  export * from "./skills.js";
2
+ export * from "./design.js";
2
3
  export * from "./ugc-layers.js";
4
+ export * from "./ugc-scenes.js";
5
+ export * from "./motion-styles.js";
6
+ export * from "./moves.js";
3
7
  export * from "./scene-place.js";
4
8
  export { CAPTION_EDGES, CAPTION_GEOMETRY, CAPTION_GEOMETRY_ALIASES, captionBandBox, captionEdgeAt, captionGeometryOf } from "./caption-geometry.js";
5
9
  export * from "./ugc-framing.js";
@@ -8,8 +12,10 @@ export * from "./ugc-interview.js";
8
12
  export * from "./caption-language.js";
9
13
  export * from "./templates/index.js";
10
14
  export * from "./ugc-video-media.js";
15
+ export * from "./ad-pause-trim.js";
11
16
  export * from "./faceless-public.js";
12
17
  export * from "./faceless-customer-anchors.js";
18
+ export * from "./faceless-action-shots.js";
13
19
  export * from "./faceless-image-placement.js";
14
20
  export * from "./faceless-voices.js";
15
21
  export * from "./faceless-price.js";
@@ -41,6 +47,8 @@ export * from "./account.js";
41
47
  export * from "./uploads.js";
42
48
  // Account assets (clipwright#724 F2): kept until deleted, under a cap per account.
43
49
  export * from "./assets.js";
50
+ // A customer's delete of a finished run's files (#1093).
51
+ export * from "./run-media.js";
44
52
  export * from "./pacing.js";
45
53
  // Vendor-neutral contracts: everything vendor-specific lives in adapters, not here.
46
54
  export * from "./render-backend.js";
@@ -71,6 +79,7 @@ export * from "./speech-rhythm-contract.js";
71
79
  export * from "./face-billing.js";
72
80
  export * from "./long-form-pricing.js";
73
81
  export * from "./parts-pricing.js";
82
+ export * from "./music.js";
74
83
  export * from "./media-timebase.js";
75
84
  export * from "./billing-terms.js";
76
85
  export * from "./voice-preview-approval.js";
@@ -85,9 +94,11 @@ export * from "./generations.js";
85
94
  export * from "./generations-output.js";
86
95
  export * from "./reference-profile.js";
87
96
  export * from "./reference-staging.js";
97
+ export * from "./reference-text-spans.js";
88
98
  export * from "./reference-voice.js";
89
99
  export * from "./reference-analysis.js";
90
100
  export * from "./reference-display.js";
91
101
  export * from "./creator-profile.js";
102
+ export * from "./trend-search.js";
92
103
  export * from "./presenter-beats.js";
93
104
  //# 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,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAoB,MAAM,uBAAuB,CAAC;AACtK,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,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,mFAAmF;AACnF,cAAc,aAAa,CAAC;AAC5B,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,iEAAiE;AACjE,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,+EAA+E;AAC/E,cAAc,aAAa,CAAC;AAC5B,+DAA+D;AAC/D,cAAc,eAAe,CAAC;AAC9B,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,oBAAoB,CAAC;AACnC,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;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** Live shots (#1103): what the actor does on some words of the script, drawn by the engine of the shot's kind. */
2
+ export declare const LIVE_SHOT_KINDS: readonly ["talking", "talking_action", "action"];
3
+ export type LiveShotKind = (typeof LIVE_SHOT_KINDS)[number];
4
+ /** The look of the cuts into and out of a live shot (#1129); whoosh is a cut with the whoosh sound. */
5
+ export declare const LIVE_SHOT_TRANSITIONS: readonly ["cut", "flash", "light_leak", "whoosh"];
6
+ export type LiveShotTransition = (typeof LIVE_SHOT_TRANSITIONS)[number];
7
+ /** Where a live shot's product sits (#1146): in the actor's hand or beside them. */
8
+ export declare const LIVE_SHOT_PRODUCT_PLACEMENTS: readonly ["hand", "beside"];
9
+ export type LiveShotProductPlacement = (typeof LIVE_SHOT_PRODUCT_PLACEMENTS)[number];
10
+ /** How much wider than the actor's view a shot's first frame is drawn (#1175 S7): waist-up with the hands, or head to feet. */
11
+ export declare const LIVE_SHOT_FRAMINGS: readonly ["wide", "full"];
12
+ export type LiveShotFraming = (typeof LIVE_SHOT_FRAMINGS)[number];
13
+ /** A shot's product placement: `true` is the hand, as before #1146; absent or `false` shows no product. */
14
+ export declare function liveShotProductPlacement(shot: {
15
+ product?: boolean | {
16
+ placement: LiveShotProductPlacement;
17
+ } | undefined;
18
+ }): LiveShotProductPlacement | undefined;
19
+ /** The place a shot is drawn in, one per distinct setup; shots without one share the actor's own photo setting (""). */
20
+ export declare function liveShotSetupKey(shot: {
21
+ setup?: string | undefined;
22
+ }): string;
@@ -0,0 +1,17 @@
1
+ /** Live shots (#1103): what the actor does on some words of the script, drawn by the engine of the shot's kind. */
2
+ export const LIVE_SHOT_KINDS = ["talking", "talking_action", "action"];
3
+ /** The look of the cuts into and out of a live shot (#1129); whoosh is a cut with the whoosh sound. */
4
+ export const LIVE_SHOT_TRANSITIONS = ["cut", "flash", "light_leak", "whoosh"];
5
+ /** Where a live shot's product sits (#1146): in the actor's hand or beside them. */
6
+ export const LIVE_SHOT_PRODUCT_PLACEMENTS = ["hand", "beside"];
7
+ /** How much wider than the actor's view a shot's first frame is drawn (#1175 S7): waist-up with the hands, or head to feet. */
8
+ export const LIVE_SHOT_FRAMINGS = ["wide", "full"];
9
+ /** A shot's product placement: `true` is the hand, as before #1146; absent or `false` shows no product. */
10
+ export function liveShotProductPlacement(shot) {
11
+ return shot.product === true ? "hand" : shot.product ? shot.product.placement : undefined;
12
+ }
13
+ /** The place a shot is drawn in, one per distinct setup; shots without one share the actor's own photo setting (""). */
14
+ export function liveShotSetupKey(shot) {
15
+ return shot.setup?.trim().replace(/\s+/g, " ") ?? "";
16
+ }
17
+ //# sourceMappingURL=live-shot-kinds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-shot-kinds.js","sourceRoot":"","sources":["../src/live-shot-kinds.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAU,CAAC;AAEhF,uGAAuG;AACvG,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAEvF,oFAAoF;AACpF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAC;AAExE,+HAA+H;AAC/H,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAE5D,2GAA2G;AAC3G,MAAM,UAAU,wBAAwB,CAAC,IAAiF;IAExH,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5F,CAAC;AACD,wHAAwH;AACxH,MAAM,UAAU,gBAAgB,CAAC,IAAoC;IACnE,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { type TemplateKind } from "./templates/index.js";
2
+ /** The templates catalog in fewer words: every kind's data fields as the full catalog names them. */
3
+ export declare function compactTemplateCatalogText(kinds?: readonly TemplateKind[]): string;
4
+ /** quote_ugc's shorter text per field; a field not named keeps the full text REST and OpenAPI carry. */
5
+ export declare const MCP_UGC_DESCRIPTIONS: {
6
+ readonly script: string;
7
+ readonly tts_model: string;
8
+ readonly caption_style: string;
9
+ readonly templates: string;
10
+ readonly caption_emphasis: string;
11
+ readonly voice: string;
12
+ readonly inserts: string;
13
+ readonly segments: string;
14
+ readonly captions: "Burn word-timed captions in, over the presenter and inserts; not with segments.";
15
+ readonly caption_position: "top, middle, lower or bottom (80% of the height); omitted, the caption_style's own place. Requires captions=true.";
16
+ readonly person: "NOT HONORED YET: the default actor is used; pick actor_id from list_actors or pass image.";
17
+ readonly name: "NOT HONORED YET: it does not reach the renderer.";
18
+ readonly look: "NOT HONORED YET: it does not reach the renderer.";
19
+ readonly actor_id: "Saved actor ID from list_actors; not with image, person or actor_gender. Without voice or voice_id the voice follows its gender.";
20
+ readonly voice_id: string;
21
+ readonly broll_policy: string;
22
+ readonly overlays: string;
23
+ readonly image: string;
24
+ readonly framing: string;
25
+ readonly actor_gender: string;
26
+ readonly aspect_ratio: string;
27
+ readonly caption_mode: string;
28
+ readonly visible_ai_label: "Visible AI label, default true. False hides only the visible label; invisible marking and signed provenance stay.";
29
+ readonly layout_windows: string;
30
+ readonly end_hold_s: string;
31
+ readonly edit_sounds: string;
32
+ };
@@ -0,0 +1,112 @@
1
+ import { CAPTION_STYLE_ALIASES } from "./skills.js";
2
+ import { TEMPLATE_KINDS, TEMPLATE_SIZES, templateDataText } from "./templates/index.js";
3
+ import { MAX_OVERLAYS_AT_ONCE } from "./ugc-layers.js";
4
+ import { SCRIPT_LENGTH_DESCRIPTION } from "./voices.js";
5
+ // MCP tools/list stays under the client's 102 KB (#1003), so quote_ugc carries these shorter texts; REST and OpenAPI keep the full ones (#1045).
6
+ /** What each kind is, in a few words, with the rules its data alone does not say; null where its name and data say it all. */
7
+ const TEMPLATE_GISTS = {
8
+ tag: "a short pill; without position it sits in the caption spot",
9
+ lower_third: null,
10
+ end_card: "a site pill and call to action in the caption spot",
11
+ title_card: "a hook card",
12
+ quote: "a quote card",
13
+ stat: "a number counting from 0 to value (2 decimals); over sits at chest level",
14
+ callout: "an arrow or ring on target {x,y}, % of the frame from top left; may point at the face",
15
+ checklist: "rows a cursor clicks in turn (item: row index from 0), each click flipping it",
16
+ phone_call: "an incoming call at the side (right unless side left), answered on answer_at",
17
+ compare: "before, then after sweeping or wiping in on reveal_at, on a 3:5 card",
18
+ notification: "at the top; stack cards drop in on their at",
19
+ progress: "steps checked in turn on advance_at (one per step) or evenly",
20
+ rating: "stars filling up to stars (1–5 in halves)",
21
+ chat_window: "the prompt types in; answer, table rows, cards each on its at or evenly; zoom cuts on them",
22
+ video_grid: "9:16 video tiles popping in turn: 2x2 takes cell_1–4, 3x1 cell_1–3",
23
+ word_title: "the first entry from the start, each later one on its at quote or evenly, replacing the last or (build) adding to it",
24
+ phone_screen: "a phone whose screen states change on states.at or evenly; lock, play, liked replace one another, tags add up, counter and timer stay",
25
+ terminal: "the command types in, the diff changes on diff.at, a checked status on at",
26
+ pointer_chips: "chips in a column below the face, each with a line to target {x,y} (% of the frame), in turn on items.at or evenly",
27
+ chart: null,
28
+ race: null,
29
+ hand_title: "handwritten; mark.word: index from 0",
30
+ word_fill: "one word whose letters show your clip",
31
+ };
32
+ const SIZE_FIELD = `, size? ${TEMPLATE_SIZES.join("|")}`;
33
+ /** The templates catalog in fewer words: every kind's data fields as the full catalog names them. */
34
+ export function compactTemplateCatalogText(kinds = TEMPLATE_KINDS) {
35
+ const sized = kinds.every(kind => templateDataText(kind).includes(SIZE_FIELD));
36
+ const data = (kind) => (sized ? templateDataText(kind).replace(SIZE_FIELD, "") : templateDataText(kind));
37
+ return "Graphic templates { id, kind, anchor, cover_words?, placement?, transition?, data }, on any script run; price unchanged, a covered " +
38
+ "presenter still billed. Ids unique across inserts, overlays, layout_windows and templates. Text: one line of Latin or the " +
39
+ "script's letters, digits and punctuation, no emoji; a wide CJK glyph counts 2. " +
40
+ (sized ? `Every kind's data also takes size? ${TEMPLATE_SIZES.join("|")} (absent: medium). ` : "") +
41
+ "A media field is { asset_id } of a ready asset of that type. An inner quote is a string of words inside the template's own, after the previous " +
42
+ "one, its beat on their first word, not under an insert or full-frame template; without one, clicks and steps spread evenly. A template " +
43
+ "on the caption band hides captions. A full-frame one hides the presenter, overlays and over templates and never meets a wipe or zoom " +
44
+ `insert. At most ${MAX_OVERLAYS_AT_ONCE} overlays and over templates at once, not overlapping. template_theme sets their look. Kinds: ` +
45
+ kinds.map(kind => {
46
+ const gist = kind.kind in TEMPLATE_GISTS ? TEMPLATE_GISTS[kind.kind] : kind.description;
47
+ return `${kind.kind} (${kind.placements.join("|")})${gist === null ? "" : `: ${gist}`}; data ${data(kind)}`;
48
+ }).join(". ") + ".";
49
+ }
50
+ const CAPTION_STYLE_TEXT = "Caption look when captions=true; hormozi is the default. " +
51
+ Object.entries(CAPTION_STYLE_ALIASES).map(([alias, preset]) => `${alias} draws ${preset}`).join("; ") +
52
+ ". Every style's look and preview: https://clipwright.io/captions";
53
+ const SCRIPT_TEXT = "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require " +
54
+ `long-form qualification on the server. ${SCRIPT_LENGTH_DESCRIPTION} ` +
55
+ "Russian stress: a capital vowel inside a lowercase word (\"потОм\") reaches eleven_v4 and gemini-3.8-flash-tts as the mark U+0301; a " +
56
+ "typed mark is kept; a word-initial capital, all caps or a second capital is left as it is, so write \"Яндекс Еда\", not \"ЯндексЕда\". " +
57
+ "Tell users writing in Russian. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks.";
58
+ /** quote_ugc's shorter text per field; a field not named keeps the full text REST and OpenAPI carry. */
59
+ export const MCP_UGC_DESCRIPTIONS = {
60
+ script: SCRIPT_TEXT,
61
+ tts_model: "Speech model; omitted, the chosen voice's (list_voices), eleven_v4 for presets, catalog voices and voice_id. eleven_v3 " +
62
+ "speaks eleven_v4 with a warning. eleven_v4 and gemini-3.8-flash-tts read stress marks (see script); eleven_flash_v2_5 and " +
63
+ "eleven_turbo_v2_5 are cheaper outside Russian. gemini-3.8-flash-tts speaks only its own voices (default kore for a female actor, " +
64
+ "else charon), has no word timings or audio tags, and refuses preset and catalog voices, voice_id, captions=true, segments and " +
65
+ "inserts before any charge.",
66
+ caption_style: CAPTION_STYLE_TEXT,
67
+ templates: compactTemplateCatalogText(),
68
+ caption_emphasis: "Script words or phrases to emphasise, every occurrence, matched as an insert quote. An item is the quote or " +
69
+ "{ quote, look }: punch (a lead-in line over a large glowing keyword), pill (alone in a pill), color (accent colour) or box (soft " +
70
+ "accent box). Without look: punch draws punch, hormozi and accent color, others larger in their highlight colour. Needs " +
71
+ "captions=true; a quote not in script is refused before any charge.",
72
+ voice: "Voice name from list_voices (presets sarah | george | eric | daria_ru_female); another name is refused before any charge. " +
73
+ "Omitted: the default voice of the actor's gender (actor_id's or actor_gender's; george for the default actor and for image " +
74
+ "alone). A gemini-3.8-flash-tts voice selects that model; a tts_model not speaking the voice is refused. Not with voice_id.",
75
+ inserts: "Text-anchored image or video inserts over the narration, each over cover_words words from its anchor; need long-form " +
76
+ "qualification on the server, 1080p and broll_policy=anyone. Captions draw over them.",
77
+ segments: "Ordered actor and image segments; need long-form qualification on the server, captions=false and 1080p; image media " +
78
+ "needs broll_policy=anyone.",
79
+ captions: "Burn word-timed captions in, over the presenter and inserts; not with segments.",
80
+ caption_position: "top, middle, lower or bottom (80% of the height); omitted, the caption_style's own place. Requires captions=true.",
81
+ person: "NOT HONORED YET: the default actor is used; pick actor_id from list_actors or pass image.",
82
+ name: "NOT HONORED YET: it does not reach the renderer.",
83
+ look: "NOT HONORED YET: it does not reach the renderer.",
84
+ actor_id: "Saved actor ID from list_actors; not with image, person or actor_gender. Without voice or voice_id the voice follows its gender.",
85
+ voice_id: "Raw vendor voice id (16–32 letters and digits) outside the catalog; an unknown id fails the run, not the request. Not with " +
86
+ "voice or tts_model=gemini-3.8-flash-tts.",
87
+ broll_policy: "anyone allows people and the actor, no_actor excludes the actor, no_people all people and hands. Templates with " +
88
+ "your own picture or video need \"anyone\"; otherwise stored only. Run value wins over the account default; else no_people.",
89
+ overlays: `Text-anchored images or videos over the visible presenter, each at a position or place; at most ${MAX_OVERLAYS_AT_ONCE} at once, ` +
90
+ "not overlapping. Captions move off them to the middle or bottom third, never over the face, and hide while neither is free. Hidden " +
91
+ "under full-frame inserts. Needs what inserts need. Price unchanged.",
92
+ image: "Public https URL of the actor's photo (PNG, JPEG or WebP, up to 10 MB); a local file goes through upload_image first. A private, " +
93
+ "http, unreachable, redirecting, larger or other source is refused (unusable_source) before any charge. Gender is not detected: " +
94
+ "pass actor_gender or voice, else the male default speaks, with a warning.",
95
+ framing: "Text-anchored presenter sizes: each cuts to close or medium on its words and back after them; no overlap with each other, an " +
96
+ "insert or a layout window. One wholly under full-frame templates is named in warnings[]; it wins over a punch_in emphasis. Needs " +
97
+ "script and long-form qualification; price unchanged.",
98
+ actor_gender: "Gender of the face in image, only with image: picks that gender's default voice (sarah or george; kore or charon on " +
99
+ "gemini-3.8-flash-tts). Refused with actor_id. An explicit voice or voice_id wins, with a warning.",
100
+ aspect_ratio: "Output format. Omitted: 9:16, or with an image the supported format nearest its shape, even landscape, so pass it with " +
101
+ "image. A source more than 15% off the request is refused (aspect_conflict) before any charge.",
102
+ caption_mode: "full (default): every spoken word. highlights: only around caption_emphasis quotes (lead-in, quote, short tail); requires " +
103
+ "caption_emphasis. Captions hide under a full-frame insert.",
104
+ visible_ai_label: "Visible AI label, default true. False hides only the visible label; invisible marking and signed provenance stay.",
105
+ layout_windows: "Text-anchored presenter reframings: split (9:16 only) or card; no overlap with each other or an insert; needs what " +
106
+ "inserts need. A covered or blurred presenter is billed as face time.",
107
+ end_hold_s: "Seconds the last frame holds after the last word, the presenter frozen and every layer kept; production seconds. Needs " +
108
+ "script and long-form qualification.",
109
+ edit_sounds: "A short sound on every cut (insert, full-frame template, layout window, framing). Needs one of them; template_sounds.edit " +
110
+ "picks it (list_template_sounds). Price unchanged.",
111
+ };
112
+ //# sourceMappingURL=mcp-ugc-descriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-ugc-descriptions.js","sourceRoot":"","sources":["../src/mcp-ugc-descriptions.ts"],"names":[],"mappings":"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"}