@clipwright/core 0.34.0 → 0.36.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 (237) hide show
  1. package/README.md +6 -3
  2. package/dist/account-actors.d.ts +173 -15
  3. package/dist/account-actors.js +142 -11
  4. package/dist/account-actors.js.map +1 -1
  5. package/dist/actor-bounds.d.ts +4 -0
  6. package/dist/actor-bounds.js +4 -0
  7. package/dist/actor-bounds.js.map +1 -1
  8. package/dist/actors.d.ts +31 -0
  9. package/dist/actors.js +26 -0
  10. package/dist/actors.js.map +1 -1
  11. package/dist/api-failure.d.ts +1 -1
  12. package/dist/api-failure.js +2 -2
  13. package/dist/api-failure.js.map +1 -1
  14. package/dist/aspect.d.ts +1 -1
  15. package/dist/aspect.js +5 -5
  16. package/dist/aspect.js.map +1 -1
  17. package/dist/assets.d.ts +30 -6
  18. package/dist/assets.js +26 -8
  19. package/dist/assets.js.map +1 -1
  20. package/dist/billing-terms.d.ts +69 -0
  21. package/dist/billing-terms.js +8 -0
  22. package/dist/billing-terms.js.map +1 -1
  23. package/dist/canvas-fit.js +1 -1
  24. package/dist/canvas-fit.js.map +1 -1
  25. package/dist/contract-dispositions.d.ts +493 -9
  26. package/dist/contract-dispositions.js +38 -14
  27. package/dist/contract-dispositions.js.map +1 -1
  28. package/dist/contracts/v1/workflow-brief.d.ts +1441 -0
  29. package/dist/contracts/v1/workflow-brief.js +4 -0
  30. package/dist/contracts/v1/workflow-brief.js.map +1 -1
  31. package/dist/contracts/v1/workflow-catalog.d.ts +2181 -103
  32. package/dist/contracts/v1/workflow-catalog.js +4 -2
  33. package/dist/contracts/v1/workflow-catalog.js.map +1 -1
  34. package/dist/contracts/v1/workflow-client.d.ts +1673 -3
  35. package/dist/contracts/v1/workflow-client.js +6 -3
  36. package/dist/contracts/v1/workflow-client.js.map +1 -1
  37. package/dist/contracts/v1/workflow-execution.d.ts +164 -12
  38. package/dist/contracts/v1/workflow-execution.js +15 -7
  39. package/dist/contracts/v1/workflow-execution.js.map +1 -1
  40. package/dist/contracts/v1/workflow-plan.d.ts +3228 -140
  41. package/dist/contracts/v1/workflow-primitives.d.ts +3 -1
  42. package/dist/contracts/v1/workflow-primitives.js +1 -1
  43. package/dist/contracts/v1/workflow-primitives.js.map +1 -1
  44. package/dist/contracts/v1/workflow-run-read.d.ts +116 -3
  45. package/dist/edit-billing.d.ts +12 -0
  46. package/dist/edit-billing.js +7 -0
  47. package/dist/edit-billing.js.map +1 -1
  48. package/dist/edit-candidate.d.ts +2 -2
  49. package/dist/edit-candidate.js +2 -2
  50. package/dist/edit-candidate.js.map +1 -1
  51. package/dist/edit-long-form.d.ts +3 -3
  52. package/dist/edit-long-form.js +14 -4
  53. package/dist/edit-long-form.js.map +1 -1
  54. package/dist/edit-revision.d.ts +1 -1
  55. package/dist/edit-revision.js +1 -1
  56. package/dist/edit-revision.js.map +1 -1
  57. package/dist/endpoint-notes.d.ts +3 -0
  58. package/dist/endpoint-notes.js +70 -0
  59. package/dist/endpoint-notes.js.map +1 -0
  60. package/dist/endpoints.d.ts +4 -0
  61. package/dist/endpoints.js +16 -0
  62. package/dist/endpoints.js.map +1 -1
  63. package/dist/errors.d.ts +2 -2
  64. package/dist/errors.js +11 -2
  65. package/dist/errors.js.map +1 -1
  66. package/dist/face-billing.d.ts +55 -0
  67. package/dist/face-billing.js +24 -2
  68. package/dist/face-billing.js.map +1 -1
  69. package/dist/face-delivery.d.ts +1 -1
  70. package/dist/face-delivery.js +1 -1
  71. package/dist/face-delivery.js.map +1 -1
  72. package/dist/faceless-media-record.d.ts +1 -1
  73. package/dist/faceless-media-record.js +1 -1
  74. package/dist/faceless-media-record.js.map +1 -1
  75. package/dist/faceless-price.d.ts +49 -6
  76. package/dist/faceless-price.js +44 -10
  77. package/dist/faceless-price.js.map +1 -1
  78. package/dist/faceless-public-plan.d.ts +6 -2
  79. package/dist/faceless-public-plan.js +11 -7
  80. package/dist/faceless-public-plan.js.map +1 -1
  81. package/dist/faceless-public.d.ts +7 -2
  82. package/dist/faceless-public.js +5 -5
  83. package/dist/faceless-public.js.map +1 -1
  84. package/dist/faceless-voices.d.ts +6 -6
  85. package/dist/faceless-voices.js +5 -5
  86. package/dist/faceless-voices.js.map +1 -1
  87. package/dist/feedback.d.ts +29 -0
  88. package/dist/feedback.js +29 -0
  89. package/dist/feedback.js.map +1 -0
  90. package/dist/generations.d.ts +2 -19
  91. package/dist/generations.js +28 -49
  92. package/dist/generations.js.map +1 -1
  93. package/dist/idempotency.d.ts +2 -0
  94. package/dist/idempotency.js +7 -4
  95. package/dist/idempotency.js.map +1 -1
  96. package/dist/index.d.ts +12 -0
  97. package/dist/index.js +15 -0
  98. package/dist/index.js.map +1 -1
  99. package/dist/long-form-pricing.d.ts +7 -4
  100. package/dist/long-form-pricing.js +13 -10
  101. package/dist/long-form-pricing.js.map +1 -1
  102. package/dist/long-form-revision.js +1 -1
  103. package/dist/long-form-revision.js.map +1 -1
  104. package/dist/media-timebase.js +2 -2
  105. package/dist/media-timebase.js.map +1 -1
  106. package/dist/openapi.d.ts +155 -0
  107. package/dist/openapi.js +339 -0
  108. package/dist/openapi.js.map +1 -0
  109. package/dist/pacing.d.ts +15 -0
  110. package/dist/pacing.js +30 -0
  111. package/dist/pacing.js.map +1 -1
  112. package/dist/parts-pricing.d.ts +84 -0
  113. package/dist/parts-pricing.js +105 -0
  114. package/dist/parts-pricing.js.map +1 -0
  115. package/dist/presenter-beats.d.ts +45 -0
  116. package/dist/presenter-beats.js +144 -0
  117. package/dist/presenter-beats.js.map +1 -0
  118. package/dist/prices.d.ts +98 -0
  119. package/dist/prices.js +193 -0
  120. package/dist/prices.js.map +1 -0
  121. package/dist/public-responses.d.ts +23 -0
  122. package/dist/public-responses.js +11 -0
  123. package/dist/public-responses.js.map +1 -0
  124. package/dist/rate-limit.d.ts +2 -2
  125. package/dist/rate-limit.js +2 -2
  126. package/dist/rate-limit.js.map +1 -1
  127. package/dist/reference-analysis.d.ts +915 -0
  128. package/dist/reference-analysis.js +210 -0
  129. package/dist/reference-analysis.js.map +1 -0
  130. package/dist/reference-kinds.d.ts +8 -0
  131. package/dist/reference-kinds.js +10 -0
  132. package/dist/reference-kinds.js.map +1 -0
  133. package/dist/reference-profile.d.ts +671 -0
  134. package/dist/reference-profile.js +198 -0
  135. package/dist/reference-profile.js.map +1 -0
  136. package/dist/reference-staging.d.ts +583 -0
  137. package/dist/reference-staging.js +153 -0
  138. package/dist/reference-staging.js.map +1 -0
  139. package/dist/reference-voice.d.ts +305 -0
  140. package/dist/reference-voice.js +108 -0
  141. package/dist/reference-voice.js.map +1 -0
  142. package/dist/render-backend.d.ts +1 -1
  143. package/dist/resolved-timeline.d.ts +54 -2
  144. package/dist/resolved-timeline.js +52 -6
  145. package/dist/resolved-timeline.js.map +1 -1
  146. package/dist/run-static-warnings.js +15 -6
  147. package/dist/run-static-warnings.js.map +1 -1
  148. package/dist/runs.d.ts +78 -6
  149. package/dist/runs.js +9 -4
  150. package/dist/runs.js.map +1 -1
  151. package/dist/semantic-inserts.d.ts +1 -1
  152. package/dist/semantic-inserts.js +2 -2
  153. package/dist/semantic-inserts.js.map +1 -1
  154. package/dist/skills.d.ts +1810 -29
  155. package/dist/skills.js +148 -35
  156. package/dist/skills.js.map +1 -1
  157. package/dist/templates/callout.d.ts +2 -2
  158. package/dist/templates/callout.js +6 -6
  159. package/dist/templates/callout.js.map +1 -1
  160. package/dist/templates/checklist.js +2 -2
  161. package/dist/templates/checklist.js.map +1 -1
  162. package/dist/templates/index.d.ts +15 -8
  163. package/dist/templates/index.js +30 -18
  164. package/dist/templates/index.js.map +1 -1
  165. package/dist/templates/notification.js +2 -2
  166. package/dist/templates/notification.js.map +1 -1
  167. package/dist/templates/phone-call.d.ts +3 -0
  168. package/dist/templates/phone-call.js +14 -7
  169. package/dist/templates/phone-call.js.map +1 -1
  170. package/dist/templates/progress.js +2 -2
  171. package/dist/templates/progress.js.map +1 -1
  172. package/dist/templates/size.d.ts +1 -1
  173. package/dist/templates/size.js +1 -1
  174. package/dist/templates/size.js.map +1 -1
  175. package/dist/templates/sounds.d.ts +357 -7
  176. package/dist/templates/sounds.js +34 -12
  177. package/dist/templates/sounds.js.map +1 -1
  178. package/dist/ugc-call.d.ts +89 -0
  179. package/dist/ugc-call.js +111 -0
  180. package/dist/ugc-call.js.map +1 -0
  181. package/dist/ugc-delivery.d.ts +1 -1
  182. package/dist/ugc-delivery.js +1 -1
  183. package/dist/ugc-delivery.js.map +1 -1
  184. package/dist/ugc-framing.d.ts +26 -0
  185. package/dist/ugc-framing.js +64 -0
  186. package/dist/ugc-framing.js.map +1 -0
  187. package/dist/ugc-layers.d.ts +5 -1
  188. package/dist/ugc-layers.js +6 -1
  189. package/dist/ugc-layers.js.map +1 -1
  190. package/dist/ugc-video-media.d.ts +1 -1
  191. package/dist/ugc-video-media.js +1 -1
  192. package/dist/ugc-video-media.js.map +1 -1
  193. package/dist/uploads.d.ts +2 -2
  194. package/dist/uploads.js +2 -2
  195. package/dist/uploads.js.map +1 -1
  196. package/dist/vendor-response.d.ts +4 -0
  197. package/dist/vendor-response.js +12 -0
  198. package/dist/vendor-response.js.map +1 -1
  199. package/dist/voice-admission.d.ts +836 -420
  200. package/dist/voice-admission.js +22 -5
  201. package/dist/voice-admission.js.map +1 -1
  202. package/dist/voice-listing.d.ts +4 -4
  203. package/dist/voice-listing.js +11 -6
  204. package/dist/voice-listing.js.map +1 -1
  205. package/dist/voice-pace.d.ts +34 -0
  206. package/dist/voice-pace.generated.json +72 -0
  207. package/dist/voice-pace.js +34 -0
  208. package/dist/voice-pace.js.map +1 -0
  209. package/dist/voices.d.ts +32 -19
  210. package/dist/voices.js +81 -35
  211. package/dist/voices.js.map +1 -1
  212. package/dist/workflows/catalog.js +2 -1
  213. package/dist/workflows/catalog.js.map +1 -1
  214. package/dist/workflows/index.d.ts +2 -0
  215. package/dist/workflows/index.js +2 -0
  216. package/dist/workflows/index.js.map +1 -1
  217. package/dist/workflows/methods/faceless-explainer.d.ts +388 -10
  218. package/dist/workflows/methods/kinetic-launch.d.ts +388 -10
  219. package/dist/workflows/methods/kinetic-launch.js +1 -1
  220. package/dist/workflows/methods/product-image-story.d.ts +388 -10
  221. package/dist/workflows/methods/reference-remake.d.ts +881 -0
  222. package/dist/workflows/methods/reference-remake.js +26 -0
  223. package/dist/workflows/methods/reference-remake.js.map +1 -0
  224. package/dist/workflows/methods/shared.d.ts +388 -10
  225. package/dist/workflows/methods/shared.js +2 -2
  226. package/dist/workflows/methods/shared.js.map +1 -1
  227. package/dist/workflows/methods/ugc-faq-answer.d.ts +388 -10
  228. package/dist/workflows/methods/ugc-product-intro.d.ts +388 -10
  229. package/dist/workflows/methods/website-proof-demo.d.ts +388 -10
  230. package/dist/workflows/methods/website-proof-demo.js +1 -1
  231. package/dist/workflows/reference-remake.d.ts +684 -0
  232. package/dist/workflows/reference-remake.js +602 -0
  233. package/dist/workflows/reference-remake.js.map +1 -0
  234. package/dist/workflows/validate.js +10 -7
  235. package/dist/workflows/validate.js.map +1 -1
  236. package/package.json +9 -4
  237. package/CHANGELOG.md +0 -1393
