@clipwright/core 0.27.0 → 0.28.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 (87) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/api-failure.d.ts +49 -2
  3. package/dist/api-failure.js +82 -1
  4. package/dist/api-failure.js.map +1 -1
  5. package/dist/contract-dispositions.js +3 -3
  6. package/dist/contract-dispositions.js.map +1 -1
  7. package/dist/contracts/v1/workflow-brief.d.ts +402 -0
  8. package/dist/contracts/v1/workflow-brief.js +40 -0
  9. package/dist/contracts/v1/workflow-brief.js.map +1 -0
  10. package/dist/contracts/v1/workflow-catalog.d.ts +1060 -0
  11. package/dist/contracts/v1/workflow-catalog.js +45 -0
  12. package/dist/contracts/v1/workflow-catalog.js.map +1 -0
  13. package/dist/contracts/v1/workflow-dto.d.ts +18 -0
  14. package/dist/contracts/v1/workflow-dto.js +25 -0
  15. package/dist/contracts/v1/workflow-dto.js.map +1 -0
  16. package/dist/contracts/v1/workflow-evidence.d.ts +115 -0
  17. package/dist/contracts/v1/workflow-evidence.js +33 -0
  18. package/dist/contracts/v1/workflow-evidence.js.map +1 -0
  19. package/dist/contracts/v1/workflow-execution.d.ts +235 -0
  20. package/dist/contracts/v1/workflow-execution.js +33 -0
  21. package/dist/contracts/v1/workflow-execution.js.map +1 -0
  22. package/dist/contracts/v1/workflow-plan.d.ts +1057 -0
  23. package/dist/contracts/v1/workflow-plan.js +26 -0
  24. package/dist/contracts/v1/workflow-plan.js.map +1 -0
  25. package/dist/contracts/v1/workflow-primitives.d.ts +62 -0
  26. package/dist/contracts/v1/workflow-primitives.js +16 -0
  27. package/dist/contracts/v1/workflow-primitives.js.map +1 -0
  28. package/dist/edit-billing.d.ts +65 -0
  29. package/dist/edit-billing.js +30 -0
  30. package/dist/edit-billing.js.map +1 -0
  31. package/dist/edit-revision.d.ts +162 -0
  32. package/dist/edit-revision.js +36 -0
  33. package/dist/edit-revision.js.map +1 -0
  34. package/dist/edit.d.ts +2 -0
  35. package/dist/edit.js +3 -1
  36. package/dist/edit.js.map +1 -1
  37. package/dist/endpoints.js +6 -4
  38. package/dist/endpoints.js.map +1 -1
  39. package/dist/errors.d.ts +95 -1
  40. package/dist/errors.js +87 -0
  41. package/dist/errors.js.map +1 -1
  42. package/dist/faceless-public.d.ts +254 -0
  43. package/dist/faceless-public.js +11 -0
  44. package/dist/faceless-public.js.map +1 -1
  45. package/dist/idempotency.d.ts +2 -0
  46. package/dist/idempotency.js +9 -0
  47. package/dist/idempotency.js.map +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.js +1 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/runs.d.ts +52 -0
  52. package/dist/runs.js +15 -2
  53. package/dist/runs.js.map +1 -1
  54. package/dist/workflows/catalog.d.ts +4 -0
  55. package/dist/workflows/catalog.js +57 -0
  56. package/dist/workflows/catalog.js.map +1 -0
  57. package/dist/workflows/index.d.ts +9 -0
  58. package/dist/workflows/index.js +10 -0
  59. package/dist/workflows/index.js.map +1 -0
  60. package/dist/workflows/methods/faceless-explainer.d.ts +175 -0
  61. package/dist/workflows/methods/faceless-explainer.js +20 -0
  62. package/dist/workflows/methods/faceless-explainer.js.map +1 -0
  63. package/dist/workflows/methods/kinetic-launch.d.ts +175 -0
  64. package/dist/workflows/methods/kinetic-launch.js +19 -0
  65. package/dist/workflows/methods/kinetic-launch.js.map +1 -0
  66. package/dist/workflows/methods/product-image-story.d.ts +175 -0
  67. package/dist/workflows/methods/product-image-story.js +20 -0
  68. package/dist/workflows/methods/product-image-story.js.map +1 -0
  69. package/dist/workflows/methods/shared.d.ts +190 -0
  70. package/dist/workflows/methods/shared.js +13 -0
  71. package/dist/workflows/methods/shared.js.map +1 -0
  72. package/dist/workflows/methods/ugc-faq-answer.d.ts +175 -0
  73. package/dist/workflows/methods/ugc-faq-answer.js +19 -0
  74. package/dist/workflows/methods/ugc-faq-answer.js.map +1 -0
  75. package/dist/workflows/methods/ugc-product-intro.d.ts +175 -0
  76. package/dist/workflows/methods/ugc-product-intro.js +19 -0
  77. package/dist/workflows/methods/ugc-product-intro.js.map +1 -0
  78. package/dist/workflows/methods/website-proof-demo.d.ts +175 -0
  79. package/dist/workflows/methods/website-proof-demo.js +19 -0
  80. package/dist/workflows/methods/website-proof-demo.js.map +1 -0
  81. package/dist/workflows/validate.d.ts +10 -0
  82. package/dist/workflows/validate.js +203 -0
  83. package/dist/workflows/validate.js.map +1 -0
  84. package/dist/workflows.d.ts +1 -0
  85. package/dist/workflows.js +2 -0
  86. package/dist/workflows.js.map +1 -0
  87. package/package.json +5 -1
