@cueframe/kernel 0.2.37 → 0.2.39
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/component-runtime/render.d.ts.map +1 -1
- package/dist/_members/component-runtime/renderDiagnostics.d.ts +13 -0
- package/dist/_members/component-runtime/renderDiagnostics.d.ts.map +1 -1
- package/dist/_members/component-runtime/sourceAdmission.d.ts +17 -5
- package/dist/_members/component-runtime/sourceAdmission.d.ts.map +1 -1
- package/dist/_members/composition/validators/composition.d.ts +16 -0
- package/dist/authoring/build-tools.js +5 -5
- package/dist/authoring/context.js +4 -4
- package/dist/authoring/tools.js +4 -4
- package/dist/authoring.js +6 -6
- package/dist/{chunk-256ZO323.js → chunk-26NRV5BK.js} +2 -2
- package/dist/{chunk-H5CPILOK.js → chunk-5JYYZDLK.js} +14 -6
- package/dist/{chunk-EGNTUGAM.js → chunk-AG7HKF2U.js} +1 -1
- package/dist/{chunk-LL5GI3IS.js → chunk-BLDL2EKL.js} +2 -2
- package/dist/chunk-C7TTI7FP.js +161 -0
- package/dist/{chunk-F2HXB6RG.js → chunk-GA6NRDK3.js} +56 -28
- package/dist/{chunk-AYZPTH7L.js → chunk-ID5QY7V6.js} +34 -6
- package/dist/{chunk-ZBQQFAE7.js → chunk-JNOM4FW3.js} +1 -1
- package/dist/{chunk-HLW3P5ZP.js → chunk-MJWRC7G7.js} +4 -4
- package/dist/{chunk-CMC6MLR3.js → chunk-POTCIQTA.js} +1 -1
- package/dist/{chunk-6A6AYPWO.js → chunk-S3HHEJMZ.js} +1 -1
- package/dist/{chunk-6VTNIYSR.js → chunk-ZUJCWFS7.js} +1 -1
- package/dist/component-runtime/render.js +1 -1
- package/dist/component-runtime/sourceAdmission.js +5 -3
- package/dist/component-runtime.js +7 -5
- package/dist/compose.js +18 -18
- package/dist/composition/graphics-plan.js +1 -1
- package/dist/composition/ops.js +3 -3
- package/dist/composition/validators.js +8 -2
- package/dist/composition-ops.js +3 -3
- package/dist/composition.js +8 -2
- package/dist/{context-43UC63RY.js → context-KNFL62QR.js} +4 -4
- package/dist/mcp/adapter.js +2 -2
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/server.js +3 -3
- package/dist/mcp.js +3 -3
- package/dist/primitives.js +18 -18
- package/dist/render-harness.js +3 -3
- package/package.json +10 -10
- package/dist/chunk-SH5OTTVU.js +0 -88
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAK/B,KAAK,uCAAuC,EAC5C,KAAK,iCAAiC,IAAI,wBAAwB,EAClE,KAAK,kCAAkC,IAAI,uCAAuC,EAClF,KAAK,sCAAsC,IAAI,2CAA2C,EAC3F,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,19 @@ export declare const GRAPHICS_ATTESTATION_PREFIX = "__cueframe_graphics_v2__:";
|
|
|
3
3
|
export declare const CAPTURE_PAGE_RASTER_ATTESTATION_PREFIX = "__cueframe_capture_raster_v1__:";
|
|
4
4
|
export declare const BROWSER_RUNTIME_ERROR_PREFIX = "__cueframe_component_error_v2__:";
|
|
5
5
|
export declare function componentRuntimeError(error: unknown, fallbackCode: RuntimeErrorCode, retryable?: boolean): ComponentRuntimeError;
|
|
6
|
+
/**
|
|
7
|
+
* Page diagnostics for one bake. Remotion renders on up to four pages at once,
|
|
8
|
+
* so one TypeError in the author's code arrives up to four times; joined
|
|
9
|
+
* verbatim it read as "×3" and sent a reporter bisecting three components for
|
|
10
|
+
* a defect in one. Identical text is one entry.
|
|
11
|
+
*/
|
|
12
|
+
export declare function pageDiagnosticSink(limit?: number): {
|
|
13
|
+
push(entry: {
|
|
14
|
+
type: string;
|
|
15
|
+
message: string;
|
|
16
|
+
}): void;
|
|
17
|
+
readonly lines: readonly string[];
|
|
18
|
+
};
|
|
6
19
|
export declare function parseGraphicsAttestationLog(text: string): ComponentGraphicsActualV2 | null;
|
|
7
20
|
export declare function parseCapturePageRasterAttestationLog(text: string): CapturePageRasterAttestation | null;
|
|
8
21
|
export declare function graphicsCollector(required: ComponentGraphicsRequirementV2): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderDiagnostics.d.ts","sourceRoot":"","sources":["../src/renderDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmE,qBAAqB,EAA6B,KAAK,uCAAuC,IAAI,4BAA4B,EAAE,KAAK,yBAAyB,EAAE,KAAK,8BAA8B,EAAE,KAAK,yBAAyB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1V,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AACvE,eAAO,MAAM,sCAAsC,oCAAoC,CAAC;AACxF,eAAO,MAAM,4BAA4B,qCAAqC,CAAC;AAE/E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,gBAAgB,EAC9B,SAAS,UAAQ,GAChB,qBAAqB,CAiBvB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAa1F;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,4BAA4B,GAAG,IAAI,CAStG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,8BAA8B;sBAGpD;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;eAiB9B,yBAAyB;EAUvC"}
|
|
1
|
+
{"version":3,"file":"renderDiagnostics.d.ts","sourceRoot":"","sources":["../src/renderDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmE,qBAAqB,EAA6B,KAAK,uCAAuC,IAAI,4BAA4B,EAAE,KAAK,yBAAyB,EAAE,KAAK,8BAA8B,EAAE,KAAK,yBAAyB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1V,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AACvE,eAAO,MAAM,sCAAsC,oCAAoC,CAAC;AACxF,eAAO,MAAM,4BAA4B,qCAAqC,CAAC;AAE/E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,gBAAgB,EAC9B,SAAS,UAAQ,GAChB,qBAAqB,CAiBvB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAI,GAAG;IAC7C,IAAI,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CASA;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAa1F;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,4BAA4B,GAAG,IAAI,CAStG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,8BAA8B;sBAGpD;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;eAiB9B,yBAAyB;EAUvC"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import { type ComponentManifestV2, type ComponentSourceV2 } from './contracts.js';
|
|
2
|
+
/** Slots the source demonstrably takes delivery of, or `every` when it reads `assets` dynamically. */
|
|
3
|
+
export type SourceAssetReads = {
|
|
4
|
+
slots: ReadonlySet<string>;
|
|
5
|
+
every: boolean;
|
|
6
|
+
};
|
|
2
7
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
8
|
+
* Which declared slots the source reads, from the AST — comments, strings,
|
|
9
|
+
* regexes and type positions are not runtime reads. A static `assets.<slot>`
|
|
10
|
+
* (dot, bracket-literal or optional) or a destructure `{ <slot> } = assets`
|
|
11
|
+
* proves that slot. Any DYNAMIC use of `assets` — `assets[key]`,
|
|
12
|
+
* `Object.entries(assets)`, spreading or passing it on — proves every slot:
|
|
13
|
+
* the source took delivery through `assets`, which is all this rule exists to
|
|
14
|
+
* establish. Only `.handle` was accepted before, which refused working
|
|
15
|
+
* components that iterate their slots or hand `assets.<slot>` to a harness
|
|
16
|
+
* primitive, and taught authors to add dead `void assets.x?.handle` lines.
|
|
7
17
|
*/
|
|
8
|
-
export declare function
|
|
18
|
+
export declare function sourceAssetReads(tsxSource: string): SourceAssetReads;
|
|
9
19
|
export declare function missingDeclaredAssetHandleReads(tsxSource: string, manifest: Pick<ComponentManifestV2, 'assets'> & {
|
|
10
20
|
sceneShot?: unknown;
|
|
11
21
|
}): string[];
|
|
22
|
+
/** The refusal text, written once for the public gate and the Convex create/update lane. */
|
|
23
|
+
export declare function describeMissingAssetReads(missing: readonly string[]): string;
|
|
12
24
|
/** Refuse a component before bundling when its declared media cannot reach the mount. */
|
|
13
25
|
export declare function assertSourceReadsDeclaredAssets(source: Pick<ComponentSourceV2, 'componentId' | 'tsxSource' | 'manifest'>): void;
|
|
14
26
|
//# sourceMappingURL=sourceAdmission.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceAdmission.d.ts","sourceRoot":"","sources":["../src/sourceAdmission.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sourceAdmission.d.ts","sourceRoot":"","sources":["../src/sourceAdmission.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAIxB,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAsB9E;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAGpE;AAgHD,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GACtE,MAAM,EAAE,CA0BV;AAED,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAQ5E;AAED,yFAAyF;AACzF,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC,GACxE,IAAI,CAeN"}
|
|
@@ -302,6 +302,20 @@ export declare const Transition: z.ZodObject<{
|
|
|
302
302
|
duration: z.ZodNumber;
|
|
303
303
|
}, z.core.$strip>;
|
|
304
304
|
export type Transition = z.infer<typeof Transition>;
|
|
305
|
+
/**
|
|
306
|
+
* Where a clip's CENTRE sits, as a FRACTION of the frame: 0.5,0.5 is the centre,
|
|
307
|
+
* 0,0 the top-left corner, 1,1 the bottom-right. The renderer turns this straight
|
|
308
|
+
* into CSS `left`/`top` percentages (`x * 100`), so a value authored in pixels is
|
|
309
|
+
* not slightly off — it is hundreds of frame-widths off-canvas and the clip draws
|
|
310
|
+
* NOTHING. CUE-39: a card animated to `position.x: 180` rendered as sixteen black
|
|
311
|
+
* stills, and the contract had never said what the unit was.
|
|
312
|
+
*
|
|
313
|
+
* Overshoot is legitimate — an entrance slides in from just outside the frame —
|
|
314
|
+
* so the bound is a whole frame either side. Past that it is a unit mistake, and
|
|
315
|
+
* the refusal says so, the way `fontSize` refuses px.
|
|
316
|
+
*/
|
|
317
|
+
export declare const POSITION_MIN = -1;
|
|
318
|
+
export declare const POSITION_MAX = 2;
|
|
305
319
|
export declare const Region: z.ZodObject<{
|
|
306
320
|
x: z.ZodNumber;
|
|
307
321
|
y: z.ZodNumber;
|
|
@@ -359,6 +373,8 @@ export declare const KeyframeChannel: z.ZodArray<z.ZodObject<{
|
|
|
359
373
|
export type KeyframeChannel = z.infer<typeof KeyframeChannel>;
|
|
360
374
|
export declare const ANIMATABLE_PARAMS: readonly ["opacity", "scale", "rotation", "position.x", "position.y", "volume"];
|
|
361
375
|
export type AnimatableParam = (typeof ANIMATABLE_PARAMS)[number];
|
|
376
|
+
/** The bound each channel's keyframe VALUES carry — one rule shared with the scalar field. */
|
|
377
|
+
export declare const ANIMATABLE_VALUE: Record<AnimatableParam, z.ZodNumber>;
|
|
362
378
|
export declare const TimelineClip: z.ZodObject<{
|
|
363
379
|
id: z.ZodString;
|
|
364
380
|
startTime: z.ZodNumber;
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
buildPlannerTools,
|
|
5
5
|
buildToolsFromSchemas,
|
|
6
6
|
extractProviderError
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-S3HHEJMZ.js";
|
|
8
|
+
import "../chunk-MJWRC7G7.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-POTCIQTA.js";
|
|
12
|
+
import "../chunk-AG7HKF2U.js";
|
|
13
|
+
import "../chunk-ID5QY7V6.js";
|
|
14
14
|
import "../chunk-WPZKOVYF.js";
|
|
15
15
|
import "../chunk-B7J5UUUV.js";
|
|
16
16
|
import "../chunk-KYRDKK2D.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildDirectorContext
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-ZUJCWFS7.js";
|
|
4
|
+
import "../chunk-POTCIQTA.js";
|
|
5
|
+
import "../chunk-AG7HKF2U.js";
|
|
6
|
+
import "../chunk-ID5QY7V6.js";
|
|
7
7
|
import "../chunk-WPZKOVYF.js";
|
|
8
8
|
import "../chunk-B7J5UUUV.js";
|
|
9
9
|
import "../chunk-KYRDKK2D.js";
|
package/dist/authoring/tools.js
CHANGED
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
COMPOSE_ROLE_TOOLS,
|
|
7
7
|
COMPOSE_ROLE_TOOL_NAMES,
|
|
8
8
|
dispatchComposeRoleTool
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-MJWRC7G7.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-POTCIQTA.js";
|
|
13
|
+
import "../chunk-AG7HKF2U.js";
|
|
14
|
+
import "../chunk-ID5QY7V6.js";
|
|
15
15
|
import "../chunk-WPZKOVYF.js";
|
|
16
16
|
import "../chunk-B7J5UUUV.js";
|
|
17
17
|
import "../chunk-KYRDKK2D.js";
|
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-S3HHEJMZ.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-MJWRC7G7.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-ZUJCWFS7.js";
|
|
31
31
|
import {
|
|
32
32
|
buildFastModel,
|
|
33
33
|
buildModel,
|
|
@@ -55,9 +55,9 @@ import {
|
|
|
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-POTCIQTA.js";
|
|
59
|
+
import "./chunk-AG7HKF2U.js";
|
|
60
|
+
import "./chunk-ID5QY7V6.js";
|
|
61
61
|
import "./chunk-WPZKOVYF.js";
|
|
62
62
|
import "./chunk-B7J5UUUV.js";
|
|
63
63
|
import "./chunk-KYRDKK2D.js";
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
assertSceneShotParamsAdmitted,
|
|
4
4
|
materializeComponentSource,
|
|
5
5
|
renderComponentAlpha
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5JYYZDLK.js";
|
|
7
7
|
import {
|
|
8
8
|
componentArtifactId,
|
|
9
9
|
componentBundleId,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from "./chunk-EXY4JJPH.js";
|
|
14
14
|
import {
|
|
15
15
|
assertSourceReadsDeclaredAssets
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-C7TTI7FP.js";
|
|
17
17
|
import {
|
|
18
18
|
resolvedComponentRenderer
|
|
19
19
|
} from "./chunk-5BAWOULP.js";
|
|
@@ -277,6 +277,16 @@ function componentRuntimeError(error, fallbackCode, retryable = false) {
|
|
|
277
277
|
}
|
|
278
278
|
return new ComponentRuntimeError(fallbackCode, message, { retryable, cause: error });
|
|
279
279
|
}
|
|
280
|
+
function pageDiagnosticSink(limit = 5) {
|
|
281
|
+
const lines = [];
|
|
282
|
+
return {
|
|
283
|
+
push(entry) {
|
|
284
|
+
const line = `${entry.type}: ${entry.message.slice(0, 2e3)}`;
|
|
285
|
+
if (lines.length < limit && !lines.includes(line)) lines.push(line);
|
|
286
|
+
},
|
|
287
|
+
lines
|
|
288
|
+
};
|
|
289
|
+
}
|
|
280
290
|
function parseGraphicsAttestationLog(text) {
|
|
281
291
|
if (!text.startsWith(GRAPHICS_ATTESTATION_PREFIX)) return null;
|
|
282
292
|
try {
|
|
@@ -2001,12 +2011,10 @@ async function renderComponentAlpha(opts) {
|
|
|
2001
2011
|
throw componentRuntimeError(error, "component_resource_exhausted", true);
|
|
2002
2012
|
}
|
|
2003
2013
|
let primaryError;
|
|
2004
|
-
const pageDiagnostics =
|
|
2014
|
+
const pageDiagnostics = pageDiagnosticSink();
|
|
2005
2015
|
try {
|
|
2006
2016
|
await sizeLocalLaneWindows(renderEntryRoot, browser, width, height);
|
|
2007
|
-
const firewall = await installComponentRequestFirewall(browser, bundleServer.origin, opts.allowedAssetOrigins ?? /* @__PURE__ */ new Set(),
|
|
2008
|
-
if (pageDiagnostics.length < 5) pageDiagnostics.push(`${entry.type}: ${entry.message.slice(0, 2e3)}`);
|
|
2009
|
-
});
|
|
2017
|
+
const firewall = await installComponentRequestFirewall(browser, bundleServer.origin, opts.allowedAssetOrigins ?? /* @__PURE__ */ new Set(), pageDiagnostics.push);
|
|
2010
2018
|
const host = await assertComponentBrowserHardware(browser, requiredGraphics);
|
|
2011
2019
|
const composition = await selectComposition({
|
|
2012
2020
|
serveUrl,
|
|
@@ -2075,10 +2083,10 @@ async function renderComponentAlpha(opts) {
|
|
|
2075
2083
|
return { videoPath, actualGraphics: collector.receipt(), host };
|
|
2076
2084
|
} catch (error) {
|
|
2077
2085
|
primaryError = componentRuntimeError(error, "component_runtime_error");
|
|
2078
|
-
if (pageDiagnostics.length && primaryError instanceof ComponentRuntimeError) {
|
|
2086
|
+
if (pageDiagnostics.lines.length && primaryError instanceof ComponentRuntimeError) {
|
|
2079
2087
|
primaryError = new ComponentRuntimeError(
|
|
2080
2088
|
primaryError.code,
|
|
2081
|
-
`${pageDiagnostics.join("\n")}
|
|
2089
|
+
`${pageDiagnostics.lines.join("\n")}
|
|
2082
2090
|
${primaryError.message}`,
|
|
2083
2091
|
{
|
|
2084
2092
|
retryable: primaryError.retryable,
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
querySchemaShape,
|
|
3
3
|
serializeQuery,
|
|
4
4
|
waitForJob
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JNOM4FW3.js";
|
|
6
6
|
import {
|
|
7
7
|
CURATED_TOOLS
|
|
8
8
|
} from "./chunk-5YO4LAB7.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
text,
|
|
24
24
|
textWithData,
|
|
25
25
|
withMedia
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-GA6NRDK3.js";
|
|
27
27
|
|
|
28
28
|
// ../mcp/src/prompts.ts
|
|
29
29
|
var skillListCache = null;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ComponentRuntimeError
|
|
3
|
+
} from "./chunk-ZVG446DJ.js";
|
|
4
|
+
|
|
5
|
+
// ../execution/component-runtime/src/sourceAdmission.ts
|
|
6
|
+
import { parse } from "@babel/parser";
|
|
7
|
+
var AST_METADATA_KEYS = /* @__PURE__ */ new Set(["loc", "start", "end", "errors", "comments", "extra", "leadingComments", "trailingComments", "innerComments"]);
|
|
8
|
+
var BINDING_KEYS = /* @__PURE__ */ new Set(["id", "params", "param", "label", "local", "imported", "exported", "name"]);
|
|
9
|
+
function isAssets(node) {
|
|
10
|
+
return !!node && typeof node === "object" && node.type === "Identifier" && node.name === "assets";
|
|
11
|
+
}
|
|
12
|
+
function staticMember(node) {
|
|
13
|
+
if (!node || typeof node !== "object") return null;
|
|
14
|
+
const candidate = node;
|
|
15
|
+
if (candidate.type !== "MemberExpression" && candidate.type !== "OptionalMemberExpression") return null;
|
|
16
|
+
const property = candidate.property;
|
|
17
|
+
if (!property) return null;
|
|
18
|
+
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;
|
|
19
|
+
return name === null ? null : { object: candidate.object, property: name };
|
|
20
|
+
}
|
|
21
|
+
function sourceAssetReads(tsxSource) {
|
|
22
|
+
const scan = scanSourceReads(tsxSource);
|
|
23
|
+
return { slots: scan.assetSlots, every: scan.readsEverySlot };
|
|
24
|
+
}
|
|
25
|
+
function scanSourceReads(tsxSource) {
|
|
26
|
+
let root;
|
|
27
|
+
try {
|
|
28
|
+
root = parse(tsxSource, {
|
|
29
|
+
sourceType: "module",
|
|
30
|
+
plugins: ["jsx", "typescript"],
|
|
31
|
+
errorRecovery: false
|
|
32
|
+
});
|
|
33
|
+
} catch (error) {
|
|
34
|
+
throw new ComponentRuntimeError(
|
|
35
|
+
"component_does_not_compile",
|
|
36
|
+
error instanceof Error ? error.message : String(error),
|
|
37
|
+
{ cause: error }
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
const reads = /* @__PURE__ */ new Set();
|
|
41
|
+
let every = false;
|
|
42
|
+
let preparedPlan = false;
|
|
43
|
+
const recordPattern = (pattern) => {
|
|
44
|
+
for (const property of pattern.properties ?? []) {
|
|
45
|
+
if (property.type === "RestElement") {
|
|
46
|
+
every = true;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const key = property.key;
|
|
50
|
+
if (property.computed === true || !key) {
|
|
51
|
+
every = true;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (key.type === "Identifier" && typeof key.name === "string") reads.add(key.name);
|
|
55
|
+
else if (key.type === "StringLiteral" && typeof key.value === "string") reads.add(key.value);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const visit = (value, position) => {
|
|
59
|
+
if (!value || typeof value !== "object") return;
|
|
60
|
+
if (Array.isArray(value)) {
|
|
61
|
+
for (const child of value) visit(child, position);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const node = value;
|
|
65
|
+
const type = typeof node.type === "string" ? node.type : "";
|
|
66
|
+
if (type === "Identifier") {
|
|
67
|
+
if (position === "value" && node.name === "assets") every = true;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (type.startsWith("TS")) {
|
|
71
|
+
if ("expression" in node) visit(node.expression, "value");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const leaf = staticMember(node);
|
|
75
|
+
if (leaf?.property === "preparedSceneShot") preparedPlan = true;
|
|
76
|
+
if (type === "MemberExpression" || type === "OptionalMemberExpression") {
|
|
77
|
+
if (isAssets(node.object)) {
|
|
78
|
+
if (leaf) reads.add(leaf.property);
|
|
79
|
+
else every = true;
|
|
80
|
+
} else {
|
|
81
|
+
visit(node.object, "value");
|
|
82
|
+
}
|
|
83
|
+
if (node.computed === true) visit(node.property, "value");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (type === "VariableDeclarator" && isAssets(node.init) && node.id?.type === "ObjectPattern") {
|
|
87
|
+
recordPattern(node.id);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (type === "ObjectPattern") {
|
|
91
|
+
for (const property of node.properties ?? []) {
|
|
92
|
+
if (property.type === "RestElement") {
|
|
93
|
+
visit(property.argument, "binding");
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const key = property.key;
|
|
97
|
+
const nested = property.value;
|
|
98
|
+
if (property.computed === true) visit(key, "value");
|
|
99
|
+
if (property.computed !== true && key?.type === "Identifier" && key.name === "assets" && nested?.type === "ObjectPattern") {
|
|
100
|
+
recordPattern(nested);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
visit(nested, "binding");
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (type === "AssignmentPattern") {
|
|
108
|
+
visit(node.left, "binding");
|
|
109
|
+
visit(node.right, "value");
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (type === "ObjectProperty" || type === "ObjectMethod" || type === "ClassProperty" || type === "ClassMethod") {
|
|
113
|
+
if (node.computed === true) visit(node.key, "value");
|
|
114
|
+
for (const [key, child] of Object.entries(node)) {
|
|
115
|
+
if (key === "key" || AST_METADATA_KEYS.has(key)) continue;
|
|
116
|
+
visit(child, BINDING_KEYS.has(key) ? "binding" : "value");
|
|
117
|
+
}
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
for (const [key, child] of Object.entries(node)) {
|
|
121
|
+
if (AST_METADATA_KEYS.has(key)) continue;
|
|
122
|
+
visit(child, BINDING_KEYS.has(key) ? "binding" : "value");
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
visit(root, "value");
|
|
126
|
+
return { assetSlots: reads, readsEverySlot: every, readsPreparedScenePlan: preparedPlan };
|
|
127
|
+
}
|
|
128
|
+
function missingDeclaredAssetHandleReads(tsxSource, manifest) {
|
|
129
|
+
const slots = Object.keys(manifest.assets);
|
|
130
|
+
if (slots.length === 0) return [];
|
|
131
|
+
const scan = scanSourceReads(tsxSource);
|
|
132
|
+
if (manifest.sceneShot !== void 0 && scan.readsPreparedScenePlan) return [];
|
|
133
|
+
if (scan.readsEverySlot) return [];
|
|
134
|
+
return slots.filter((slot) => !scan.assetSlots.has(slot));
|
|
135
|
+
}
|
|
136
|
+
function describeMissingAssetReads(missing) {
|
|
137
|
+
return `The manifest declares asset slot(s) ${missing.map((slot) => JSON.stringify(slot)).join(", ")} but the source never reads ${missing.length === 1 ? "it" : "them"} from \`assets\`. Declared slots are delivered to the mount as \`assets[slot]\` ({ handle: a fetchable URL for <Img>/<Video>/<Audio>, \u2026 }); \`params\` is the clip's \`props\` and carries no asset URL. Mount as ({ durationInFrames, params, assets, render }) and read \`assets.${missing[0]}.handle\`, or read the slots dynamically (\`assets[key]\`, \`Object.entries(assets)\`), which counts for every declared slot.`;
|
|
138
|
+
}
|
|
139
|
+
function assertSourceReadsDeclaredAssets(source) {
|
|
140
|
+
const missing = missingDeclaredAssetHandleReads(source.tsxSource, source.manifest);
|
|
141
|
+
if (missing.length === 0) return;
|
|
142
|
+
throw new ComponentRuntimeError(
|
|
143
|
+
"invalid_component_source",
|
|
144
|
+
describeMissingAssetReads(missing),
|
|
145
|
+
{
|
|
146
|
+
locator: {
|
|
147
|
+
stage: "source-admission",
|
|
148
|
+
componentId: source.componentId,
|
|
149
|
+
path: "manifest.assets",
|
|
150
|
+
slots: missing
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export {
|
|
157
|
+
sourceAssetReads,
|
|
158
|
+
missingDeclaredAssetHandleReads,
|
|
159
|
+
describeMissingAssetReads,
|
|
160
|
+
assertSourceReadsDeclaredAssets
|
|
161
|
+
};
|