@@ -1,32 +1,39 @@
1
1
  import { z } from "zod";
2
- // Template sounds (#778 S3c): the owner's library of 23.10, one list of names per beat, with his default first in each.
3
- export const TEMPLATE_SOUND_BEATS = ["click", "toggle", "ring", "answer", "notify", "step", "whoosh", "flash"];
2
+ // Template sounds: one list of names per beat, with the default first in each.
3
+ export const TEMPLATE_SOUND_BEATS = ["click", "toggle", "ring", "answer", "notify", "step", "whoosh", "flash", "pop", "hangup", "money", "edit"];
4
4
  /** Each beat's names, its default and where it plays; the composition bundles `<beat>__<name>.mp3` for each, and a test keeps the two equal. */
5
5
  export const TEMPLATE_SOUNDS = {
6
6
  click: { default: "click_mouse", names: ["click_mouse", "click_soft", "click_crisp", "click_light"],
7
7
  plays: "a checklist's cursor clicks a row, on each click" },
8
8
  toggle: { default: "switch_flip", names: ["switch_flip", "toggle_snap", "switch_heavy", "switch_light"],
9
9
  plays: "a checklist row's switch or check box lands, just after each click" },
10
- ring: { default: "ring_classic", names: ["ring_classic", "ring_marimba", "ring_digital"],
11
- plays: "a phone_call rings from its pop, repeating, until it is answered" },
12
- answer: { default: "answer_confirm", names: ["answer_confirm", "answer_open", "answer_pop", "answer_select"],
10
+ ring: { default: "ring_classic", names: ["ring_classic", "ring_marimba", "ring_digital", "ring_double"],
11
+ plays: "a phone_call rings from its pop, repeating, until it is answered; over a call it rings ring_double once, before the first line" },
12
+ answer: { default: "answer_confirm", names: ["answer_confirm", "answer_open", "answer_pop", "answer_select", "pickup"],
13
13
  plays: "a phone_call is answered, on answer_at" },
14
14
  notify: { default: "chime", names: ["chime", "glass_ping", "glass_soft", "bong", "question_ping"], plays: "a notification drops in" },
15
15
  step: { default: "drop", names: ["drop", "drop_high", "tick", "pluck", "pluck_bright"], plays: "a progress step fills, and each rating star" },
16
- whoosh: { default: "whoosh", names: ["whoosh", "whip", "paper_swipe", "sweep"],
16
+ whoosh: { default: "whoosh", names: ["whoosh", "whip", "paper_swipe", "sweep", "slide_quick"],
17
17
  plays: "a full-frame template's wipe or zoom, in and out, and a compare's reveal" },
18
- flash: { default: "shutter", names: ["shutter", "glitch"], plays: "a full-frame template's flash, on each of its cuts" },
18
+ flash: { default: "shutter", names: ["shutter", "glitch", "swish"], plays: "a full-frame template's flash, on each of its cuts" },
19
+ pop: { default: "plop", names: ["plop"], plays: "a tag or a callout pops in" },
20
+ hangup: { default: "phone", names: ["phone"], plays: "an answered phone_call hangs up, just before it leaves" },
21
+ money: { default: "cash_register", names: ["cash_register", "coins"], plays: "a stat with a currency sign in its prefix or suffix counts up" },
22
+ edit: { default: "swell_hit", names: ["swell_hit", "whoosh_deep", "whoosh_low", "boom_low", "sub_drop", "riser_boom", "riser_hit"],
23
+ plays: "with edit_sounds, each cut: to or from an insert, a full-frame template's cut without its own whoosh or flash, a layout window's in and out; " +
24
+ "its peak lands on the cut" },
19
25
  };
20
26
  /** The beats each kind plays over the presenter; a full-frame template adds its transition's beat (see `templateSoundBeats`). */
21
27
  export const TEMPLATE_KIND_SOUNDS = {
22
- checklist: ["click", "toggle"], phone_call: ["ring", "answer"], notification: ["notify"], progress: ["step"], rating: ["step"], compare: ["whoosh"],
28
+ checklist: ["click", "toggle"], phone_call: ["ring", "answer", "hangup"], notification: ["notify"], progress: ["step"], rating: ["step"], compare: ["whoosh"],
29
+ tag: ["pop"], callout: ["pop"], stat: ["money"],
23
30
  };
24
31
  export const DEFAULT_TEMPLATE_SOUNDS = Object.freeze(Object.fromEntries(TEMPLATE_SOUND_BEATS.map(beat => [beat, TEMPLATE_SOUNDS[beat].default])));
25
32
  const name = (beat) => z.enum(TEMPLATE_SOUNDS[beat].names, {
26
- error: issue => `${JSON.stringify(issue.input)} is not a ${beat} sound: use ${TEMPLATE_SOUNDS[beat].names.join(", ")}`,
33
+ error: issue => `${JSON.stringify(issue.input)} is not ${/^[aeiou]/.test(beat) ? "an" : "a"} ${beat} sound: use ${TEMPLATE_SOUNDS[beat].names.join(", ")}`,
27
34
  }).optional();
28
35
  const overrides = z.strictObject({ click: name("click"), toggle: name("toggle"), ring: name("ring"), answer: name("answer"), notify: name("notify"),
29
- step: name("step"), whoosh: name("whoosh"), flash: name("flash") }, {
36
+ step: name("step"), whoosh: name("whoosh"), flash: name("flash"), pop: name("pop"), hangup: name("hangup"), money: name("money"), edit: name("edit") }, {
30
37
  error: issue => (issue.code === "unrecognized_keys" ? `template_sounds has no beat ${issue.keys.join(", ")}: the beats are ${TEMPLATE_SOUND_BEATS.join(", ")}` : undefined),
31
38
  });
32
39
  /** Why a value cannot be the field, with the beat's path; a union names no branch on its own, so the message does. */
@@ -43,15 +50,30 @@ export const templateSounds = z.union([z.literal(false), overrides], { error: is
43
50
  .describe("Template sounds: false for none, or { beat: name } over the defaults; list_template_sounds names them.");
44
51
  /** The slim MCP field, which keeps tools/list small: any beat and name pass here, and the server checks them strictly (S3 D3). */
45
52
  export const mcpTemplateSounds = z.union([z.literal(false), z.record(z.string(), z.string())]).describe(templateSounds.description);
53
+ /** Opt-in, so a run that never asked keeps its silent cuts (rule 3); no default in the schema. */
54
+ export const editSounds = z.boolean().describe("A low sound on every cut (insert, full-frame template, layout window, framing), its peak on the cut. " +
55
+ "Needs inserts, layout_windows or framing; template_sounds.edit picks it (list_template_sounds). Price unchanged.");
56
+ /** Refusals of `edit_sounds` and `template_sounds.edit` that would otherwise be ignored: nothing to cut, a name without the switch, both on and muted. */
57
+ export function editSoundRefusals(input) {
58
+ const sounds = input.template_sounds;
59
+ if (input.edit_sounds !== true) {
60
+ return sounds !== null && typeof sounds === "object" && "edit" in sounds
61
+ ? [{ path: ["template_sounds", "edit"], message: "template_sounds.edit picks the edit sound: add edit_sounds: true or drop it" }] : [];
62
+ }
63
+ return [...(input.inserts === undefined && input.layout_windows === undefined && input.framing === undefined ? [{ path: ["edit_sounds"],
64
+ message: "edit_sounds sounds the cuts of inserts, layout windows and framing: add inserts, layout_windows or framing, or drop it" }] : []),
65
+ ...(sounds === false ? [{ path: ["edit_sounds"], message: "edit_sounds plays a sound on each cut and template_sounds: false mutes every sound: drop one" }] : [])];
66
+ }
46
67
  /** A run's sounds: the defaults with its overrides, or none for `false` (S3c C2, C4). */
47
68
  export function templateSoundMap(sounds) {
48
69
  return sounds === false ? undefined : { ...DEFAULT_TEMPLATE_SOUNDS, ...sounds };
49
70
  }
50
- /** The beats one template plays: its kind's, and on a full frame its wipe or zoom (whoosh) or flash. */
71
+ /** The beats one template plays: its kind's, and on a full frame its wipe or zoom (whoosh) or flash; money only with a currency sign around a stat. */
51
72
  export function templateSoundBeats(item) {
52
73
  const transition = item.placement !== "full" ? [] : item.transition === "wipe" || item.transition === "zoom" ? ["whoosh"]
53
74
  : item.transition === "flash" ? ["flash"] : [];
54
- return [...new Set([...(TEMPLATE_KIND_SOUNDS[item.kind] ?? []), ...transition])];
75
+ const currency = [item.data?.prefix, item.data?.suffix].some(text => typeof text === "string" && /\p{Sc}/u.test(text));
76
+ return [...new Set([...(TEMPLATE_KIND_SOUNDS[item.kind] ?? []).filter(beat => beat !== "money" || currency), ...transition])];
55
77
  }
56
78
  export const TEMPLATE_SOUNDS_PATH = "/v1/template-sounds";
57
79
  /** The catalog `GET /v1/template-sounds` and `list_template_sounds` return. */
@@ -1 +1 @@
1
- {"version":3,"file":"sounds.js","sourceRoot":"","sources":["../../src/templates/sounds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sounds.js","sourceRoot":"","sources":["../../src/templates/sounds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAG1J,gJAAgJ;AAChJ,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;QACjG,KAAK,EAAE,kDAAkD,EAAE;IAC7D,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,CAAC;QACrG,KAAK,EAAE,oEAAoE,EAAE;IAC/E,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC;QACrG,KAAK,EAAE,gIAAgI,EAAE;IAC3I,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;QACpH,KAAK,EAAE,wCAAwC,EAAE;IACnD,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE;IACrI,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,6CAA6C,EAAE;IAC9I,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC;QAC3F,KAAK,EAAE,0EAA0E,EAAE;IACrF,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,oDAAoD,EAAE;IACjI,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE;IAC9E,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,wDAAwD,EAAE;IAC/G,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,+DAA+D,EAAE;IAC9I,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC;QAChI,KAAK,EAAE,+IAA+I;YACpJ,2BAA2B,EAAE;CACyE,CAAC;AAE7G,iIAAiI;AACjI,MAAM,CAAC,MAAM,oBAAoB,GAA2D;IAC1F,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;IAC7J,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC;CAChD,CAAC;AAGF,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAqB,CAAC;AAEtK,MAAM,IAAI,GAAG,CAA8B,IAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;IACzF,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,eAAe,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;CAC3J,CAAC,CAAC,QAAQ,EAAE,CAAC;AACd,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;IACjJ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;IACxJ,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,+BAA+B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;CAC5K,CAAC,CAAC;AAEH,sHAAsH;AACtH,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,wDAAwD,CAAC;IACzI,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1D,mGAAmG;IACnG,IAAI,KAAK,EAAE,IAAI,KAAK,mBAAmB;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAC9D,OAAO,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC;AAClH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;KACjH,QAAQ,CAAC,wGAAwG,CAAC,CAAC;AAEtH,kIAAkI;AAClI,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAY,CAAC,CAAC;AAErI,kGAAkG;AAClG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,uGAAuG;IACpJ,kHAAkH,CAAC,CAAC;AAEtH,0JAA0J;AAC1J,MAAM,UAAU,iBAAiB,CAAC,KACL;IAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC;IACrC,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC/B,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM;YACtE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,6EAA6E,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3I,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC;gBACrI,OAAO,EAAE,wHAAwH,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5I,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,8FAA8F,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrK,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,gBAAgB,CAAC,MAAkC;IACjE,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,uBAAuB,EAAE,GAAG,MAAM,EAAsB,CAAC;AACtG,CAAC;AAED,uJAAuJ;AACvJ,MAAM,UAAU,kBAAkB,CAAC,IAAsH;IAEvJ,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAiB,CAAC;QAChI,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvH,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAChI,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAC1D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,CAAC,CAAC;AAGH,MAAM,UAAU,kBAAkB;IAChC,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QAC9H,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { type AnchoredItem, type LayerRefusal } from "./ugc-layers.js";
2
+ export declare const CALL_SPEAKERS: readonly ["agent", "caller"];
3
+ export type CallSpeaker = (typeof CALL_SPEAKERS)[number];
4
+ export declare const MAX_CALL_LINES = 12;
5
+ export declare const MAX_CALL_LINE_CHARS = 400;
6
+ export declare const MAX_CALL_CHARS = 1500;
7
+ /** A call's length before synthesis, at the reference's 19 characters a second (D10). */
8
+ export declare const CALL_CHARS_PER_SEC = 19;
9
+ export declare const MAX_CALL_SEC = 45;
10
+ /** Past this the presenter holds still long enough to name it (D1). */
11
+ export declare const CALL_WARN_SEC = 20;
12
+ /** The bake-off's pair (S5-0): agent Cassidy, caller Mark; the agent is never the narration's voice. */
13
+ export declare const DEFAULT_CALL_VOICES: Readonly<Record<CallSpeaker, string>>;
14
+ export declare const SECOND_CALL_AGENT = "sarah";
15
+ /** The reference's in-call screen (D8): a US number shown only to its area code and the hold banner, generic phone UI. */
16
+ export declare const CALL_PHONE_DEFAULTS: Readonly<{
17
+ caller: "+1 (305) 555-0147";
18
+ banner: "Hold This Call?";
19
+ banner_note: "You'll be notified to pick up.";
20
+ mask_number: true;
21
+ }>;
22
+ /** The phone the run draws over a call: an id no client template can spell, so it never meets one. */
23
+ export declare const CALL_PHONE_ID = "call.phone";
24
+ /** The ring starts this long after the phone enters, rings for CALL_RING_SEC (the `ring_double` file) and the first word follows it. */
25
+ export declare const CALL_RING_LEAD_SEC = 0.07;
26
+ export declare const CALL_RING_SEC = 1.35;
27
+ export declare const CALL_RING_TO_VOICE_SEC = 0.1;
28
+ /** From the call's last word to the end of the freeze. */
29
+ export declare const CALL_TAIL_SEC = 0.4;
30
+ /** The presenter's live listening before the freeze (S4d), and how far before the freeze the phone enters behind it. */
31
+ export declare const CALL_LIVE_SEC = 3.58;
32
+ export declare const CALL_PHONE_LEAD_SEC = 3.96;
33
+ /** A staged phone (#914 D1e) rises from one of these sides, within these bounds; the composition draws no other entry for it. */
34
+ export declare const CALL_STAGE_SIDES: readonly ["bottom", "lower_left", "lower_right"];
35
+ export declare const CALL_STAGE_MAX_ENTER_SEC = 5;
36
+ export declare const CALL_STAGE_MAX_LEAD_SEC = 10;
37
+ export interface CallLine {
38
+ speaker: CallSpeaker;
39
+ text: string;
40
+ }
41
+ export interface CallInput {
42
+ after: AnchoredItem["anchor"];
43
+ lines: readonly CallLine[];
44
+ voices?: {
45
+ agent?: string | undefined;
46
+ caller?: string | undefined;
47
+ } | undefined;
48
+ phone?: {
49
+ caller?: string | undefined;
50
+ banner?: string | undefined;
51
+ banner_note?: string | undefined;
52
+ mask_number?: boolean | undefined;
53
+ } | undefined;
54
+ }
55
+ export declare const callChars: (call: Pick<CallInput, "lines">) => number;
56
+ export declare const callEstimateSec: (call: Pick<CallInput, "lines">) => number;
57
+ /** The seconds a call adds to the video: its lines, the ring before them and the tail after (D10). */
58
+ export declare const callGapEstimateSec: (call: Pick<CallInput, "lines">) => number;
59
+ /** The lexical word the presenter resumes on: the one after the quote's last word, or why there is none. */
60
+ export declare function callResumeWord(script: string, after: CallInput["after"]): number | string;
61
+ /** The agent and caller voices: the named ones, else the defaults, the agent kept off the narration's voice. */
62
+ export declare function callVoices(call: Pick<CallInput, "voices">, narrationVoice: string | undefined): Record<CallSpeaker, string>;
63
+ export interface CallCheckInput {
64
+ script?: string | undefined;
65
+ segments?: unknown;
66
+ aspect_ratio?: string | undefined;
67
+ voice?: string | undefined;
68
+ inserts?: readonly AnchoredItem[] | undefined;
69
+ call?: CallInput | undefined;
70
+ }
71
+ /** Every refusal of `call` before money, named by path (C1); the schema already bounds each line and the count. */
72
+ export declare function callRefusals(input: CallCheckInput): LayerRefusal[];
73
+ /** A long call is delivered, and named (rule 3). */
74
+ export declare function callWarnings(input: {
75
+ call?: unknown;
76
+ }): string[];
77
+ /** Where a call sits in its gap, in frames from the presenter's last word before it (D2): the phone enters, the ring starts, the first word,
78
+ * and the gap and hold lengths. Gap = ring lead + ring + call + tail after the phone; hold = gap − live. */
79
+ export declare function callGapFrames(args: {
80
+ callFrames: number;
81
+ liveFrames: number;
82
+ fps: number;
83
+ }): {
84
+ phoneEntry: number;
85
+ ringFrom: number;
86
+ voiceFrom: number;
87
+ gapFrames: number;
88
+ holdFrames: number;
89
+ };
@@ -0,0 +1,111 @@
1
+ import { lexicalTokens } from "./semantic-inserts.js";
2
+ import { layerWordRange } from "./ugc-layers.js";
3
+ // A phone call over a hold (#857 S5): two voices after a quote, the presenter listening, then frozen, until the call ends.
4
+ // Numbers are the reference's, as measured on it.
5
+ export const CALL_SPEAKERS = ["agent", "caller"];
6
+ export const MAX_CALL_LINES = 12;
7
+ export const MAX_CALL_LINE_CHARS = 400;
8
+ export const MAX_CALL_CHARS = 1500;
9
+ /** A call's length before synthesis, at the reference's 19 characters a second (D10). */
10
+ export const CALL_CHARS_PER_SEC = 19;
11
+ export const MAX_CALL_SEC = 45;
12
+ /** Past this the presenter holds still long enough to name it (D1). */
13
+ export const CALL_WARN_SEC = 20;
14
+ /** The bake-off's pair (S5-0): agent Cassidy, caller Mark; the agent is never the narration's voice. */
15
+ export const DEFAULT_CALL_VOICES = Object.freeze({ agent: "en_female_cassidy", caller: "en_male_mark" });
16
+ export const SECOND_CALL_AGENT = "sarah";
17
+ /** The reference's in-call screen (D8): a US number shown only to its area code and the hold banner, generic phone UI. */
18
+ export const CALL_PHONE_DEFAULTS = Object.freeze({ caller: "+1 (305) 555-0147", banner: "Hold This Call?", banner_note: "You'll be notified to pick up.",
19
+ mask_number: true });
20
+ /** The phone the run draws over a call: an id no client template can spell, so it never meets one. */
21
+ export const CALL_PHONE_ID = "call.phone";
22
+ /** The ring starts this long after the phone enters, rings for CALL_RING_SEC (the `ring_double` file) and the first word follows it. */
23
+ export const CALL_RING_LEAD_SEC = 0.07;
24
+ export const CALL_RING_SEC = 1.35;
25
+ export const CALL_RING_TO_VOICE_SEC = 0.1;
26
+ /** From the call's last word to the end of the freeze. */
27
+ export const CALL_TAIL_SEC = 0.4;
28
+ /** The presenter's live listening before the freeze (S4d), and how far before the freeze the phone enters behind it. */
29
+ export const CALL_LIVE_SEC = 3.58;
30
+ export const CALL_PHONE_LEAD_SEC = 3.96;
31
+ /** A staged phone (#914 D1e) rises from one of these sides, within these bounds; the composition draws no other entry for it. */
32
+ export const CALL_STAGE_SIDES = ["bottom", "lower_left", "lower_right"];
33
+ export const CALL_STAGE_MAX_ENTER_SEC = 5;
34
+ export const CALL_STAGE_MAX_LEAD_SEC = 10;
35
+ export const callChars = (call) => call.lines.reduce((sum, line) => sum + line.text.length, 0);
36
+ export const callEstimateSec = (call) => Math.ceil(callChars(call) / CALL_CHARS_PER_SEC);
37
+ /** The seconds a call adds to the video: its lines, the ring before them and the tail after (D10). */
38
+ export const callGapEstimateSec = (call) => callEstimateSec(call) + Math.ceil(CALL_RING_LEAD_SEC + CALL_RING_SEC + CALL_RING_TO_VOICE_SEC + CALL_TAIL_SEC);
39
+ /** The lexical word the presenter resumes on: the one after the quote's last word, or why there is none. */
40
+ export function callResumeWord(script, after) {
41
+ const tokens = lexicalTokens(script), range = layerWordRange(tokens, { id: "call", anchor: after });
42
+ if (typeof range === "string")
43
+ return range;
44
+ return range.coverWord < tokens.length ? range.coverWord : "the call needs words after it: the presenter resumes on the word after its quote";
45
+ }
46
+ /** The agent and caller voices: the named ones, else the defaults, the agent kept off the narration's voice. */
47
+ export function callVoices(call, narrationVoice) {
48
+ const agent = call.voices?.agent ?? (narrationVoice === DEFAULT_CALL_VOICES.agent ? SECOND_CALL_AGENT : DEFAULT_CALL_VOICES.agent);
49
+ return { agent, caller: call.voices?.caller ?? DEFAULT_CALL_VOICES.caller };
50
+ }
51
+ /** Every refusal of `call` before money, named by path (C1); the schema already bounds each line and the count. */
52
+ export function callRefusals(input) {
53
+ const call = input.call;
54
+ if (call === undefined)
55
+ return [];
56
+ if (input.script === undefined || input.segments !== undefined)
57
+ return [{ path: ["call"], message: "call requires script and cannot be combined with segments" }];
58
+ const refusals = [];
59
+ if (input.aspect_ratio !== undefined && input.aspect_ratio !== "9:16") {
60
+ refusals.push({ path: ["call"], message: `call needs a 9:16 frame: the phone and the listening presenter are staged for it, not ${input.aspect_ratio}` });
61
+ }
62
+ const resume = callResumeWord(input.script, call.after);
63
+ if (typeof resume === "string")
64
+ refusals.push({ path: ["call", "after"], message: resume });
65
+ else {
66
+ const tokens = lexicalTokens(input.script);
67
+ const cover = (input.inserts ?? []).find(item => {
68
+ const range = layerWordRange(tokens, item);
69
+ return typeof range !== "string" && range.startWord < resume && resume - 1 < range.coverWord;
70
+ });
71
+ if (cover)
72
+ refusals.push({ path: ["call", "after"], message: `the call opens after words insert "${cover.id}" covers: the presenter must be on screen to listen` });
73
+ }
74
+ if (call.lines.length >= 2 && new Set(call.lines.map(line => line.speaker)).size < 2) {
75
+ refusals.push({ path: ["call", "lines"], message: "a call needs lines from both the agent and the caller" });
76
+ }
77
+ const chars = callChars(call);
78
+ if (chars > MAX_CALL_CHARS)
79
+ refusals.push({ path: ["call", "lines"], message: `the call's lines hold ${chars} characters, more than ${MAX_CALL_CHARS}` });
80
+ else if (callEstimateSec(call) > MAX_CALL_SEC) {
81
+ refusals.push({ path: ["call", "lines"], message: `the call runs about ${callEstimateSec(call)} s, longer than ${MAX_CALL_SEC} s: shorten its lines` });
82
+ }
83
+ if (call.voices?.agent !== undefined && call.voices.agent === input.voice) {
84
+ refusals.push({ path: ["call", "voices", "agent"], message: "the call's agent needs a voice other than the narration's, or the presenter seems to answer in their own voice" });
85
+ }
86
+ return refusals;
87
+ }
88
+ /** A long call is delivered, and named (rule 3). */
89
+ export function callWarnings(input) {
90
+ const call = input.call;
91
+ if (!Array.isArray(call?.lines))
92
+ return [];
93
+ const seconds = callEstimateSec({ lines: call.lines });
94
+ return seconds > CALL_WARN_SEC ? [`the call runs about ${seconds} s, longer than ${CALL_WARN_SEC} s: the presenter holds still through all of it`] : [];
95
+ }
96
+ /** Where a call sits in its gap, in frames from the presenter's last word before it (D2): the phone enters, the ring starts, the first word,
97
+ * and the gap and hold lengths. Gap = ring lead + ring + call + tail after the phone; hold = gap − live. */
98
+ export function callGapFrames(args) {
99
+ const { callFrames, liveFrames, fps } = args;
100
+ if (![callFrames, liveFrames, fps].every(Number.isSafeInteger) || callFrames < 1 || liveFrames < 0 || fps < 1) {
101
+ throw new Error("a call's gap needs whole frames");
102
+ }
103
+ // Never before the gap: over the talking take the phone is not drawn, and a ring there plays over the last word (#924).
104
+ const phoneEntry = Math.max(0, liveFrames - Math.round(CALL_PHONE_LEAD_SEC * fps));
105
+ const ringFrom = phoneEntry + Math.round(CALL_RING_LEAD_SEC * fps);
106
+ const voiceFrom = phoneEntry + Math.round((CALL_RING_LEAD_SEC + CALL_RING_SEC + CALL_RING_TO_VOICE_SEC) * fps);
107
+ // A call too short to outlast the listening keeps a hold of one tail.
108
+ const gapFrames = Math.max(voiceFrom + callFrames + Math.round(CALL_TAIL_SEC * fps), liveFrames + Math.round(CALL_TAIL_SEC * fps));
109
+ return { phoneEntry, ringFrom, voiceFrom, gapFrames, holdFrames: gapFrames - liveFrames };
110
+ }
111
+ //# sourceMappingURL=ugc-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ugc-call.js","sourceRoot":"","sources":["../src/ugc-call.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- /** Internal worker proof; v1 remains readable, v2 separates stream timing from the container. */
2
+ /** The run's delivery proof; v1 remains readable, v2 separates stream timing from the container. */
3
3
  export declare const ugcDeliveryEvidenceSchema: z.ZodReadonly<z.ZodDiscriminatedUnion<[z.ZodObject<{
4
4
  runId: z.ZodString;
5
5
  accountId: z.ZodString;
@@ -9,7 +9,7 @@ const fields = {
9
9
  };
10
10
  /** Two 1024-sample AAC-LC frames bound the qualified encoder's audio tail. */
11
11
  const AAC_MAX_TAIL_SAMPLES = 2048;
12
- /** Internal worker proof; v1 remains readable, v2 separates stream timing from the container. */
12
+ /** The run's delivery proof; v1 remains readable, v2 separates stream timing from the container. */
13
13
  export const ugcDeliveryEvidenceSchema = z.discriminatedUnion("version", [
14
14
  z.strictObject({ version: z.literal(1), ...fields }),
15
15
  z.strictObject({ version: z.literal(2), ...fields, videoDurationSec: z.number().positive().finite(),
@@ -1 +1 @@
1
- {"version":3,"file":"ugc-delivery.js","sourceRoot":"","sources":["../src/ugc-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ugc-delivery.js","sourceRoot":"","sources":["../src/ugc-delivery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type AnchoredItem, type LayerRefusal, type LayoutWindowKind } from "./ugc-layers.js";
2
+ export declare const FRAMING_SIZES: readonly ["close", "medium"];
3
+ export type FramingSize = (typeof FRAMING_SIZES)[number];
4
+ export declare const FRAMING_TRANSITIONS: readonly ["cut", "flash"];
5
+ export type FramingTransition = (typeof FRAMING_TRANSITIONS)[number];
6
+ export declare const MAX_FRAMING = 20;
7
+ /** The presenter's scale about the face: close clears a scene detector's 10% with margin and stays under the ×1.25 a 720p take stands. */
8
+ export declare const FRAMING_SCALE: Readonly<Record<FramingSize, number>>;
9
+ export interface FramingCheckInput {
10
+ script: string;
11
+ inserts?: readonly AnchoredItem[] | undefined;
12
+ overlays?: readonly AnchoredItem[] | undefined;
13
+ layout_windows?: readonly (AnchoredItem & {
14
+ layout: LayoutWindowKind;
15
+ })[] | undefined;
16
+ templates?: readonly AnchoredItem[] | undefined;
17
+ framing?: readonly AnchoredItem[] | undefined;
18
+ }
19
+ /** Every refusal of `framing` against the script and the run's other parts, named by path; empty when it renders. */
20
+ export declare function framingRefusals(input: FramingCheckInput): LayerRefusal[];
21
+ /** A framing that never shows, named for the quote and the run (rule 3): it lies wholly under full-frame templates. */
22
+ export declare function framingWarnings(input: {
23
+ script?: unknown;
24
+ framing?: unknown;
25
+ templates?: unknown;
26
+ }): string[];
@@ -0,0 +1,64 @@
1
+ import { lexicalTokens } from "./semantic-inserts.js";
2
+ import { TEMPLATE_KINDS } from "./templates/index.js";
3
+ import { layerWordRange } from "./ugc-layers.js";
4
+ // Framing (reference-elements S2): word-anchored presenter sizes, cut or flashed in, drawn by the composition over the actor slots.
5
+ export const FRAMING_SIZES = ["close", "medium"];
6
+ export const FRAMING_TRANSITIONS = ["cut", "flash"];
7
+ export const MAX_FRAMING = 20;
8
+ /** The presenter's scale about the face: close clears a scene detector's 10% with margin and stays under the ×1.25 a 720p take stands. */
9
+ export const FRAMING_SCALE = Object.freeze({ close: 1.18, medium: 1 });
10
+ const overlaps = (a, b) => a.startWord < b.coverWord && b.startWord < a.coverWord;
11
+ const coveredBy = (range, cover) => Array.from({ length: range.coverWord - range.startWord }, (_, offset) => range.startWord + offset).every(word => cover.some(other => word >= other.startWord && word < other.coverWord));
12
+ const ID_FIELDS = ["inserts", "overlays", "layout_windows", "templates"];
13
+ /** Every refusal of `framing` against the script and the run's other parts, named by path; empty when it renders. */
14
+ export function framingRefusals(input) {
15
+ const refusals = [];
16
+ const tokens = lexicalTokens(input.script);
17
+ const used = new Map(ID_FIELDS.flatMap(field => (input[field] ?? []).map(item => [item.id, field])));
18
+ const ranged = (items) => (items ?? []).flatMap(item => { const range = layerWordRange(tokens, item); return typeof range === "string" ? [] : [{ item, range }]; });
19
+ const inserts = ranged(input.inserts), windows = ranged(input.layout_windows);
20
+ const placed = [];
21
+ for (const [index, item] of (input.framing ?? []).entries()) {
22
+ const owner = used.get(item.id);
23
+ if (owner !== undefined) {
24
+ refusals.push({ path: ["framing", index, "id"], message: `id "${item.id}" is already used in ${owner}: ids are unique across inserts, overlays, layout_windows, templates and framing` });
25
+ }
26
+ used.set(item.id, "framing");
27
+ const range = layerWordRange(tokens, item);
28
+ if (typeof range === "string") {
29
+ refusals.push({ path: ["framing", index, "anchor"], message: `framing "${item.id}": ${range}` });
30
+ continue;
31
+ }
32
+ const refuse = (message) => refusals.push({ path: ["framing", index], message: `framing "${item.id}" ${message}` });
33
+ const insert = inserts.find(other => overlaps(other.range, range));
34
+ if (insert)
35
+ refuse(`overlaps insert "${insert.item.id}": it reframes the presenter, who is not on screen during a full-frame insert`);
36
+ const window = windows.find(other => overlaps(other.range, range));
37
+ if (window) {
38
+ refuse(`overlaps ${window.item.layout} window "${window.item.id}": ${window.item.layout === "split"
39
+ ? "a split crops the presenter to the top half and cannot scale it as well" : "a window reframes the presenter, and framing does not share the frame with it"}`);
40
+ }
41
+ const earlier = placed.find(other => overlaps(other.range, range));
42
+ if (earlier)
43
+ refuse(`overlaps framing "${earlier.id}": one framing holds the presenter at a time`);
44
+ placed.push({ id: item.id, range });
45
+ }
46
+ return refusals;
47
+ }
48
+ /** A framing that never shows, named for the quote and the run (rule 3): it lies wholly under full-frame templates. */
49
+ export function framingWarnings(input) {
50
+ if (typeof input.script !== "string" || !Array.isArray(input.framing) || !Array.isArray(input.templates))
51
+ return [];
52
+ const tokens = lexicalTokens(input.script);
53
+ const fulls = input.templates.flatMap(item => {
54
+ const placement = item.placement ?? TEMPLATE_KINDS.find(entry => entry.kind === item.kind)?.placements[0];
55
+ const range = placement === "full" ? layerWordRange(tokens, item) : "over";
56
+ return typeof range === "string" ? [] : [range];
57
+ });
58
+ return input.framing.flatMap(item => {
59
+ const range = layerWordRange(tokens, item);
60
+ return typeof range !== "string" && coveredBy(range, fulls)
61
+ ? [`framing "${item.id}" is not drawn: it lies wholly under full-frame templates, where the presenter is not on screen`] : [];
62
+ });
63
+ }
64
+ //# sourceMappingURL=ugc-framing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ugc-framing.js","sourceRoot":"","sources":["../src/ugc-framing.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,12 @@ export declare function overlayRect(position: OverlayPosition, canvas: {
29
29
  }): LayerRect;
30
30
  /** Two footprints collide when they share an area; touching edges do not. */
31
31
  export declare function rectsOverlap(a: LayerRect, b: LayerRect): boolean;
32
+ /** How the presenter is framed: close as every portrait was, or wide, lower with room above, a 9:16 view only (#884 S5d). */
33
+ export declare const PRESENTER_FRAMINGS: readonly ["close", "wide"];
34
+ export type PresenterFraming = (typeof PRESENTER_FRAMINGS)[number];
32
35
  /** Where the presenter's face sits: 12–48% of the height and the middle 60% of a 9:16 clip, which other formats fit whole and centre (#778 S3). */
33
- export declare function faceZone(aspectRatio: string): LayerRect;
36
+ /** A wide 9:16 view puts it at 33–58% and the middle half, as measured on a HeyGen render (#884 S5d). */
37
+ export declare function faceZone(aspectRatio: string, framing?: PresenterFraming): LayerRect;
34
38
  type WordAnchor = {
35
39
  startWord: number;
36
40
  endWord: number;
@@ -26,8 +26,13 @@ export function overlayRect(position, canvas) {
26
26
  export function rectsOverlap(a, b) {
27
27
  return a.left < b.left + b.width && b.left < a.left + a.width && a.top < b.top + b.height && b.top < a.top + a.height;
28
28
  }
29
+ /** How the presenter is framed: close as every portrait was, or wide, lower with room above, a 9:16 view only (#884 S5d). */
30
+ export const PRESENTER_FRAMINGS = ["close", "wide"];
29
31
  /** Where the presenter's face sits: 12–48% of the height and the middle 60% of a 9:16 clip, which other formats fit whole and centre (#778 S3). */
30
- export function faceZone(aspectRatio) {
32
+ /** A wide 9:16 view puts it at 33–58% and the middle half, as measured on a HeyGen render (#884 S5d). */
33
+ export function faceZone(aspectRatio, framing = "close") {
34
+ if (framing === "wide" && aspectRatio === "9:16")
35
+ return { left: 0.25, top: 0.33, width: 0.5, height: 0.25 };
31
36
  const { width, height } = frameCanvasOf(aspectRatio);
32
37
  const share = 0.6 * Math.min(1, (9 / 16) / (width / height));
33
38
  return { left: (1 - share) / 2, top: 0.12, width: share, height: 0.36 };
@@ -1 +1 @@
1
- {"version":3,"file":"ugc-layers.js","sourceRoot":"","sources":["../src/ugc-layers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ugc-layers.js","sourceRoot":"","sources":["../src/ugc-layers.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export interface VideoSourceFacts {
6
6
  pixFmt?: string | null | undefined;
7
7
  colorTransfer?: string | null | undefined;
8
8
  }
9
- /** Why a video source cannot be drawn, or `null`. A fact that is not known is not refused here; the worker measures it. */
9
+ /** Why a video source cannot be drawn, or `null`. A fact that is not known is not refused here; the run measures it. */
10
10
  export declare function videoMediaRefusal(facts: VideoSourceFacts): string | null;
11
11
  /** The quote's warning for a pinned video asset the narration may outlast; the slow speech edge gives the longest its words can take. */
12
12
  export declare function videoHoldWarnings(input: Pick<MakeUgcInput, "script" | "inserts" | "overlays" | "layout_windows">, pinned: readonly PinnedInsertAsset[] | undefined): string[];
@@ -5,7 +5,7 @@ import { layerWordRange } from "./ugc-layers.js";
5
5
  /** Codecs Remotion's OffthreadVideo decodes with its bundled FFmpeg, locally and on Lambda; asset ingest takes the same two. */
6
6
  export const MEDIA_VIDEO_CODECS = ["h264", "hevc"];
7
7
  const HDR_TRANSFERS = { smpte2084: "PQ", "arib-std-b67": "HLG" };
8
- /** Why a video source cannot be drawn, or `null`. A fact that is not known is not refused here; the worker measures it. */
8
+ /** Why a video source cannot be drawn, or `null`. A fact that is not known is not refused here; the run measures it. */
9
9
  export function videoMediaRefusal(facts) {
10
10
  if (facts.codec && !MEDIA_VIDEO_CODECS.includes(facts.codec)) {
11
11
  return `is ${facts.codec} video: video media takes H.264 or HEVC; re-encode it as H.264`;
@@ -1 +1 @@
1
- {"version":3,"file":"ugc-video-media.js","sourceRoot":"","sources":["../src/ugc-video-media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ugc-video-media.js","sourceRoot":"","sources":["../src/ugc-video-media.ts"],"names":[],"mappings":"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"}
package/dist/uploads.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { z } from "zod";
2
- /** The same cap as the source probe (`PROBE_MAX_BYTES` in service-core, guarded there). */
2
+ /** The same cap as the source probe. */
3
3
  export declare const UPLOAD_MAX_BYTES: number;
4
4
  /** Uploads per account over a sliding day; a link lives one day. */
5
5
  export declare const UPLOAD_DAILY_CAP = 20;
6
6
  export declare const UPLOAD_WINDOW_SECONDS = 86400;
7
7
  export declare const UPLOAD_URL_TTL_SECONDS = 86400;
8
- /** As long as a run's media (`RENDER_RETENTION_DAYS`): a draft may name an upload on the run's first day. Storage lifecycle, docs/10 §4. */
8
+ /** As long as a run's media (`RENDER_RETENTION_DAYS`): a draft may name an upload on the run's first day. */
9
9
  export declare const UPLOAD_OBJECT_RETENTION_DAYS = 30;
10
10
  /** No WebP on purpose: the probe cannot read its dimensions, and without them the format cannot be checked. */
11
11
  export declare const UPLOAD_MEDIA_TYPES: readonly ["image/png", "image/jpeg"];