package/dist/runs.js CHANGED
@@ -6,6 +6,7 @@ import { createdActor } from "./account-actors.js";
6
6
  import { faceBillingAdmissionTermsSchema } from "./billing-terms.js";
7
7
  import { brollPolicy } from "./broll-policy.js";
8
8
  import { facelessQuote } from "./faceless-price.js";
9
+ import { revisionBilling } from "./edit-billing.js";
9
10
  /** Shared run stages; skill-specific workers use the stages they need. */
10
11
  export const RUN_STATES = [
11
12
  "queued",
@@ -46,8 +47,14 @@ export const FACELESS_OWN_IMAGES_AI_DISCLOSURE_TEXT = "This video was generated
46
47
  export function aiDisclosureText(skill, input) {
47
48
  if (skill !== "make_faceless")
48
49
  return AI_DISCLOSURE_TEXT;
49
- const images = typeof input === "object" && input !== null ? input.scene_images : undefined;
50
- return Array.isArray(images) && images.length > 0 ? FACELESS_OWN_IMAGES_AI_DISCLOSURE_TEXT : FACELESS_AI_DISCLOSURE_TEXT;
50
+ return facelessOwnImages(input) ? FACELESS_OWN_IMAGES_AI_DISCLOSURE_TEXT : FACELESS_AI_DISCLOSURE_TEXT;
51
+ }
52
+ /** Whether a faceless run's stored input holds images of its author: a revision reads what its admission froze down the chain. */
53
+ export function facelessOwnImages(input) {
54
+ const stored = typeof input === "object" && input !== null
55
+ ? input : {};
56
+ return stored.resolved_revision !== undefined ? stored.resolved_revision?.own_images === true
57
+ : Array.isArray(stored.scene_images) && stored.scene_images.length > 0;
51
58
  }
52
59
  /** Object metadata key that says whether the tag is in the file: a reader learns it without the bytes. */
53
60
  export const AI_DISCLOSURE_EMBEDDED_METADATA_KEY = "ai-disclosure-embedded";
@@ -71,6 +78,12 @@ export const run = z.object({
71
78
  credits_charged: z.number().int().nonnegative().nullable(),
72
79
  billing_terms: faceBillingAdmissionTermsSchema.optional(),
73
80
  faceless_billing: facelessQuote.optional(),
81
+ /** A revision of another run: its family, the credits held at admission, and its frozen price (`null` once redacted). */
82
+ revision: z.object({
83
+ source_run_id: runId, root_run_id: runId,
84
+ quoted_credits: z.number().int().nonnegative(),
85
+ billing: revisionBilling.nullable(),
86
+ }).optional(),
74
87
  resolved_broll_policy: brollPolicy.optional(),
75
88
  warnings: z.array(z.string()).default([]),
76
89
  /** The reason. A non-empty `error` does NOT imply `state: "failed"`: on a non-terminal */
package/dist/runs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type CapabilityProfile, type MethodDescriptor, type WorkflowMethodResponse, type WorkflowCatalogResponse } from '../contracts/v1/workflow-catalog.js';
2
+ export declare const WORKFLOW_METHODS: readonly MethodDescriptor[];
3
+ export declare function queryWorkflowCatalog(capabilities: CapabilityProfile): WorkflowCatalogResponse;
4
+ export declare function queryWorkflowMethod(id: string, capabilities: CapabilityProfile): WorkflowMethodResponse | null;
@@ -0,0 +1,57 @@
1
+ import { capabilityProfile } from '../contracts/v1/workflow-catalog.js';
2
+ import { ugcProductIntro } from './methods/ugc-product-intro.js';
3
+ import { ugcFaqAnswer } from './methods/ugc-faq-answer.js';
4
+ import { facelessExplainer } from './methods/faceless-explainer.js';
5
+ import { productImageStory } from './methods/product-image-story.js';
6
+ import { websiteProofDemo } from './methods/website-proof-demo.js';
7
+ import { kineticLaunch } from './methods/kinetic-launch.js';
8
+ function freeze(value) {
9
+ if (value !== null && typeof value === 'object') {
10
+ for (const child of Object.values(value))
11
+ freeze(child);
12
+ Object.freeze(value);
13
+ }
14
+ return value;
15
+ }
16
+ export const WORKFLOW_METHODS = freeze([ugcProductIntro, ugcFaqAnswer, facelessExplainer, productImageStory, websiteProofDemo, kineticLaunch]);
17
+ function methodResponse(descriptor, snapshot) {
18
+ const reasons = [];
19
+ if (descriptor.binding.kind === 'blocked')
20
+ reasons.push(...descriptor.binding.reasons);
21
+ else {
22
+ const executor = snapshot.executors.find(item => item.skill === descriptor.binding.skill);
23
+ if (!executor)
24
+ reasons.push({ kind: 'executor_missing', path: 'binding', message: `No measured capability snapshot for ${descriptor.binding.skill}.` });
25
+ else {
26
+ for (const gate of ['configured', 'qualified', 'enabled']) {
27
+ if (!executor[gate])
28
+ reasons.push({ kind: `executor_not_${gate}`, path: 'binding', message: `${descriptor.binding.skill} is not ${gate}.` });
29
+ }
30
+ if (!executor.profiles.includes(descriptor.binding.profile))
31
+ reasons.push({ kind: 'profile_not_qualified', path: 'binding.profile', message: `Profile ${descriptor.binding.profile} is not qualified.` });
32
+ for (const feature of descriptor.required_features) {
33
+ if (!executor.features.includes(feature) || ['warned', 'rejected', 'stored'].includes(executor.field_dispositions[feature] ?? '')) {
34
+ reasons.push({ kind: 'missing_feature', path: 'required_features', message: `Required capability ${feature} is unavailable.` });
35
+ }
36
+ }
37
+ if (!descriptor.output.formats.some(format => executor.formats.some(actual => actual.aspect_ratio === format.aspect_ratio && actual.resolution === format.resolution))) {
38
+ reasons.push({ kind: 'unsupported_format', path: 'output.formats', message: 'No qualified output format matches this method.' });
39
+ }
40
+ }
41
+ }
42
+ return structuredClone({ descriptor, availability: { status: reasons.length === 0 ? 'available' : 'execution_blocked', reasons }, capabilities: snapshot });
43
+ }
44
+ export function queryWorkflowCatalog(capabilities) {
45
+ const snapshot = capabilityProfile.parse(capabilities);
46
+ return { v: 1, capabilities: structuredClone(snapshot), methods: WORKFLOW_METHODS.map(descriptor => {
47
+ const response = methodResponse(descriptor, snapshot);
48
+ const { id, version, content_digest, title, purpose, binding } = response.descriptor;
49
+ return { descriptor: { id, version, content_digest, title, purpose, binding }, availability: response.availability };
50
+ }) };
51
+ }
52
+ export function queryWorkflowMethod(id, capabilities) {
53
+ const snapshot = capabilityProfile.parse(capabilities);
54
+ const descriptor = WORKFLOW_METHODS.find(method => method.id === id);
55
+ return descriptor ? methodResponse(descriptor, snapshot) : null;
56
+ }
57
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/workflows/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from '../contracts/v1/workflow-primitives.js';
2
+ export * from '../contracts/v1/workflow-brief.js';
3
+ export * from '../contracts/v1/workflow-evidence.js';
4
+ export * from '../contracts/v1/workflow-catalog.js';
5
+ export * from '../contracts/v1/workflow-plan.js';
6
+ export * from '../contracts/v1/workflow-execution.js';
7
+ export * from '../contracts/v1/workflow-dto.js';
8
+ export * from './catalog.js';
9
+ export * from './validate.js';
@@ -0,0 +1,10 @@
1
+ export * from '../contracts/v1/workflow-primitives.js';
2
+ export * from '../contracts/v1/workflow-brief.js';
3
+ export * from '../contracts/v1/workflow-evidence.js';
4
+ export * from '../contracts/v1/workflow-catalog.js';
5
+ export * from '../contracts/v1/workflow-plan.js';
6
+ export * from '../contracts/v1/workflow-execution.js';
7
+ export * from '../contracts/v1/workflow-dto.js';
8
+ export * from './catalog.js';
9
+ export * from './validate.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,175 @@
1
+ export declare const facelessExplainer: {
2
+ id: "faceless-explainer" | "kinetic-launch" | "product-image-story" | "ugc-faq-answer" | "ugc-product-intro" | "website-proof-demo";
3
+ version: number;
4
+ content_digest: string;
5
+ authoring_status: "ready";
6
+ title: string;
7
+ purpose: string;
8
+ required_inputs: ("assets" | "audience" | "message" | "product" | "question" | "script" | "topic")[];
9
+ required_features: string[];
10
+ script_rules: {
11
+ structure: string[];
12
+ instructions: string[];
13
+ };
14
+ binding: {
15
+ kind: "native";
16
+ skill: "make_faceless" | "make_ugc";
17
+ profile: string;
18
+ visual_beats: "advisory";
19
+ } | {
20
+ kind: "blocked";
21
+ skill: "make_composition";
22
+ profile: string;
23
+ reasons: {
24
+ kind: string;
25
+ path: string;
26
+ message: string;
27
+ }[];
28
+ };
29
+ output: {
30
+ formats: {
31
+ aspect_ratio: "16:9" | "1:1" | "9:16";
32
+ resolution: "1080p" | "4k" | "720p";
33
+ }[];
34
+ timing: string;
35
+ };
36
+ limitations: string[];
37
+ qa_policy: string[];
38
+ example: {
39
+ brief: {
40
+ audience: string;
41
+ message: string;
42
+ script?: string | undefined;
43
+ cta?: string | undefined;
44
+ question?: string | undefined;
45
+ product?: string | undefined;
46
+ topic?: string | undefined;
47
+ brand_intent?: string | undefined;
48
+ required_terms: string[];
49
+ requirements: {
50
+ feature: string;
51
+ required: boolean;
52
+ }[];
53
+ requested_format?: {
54
+ aspect_ratio: "16:9" | "1:1" | "9:16";
55
+ resolution: "1080p" | "4k" | "720p";
56
+ } | undefined;
57
+ native?: {
58
+ skill: "make_ugc";
59
+ input: {
60
+ script?: string | undefined;
61
+ inserts?: {
62
+ id: string;
63
+ media_url: string;
64
+ media_type: "image" | "video";
65
+ anchor: {
66
+ startWord: number;
67
+ endWord: number;
68
+ } | {
69
+ quote: string;
70
+ occurrence?: number | undefined;
71
+ };
72
+ cover_words?: number | undefined;
73
+ image_motion?: {
74
+ direction: "in" | "out";
75
+ amount: number;
76
+ } | undefined;
77
+ }[] | undefined;
78
+ person?: string | undefined;
79
+ actor_id?: string | undefined;
80
+ image?: string | undefined;
81
+ actor_gender?: "female" | "male" | undefined;
82
+ character?: string | undefined;
83
+ name?: string | undefined;
84
+ broll_url?: string | undefined;
85
+ broll_policy?: "anyone" | "no_actor" | "no_people" | undefined;
86
+ captions: boolean;
87
+ caption_style: "hormozi" | "minimal" | "tiktok";
88
+ look: "commercial" | "natural" | "raw_iphone";
89
+ aspect_ratio?: "16:9" | "1:1" | "9:16" | undefined;
90
+ resolution?: "1080p" | "4k" | "720p" | undefined;
91
+ voice?: string | undefined;
92
+ voice_id?: string | undefined;
93
+ tts_model?: "eleven_flash_v2_5" | "eleven_turbo_v2_5" | "eleven_v3" | "eleven_v4" | "gemini-3.8-flash-tts" | undefined;
94
+ webhook_url?: string | undefined;
95
+ disclosure_overlay?: boolean | undefined;
96
+ background?: "blur" | "contain" | "white" | undefined;
97
+ segments?: {
98
+ kind: "actor" | "media";
99
+ script?: string | undefined;
100
+ media_url?: string | undefined;
101
+ media_type?: "image" | "video" | undefined;
102
+ duration_seconds?: number | undefined;
103
+ image_motion?: {
104
+ direction: "in" | "out";
105
+ amount: number;
106
+ } | undefined;
107
+ }[] | undefined;
108
+ };
109
+ } | {
110
+ skill: "make_faceless";
111
+ input: {
112
+ duration_seconds: number;
113
+ style_reference?: string | undefined;
114
+ character_reference?: string | undefined;
115
+ character_details?: string | undefined;
116
+ scene_images?: {
117
+ image_url: string;
118
+ anchor: {
119
+ startWord: number;
120
+ endWord: number;
121
+ } | {
122
+ quote: string;
123
+ occurrence?: number | undefined;
124
+ };
125
+ }[] | undefined;
126
+ captions: boolean;
127
+ voice?: string | undefined;
128
+ voice_id?: undefined;
129
+ input_mode: "brief";
130
+ brief: string;
131
+ } | {
132
+ duration_seconds: number;
133
+ style_reference?: string | undefined;
134
+ character_reference?: string | undefined;
135
+ character_details?: string | undefined;
136
+ scene_images?: {
137
+ image_url: string;
138
+ anchor: {
139
+ startWord: number;
140
+ endWord: number;
141
+ } | {
142
+ quote: string;
143
+ occurrence?: number | undefined;
144
+ };
145
+ }[] | undefined;
146
+ captions: boolean;
147
+ voice?: string | undefined;
148
+ voice_id?: undefined;
149
+ input_mode: "script";
150
+ script: string;
151
+ };
152
+ } | undefined;
153
+ references: {
154
+ kind: "capture" | "owner" | "url";
155
+ reference: string;
156
+ url?: string | undefined;
157
+ observed_at?: string | undefined;
158
+ product_state?: string | undefined;
159
+ }[];
160
+ };
161
+ beats: {
162
+ id: string;
163
+ role: string;
164
+ anchor: {
165
+ startWord: number;
166
+ endWord: number;
167
+ } | {
168
+ quote: string;
169
+ occurrence?: number | undefined;
170
+ };
171
+ required: boolean;
172
+ visual?: string | undefined;
173
+ }[];
174
+ };
175
+ };
@@ -0,0 +1,20 @@
1
+ import { defineWorkflowMethod, nativeLimitations, nativeQa, verticalOutput } from './shared.js';
2
+ const script = 'A seed needs three simple things to begin growing. First, moisture helps the seed take in water. Next, suitable warmth supports its early growth. Finally, air allows the living seed to breathe. The exact conditions depend on the plant. Check the instructions for your seed before you start. Keep the steps in that order and watch for the first small root.';
3
+ export const facelessExplainer = defineWorkflowMethod({
4
+ id: 'faceless-explainer', version: 1, content_digest: '58c1f9c2f5fa4c59e4d655331f29a72627e3a1980c300d09f868f141f94bb5a8', authoring_status: 'ready', title: 'Explain a topic in an ordered sequence',
5
+ purpose: 'Make one topic or supplied list understandable through an opening, ordered explanation and takeaway.',
6
+ required_inputs: ['audience', 'message', 'topic', 'script'], required_features: ['exact_script', 'voice', 'word_anchors'],
7
+ script_rules: { structure: ['opening', 'ordered_points', 'takeaway'], instructions: [
8
+ 'Name the topic, explain the supplied points in their accepted order, and close with one takeaway.',
9
+ 'Freeze the narration before launch. Separate a target length from the measured output and do not promise exact final frames before speech.',
10
+ ] },
11
+ binding: { kind: 'native', skill: 'make_faceless', profile: 'faceless-native-v1', visual_beats: 'advisory' }, output: verticalOutput,
12
+ limitations: [...nativeLimitations, 'The native profile is 9:16 at 1080p with an animated opening clip and image scenes.',
13
+ 'Duration, captions and voice follow the current faceless checks. This binding does not accept arbitrary scene layouts.'], qa_policy: nativeQa,
14
+ example: { brief: { audience: 'First-time gardeners', message: 'Explain seed germination', topic: 'Three needs of a germinating seed', script,
15
+ native: { skill: 'make_faceless', input: { input_mode: 'script', script, duration_seconds: 30 } } },
16
+ beats: [{ id: 'topic', role: 'opening', anchor: { quote: 'A seed needs three simple things' }, required: false },
17
+ { id: 'moisture', role: 'ordered_points', anchor: { quote: 'First, moisture helps the seed take in water' }, required: false },
18
+ { id: 'takeaway', role: 'takeaway', anchor: { quote: 'Check the instructions for your seed' }, required: false }] },
19
+ });
20
+ //# sourceMappingURL=faceless-explainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faceless-explainer.js","sourceRoot":"","sources":["../../../src/workflows/methods/faceless-explainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhG,MAAM,MAAM,GAAG,qWAAqW,CAAC;AACrX,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;IAClD,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,kEAAkE,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,wCAAwC;IACpM,OAAO,EAAE,sGAAsG;IAC/G,eAAe,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC;IACzH,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE;YAChF,mGAAmG;YACnG,4IAA4I;SAC/I,EAAE;IACH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,cAAc;IACpI,WAAW,EAAE,CAAC,GAAG,iBAAiB,EAAE,qFAAqF;QACrH,wHAAwH,CAAC,EAAE,SAAS,EAAE,QAAQ;IAClJ,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,0BAA0B,EAAE,KAAK,EAAE,mCAAmC,EAAE,MAAM;YACzI,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE;QACnG,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5G,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,8CAA8C,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC9H,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;CAC9H,CAAC,CAAC"}
@@ -0,0 +1,175 @@
1
+ export declare const kineticLaunch: {
2
+ id: "faceless-explainer" | "kinetic-launch" | "product-image-story" | "ugc-faq-answer" | "ugc-product-intro" | "website-proof-demo";
3
+ version: number;
4
+ content_digest: string;
5
+ authoring_status: "ready";
6
+ title: string;
7
+ purpose: string;
8
+ required_inputs: ("assets" | "audience" | "message" | "product" | "question" | "script" | "topic")[];
9
+ required_features: string[];
10
+ script_rules: {
11
+ structure: string[];
12
+ instructions: string[];
13
+ };
14
+ binding: {
15
+ kind: "native";
16
+ skill: "make_faceless" | "make_ugc";
17
+ profile: string;
18
+ visual_beats: "advisory";
19
+ } | {
20
+ kind: "blocked";
21
+ skill: "make_composition";
22
+ profile: string;
23
+ reasons: {
24
+ kind: string;
25
+ path: string;
26
+ message: string;
27
+ }[];
28
+ };
29
+ output: {
30
+ formats: {
31
+ aspect_ratio: "16:9" | "1:1" | "9:16";
32
+ resolution: "1080p" | "4k" | "720p";
33
+ }[];
34
+ timing: string;
35
+ };
36
+ limitations: string[];
37
+ qa_policy: string[];
38
+ example: {
39
+ brief: {
40
+ audience: string;
41
+ message: string;
42
+ script?: string | undefined;
43
+ cta?: string | undefined;
44
+ question?: string | undefined;
45
+ product?: string | undefined;
46
+ topic?: string | undefined;
47
+ brand_intent?: string | undefined;
48
+ required_terms: string[];
49
+ requirements: {
50
+ feature: string;
51
+ required: boolean;
52
+ }[];
53
+ requested_format?: {
54
+ aspect_ratio: "16:9" | "1:1" | "9:16";
55
+ resolution: "1080p" | "4k" | "720p";
56
+ } | undefined;
57
+ native?: {
58
+ skill: "make_ugc";
59
+ input: {
60
+ script?: string | undefined;
61
+ inserts?: {
62
+ id: string;
63
+ media_url: string;
64
+ media_type: "image" | "video";
65
+ anchor: {
66
+ startWord: number;
67
+ endWord: number;
68
+ } | {
69
+ quote: string;
70
+ occurrence?: number | undefined;
71
+ };
72
+ cover_words?: number | undefined;
73
+ image_motion?: {
74
+ direction: "in" | "out";
75
+ amount: number;
76
+ } | undefined;
77
+ }[] | undefined;
78
+ person?: string | undefined;
79
+ actor_id?: string | undefined;
80
+ image?: string | undefined;
81
+ actor_gender?: "female" | "male" | undefined;
82
+ character?: string | undefined;
83
+ name?: string | undefined;
84
+ broll_url?: string | undefined;
85
+ broll_policy?: "anyone" | "no_actor" | "no_people" | undefined;
86
+ captions: boolean;
87
+ caption_style: "hormozi" | "minimal" | "tiktok";
88
+ look: "commercial" | "natural" | "raw_iphone";
89
+ aspect_ratio?: "16:9" | "1:1" | "9:16" | undefined;
90
+ resolution?: "1080p" | "4k" | "720p" | undefined;
91
+ voice?: string | undefined;
92
+ voice_id?: string | undefined;
93
+ tts_model?: "eleven_flash_v2_5" | "eleven_turbo_v2_5" | "eleven_v3" | "eleven_v4" | "gemini-3.8-flash-tts" | undefined;
94
+ webhook_url?: string | undefined;
95
+ disclosure_overlay?: boolean | undefined;
96
+ background?: "blur" | "contain" | "white" | undefined;
97
+ segments?: {
98
+ kind: "actor" | "media";
99
+ script?: string | undefined;
100
+ media_url?: string | undefined;
101
+ media_type?: "image" | "video" | undefined;
102
+ duration_seconds?: number | undefined;
103
+ image_motion?: {
104
+ direction: "in" | "out";
105
+ amount: number;
106
+ } | undefined;
107
+ }[] | undefined;
108
+ };
109
+ } | {
110
+ skill: "make_faceless";
111
+ input: {
112
+ duration_seconds: number;
113
+ style_reference?: string | undefined;
114
+ character_reference?: string | undefined;
115
+ character_details?: string | undefined;
116
+ scene_images?: {
117
+ image_url: string;
118
+ anchor: {
119
+ startWord: number;
120
+ endWord: number;
121
+ } | {
122
+ quote: string;
123
+ occurrence?: number | undefined;
124
+ };
125
+ }[] | undefined;
126
+ captions: boolean;
127
+ voice?: string | undefined;
128
+ voice_id?: undefined;
129
+ input_mode: "brief";
130
+ brief: string;
131
+ } | {
132
+ duration_seconds: number;
133
+ style_reference?: string | undefined;
134
+ character_reference?: string | undefined;
135
+ character_details?: string | undefined;
136
+ scene_images?: {
137
+ image_url: string;
138
+ anchor: {
139
+ startWord: number;
140
+ endWord: number;
141
+ } | {
142
+ quote: string;
143
+ occurrence?: number | undefined;
144
+ };
145
+ }[] | undefined;
146
+ captions: boolean;
147
+ voice?: string | undefined;
148
+ voice_id?: undefined;
149
+ input_mode: "script";
150
+ script: string;
151
+ };
152
+ } | undefined;
153
+ references: {
154
+ kind: "capture" | "owner" | "url";
155
+ reference: string;
156
+ url?: string | undefined;
157
+ observed_at?: string | undefined;
158
+ product_state?: string | undefined;
159
+ }[];
160
+ };
161
+ beats: {
162
+ id: string;
163
+ role: string;
164
+ anchor: {
165
+ startWord: number;
166
+ endWord: number;
167
+ } | {
168
+ quote: string;
169
+ occurrence?: number | undefined;
170
+ };
171
+ required: boolean;
172
+ visual?: string | undefined;
173
+ }[];
174
+ };
175
+ };
@@ -0,0 +1,19 @@
1
+ import { compositionReasons, defineWorkflowMethod, nativeQa, verticalOutput } from './shared.js';
2
+ export const kineticLaunch = defineWorkflowMethod({
3
+ id: 'kinetic-launch', version: 1, content_digest: 'a05f94e129e64c7f16bbc9e638c9aebfbfe6c62e74b1b41a150e4a0197557063', authoring_status: 'ready', title: 'Launch a message with exact moving text',
4
+ purpose: 'Build a concise launch from accepted copy, selected narration and deliberate text emphasis, with one closing CTA.',
5
+ required_inputs: ['audience', 'message', 'script'], required_features: ['exact_script', 'authored_scenes', 'accepted_word_clock'],
6
+ script_rules: { structure: ['announcement', 'text_emphasis', 'brand', 'end_card'], instructions: [
7
+ 'Group exact accepted words by meaning, choose a few deliberate emphasis words, and finish with one brand and CTA.',
8
+ 'Preserve all numbers and punctuation. Resolve text reveals against the accepted word clock; unchanged copy reuses its accepted narration master.',
9
+ ] },
10
+ binding: { kind: 'blocked', skill: 'make_composition', profile: 'kinetic-launch-v1', reasons: compositionReasons }, output: verticalOutput,
11
+ limitations: ['Planning only until the composition profile is qualified and its tariff chosen.',
12
+ 'A missing narration master is a readiness issue. Replanning must not silently buy new speech.'],
13
+ qa_policy: [...nativeQa, 'Check glyph coverage, font availability, overflow, safe area and reveal/hold/end-card timing against measured words.'],
14
+ example: { brief: { audience: 'A small workshop community', message: 'Announce the next session', brand_intent: 'Quiet, clear typography', cta: 'Read the schedule',
15
+ script: 'The next workshop is ready. Bring one question and one idea. We will explore them together. Read the schedule and choose your session.' },
16
+ beats: [{ id: 'announce', role: 'announcement', anchor: { quote: 'The next workshop is ready' }, required: true, visual: 'Reveal the exact announcement copy' },
17
+ { id: 'cta', role: 'end_card', anchor: { quote: 'Read the schedule' }, required: true, visual: 'Hold the accepted CTA after its spoken words' }] },
18
+ });
19
+ //# sourceMappingURL=kinetic-launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kinetic-launch.js","sourceRoot":"","sources":["../../../src/workflows/methods/kinetic-launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjG,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;IAC9C,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,kEAAkE,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,yCAAyC;IACjM,OAAO,EAAE,mHAAmH;IAC5H,eAAe,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;IACjI,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE;YAC7F,mHAAmH;YACnH,kJAAkJ;SACrJ,EAAE;IACH,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,cAAc;IAC1I,WAAW,EAAE,CAAC,iFAAiF;QAC3F,+FAA+F,CAAC;IACpG,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE,sHAAsH,CAAC;IAChJ,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,4BAA4B,EAAE,OAAO,EAAE,2BAA2B,EAAE,YAAY,EAAE,yBAAyB,EAAE,GAAG,EAAE,mBAAmB;YAC/J,MAAM,EAAE,wIAAwI,EAAE;QAClJ,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,oCAAoC,EAAE;YAC3J,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC,EAAE;CAC7J,CAAC,CAAC"}