@cueframe/kernel 0.2.16 → 0.2.18
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/dist/_members/composition/fonts/bundledFaces.d.ts +15 -0
- package/dist/_members/errors/registry.d.ts +6 -0
- package/dist/animate.js +2 -2
- package/dist/authoring/build-tools.js +6 -6
- package/dist/authoring/context.js +5 -5
- package/dist/authoring/tools.js +5 -5
- package/dist/authoring.js +10 -10
- package/dist/{chunk-WTGUORWJ.js → chunk-26MBA3WH.js} +1 -1
- package/dist/{chunk-HA4S2ZGH.js → chunk-2R35PKNK.js} +4 -77
- package/dist/{chunk-YROOHMJG.js → chunk-3BCGHUJS.js} +1 -1
- package/dist/{chunk-S3PZFAF5.js → chunk-7NQRYZCT.js} +1 -1
- package/dist/{chunk-TAXZ4KBF.js → chunk-7S73F5E6.js} +2 -2
- package/dist/{chunk-TARKDVP6.js → chunk-BAC7DKQZ.js} +5 -0
- package/dist/{chunk-ZFI3N2ID.js → chunk-CG2E43AN.js} +4 -4
- package/dist/{chunk-J3DIUG24.js → chunk-CHWA3TQM.js} +1 -0
- package/dist/{chunk-XMAA2HYI.js → chunk-CIWOJ5XJ.js} +3 -3
- package/dist/{chunk-QWIK3HKM.js → chunk-D3GMN4WL.js} +1 -1
- package/dist/{chunk-SD25VQDE.js → chunk-E25S4EQC.js} +1 -1
- package/dist/{chunk-HBT2OCUB.js → chunk-EZUDUMH3.js} +3 -3
- package/dist/{chunk-NNMXLNOI.js → chunk-HCZ53SOM.js} +6 -6
- package/dist/{chunk-IGP2CA7C.js → chunk-HGBHJL7X.js} +1 -1
- package/dist/{chunk-QZR4JCFY.js → chunk-IQ7DKM5C.js} +4 -2
- package/dist/{chunk-5CNS7IXO.js → chunk-KBLQKH3T.js} +1 -1
- package/dist/{chunk-X6U6XVU4.js → chunk-KYOVOZQC.js} +4 -4
- package/dist/{chunk-L2AHS3AW.js → chunk-L5XVJQQV.js} +1 -1
- package/dist/{chunk-O7G2NXUJ.js → chunk-MAD6MSXA.js} +1 -1
- package/dist/{chunk-C4P4NC66.js → chunk-TDJNQVTL.js} +2 -2
- package/dist/{chunk-WBNFSG6T.js → chunk-WL2NULVQ.js} +1 -1
- package/dist/chunk-WXHD6OUT.js +82 -0
- package/dist/{chunk-ODUWCQI3.js → chunk-YTQQ24BU.js} +1 -1
- package/dist/{chunk-LQRW5UPR.js → chunk-ZYGUHMX6.js} +1 -1
- package/dist/component-runtime/render.js +2 -2
- package/dist/component-runtime/sourceAdmission.d.ts +1 -0
- package/dist/component-runtime/sourceAdmission.js +12 -0
- package/dist/component-runtime.js +8 -6
- package/dist/compose.js +12 -12
- package/dist/composition/fonts.js +3 -1
- package/dist/composition/graphics-plan.js +3 -3
- package/dist/composition/ops.js +4 -4
- package/dist/composition/projection.js +4 -4
- package/dist/composition/validators.js +3 -3
- package/dist/composition-ops.js +7 -7
- package/dist/composition.js +6 -6
- package/dist/{context-VHBMKP65.js → context-JEIN7PNN.js} +5 -5
- package/dist/core/render.js +4 -4
- package/dist/core/select.js +2 -2
- package/dist/core.js +4 -4
- package/dist/director/ai-sdk.js +3 -3
- package/dist/director/domain.js +2 -2
- package/dist/director.js +3 -3
- package/dist/errors.js +1 -1
- package/dist/mcp/adapter.js +3 -3
- package/dist/mcp/curation.js +1 -1
- package/dist/mcp/server.js +2 -2
- package/dist/mcp.js +2 -2
- package/dist/primitives/captions.js +1 -1
- package/dist/primitives/effects.js +4 -4
- package/dist/primitives/layouts.js +3 -3
- package/dist/primitives/lib/index.js +11 -11
- package/dist/primitives/lib.js +11 -11
- package/dist/primitives/scenes.js +3 -3
- package/dist/primitives/ui-blocks.js +2 -2
- package/dist/primitives.js +8 -8
- package/dist/render-harness/cardAssetAdmission.js +2 -2
- package/dist/render-harness.js +10 -9
- package/package.json +12 -8
- package/dist/{chunk-VLJOIUHL.js → chunk-A76GTLSA.js} +3 -3
|
@@ -148,3 +148,18 @@ export type StackFontFamily = {
|
|
|
148
148
|
kind: "unknown";
|
|
149
149
|
};
|
|
150
150
|
export declare function bundledFamilyForStack(stack: string | undefined | null): StackFontFamily;
|
|
151
|
+
/**
|
|
152
|
+
* The family name a font admission should be decided against, for any value an author can put in
|
|
153
|
+
* a `fontFamily` field.
|
|
154
|
+
*
|
|
155
|
+
* A stack that names a bundled family collapses to THAT family, because it is the file the render
|
|
156
|
+
* will draw with. Anything else — an unknown family, a generic-only stack, a `$brand:` ref — stays
|
|
157
|
+
* exactly as authored, so the refusal names what the author wrote and the sealed brand font
|
|
158
|
+
* manifest still gets its chance to admit it.
|
|
159
|
+
*
|
|
160
|
+
* Both admission paths need this and they must not answer differently: `assertCaptionFontsAdmitted`
|
|
161
|
+
* resolves the caption stack, and `Root.tsx`'s sweep of every other `fontFamily` in the render
|
|
162
|
+
* input did not — so `{ fontFamily: "Inter, sans-serif" }` was drawn as a caption and refused as an
|
|
163
|
+
* overlay param, with a message calling the whole stack "not a bundled family".
|
|
164
|
+
*/
|
|
165
|
+
export declare function admissibleFamilyForStack(stack: string): string;
|
|
@@ -385,6 +385,12 @@ export declare const ERROR_CODES: {
|
|
|
385
385
|
readonly retryable: false;
|
|
386
386
|
readonly httpStatus: 422;
|
|
387
387
|
};
|
|
388
|
+
readonly component_source_unavailable: {
|
|
389
|
+
readonly stage: "validate";
|
|
390
|
+
readonly category: "authoring";
|
|
391
|
+
readonly retryable: false;
|
|
392
|
+
readonly httpStatus: 422;
|
|
393
|
+
};
|
|
388
394
|
readonly component_deadline_exceeded: {
|
|
389
395
|
readonly stage: "render";
|
|
390
396
|
readonly category: "transient";
|
package/dist/animate.js
CHANGED
|
@@ -102,7 +102,7 @@ import {
|
|
|
102
102
|
useStage,
|
|
103
103
|
weightsAt,
|
|
104
104
|
worldTransform
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-ZYGUHMX6.js";
|
|
106
106
|
import {
|
|
107
107
|
DEFAULT_LIGHTING_PROFILE,
|
|
108
108
|
DEVICE_GLASS_OPACITY_ENCODED,
|
|
@@ -185,7 +185,7 @@ import {
|
|
|
185
185
|
selectSceneBakeScale
|
|
186
186
|
} from "./chunk-KKV5U5EA.js";
|
|
187
187
|
import "./chunk-2L7PYYJK.js";
|
|
188
|
-
import "./chunk-
|
|
188
|
+
import "./chunk-BAC7DKQZ.js";
|
|
189
189
|
import "./chunk-2ESYSVXG.js";
|
|
190
190
|
export {
|
|
191
191
|
ALLOWED_BAKE_SCALES,
|
|
@@ -4,19 +4,19 @@ import {
|
|
|
4
4
|
buildPlannerTools,
|
|
5
5
|
buildToolsFromSchemas,
|
|
6
6
|
extractProviderError
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-KBLQKH3T.js";
|
|
8
|
+
import "../chunk-KYOVOZQC.js";
|
|
9
9
|
import "../chunk-JOURGVOR.js";
|
|
10
10
|
import "../chunk-7AZLFN26.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-HGBHJL7X.js";
|
|
12
|
+
import "../chunk-7S73F5E6.js";
|
|
13
|
+
import "../chunk-IQ7DKM5C.js";
|
|
14
14
|
import "../chunk-WPZKOVYF.js";
|
|
15
15
|
import "../chunk-B7J5UUUV.js";
|
|
16
16
|
import "../chunk-KYRDKK2D.js";
|
|
17
17
|
import "../chunk-WREYUH2E.js";
|
|
18
18
|
import "../chunk-7PA7FGLD.js";
|
|
19
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-BAC7DKQZ.js";
|
|
20
20
|
import "../chunk-2ESYSVXG.js";
|
|
21
21
|
export {
|
|
22
22
|
ZERO_USAGE,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildDirectorContext
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-7NQRYZCT.js";
|
|
4
|
+
import "../chunk-HGBHJL7X.js";
|
|
5
|
+
import "../chunk-7S73F5E6.js";
|
|
6
|
+
import "../chunk-IQ7DKM5C.js";
|
|
7
7
|
import "../chunk-WPZKOVYF.js";
|
|
8
8
|
import "../chunk-B7J5UUUV.js";
|
|
9
9
|
import "../chunk-KYRDKK2D.js";
|
|
10
10
|
import "../chunk-WREYUH2E.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-BAC7DKQZ.js";
|
|
12
12
|
import "../chunk-2ESYSVXG.js";
|
|
13
13
|
export {
|
|
14
14
|
buildDirectorContext
|
package/dist/authoring/tools.js
CHANGED
|
@@ -6,18 +6,18 @@ import {
|
|
|
6
6
|
COMPOSE_ROLE_TOOLS,
|
|
7
7
|
COMPOSE_ROLE_TOOL_NAMES,
|
|
8
8
|
dispatchComposeRoleTool
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-KYOVOZQC.js";
|
|
10
10
|
import "../chunk-JOURGVOR.js";
|
|
11
11
|
import "../chunk-7AZLFN26.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-HGBHJL7X.js";
|
|
13
|
+
import "../chunk-7S73F5E6.js";
|
|
14
|
+
import "../chunk-IQ7DKM5C.js";
|
|
15
15
|
import "../chunk-WPZKOVYF.js";
|
|
16
16
|
import "../chunk-B7J5UUUV.js";
|
|
17
17
|
import "../chunk-KYRDKK2D.js";
|
|
18
18
|
import "../chunk-WREYUH2E.js";
|
|
19
19
|
import "../chunk-7PA7FGLD.js";
|
|
20
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-BAC7DKQZ.js";
|
|
21
21
|
import "../chunk-2ESYSVXG.js";
|
|
22
22
|
export {
|
|
23
23
|
COMPOSE_MOTION_TOOLS,
|
package/dist/authoring.js
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
buildPlannerTools,
|
|
12
12
|
buildToolsFromSchemas,
|
|
13
13
|
extractProviderError
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-KBLQKH3T.js";
|
|
15
15
|
import {
|
|
16
16
|
COMPOSE_MOTION_TOOLS,
|
|
17
17
|
COMPOSE_MOTION_VERIFY_TOOLS,
|
|
@@ -20,14 +20,14 @@ import {
|
|
|
20
20
|
COMPOSE_ROLE_TOOLS,
|
|
21
21
|
COMPOSE_ROLE_TOOL_NAMES,
|
|
22
22
|
dispatchComposeRoleTool
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-KYOVOZQC.js";
|
|
24
24
|
import {
|
|
25
25
|
AgentFixableCaptureError,
|
|
26
26
|
getExcludedTools
|
|
27
27
|
} from "./chunk-JOURGVOR.js";
|
|
28
28
|
import {
|
|
29
29
|
buildDirectorContext
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-7NQRYZCT.js";
|
|
31
31
|
import {
|
|
32
32
|
buildFastModel,
|
|
33
33
|
buildModel,
|
|
@@ -48,28 +48,28 @@ import {
|
|
|
48
48
|
formatPlanSteps,
|
|
49
49
|
initCodeGenPrompts
|
|
50
50
|
} from "./chunk-Y4HPN4BC.js";
|
|
51
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-TDJNQVTL.js";
|
|
52
52
|
import {
|
|
53
53
|
cssLayoutVars
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-MAD6MSXA.js";
|
|
55
55
|
import "./chunk-ILO4NEZ3.js";
|
|
56
56
|
import "./chunk-7AZLFN26.js";
|
|
57
57
|
import "./chunk-VG2ND6PX.js";
|
|
58
|
-
import "./chunk-
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
58
|
+
import "./chunk-HGBHJL7X.js";
|
|
59
|
+
import "./chunk-7S73F5E6.js";
|
|
60
|
+
import "./chunk-IQ7DKM5C.js";
|
|
61
61
|
import "./chunk-WPZKOVYF.js";
|
|
62
62
|
import "./chunk-B7J5UUUV.js";
|
|
63
63
|
import "./chunk-KYRDKK2D.js";
|
|
64
64
|
import "./chunk-WREYUH2E.js";
|
|
65
|
-
import "./chunk-
|
|
65
|
+
import "./chunk-CHWA3TQM.js";
|
|
66
66
|
import "./chunk-7PA7FGLD.js";
|
|
67
67
|
import {
|
|
68
68
|
collectSceneClipIssues,
|
|
69
69
|
isSceneShotClip
|
|
70
70
|
} from "./chunk-KKV5U5EA.js";
|
|
71
71
|
import "./chunk-2L7PYYJK.js";
|
|
72
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-BAC7DKQZ.js";
|
|
73
73
|
import "./chunk-2ESYSVXG.js";
|
|
74
74
|
|
|
75
75
|
// ../authoring/src/agent.ts
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
assertSceneShotParamsAdmitted,
|
|
4
4
|
materializeComponentSource,
|
|
5
5
|
renderComponentAlpha
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-D3GMN4WL.js";
|
|
7
7
|
import {
|
|
8
8
|
componentArtifactId,
|
|
9
9
|
componentBundleId,
|
|
@@ -11,6 +11,9 @@ import {
|
|
|
11
11
|
sha256Hex,
|
|
12
12
|
sourceVersionId
|
|
13
13
|
} from "./chunk-EXY4JJPH.js";
|
|
14
|
+
import {
|
|
15
|
+
assertSourceReadsDeclaredAssets
|
|
16
|
+
} from "./chunk-WXHD6OUT.js";
|
|
14
17
|
import {
|
|
15
18
|
resolvedComponentRenderer
|
|
16
19
|
} from "./chunk-C5MPFJCD.js";
|
|
@@ -24,79 +27,6 @@ import {
|
|
|
24
27
|
assertRendererReceiptMatches
|
|
25
28
|
} from "./chunk-ZVG446DJ.js";
|
|
26
29
|
|
|
27
|
-
// ../execution/component-runtime/src/sourceAdmission.ts
|
|
28
|
-
import { parse } from "@babel/parser";
|
|
29
|
-
function staticMember(node) {
|
|
30
|
-
if (!node || typeof node !== "object") return null;
|
|
31
|
-
const candidate = node;
|
|
32
|
-
if (candidate.type !== "MemberExpression" && candidate.type !== "OptionalMemberExpression") return null;
|
|
33
|
-
const property = candidate.property;
|
|
34
|
-
if (!property) return null;
|
|
35
|
-
const name = candidate.computed === true ? property.type === "StringLiteral" && typeof property.value === "string" ? property.value : null : property.type === "Identifier" && typeof property.name === "string" ? property.name : null;
|
|
36
|
-
return name === null ? null : { object: candidate.object, property: name };
|
|
37
|
-
}
|
|
38
|
-
function sourceAssetHandleReads(tsxSource) {
|
|
39
|
-
let root;
|
|
40
|
-
try {
|
|
41
|
-
root = parse(tsxSource, {
|
|
42
|
-
sourceType: "module",
|
|
43
|
-
plugins: ["jsx", "typescript"],
|
|
44
|
-
errorRecovery: false
|
|
45
|
-
});
|
|
46
|
-
} catch (error) {
|
|
47
|
-
throw new ComponentRuntimeError(
|
|
48
|
-
"component_does_not_compile",
|
|
49
|
-
error instanceof Error ? error.message : String(error),
|
|
50
|
-
{ cause: error }
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
const reads = /* @__PURE__ */ new Set();
|
|
54
|
-
const visit = (value) => {
|
|
55
|
-
if (!value || typeof value !== "object") return;
|
|
56
|
-
if (Array.isArray(value)) {
|
|
57
|
-
for (const child of value) visit(child);
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
const node = value;
|
|
61
|
-
const leaf = staticMember(node);
|
|
62
|
-
if (leaf?.property === "handle") {
|
|
63
|
-
const slot = staticMember(leaf.object);
|
|
64
|
-
const rootObject = slot?.object;
|
|
65
|
-
if (slot && rootObject?.type === "Identifier" && rootObject.name === "assets") {
|
|
66
|
-
reads.add(slot.property);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
for (const [key, child] of Object.entries(node)) {
|
|
70
|
-
if (key === "loc" || key === "start" || key === "end" || key === "errors" || key === "comments") continue;
|
|
71
|
-
visit(child);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
visit(root);
|
|
75
|
-
return reads;
|
|
76
|
-
}
|
|
77
|
-
function missingDeclaredAssetHandleReads(tsxSource, manifest) {
|
|
78
|
-
const slots = Object.keys(manifest.assets);
|
|
79
|
-
if (slots.length === 0) return [];
|
|
80
|
-
const reads = sourceAssetHandleReads(tsxSource);
|
|
81
|
-
return slots.filter((slot) => !reads.has(slot));
|
|
82
|
-
}
|
|
83
|
-
function assertSourceReadsDeclaredAssets(source) {
|
|
84
|
-
const missing = missingDeclaredAssetHandleReads(source.tsxSource, source.manifest);
|
|
85
|
-
if (missing.length === 0) return;
|
|
86
|
-
throw new ComponentRuntimeError(
|
|
87
|
-
"invalid_component_source",
|
|
88
|
-
`The manifest declares asset slot(s) ${missing.map((slot) => JSON.stringify(slot)).join(", ")} but the source never reads ${missing.length === 1 ? "it" : "them"} through \`assets[slot].handle\`. Declared slots are delivered to the mount as \`assets[slot].handle\` (a fetchable URL for <Img>/<Video>/<Audio>); \`params\` is the clip's \`props\` and carries no asset URL. Mount as ({ durationInFrames, params, assets, render }) and read \`assets.${missing[0]}.handle\`.`,
|
|
89
|
-
{
|
|
90
|
-
locator: {
|
|
91
|
-
stage: "source-admission",
|
|
92
|
-
componentId: source.componentId,
|
|
93
|
-
path: "manifest.assets",
|
|
94
|
-
slots: missing
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
30
|
// ../execution/component-runtime/src/assetServer.ts
|
|
101
31
|
import { createHash, randomBytes } from "crypto";
|
|
102
32
|
import { createReadStream, realpathSync, statSync } from "fs";
|
|
@@ -465,9 +395,6 @@ function sourceIdentityForBake(request) {
|
|
|
465
395
|
}
|
|
466
396
|
|
|
467
397
|
export {
|
|
468
|
-
sourceAssetHandleReads,
|
|
469
|
-
missingDeclaredAssetHandleReads,
|
|
470
|
-
assertSourceReadsDeclaredAssets,
|
|
471
398
|
startComponentAssetServer,
|
|
472
399
|
parseAlphaOpaqueFractions,
|
|
473
400
|
bakeOpacityContradictsPolicy,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
} from "./chunk-W2245F6G.js";
|
|
25
25
|
import {
|
|
26
26
|
FlexLayout
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-ZYGUHMX6.js";
|
|
28
28
|
|
|
29
29
|
// ../execution/primitives/src/layouts/chat-to-preview-layout/index.tsx
|
|
30
30
|
import { Easing, interpolate, useCurrentFrame, useVideoConfig } from "remotion";
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
Format,
|
|
5
5
|
GraphicRole,
|
|
6
6
|
OpaqueId
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IQ7DKM5C.js";
|
|
8
8
|
import {
|
|
9
9
|
brandKitCaptionFaceIssues
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-BAC7DKQZ.js";
|
|
11
11
|
|
|
12
12
|
// ../composition/src/validators/composePlan.ts
|
|
13
13
|
import { z } from "zod";
|
|
@@ -160,6 +160,10 @@ function bundledFamilyForStack(stack) {
|
|
|
160
160
|
}
|
|
161
161
|
return bundled ? { kind: "bundled", family: bundled } : { kind: "default" };
|
|
162
162
|
}
|
|
163
|
+
function admissibleFamilyForStack(stack) {
|
|
164
|
+
const resolved = bundledFamilyForStack(stack);
|
|
165
|
+
return resolved.kind === "bundled" ? resolved.family : stack;
|
|
166
|
+
}
|
|
163
167
|
|
|
164
168
|
// ../composition/src/fonts/captionFaces.ts
|
|
165
169
|
var CAPTION_FACE_DEFAULTS = Object.freeze({
|
|
@@ -406,6 +410,7 @@ export {
|
|
|
406
410
|
parseFontStack,
|
|
407
411
|
isGenericOnlyStack,
|
|
408
412
|
bundledFamilyForStack,
|
|
413
|
+
admissibleFamilyForStack,
|
|
409
414
|
CAPTION_FACE_DEFAULTS,
|
|
410
415
|
CAPTION_DEFAULT_FAMILY,
|
|
411
416
|
captionStackFamily,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
EASING_BY_INTENT
|
|
3
|
-
} from "./chunk-MFHXCHRI.js";
|
|
4
1
|
import {
|
|
5
2
|
FitText
|
|
6
3
|
} from "./chunk-XHGZ2E77.js";
|
|
4
|
+
import {
|
|
5
|
+
EASING_BY_INTENT
|
|
6
|
+
} from "./chunk-MFHXCHRI.js";
|
|
7
7
|
import {
|
|
8
8
|
ACCENT,
|
|
9
9
|
ACCENT_STRONG,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
perspectiveFor,
|
|
27
27
|
resolveCamera,
|
|
28
28
|
useStage
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-ZYGUHMX6.js";
|
|
30
30
|
|
|
31
31
|
// ../execution/primitives/src/effects/blur/index.tsx
|
|
32
32
|
import React2 from "react";
|
|
@@ -63,6 +63,7 @@ var ERROR_CODES = {
|
|
|
63
63
|
unsupported_runtime_version: { stage: "validate", category: "authoring", retryable: false, httpStatus: 422 },
|
|
64
64
|
component_does_not_compile: { stage: "validate", category: "authoring", retryable: false, httpStatus: 422 },
|
|
65
65
|
component_runtime_error: { stage: "validate", category: "authoring", retryable: false, httpStatus: 422 },
|
|
66
|
+
component_source_unavailable: { stage: "validate", category: "authoring", retryable: false, httpStatus: 422 },
|
|
66
67
|
component_deadline_exceeded: { stage: "render", category: "transient", retryable: true, httpStatus: 503 },
|
|
67
68
|
component_resource_exhausted: { stage: "render", category: "transient", retryable: true, httpStatus: 503 },
|
|
68
69
|
component_asset_undeclared: { stage: "validate", category: "authoring", retryable: false, httpStatus: 422 },
|
|
@@ -3,6 +3,9 @@ import {
|
|
|
3
3
|
serializeQuery,
|
|
4
4
|
waitForJob
|
|
5
5
|
} from "./chunk-3V75A6UH.js";
|
|
6
|
+
import {
|
|
7
|
+
CURATED_TOOLS
|
|
8
|
+
} from "./chunk-HCZ53SOM.js";
|
|
6
9
|
import {
|
|
7
10
|
GENERATED_OPERATIONS,
|
|
8
11
|
apiErrorFrom,
|
|
@@ -20,9 +23,6 @@ import {
|
|
|
20
23
|
text,
|
|
21
24
|
withMedia
|
|
22
25
|
} from "./chunk-TECEMBCI.js";
|
|
23
|
-
import {
|
|
24
|
-
CURATED_TOOLS
|
|
25
|
-
} from "./chunk-NNMXLNOI.js";
|
|
26
26
|
|
|
27
27
|
// ../mcp/src/prompts.ts
|
|
28
28
|
var skillListCache = null;
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
scoreAndRank,
|
|
25
25
|
segmentShots,
|
|
26
26
|
stabilizeSelectionHysteresis
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-L5XVJQQV.js";
|
|
28
28
|
import {
|
|
29
29
|
compositionHasVo,
|
|
30
30
|
roleDefaultGainDb
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
import {
|
|
37
37
|
CueframeError,
|
|
38
38
|
encodeError
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-CHWA3TQM.js";
|
|
40
40
|
import {
|
|
41
41
|
SCENE_CAPTURE_IDENTITY_FIELDS_V1,
|
|
42
42
|
SCENE_PRESET_TRIANGLES,
|
|
@@ -61,7 +61,7 @@ import {
|
|
|
61
61
|
bundledFontFaceExists,
|
|
62
62
|
mergedCaptionFaceIssues,
|
|
63
63
|
unrenderableFaceField
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-BAC7DKQZ.js";
|
|
65
65
|
|
|
66
66
|
// ../execution/core/src/render/sceneCaptureIdentity.ts
|
|
67
67
|
var INTENT_FIELDS = [
|
|
@@ -374,7 +374,7 @@ Call wait_job(kind="preview_frame", id="${j.jobId}") for the rendered images.`,
|
|
|
374
374
|
name: "preview_component",
|
|
375
375
|
operationId: "previewComponent",
|
|
376
376
|
pathArgs: { projectId: "id" },
|
|
377
|
-
description: 'Queue a typed preview artifact for ONE org-installed component \u2014 ASYNC: returns a jobId immediately; then wait_job(kind="preview", id=jobId). The preview and production compositor consume the same content-addressed component bundle and verified artifact contract. `body.componentId` selects the component; pass `body.params` to render it with props. Compile/runtime/capability failures land on the job terminal with sanitized author-fixable messages. Idempotent per immutable render key.',
|
|
377
|
+
description: 'Queue a typed preview artifact for ONE org-installed component \u2014 ASYNC: returns a jobId immediately; then wait_job(kind="preview", id=jobId). The preview and production compositor consume the same content-addressed component bundle and verified artifact contract. `body.componentId` selects the component; pass `body.params` to render it with props (the mount\'s `params`); declared manifest asset slots are delivered separately as `assets[slot].handle`, never through params. Compile/runtime/capability failures land on the job terminal with sanitized author-fixable messages. Idempotent per immutable render key.',
|
|
378
378
|
okFormat: (j) => `Preview job queued.
|
|
379
379
|
|
|
380
380
|
jobId: ${j.jobId}
|
|
@@ -479,7 +479,7 @@ Call wait_job(kind="verify", id="${j.jobId}") to block until the scores + checkp
|
|
|
479
479
|
{
|
|
480
480
|
name: "create_component",
|
|
481
481
|
operationId: "createComponent",
|
|
482
|
-
description: "Create and store a custom graphic component (a reusable overlay/title/lower-third etc.) for the tenant. Returns the ComponentResponse (id + metadata) you can then reference from a composition. No project arg \u2014 components are tenant-scoped."
|
|
482
|
+
description: "Create and store a custom graphic component (a reusable overlay/title/lower-third etc.) for the tenant. Returns the ComponentResponse (id + metadata) you can then reference from a composition. No project arg \u2014 components are tenant-scoped. MOUNT CONTRACT (v2): the default export is called as ({ durationInFrames, params, assets, render }). `params` is the clip's `props`. Every slot declared in `manifest.assets` arrives as `assets[slot].handle` \u2014 a fetchable URL for <Img>/<Video>/<Audio> \u2014 NEVER inside params; a source that declares slots and never reads `assets` is refused (invalid_component_source). Bind slots on the clip via source.assets { slot: mediaId }."
|
|
483
483
|
},
|
|
484
484
|
{
|
|
485
485
|
name: "list_catalog",
|
|
@@ -498,7 +498,7 @@ Call wait_job(kind="verify", id="${j.jobId}") to block until the scores + checkp
|
|
|
498
498
|
name: "get_component_source",
|
|
499
499
|
operationId: "getComponentSource",
|
|
500
500
|
pathArgs: { componentId: "id" },
|
|
501
|
-
description: `Read a component's editable TSX source. Pass a BUILT-IN primitive id (e.g. "cinematic-title", "lower-third", "kinetic-type") to get it as a SINGLE self-contained module \u2014 the server-native FORK path: edit the returned tsxSource, then create_component it back to own a customized copy. Also returns an org-installed component's own authored source. Returns { id, name, tsxSource, origin, ejectedFrom, propSchema, \u2026 }; 404 if the id is neither a known primitive nor an installed component carrying source.`,
|
|
501
|
+
description: `Read a component's editable TSX source. Pass a BUILT-IN primitive id (e.g. "cinematic-title", "lower-third", "kinetic-type") to get it as a SINGLE self-contained module \u2014 the server-native FORK path: edit the returned tsxSource, then create_component it back to own a customized copy. Also returns an org-installed component's own authored source. Returns { id, name, tsxSource, origin, ejectedFrom, propSchema, \u2026 }; 404 if the id is neither a known primitive nor an installed component carrying source. The returned module mounts as ({ durationInFrames, params, assets, render }): params = the clip's props; any slot you add to manifest.assets arrives as assets[slot].handle.`,
|
|
502
502
|
okFormat: (j) => `Component source for ${j.id} (${j.name})${j.origin ? ` \u2014 origin: ${j.origin}` : ""}${j.ejectedFrom ? `, ejectedFrom: ${j.ejectedFrom}` : ""}.
|
|
503
503
|
Edit this tsxSource and create_component it back to own a fork.
|
|
504
504
|
|
|
@@ -649,7 +649,7 @@ Render it with create_render(projectId="${a.projectId}", body={ compositionId: "
|
|
|
649
649
|
{
|
|
650
650
|
name: "import_resource",
|
|
651
651
|
operationId: "importResource",
|
|
652
|
-
description: 'Import a stock candidate (candidateId from search_resources) into a project as an ORG-OWNED media item \u2014 provider/externalId/license provenance preserved, bytes deduped across orgs. Pass projectId + candidateId. Returns { id, status:"importing"|"ready" }; processing is async \u2014 call wait_job(kind="media", id=mediaItemId), then use the returned id as a composition source. Gated on the resource_import plan feature (402 billing_required if your plan lacks it). 422 candidate_mismatch if the candidate expired \u2014 re-run search_resources.'
|
|
652
|
+
description: 'Import a stock candidate (candidateId from search_resources) into a project as an ORG-OWNED media item \u2014 provider/externalId/license provenance preserved, bytes deduped across orgs. Pass projectId + candidateId. Returns { id, status:"importing"|"ready" }; processing is async \u2014 call wait_job(kind="media", id=mediaItemId), then use the returned id as a composition source. Gated on the resource_import plan feature (402 billing_required if your plan lacks it). COST: 0 credits \u2014 search and import are both free for a keyed caller (get_account \u2192 entitlements.resource_import.listUsdPerUnit is 0); imported bytes count toward the storage gauge. 422 candidate_mismatch if the candidate expired \u2014 re-run search_resources.'
|
|
653
653
|
},
|
|
654
654
|
{
|
|
655
655
|
name: "suggest_briefs",
|
|
@@ -720,7 +720,7 @@ Render it with create_render(projectId="${a.projectId}", body={ compositionId: "
|
|
|
720
720
|
name: "update_component",
|
|
721
721
|
operationId: "updateComponent",
|
|
722
722
|
pathArgs: { componentId: "id" },
|
|
723
|
-
description: "Update an authored component's tsxSource/metadata IN PLACE (same id) \u2014 the correct verb for the author\u2192preview\u2192fix loop (preview_component returns the compiler error; fix the source here and re-preview, instead of creating a new component each iteration). Pass componentId + the changed fields as `body`."
|
|
723
|
+
description: "Update an authored component's tsxSource/metadata IN PLACE (same id) \u2014 the correct verb for the author\u2192preview\u2192fix loop (preview_component returns the compiler error; fix the source here and re-preview, instead of creating a new component each iteration). Pass componentId + the changed fields as `body`. Same mount contract as create_component: ({ durationInFrames, params, assets, render }) \u2014 declared slots are read from `assets[slot].handle`, never params."
|
|
724
724
|
},
|
|
725
725
|
{
|
|
726
726
|
name: "update_webhook",
|
|
@@ -777,7 +777,7 @@ Render it with create_render(projectId="${a.projectId}", body={ compositionId: "
|
|
|
777
777
|
{
|
|
778
778
|
name: "get_account",
|
|
779
779
|
operationId: "getAccount",
|
|
780
|
-
description: "ORIENT FIRST \u2014 show THIS key's account before you spend a metered call: the org it is bound to, the current plan, a per-feature entitlements map, and per-call cost ceilings. READ `balance`, NOT `included`. CueFrame is credit-funded: rendering (entitlements.exports), generation (generate), preview stills (compose_capture), the judge (compose_verify) and the Director (compose) have NO separate per-plan allowance \u2014 they all spend one shared wallet, named in `fundedBy` (`credits`; generation is metered in provider-cost units against that wallet). Each `balance` restates that ONE wallet in that feature's own unit at `creditCost` credits per unit, so they are alternative ways to spend the same money, not four budgets. Check the requested cost against the balance. For generation, also check generationLimit: free accounts have a separate provider-cost cap even with a positive wallet. A billing_required error with reason free_generation_cap requires a credit-pack purchase through normal checkout. `included:false` means the plan genuinely lacks the feature. Every new org starts with a free credit grant, so an account with an empty usage history can still render, generate, preview and score. costCeilings.generateMediaUsdPerCall is the generate_media per-call USD cap. No args \u2014 identity is resolved from your key (never echoed from input).",
|
|
780
|
+
description: "ORIENT FIRST \u2014 show THIS key's account before you spend a metered call: the org it is bound to, the current plan, a per-feature entitlements map, and per-call cost ceilings. READ `balance`, NOT `included`. CueFrame is credit-funded: rendering (entitlements.exports), generation (generate), preview stills (compose_capture), the judge (compose_verify) and the Director (compose) have NO separate per-plan allowance \u2014 they all spend one shared wallet, named in `fundedBy` (`credits`; generation is metered in provider-cost units against that wallet). Each `balance` restates that ONE wallet in that feature's own unit at `creditCost` credits per unit, so they are alternative ways to spend the same money, not four budgets. Each entitlement also carries `listUsdPerUnit`: the dollar quote for ONE unit before you call (0 = a plan grant that draws no credits, e.g. resource_import \u2014 stock search + import are free; null = not quotable up front). Check the requested cost against the balance. For generation, also check generationLimit: free accounts have a separate provider-cost cap even with a positive wallet. A billing_required error with reason free_generation_cap requires a credit-pack purchase through normal checkout. `included:false` means the plan genuinely lacks the feature. Every new org starts with a free credit grant, so an account with an empty usage history can still render, generate, preview and score. costCeilings.generateMediaUsdPerCall is the generate_media per-call USD cap. No args \u2014 identity is resolved from your key (never echoed from input).",
|
|
781
781
|
annotations: { readOnlyHint: true }
|
|
782
782
|
},
|
|
783
783
|
{
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-B7J5UUUV.js";
|
|
4
4
|
import {
|
|
5
5
|
captionFaceIssues
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BAC7DKQZ.js";
|
|
7
7
|
|
|
8
8
|
// ../composition/src/validators/opaqueId.ts
|
|
9
9
|
import { z } from "zod";
|
|
@@ -77,7 +77,9 @@ var AlphaLayerClipSource = z2.object({
|
|
|
77
77
|
kind: z2.literal("alpha-layer"),
|
|
78
78
|
componentId: z2.string().min(1),
|
|
79
79
|
props: z2.record(z2.string(), z2.unknown()),
|
|
80
|
-
assets: z2.record(z2.string().min(1), z2.string().min(1)).optional()
|
|
80
|
+
assets: z2.record(z2.string().min(1), z2.string().min(1)).optional().describe(
|
|
81
|
+
"Manifest asset slot \u2192 project media id. At mount each slot arrives as `assets[slot].handle`, a fetchable URL for <Img>/<Video>/<Audio>; `props` becomes `params` and never carries an asset URL."
|
|
82
|
+
),
|
|
81
83
|
zPlane: z2.enum(["front", "behind-subject"]).optional()
|
|
82
84
|
});
|
|
83
85
|
var CardClipSource = z2.object({
|
|
@@ -7,13 +7,13 @@ import {
|
|
|
7
7
|
} from "./chunk-7AZLFN26.js";
|
|
8
8
|
import {
|
|
9
9
|
selectAllOverlays
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HGBHJL7X.js";
|
|
11
11
|
import {
|
|
12
12
|
ComposePlan
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7S73F5E6.js";
|
|
14
14
|
import {
|
|
15
15
|
OverlayClipSource
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-IQ7DKM5C.js";
|
|
17
17
|
|
|
18
18
|
// ../authoring/src/tools/toolSets.ts
|
|
19
19
|
var COMPOSE_PLANNER_TOOLS = [
|
|
@@ -63,7 +63,7 @@ var COMPOSE_ROLE_TOOLS = Object.freeze({
|
|
|
63
63
|
schema: z.object({}),
|
|
64
64
|
metadata: { label: "Get Context" },
|
|
65
65
|
handler: async (_args, capabilities) => {
|
|
66
|
-
const { buildDirectorContext } = await import("./context-
|
|
66
|
+
const { buildDirectorContext } = await import("./context-JEIN7PNN.js");
|
|
67
67
|
return buildDirectorContext(capabilities);
|
|
68
68
|
}
|
|
69
69
|
},
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
activeFaceKeepOutSeries,
|
|
3
3
|
boundingBox,
|
|
4
4
|
resolveBrandRefsDeep
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MAD6MSXA.js";
|
|
6
6
|
import {
|
|
7
7
|
CueframeError,
|
|
8
8
|
encodeError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CHWA3TQM.js";
|
|
10
10
|
|
|
11
11
|
// ../composition/src/projection/cardTokens.ts
|
|
12
12
|
var CARD_MOTION_VAR_NAMES = [
|