@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.
- package/CHANGELOG.md +31 -0
- package/dist/api-failure.d.ts +49 -2
- package/dist/api-failure.js +82 -1
- package/dist/api-failure.js.map +1 -1
- package/dist/contract-dispositions.js +3 -3
- package/dist/contract-dispositions.js.map +1 -1
- package/dist/contracts/v1/workflow-brief.d.ts +402 -0
- package/dist/contracts/v1/workflow-brief.js +40 -0
- package/dist/contracts/v1/workflow-brief.js.map +1 -0
- package/dist/contracts/v1/workflow-catalog.d.ts +1060 -0
- package/dist/contracts/v1/workflow-catalog.js +45 -0
- package/dist/contracts/v1/workflow-catalog.js.map +1 -0
- package/dist/contracts/v1/workflow-dto.d.ts +18 -0
- package/dist/contracts/v1/workflow-dto.js +25 -0
- package/dist/contracts/v1/workflow-dto.js.map +1 -0
- package/dist/contracts/v1/workflow-evidence.d.ts +115 -0
- package/dist/contracts/v1/workflow-evidence.js +33 -0
- package/dist/contracts/v1/workflow-evidence.js.map +1 -0
- package/dist/contracts/v1/workflow-execution.d.ts +235 -0
- package/dist/contracts/v1/workflow-execution.js +33 -0
- package/dist/contracts/v1/workflow-execution.js.map +1 -0
- package/dist/contracts/v1/workflow-plan.d.ts +1057 -0
- package/dist/contracts/v1/workflow-plan.js +26 -0
- package/dist/contracts/v1/workflow-plan.js.map +1 -0
- package/dist/contracts/v1/workflow-primitives.d.ts +62 -0
- package/dist/contracts/v1/workflow-primitives.js +16 -0
- package/dist/contracts/v1/workflow-primitives.js.map +1 -0
- package/dist/edit-billing.d.ts +65 -0
- package/dist/edit-billing.js +30 -0
- package/dist/edit-billing.js.map +1 -0
- package/dist/edit-revision.d.ts +162 -0
- package/dist/edit-revision.js +36 -0
- package/dist/edit-revision.js.map +1 -0
- package/dist/edit.d.ts +2 -0
- package/dist/edit.js +3 -1
- package/dist/edit.js.map +1 -1
- package/dist/endpoints.js +6 -4
- package/dist/endpoints.js.map +1 -1
- package/dist/errors.d.ts +95 -1
- package/dist/errors.js +87 -0
- package/dist/errors.js.map +1 -1
- package/dist/faceless-public.d.ts +254 -0
- package/dist/faceless-public.js +11 -0
- package/dist/faceless-public.js.map +1 -1
- package/dist/idempotency.d.ts +2 -0
- package/dist/idempotency.js +9 -0
- package/dist/idempotency.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runs.d.ts +52 -0
- package/dist/runs.js +15 -2
- package/dist/runs.js.map +1 -1
- package/dist/workflows/catalog.d.ts +4 -0
- package/dist/workflows/catalog.js +57 -0
- package/dist/workflows/catalog.js.map +1 -0
- package/dist/workflows/index.d.ts +9 -0
- package/dist/workflows/index.js +10 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/methods/faceless-explainer.d.ts +175 -0
- package/dist/workflows/methods/faceless-explainer.js +20 -0
- package/dist/workflows/methods/faceless-explainer.js.map +1 -0
- package/dist/workflows/methods/kinetic-launch.d.ts +175 -0
- package/dist/workflows/methods/kinetic-launch.js +19 -0
- package/dist/workflows/methods/kinetic-launch.js.map +1 -0
- package/dist/workflows/methods/product-image-story.d.ts +175 -0
- package/dist/workflows/methods/product-image-story.js +20 -0
- package/dist/workflows/methods/product-image-story.js.map +1 -0
- package/dist/workflows/methods/shared.d.ts +190 -0
- package/dist/workflows/methods/shared.js +13 -0
- package/dist/workflows/methods/shared.js.map +1 -0
- package/dist/workflows/methods/ugc-faq-answer.d.ts +175 -0
- package/dist/workflows/methods/ugc-faq-answer.js +19 -0
- package/dist/workflows/methods/ugc-faq-answer.js.map +1 -0
- package/dist/workflows/methods/ugc-product-intro.d.ts +175 -0
- package/dist/workflows/methods/ugc-product-intro.js +19 -0
- package/dist/workflows/methods/ugc-product-intro.js.map +1 -0
- package/dist/workflows/methods/website-proof-demo.d.ts +175 -0
- package/dist/workflows/methods/website-proof-demo.js +19 -0
- package/dist/workflows/methods/website-proof-demo.js.map +1 -0
- package/dist/workflows/validate.d.ts +10 -0
- package/dist/workflows/validate.js +203 -0
- package/dist/workflows/validate.js.map +1 -0
- package/dist/workflows.d.ts +1 -0
- package/dist/workflows.js +2 -0
- package/dist/workflows.js.map +1 -0
- 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
|
-
|
|
50
|
-
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,KAAK;IACL,QAAQ;IACR,aAAa;IACb,WAAW;IACX,WAAW;IACX,QAAQ;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAG3C,4FAA4F;AAC5F,yCAAyC;AACzC,MAAM,CAAC,MAAM,eAAe,GAC1B,0EAA0E;IAC1E,8CAA8C,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACrF,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC;AAEH,2FAA2F;AAC3F,sEAAsE;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,wFAAwF,CAAC;AAE3F,qGAAqG;AACrG,MAAM,CAAC,MAAM,2BAA2B,GACtC,6FAA6F,CAAC;AAEhG,kGAAkG;AAClG,yFAAyF;AACzF,MAAM,CAAC,MAAM,sCAAsC,GACjD,kFAAkF;IAClF,kDAAkD,CAAC;AAErD,2FAA2F;AAC3F,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAc;IAC5D,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,kBAAkB,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,
|
|
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"}
|