@clipwright/core 0.26.1 → 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 (122) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/README.md +5 -0
  3. package/dist/api-failure.d.ts +68 -1
  4. package/dist/api-failure.js +119 -1
  5. package/dist/api-failure.js.map +1 -1
  6. package/dist/contract-dispositions.js +3 -3
  7. package/dist/contract-dispositions.js.map +1 -1
  8. package/dist/contracts/v1/workflow-brief.d.ts +402 -0
  9. package/dist/contracts/v1/workflow-brief.js +40 -0
  10. package/dist/contracts/v1/workflow-brief.js.map +1 -0
  11. package/dist/contracts/v1/workflow-catalog.d.ts +1060 -0
  12. package/dist/contracts/v1/workflow-catalog.js +45 -0
  13. package/dist/contracts/v1/workflow-catalog.js.map +1 -0
  14. package/dist/contracts/v1/workflow-dto.d.ts +18 -0
  15. package/dist/contracts/v1/workflow-dto.js +25 -0
  16. package/dist/contracts/v1/workflow-dto.js.map +1 -0
  17. package/dist/contracts/v1/workflow-evidence.d.ts +115 -0
  18. package/dist/contracts/v1/workflow-evidence.js +33 -0
  19. package/dist/contracts/v1/workflow-evidence.js.map +1 -0
  20. package/dist/contracts/v1/workflow-execution.d.ts +235 -0
  21. package/dist/contracts/v1/workflow-execution.js +33 -0
  22. package/dist/contracts/v1/workflow-execution.js.map +1 -0
  23. package/dist/contracts/v1/workflow-plan.d.ts +1057 -0
  24. package/dist/contracts/v1/workflow-plan.js +26 -0
  25. package/dist/contracts/v1/workflow-plan.js.map +1 -0
  26. package/dist/contracts/v1/workflow-primitives.d.ts +62 -0
  27. package/dist/contracts/v1/workflow-primitives.js +16 -0
  28. package/dist/contracts/v1/workflow-primitives.js.map +1 -0
  29. package/dist/edit-billing.d.ts +65 -0
  30. package/dist/edit-billing.js +30 -0
  31. package/dist/edit-billing.js.map +1 -0
  32. package/dist/edit-document.d.ts +335 -0
  33. package/dist/edit-document.js +110 -0
  34. package/dist/edit-document.js.map +1 -0
  35. package/dist/edit-faceless.d.ts +24 -0
  36. package/dist/edit-faceless.js +39 -0
  37. package/dist/edit-faceless.js.map +1 -0
  38. package/dist/edit-operations.d.ts +34 -0
  39. package/dist/edit-operations.js +13 -0
  40. package/dist/edit-operations.js.map +1 -0
  41. package/dist/edit-primitives.d.ts +8 -0
  42. package/dist/edit-primitives.js +12 -0
  43. package/dist/edit-primitives.js.map +1 -0
  44. package/dist/edit-revision.d.ts +162 -0
  45. package/dist/edit-revision.js +36 -0
  46. package/dist/edit-revision.js.map +1 -0
  47. package/dist/edit-rules.d.ts +60 -0
  48. package/dist/edit-rules.js +44 -0
  49. package/dist/edit-rules.js.map +1 -0
  50. package/dist/edit-shots.d.ts +548 -0
  51. package/dist/edit-shots.js +61 -0
  52. package/dist/edit-shots.js.map +1 -0
  53. package/dist/edit-validate.d.ts +57 -0
  54. package/dist/edit-validate.js +248 -0
  55. package/dist/edit-validate.js.map +1 -0
  56. package/dist/edit.d.ts +8 -0
  57. package/dist/edit.js +10 -0
  58. package/dist/edit.js.map +1 -0
  59. package/dist/endpoints.d.ts +5 -0
  60. package/dist/endpoints.js +35 -19
  61. package/dist/endpoints.js.map +1 -1
  62. package/dist/errors.d.ts +125 -1
  63. package/dist/errors.js +129 -0
  64. package/dist/errors.js.map +1 -1
  65. package/dist/faceless-media-record.d.ts +100 -0
  66. package/dist/faceless-media-record.js +25 -0
  67. package/dist/faceless-media-record.js.map +1 -0
  68. package/dist/faceless-public-plan.d.ts +1 -0
  69. package/dist/faceless-public-plan.js +2 -1
  70. package/dist/faceless-public-plan.js.map +1 -1
  71. package/dist/faceless-public.d.ts +254 -0
  72. package/dist/faceless-public.js +11 -0
  73. package/dist/faceless-public.js.map +1 -1
  74. package/dist/idempotency.d.ts +2 -0
  75. package/dist/idempotency.js +9 -0
  76. package/dist/idempotency.js.map +1 -1
  77. package/dist/index.d.ts +3 -0
  78. package/dist/index.js +3 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/runs.d.ts +52 -0
  81. package/dist/runs.js +15 -2
  82. package/dist/runs.js.map +1 -1
  83. package/dist/uploads.d.ts +4 -2
  84. package/dist/uploads.js +5 -3
  85. package/dist/uploads.js.map +1 -1
  86. package/dist/workflows/catalog.d.ts +4 -0
  87. package/dist/workflows/catalog.js +57 -0
  88. package/dist/workflows/catalog.js.map +1 -0
  89. package/dist/workflows/index.d.ts +9 -0
  90. package/dist/workflows/index.js +10 -0
  91. package/dist/workflows/index.js.map +1 -0
  92. package/dist/workflows/methods/faceless-explainer.d.ts +175 -0
  93. package/dist/workflows/methods/faceless-explainer.js +20 -0
  94. package/dist/workflows/methods/faceless-explainer.js.map +1 -0
  95. package/dist/workflows/methods/kinetic-launch.d.ts +175 -0
  96. package/dist/workflows/methods/kinetic-launch.js +19 -0
  97. package/dist/workflows/methods/kinetic-launch.js.map +1 -0
  98. package/dist/workflows/methods/product-image-story.d.ts +175 -0
  99. package/dist/workflows/methods/product-image-story.js +20 -0
  100. package/dist/workflows/methods/product-image-story.js.map +1 -0
  101. package/dist/workflows/methods/shared.d.ts +190 -0
  102. package/dist/workflows/methods/shared.js +13 -0
  103. package/dist/workflows/methods/shared.js.map +1 -0
  104. package/dist/workflows/methods/ugc-faq-answer.d.ts +175 -0
  105. package/dist/workflows/methods/ugc-faq-answer.js +19 -0
  106. package/dist/workflows/methods/ugc-faq-answer.js.map +1 -0
  107. package/dist/workflows/methods/ugc-product-intro.d.ts +175 -0
  108. package/dist/workflows/methods/ugc-product-intro.js +19 -0
  109. package/dist/workflows/methods/ugc-product-intro.js.map +1 -0
  110. package/dist/workflows/methods/website-proof-demo.d.ts +175 -0
  111. package/dist/workflows/methods/website-proof-demo.js +19 -0
  112. package/dist/workflows/methods/website-proof-demo.js.map +1 -0
  113. package/dist/workflows/validate.d.ts +10 -0
  114. package/dist/workflows/validate.js +203 -0
  115. package/dist/workflows/validate.js.map +1 -0
  116. package/dist/workflows.d.ts +1 -0
  117. package/dist/workflows.js +2 -0
  118. package/dist/workflows.js.map +1 -0
  119. package/package.json +9 -1
  120. package/dist/__fixtures__/queue-promises.d.ts +0 -8
  121. package/dist/__fixtures__/queue-promises.js +0 -22
  122. package/dist/__fixtures__/queue-promises.js.map +0 -1
@@ -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"}