@nodaro/shared 2.27.0 → 3.1.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/dist/index.cjs +1776 -159
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2921 -73
- package/dist/index.d.ts +2921 -73
- package/dist/index.js +1665 -160
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/presentation-utils.test.ts +97 -0
- package/src/__tests__/scene3d-authoring-engine.test.ts +104 -0
- package/src/__tests__/scene3d-camera-track.test.ts +235 -0
- package/src/__tests__/scene3d-v2-edit.test.ts +83 -0
- package/src/__tests__/scene3d-v2-fixtures.ts +232 -0
- package/src/__tests__/scene3d-v2-resources.test.ts +239 -0
- package/src/__tests__/scene3d-v2.test.ts +742 -0
- package/src/__tests__/scene3d.test.ts +6 -6
- package/src/index.ts +9 -0
- package/src/model-constants.ts +10 -0
- package/src/node-mappable-fields.ts +1 -0
- package/src/presentation-utils.ts +54 -2
- package/src/pro-3d-render.ts +466 -0
- package/src/producer-types.ts +5 -0
- package/src/scene3d-authoring-engine.ts +215 -0
- package/src/scene3d-camera-track.ts +369 -0
- package/src/scene3d-edit.ts +10 -10
- package/src/scene3d-v2-edit.ts +156 -0
- package/src/scene3d-v2-plan.ts +694 -0
- package/src/scene3d-v2-resources.ts +382 -0
- package/src/scene3d-v2.ts +666 -0
- package/src/scene3d.ts +39 -13
package/dist/index.d.ts
CHANGED
|
@@ -2804,7 +2804,26 @@ type OutputType = "image" | "video" | "audio" | "text" | "data";
|
|
|
2804
2804
|
declare function getInputNodes<T extends GenericNode>(nodes: T[], curatedOnly?: boolean): T[];
|
|
2805
2805
|
/** Get leaf/media-producing nodes that represent workflow outputs. */
|
|
2806
2806
|
declare function getOutputNodes<T extends GenericNode>(nodes: T[], edges: GenericEdge[], curatedOnly?: boolean): T[];
|
|
2807
|
-
/**
|
|
2807
|
+
/**
|
|
2808
|
+
* Map node type to its output media type.
|
|
2809
|
+
*
|
|
2810
|
+
* The four literal sets above are read FIRST and win: they are the presentation
|
|
2811
|
+
* classifier's own opinion, including for dual-mode nodes whose default medium
|
|
2812
|
+
* is not their handle set (voice-changer and dubbing are audio here even though
|
|
2813
|
+
* they can emit video).
|
|
2814
|
+
*
|
|
2815
|
+
* Anything they do not name falls through to the producer vocabularies the
|
|
2816
|
+
* canvas validators and the orchestrator already maintain
|
|
2817
|
+
* (`packages/shared/src/producer-types.ts`). Those sets are what a new media
|
|
2818
|
+
* node MUST join for its outputs to connect at all, so deriving the tail from
|
|
2819
|
+
* them is what stops this map from silently drifting behind the node catalogue
|
|
2820
|
+
* — which it had (3D Render Pro, Generate Video, Generate Video Pro and a dozen
|
|
2821
|
+
* ffmpeg nodes all read as `"data"`, so a published app rendered them as a JSON
|
|
2822
|
+
* blob and `/v1` app schemas declared the wrong output type).
|
|
2823
|
+
*
|
|
2824
|
+
* `DYNAMIC_PRODUCER_TYPES` is deliberately NOT consulted: a node whose medium
|
|
2825
|
+
* is decided at run time has no static answer, and `"data"` is the honest one.
|
|
2826
|
+
*/
|
|
2808
2827
|
declare function getOutputType(nodeType: string | undefined): OutputType;
|
|
2809
2828
|
/** Extract the result URL or text from a node's data. */
|
|
2810
2829
|
declare function getNodeResult(nodeData: Record<string, unknown>): {
|
|
@@ -11997,7 +12016,13 @@ interface Scene3DReference {
|
|
|
11997
12016
|
startSeconds?: number;
|
|
11998
12017
|
endSeconds?: number;
|
|
11999
12018
|
}
|
|
12000
|
-
|
|
12019
|
+
/**
|
|
12020
|
+
* The v1 plan. `Scene3DPlan` is the DISCRIMINATED UNION of this and
|
|
12021
|
+
* `Scene3DPlanV2` (see `scene3d-v2.ts`) — a consumer holding one must narrow
|
|
12022
|
+
* with `isScene3DPlanV1` / `isScene3DPlanV2` before reading version-specific
|
|
12023
|
+
* fields. Nothing about v1's shape, bounds or messages changed when v2 landed.
|
|
12024
|
+
*/
|
|
12025
|
+
interface Scene3DPlanV1 {
|
|
12001
12026
|
planType: typeof SCENE3D_PLAN_TYPE;
|
|
12002
12027
|
schemaVersion: typeof SCENE3D_SCHEMA_VERSION;
|
|
12003
12028
|
/** UUID. Changes on EVERY accepted edit. */
|
|
@@ -12125,10 +12150,14 @@ declare const scene3DReferenceSchema: z.ZodObject<{
|
|
|
12125
12150
|
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
12126
12151
|
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
12127
12152
|
}, z.core.$strict>;
|
|
12128
|
-
|
|
12153
|
+
/** One cross-field failure, in the shape `ctx.addIssue` wants. Shared by the
|
|
12154
|
+
* v1 and v2 validators so both report the same way. */
|
|
12155
|
+
interface Scene3DSemanticIssue {
|
|
12129
12156
|
path: (string | number)[];
|
|
12130
12157
|
message: string;
|
|
12131
12158
|
}
|
|
12159
|
+
/** @internal Historic in-file name. */
|
|
12160
|
+
type SemanticIssue = Scene3DSemanticIssue;
|
|
12132
12161
|
/**
|
|
12133
12162
|
* Every rule that needs more than one field: duration, identity, hierarchy,
|
|
12134
12163
|
* reference resolution and keyframe tracks.
|
|
@@ -12137,12 +12166,174 @@ interface SemanticIssue {
|
|
|
12137
12166
|
* report the SAME sentences without re-parsing, and so a caller holding an
|
|
12138
12167
|
* already-parsed plan can re-check it cheaply.
|
|
12139
12168
|
*/
|
|
12140
|
-
declare function
|
|
12169
|
+
declare function scene3DPlanV1Issues(plan: Scene3DPlanV1): SemanticIssue[];
|
|
12141
12170
|
/**
|
|
12142
12171
|
* THE plan validator. Structure first (zod), then the cross-field rules — a
|
|
12143
12172
|
* consumer that parses with this cannot be handed a cycle, a dangling parent,
|
|
12144
12173
|
* an out-of-range keyframe or a 90-second "one-minute-max" scene.
|
|
12145
12174
|
*/
|
|
12175
|
+
/**
|
|
12176
|
+
* The v1 object shape WITHOUT the cross-field pass. Exported only so
|
|
12177
|
+
* `scene3DAnyPlanSchema` can discriminate on `schemaVersion` (zod cannot
|
|
12178
|
+
* discriminate through a `superRefine`); parse with `scene3DPlanV1Schema`.
|
|
12179
|
+
*/
|
|
12180
|
+
declare const scene3DPlanV1ObjectSchema: z.ZodObject<{
|
|
12181
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
12182
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
12183
|
+
revisionId: z.ZodUUID;
|
|
12184
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
12185
|
+
width: z.ZodNumber;
|
|
12186
|
+
height: z.ZodNumber;
|
|
12187
|
+
fps: z.ZodNumber;
|
|
12188
|
+
durationInFrames: z.ZodNumber;
|
|
12189
|
+
backgroundColor: z.ZodString;
|
|
12190
|
+
camera: z.ZodObject<{
|
|
12191
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12192
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12193
|
+
focalLengthMm: z.ZodNumber;
|
|
12194
|
+
sensorWidthMm: z.ZodDefault<z.ZodNumber>;
|
|
12195
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12196
|
+
frame: z.ZodNumber;
|
|
12197
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12198
|
+
target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12199
|
+
focalLengthMm: z.ZodOptional<z.ZodNumber>;
|
|
12200
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
12201
|
+
linear: "linear";
|
|
12202
|
+
easeInOut: "easeInOut";
|
|
12203
|
+
}>>;
|
|
12204
|
+
}, z.core.$strict>>>;
|
|
12205
|
+
}, z.core.$strict>;
|
|
12206
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
12207
|
+
id: z.ZodString;
|
|
12208
|
+
name: z.ZodString;
|
|
12209
|
+
primitive: z.ZodEnum<{
|
|
12210
|
+
group: "group";
|
|
12211
|
+
box: "box";
|
|
12212
|
+
sphere: "sphere";
|
|
12213
|
+
cylinder: "cylinder";
|
|
12214
|
+
cone: "cone";
|
|
12215
|
+
plane: "plane";
|
|
12216
|
+
capsule: "capsule";
|
|
12217
|
+
}>;
|
|
12218
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
12219
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12220
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12221
|
+
rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12222
|
+
scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12223
|
+
color: z.ZodString;
|
|
12224
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12225
|
+
frame: z.ZodNumber;
|
|
12226
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12227
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12228
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12229
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
12230
|
+
linear: "linear";
|
|
12231
|
+
easeInOut: "easeInOut";
|
|
12232
|
+
}>>;
|
|
12233
|
+
}, z.core.$strict>>>;
|
|
12234
|
+
}, z.core.$strict>>;
|
|
12235
|
+
lighting: z.ZodObject<{
|
|
12236
|
+
ambientIntensity: z.ZodNumber;
|
|
12237
|
+
keyIntensity: z.ZodNumber;
|
|
12238
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12239
|
+
}, z.core.$strict>;
|
|
12240
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12241
|
+
id: z.ZodString;
|
|
12242
|
+
url: z.ZodString;
|
|
12243
|
+
kind: z.ZodEnum<{
|
|
12244
|
+
image: "image";
|
|
12245
|
+
video: "video";
|
|
12246
|
+
}>;
|
|
12247
|
+
role: z.ZodEnum<{
|
|
12248
|
+
motion: "motion";
|
|
12249
|
+
layout: "layout";
|
|
12250
|
+
appearance: "appearance";
|
|
12251
|
+
}>;
|
|
12252
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
12253
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
12254
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
12255
|
+
}, z.core.$strict>>>;
|
|
12256
|
+
}, z.core.$strict>;
|
|
12257
|
+
declare const scene3DPlanV1Schema: z.ZodObject<{
|
|
12258
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
12259
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
12260
|
+
revisionId: z.ZodUUID;
|
|
12261
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
12262
|
+
width: z.ZodNumber;
|
|
12263
|
+
height: z.ZodNumber;
|
|
12264
|
+
fps: z.ZodNumber;
|
|
12265
|
+
durationInFrames: z.ZodNumber;
|
|
12266
|
+
backgroundColor: z.ZodString;
|
|
12267
|
+
camera: z.ZodObject<{
|
|
12268
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12269
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12270
|
+
focalLengthMm: z.ZodNumber;
|
|
12271
|
+
sensorWidthMm: z.ZodDefault<z.ZodNumber>;
|
|
12272
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12273
|
+
frame: z.ZodNumber;
|
|
12274
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12275
|
+
target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12276
|
+
focalLengthMm: z.ZodOptional<z.ZodNumber>;
|
|
12277
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
12278
|
+
linear: "linear";
|
|
12279
|
+
easeInOut: "easeInOut";
|
|
12280
|
+
}>>;
|
|
12281
|
+
}, z.core.$strict>>>;
|
|
12282
|
+
}, z.core.$strict>;
|
|
12283
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
12284
|
+
id: z.ZodString;
|
|
12285
|
+
name: z.ZodString;
|
|
12286
|
+
primitive: z.ZodEnum<{
|
|
12287
|
+
group: "group";
|
|
12288
|
+
box: "box";
|
|
12289
|
+
sphere: "sphere";
|
|
12290
|
+
cylinder: "cylinder";
|
|
12291
|
+
cone: "cone";
|
|
12292
|
+
plane: "plane";
|
|
12293
|
+
capsule: "capsule";
|
|
12294
|
+
}>;
|
|
12295
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
12296
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12297
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12298
|
+
rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12299
|
+
scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12300
|
+
color: z.ZodString;
|
|
12301
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12302
|
+
frame: z.ZodNumber;
|
|
12303
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12304
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12305
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
12306
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
12307
|
+
linear: "linear";
|
|
12308
|
+
easeInOut: "easeInOut";
|
|
12309
|
+
}>>;
|
|
12310
|
+
}, z.core.$strict>>>;
|
|
12311
|
+
}, z.core.$strict>>;
|
|
12312
|
+
lighting: z.ZodObject<{
|
|
12313
|
+
ambientIntensity: z.ZodNumber;
|
|
12314
|
+
keyIntensity: z.ZodNumber;
|
|
12315
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
12316
|
+
}, z.core.$strict>;
|
|
12317
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12318
|
+
id: z.ZodString;
|
|
12319
|
+
url: z.ZodString;
|
|
12320
|
+
kind: z.ZodEnum<{
|
|
12321
|
+
image: "image";
|
|
12322
|
+
video: "video";
|
|
12323
|
+
}>;
|
|
12324
|
+
role: z.ZodEnum<{
|
|
12325
|
+
motion: "motion";
|
|
12326
|
+
layout: "layout";
|
|
12327
|
+
appearance: "appearance";
|
|
12328
|
+
}>;
|
|
12329
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
12330
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
12331
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
12332
|
+
}, z.core.$strict>>>;
|
|
12333
|
+
}, z.core.$strict>;
|
|
12334
|
+
/** @deprecated v1-only, and it always was. Kept so every existing v1 call site
|
|
12335
|
+
* keeps EXACTLY its current accept/reject set. Use `scene3DPlanV1Schema` for
|
|
12336
|
+
* v1, or `scene3DAnyPlanSchema` when either version is acceptable. */
|
|
12146
12337
|
declare const scene3DPlanSchema: z.ZodObject<{
|
|
12147
12338
|
planType: z.ZodLiteral<"3d-scene">;
|
|
12148
12339
|
schemaVersion: z.ZodLiteral<1>;
|
|
@@ -12220,18 +12411,21 @@ declare const scene3DPlanSchema: z.ZodObject<{
|
|
|
12220
12411
|
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
12221
12412
|
}, z.core.$strict>>>;
|
|
12222
12413
|
}, z.core.$strict>;
|
|
12414
|
+
/** @deprecated Renamed to `scene3DPlanV1Issues`. */
|
|
12415
|
+
declare const scene3DPlanIssues: typeof scene3DPlanV1Issues;
|
|
12223
12416
|
/** Order-insensitive deep equality over the JSON subset a plan is made of. */
|
|
12224
12417
|
declare function scene3DDeepEqual(a: unknown, b: unknown): boolean;
|
|
12225
12418
|
/** RFC-4122 v4 id, from the platform CSPRNG where there is one. Browser,
|
|
12226
12419
|
* Node 18+ and the Remotion renderer all expose `globalThis.crypto`. */
|
|
12227
12420
|
declare function newScene3DRevisionId(): string;
|
|
12228
|
-
/** Narrowing helper for callers holding `unknown` (job output, workflow JSON).
|
|
12229
|
-
|
|
12421
|
+
/** Narrowing helper for callers holding `unknown` (job output, workflow JSON).
|
|
12422
|
+
* V1 ONLY — `isScene3DPlan` (in `scene3d-v2.ts`) accepts either version. */
|
|
12423
|
+
declare function isScene3DPlanV1(value: unknown): value is Scene3DPlanV1;
|
|
12230
12424
|
/** What a finished `generate-3d-scene` / `edit-3d-scene` job carries in
|
|
12231
12425
|
* `output_data`. The canvas, the SDK and the DAG output extractor all read
|
|
12232
12426
|
* THIS shape — `scenePlan` is also the node's stored plan field. */
|
|
12233
12427
|
interface Scene3DJobOutput {
|
|
12234
|
-
scenePlan:
|
|
12428
|
+
scenePlan: Scene3DPlanV1;
|
|
12235
12429
|
/** One paragraph naming what changed. Absent on a first generation. */
|
|
12236
12430
|
changeSummary?: string;
|
|
12237
12431
|
}
|
|
@@ -12523,7 +12717,7 @@ interface Scene3DEditOptions {
|
|
|
12523
12717
|
}
|
|
12524
12718
|
type Scene3DEditResult = {
|
|
12525
12719
|
ok: true;
|
|
12526
|
-
plan:
|
|
12720
|
+
plan: Scene3DPlanV1;
|
|
12527
12721
|
changedObjectIds: string[];
|
|
12528
12722
|
changeSummary: string;
|
|
12529
12723
|
} | {
|
|
@@ -12557,69 +12751,2723 @@ declare function summarizeScene3DOperations(operations: readonly Scene3DEditOper
|
|
|
12557
12751
|
* plan validator rejects it, as does removing an object a reference points
|
|
12558
12752
|
* at.
|
|
12559
12753
|
*/
|
|
12560
|
-
declare function applyScene3DEditOperations(plan:
|
|
12561
|
-
|
|
12562
|
-
/**
|
|
12563
|
-
*
|
|
12564
|
-
*
|
|
12565
|
-
*
|
|
12566
|
-
*
|
|
12567
|
-
*
|
|
12568
|
-
*
|
|
12569
|
-
*
|
|
12570
|
-
*
|
|
12571
|
-
*
|
|
12572
|
-
*
|
|
12573
|
-
*
|
|
12574
|
-
*
|
|
12575
|
-
*
|
|
12576
|
-
*
|
|
12577
|
-
*
|
|
12578
|
-
*
|
|
12579
|
-
*
|
|
12580
|
-
*
|
|
12581
|
-
*
|
|
12582
|
-
*
|
|
12583
|
-
*
|
|
12584
|
-
*
|
|
12585
|
-
*
|
|
12586
|
-
*
|
|
12587
|
-
*
|
|
12588
|
-
*
|
|
12589
|
-
*
|
|
12590
|
-
*
|
|
12591
|
-
*
|
|
12592
|
-
*
|
|
12593
|
-
|
|
12594
|
-
|
|
12595
|
-
* `
|
|
12596
|
-
*
|
|
12597
|
-
*
|
|
12598
|
-
*
|
|
12599
|
-
*
|
|
12600
|
-
*
|
|
12601
|
-
|
|
12602
|
-
|
|
12603
|
-
|
|
12604
|
-
*
|
|
12605
|
-
|
|
12606
|
-
|
|
12607
|
-
|
|
12608
|
-
|
|
12609
|
-
|
|
12610
|
-
|
|
12611
|
-
|
|
12612
|
-
|
|
12613
|
-
|
|
12614
|
-
*
|
|
12615
|
-
*
|
|
12616
|
-
|
|
12617
|
-
|
|
12618
|
-
|
|
12619
|
-
*
|
|
12620
|
-
*
|
|
12621
|
-
*
|
|
12622
|
-
|
|
12623
|
-
|
|
12754
|
+
declare function applyScene3DEditOperations(plan: Scene3DPlanV1, operations: readonly Scene3DEditOperation[] | unknown, options?: Scene3DEditOptions): Scene3DEditResult;
|
|
12755
|
+
|
|
12756
|
+
/**
|
|
12757
|
+
* Scene3D v2 — the PUBLIC wire contract for exported (GLB-backed) scenes.
|
|
12758
|
+
*
|
|
12759
|
+
* One Scene3D family, two schema versions. `Scene3DPlan` is the discriminated
|
|
12760
|
+
* union `Scene3DPlanV1 | Scene3DPlanV2`, keyed on `schemaVersion`; v1 (see
|
|
12761
|
+
* `scene3d.ts`) is untouched — same fields, same bounds, same messages — and a
|
|
12762
|
+
* default v1 authoring request must never come back as v2.
|
|
12763
|
+
*
|
|
12764
|
+
* What v2 adds over v1's inline primitives:
|
|
12765
|
+
*
|
|
12766
|
+
* - **Assets.** Geometry lives in GLB files referenced by opaque id + SHA-256
|
|
12767
|
+
* digest, never by an expiring URL. The camera lives in a sidecar
|
|
12768
|
+
* (`scene3d-camera-track.ts`), one sample per frame, so a 720-frame baked
|
|
12769
|
+
* move is not squeezed through v1's 240-keyframe budget.
|
|
12770
|
+
* - **Semantic entities.** A user-selectable object or assembly — a person, a
|
|
12771
|
+
* car, a prop, an environment — not every mesh in the export. Entities carry
|
|
12772
|
+
* stable ids, anchors, identity colour and material-role bindings, so
|
|
12773
|
+
* recolouring a person cannot recolour its chair.
|
|
12774
|
+
* - **Shots.** Explicit contiguous integer ranges covering the whole timeline,
|
|
12775
|
+
* with hard cuts. Interpolation never spans a cut.
|
|
12776
|
+
* - **Overlays.** Deterministic entity/camera overrides applied over immutable
|
|
12777
|
+
* baked bytes, in a fixed order, so a rebuild cannot silently drop a manual
|
|
12778
|
+
* edit.
|
|
12779
|
+
* - **Provenance.** Which engine/compiler/exporter/renderer produced this, and
|
|
12780
|
+
* the canonical content hash of the revision.
|
|
12781
|
+
*
|
|
12782
|
+
* This file is STRUCTURE ONLY: shapes, bounds, cross-references. How a scene is
|
|
12783
|
+
* authored, how a camera move is solved and what any of it costs are not part
|
|
12784
|
+
* of the published contract and are not here.
|
|
12785
|
+
*
|
|
12786
|
+
* It owns the VOCABULARY — constants, types and per-component schemas. The
|
|
12787
|
+
* whole-plan schema and every cross-field rule live in `scene3d-v2-plan.ts`,
|
|
12788
|
+
* which builds on this; the dense camera sidecar lives in
|
|
12789
|
+
* `scene3d-camera-track.ts`. Consumers import all three from the package root.
|
|
12790
|
+
*
|
|
12791
|
+
* ## World conventions (identical to v1, and now stated on the wire)
|
|
12792
|
+
*
|
|
12793
|
+
* Meters, Y up, right-handed, zero-based frames. `units`/`upAxis`/`handedness`
|
|
12794
|
+
* are required literals so a reader can refuse a manifest that assumes anything
|
|
12795
|
+
* else instead of quietly rendering a Z-up scene on its side. Conversion from
|
|
12796
|
+
* the authoring package's basis happens exactly once, at export: a GLB that is
|
|
12797
|
+
* already Y-up must not be rotated again, and the renderer must not replace an
|
|
12798
|
+
* exported camera quaternion with a `lookAt()`.
|
|
12799
|
+
*/
|
|
12800
|
+
|
|
12801
|
+
/** The v2 discriminator value. v1's `SCENE3D_SCHEMA_VERSION` is unchanged. */
|
|
12802
|
+
declare const SCENE3D_SCHEMA_VERSION_V2 = 2;
|
|
12803
|
+
/** Every version this package can parse AND validate. An SDK consumer checks a
|
|
12804
|
+
* plan against this BEFORE trying to render one it cannot understand. */
|
|
12805
|
+
declare const SCENE3D_SUPPORTED_SCHEMA_VERSIONS: readonly [1, 2];
|
|
12806
|
+
type Scene3DSupportedSchemaVersion = (typeof SCENE3D_SUPPORTED_SCHEMA_VERSIONS)[number];
|
|
12807
|
+
/** Authoring engines a v2 manifest may name. Open-ended on the wire (the field
|
|
12808
|
+
* is a bounded slug) so a new engine does not need a package release; this
|
|
12809
|
+
* list is what the current platform ships. */
|
|
12810
|
+
declare const SCENE3D_V2_ENGINES: readonly ["blender-cloud", "blender-local"];
|
|
12811
|
+
type Scene3DKnownEngine = (typeof SCENE3D_V2_ENGINES)[number];
|
|
12812
|
+
/**
|
|
12813
|
+
* Admission bounds for v2. Server-configured ceilings are returned in
|
|
12814
|
+
* capabilities; these are the contract's hard maxima, quoted by the route Zod,
|
|
12815
|
+
* the builder, the renderer and the docs so they cannot drift apart.
|
|
12816
|
+
*
|
|
12817
|
+
* v1's `SCENE3D_LIMITS` is NOT changed by any of this — "raise maxObjects" was
|
|
12818
|
+
* never the v2 design.
|
|
12819
|
+
*/
|
|
12820
|
+
declare const SCENE3D_V2_LIMITS: {
|
|
12821
|
+
/** Both the seconds and the frame ceiling apply; neither waives the other. */
|
|
12822
|
+
readonly maxDurationSeconds: 60;
|
|
12823
|
+
readonly minDurationInFrames: 1;
|
|
12824
|
+
readonly maxDurationInFrames: 3600;
|
|
12825
|
+
readonly minFps: 15;
|
|
12826
|
+
readonly maxFps: 60;
|
|
12827
|
+
readonly defaultFps: 24;
|
|
12828
|
+
/** Even integers only — an odd axis breaks H.264 chroma subsampling. */
|
|
12829
|
+
readonly minDimensionPx: 100;
|
|
12830
|
+
readonly maxDimensionPx: 1920;
|
|
12831
|
+
readonly minEntities: 1;
|
|
12832
|
+
/** SEMANTIC entities, not exported mesh nodes. */
|
|
12833
|
+
readonly maxEntities: 100;
|
|
12834
|
+
/** Enforced during asset normalization, after decode — see
|
|
12835
|
+
* `scene3DV2NormalizationIssues` in `scene3d-v2-resources.ts`. */
|
|
12836
|
+
readonly maxMeshNodes: 2000;
|
|
12837
|
+
readonly maxTriangles: 200000;
|
|
12838
|
+
readonly maxHierarchyDepth: 16;
|
|
12839
|
+
/** Decoded manifest JSON. Measured on the bytes, before `JSON.parse`. */
|
|
12840
|
+
readonly maxManifestBytes: number;
|
|
12841
|
+
/** Decoded camera-track JSON. */
|
|
12842
|
+
readonly maxCameraTrackBytes: number;
|
|
12843
|
+
/** Total DECLARED bytes of the assets the renderer downloads. Compression
|
|
12844
|
+
* does not waive the decoded geometry limits above. */
|
|
12845
|
+
readonly maxRendererAssetBytes: number;
|
|
12846
|
+
/** A `blend-source` is a separately authorized download, never handed to the
|
|
12847
|
+
* browser renderer, and therefore not part of the renderer budget. */
|
|
12848
|
+
readonly maxBlendSourceBytes: number;
|
|
12849
|
+
readonly maxAssets: 64;
|
|
12850
|
+
readonly maxShots: 32;
|
|
12851
|
+
readonly maxShotEntityIds: 16;
|
|
12852
|
+
/** v1's reference limit, unchanged until deliberately expanded. */
|
|
12853
|
+
readonly maxReferences: 8;
|
|
12854
|
+
readonly maxAnchorsPerEntity: 32;
|
|
12855
|
+
readonly maxMaterialBindingsPerEntity: 16;
|
|
12856
|
+
readonly maxOverrides: 200;
|
|
12857
|
+
readonly minPosterDimensionPx: 16;
|
|
12858
|
+
readonly maxPosterDimensionPx: 4096;
|
|
12859
|
+
readonly maxIdLength: 64;
|
|
12860
|
+
readonly maxAssetIdLength: 128;
|
|
12861
|
+
readonly maxNodeIdLength: 128;
|
|
12862
|
+
readonly maxNameLength: 120;
|
|
12863
|
+
readonly maxLabelLength: 120;
|
|
12864
|
+
readonly maxMaterialNameLength: 120;
|
|
12865
|
+
readonly maxVersionLength: 64;
|
|
12866
|
+
readonly maxCoordinate: 1000;
|
|
12867
|
+
readonly minSize: 0.001;
|
|
12868
|
+
readonly maxSize: 1000;
|
|
12869
|
+
readonly maxIntensity: 100;
|
|
12870
|
+
};
|
|
12871
|
+
/** The overlay operation vocabulary this package understands. An override
|
|
12872
|
+
* written by a NEWER writer is rejected with an explicit message rather than
|
|
12873
|
+
* silently skipped — a dropped edit is worse than a refused manifest. */
|
|
12874
|
+
declare const SCENE3D_V2_OVERRIDE_OPERATION_VERSION = 1;
|
|
12875
|
+
/**
|
|
12876
|
+
* The GLB `extras` keys the exporter writes and the importer reads. Blender
|
|
12877
|
+
* display names and array indices are NOT durable identifiers: a re-export
|
|
12878
|
+
* renames `Cube.003` and reorders children, and a hit-test would then select a
|
|
12879
|
+
* different entity. Both ends import these constants — never the literals.
|
|
12880
|
+
*/
|
|
12881
|
+
declare const SCENE3D_GLB_EXTRAS_ENTITY_ID = "nodaroEntityId";
|
|
12882
|
+
declare const SCENE3D_GLB_EXTRAS_SUBPART_ID = "nodaroSubpartId";
|
|
12883
|
+
declare const SCENE3D_GLB_EXTRAS_MATERIAL_ROLE = "nodaroMaterialRole";
|
|
12884
|
+
/** Nothing outside this set is read from `extras`; an importer ignores the rest
|
|
12885
|
+
* rather than trusting arbitrary exporter metadata. */
|
|
12886
|
+
declare const SCENE3D_GLB_EXTRAS_ALLOWLIST: readonly ["nodaroEntityId", "nodaroSubpartId", "nodaroMaterialRole"];
|
|
12887
|
+
/** What an entity IS, for selection, grouping and validation reporting. It is
|
|
12888
|
+
* advisory: no rule anywhere requires a head on a car or a wheel on a person. */
|
|
12889
|
+
type Scene3DEntityRole = "person" | "vehicle" | "prop" | "environment" | "other";
|
|
12890
|
+
declare const SCENE3D_ENTITY_ROLES: readonly Scene3DEntityRole[];
|
|
12891
|
+
/** The v1 primitive vocabulary MINUS `group` — grouping is `visual.kind:"group"`
|
|
12892
|
+
* in v2, so there is exactly one way to say "no geometry". */
|
|
12893
|
+
type Scene3DV2Primitive = Exclude<Scene3DPrimitive, "group">;
|
|
12894
|
+
declare const SCENE3D_V2_PRIMITIVES: readonly Scene3DV2Primitive[];
|
|
12895
|
+
/** Deterministic overlays an entity accepts. Geometry and pose are deliberately
|
|
12896
|
+
* absent: those rebuild through the authoring engine, they are not overlays. */
|
|
12897
|
+
type Scene3DEntityCapability = "transform" | "color" | "visibility";
|
|
12898
|
+
declare const SCENE3D_ENTITY_CAPABILITIES: readonly Scene3DEntityCapability[];
|
|
12899
|
+
/** What an entity accepts when it does not say. */
|
|
12900
|
+
declare const SCENE3D_DEFAULT_ENTITY_CAPABILITIES: readonly Scene3DEntityCapability[];
|
|
12901
|
+
type Scene3DAssetKind = "glb" | "camera-track-json" | "poster" | "validation-report" | "blend-source";
|
|
12902
|
+
declare const SCENE3D_ASSET_KINDS: readonly Scene3DAssetKind[];
|
|
12903
|
+
type Scene3DAssetRole = "scene-geometry" | "entity-geometry" | "camera-track" | "poster" | "validation-report" | "source";
|
|
12904
|
+
declare const SCENE3D_ASSET_ROLES: readonly Scene3DAssetRole[];
|
|
12905
|
+
/** Which kinds may carry which role. A role is not decoration — it is what lets
|
|
12906
|
+
* a resolver decide whether bytes go to the renderer, the UI or an authorized
|
|
12907
|
+
* download, without sniffing the file. */
|
|
12908
|
+
declare const SCENE3D_ASSET_ROLE_KINDS: Readonly<Record<Scene3DAssetRole, Scene3DAssetKind>>;
|
|
12909
|
+
/** The kinds the BROWSER downloads. `blend-source` is never in this set: it is
|
|
12910
|
+
* a separately authorized download and it does not spend the renderer budget. */
|
|
12911
|
+
declare const SCENE3D_RENDERER_ASSET_KINDS: readonly Scene3DAssetKind[];
|
|
12912
|
+
/** The one material role a `primitive` entity has: its own `color`. */
|
|
12913
|
+
declare const SCENE3D_PRIMITIVE_MATERIAL_ROLE = "identity";
|
|
12914
|
+
/** The standardized clay look, pinned by id. Browser preview, critic stills and
|
|
12915
|
+
* the final export must implement a given preset identically. */
|
|
12916
|
+
declare const SCENE3D_CLAY_LIGHTING_PRESETS: readonly ["clay-studio-v1"];
|
|
12917
|
+
type Scene3DClayLightingPreset = (typeof SCENE3D_CLAY_LIGHTING_PRESETS)[number];
|
|
12918
|
+
/** A stable contact/selection location in entity-local space. Names are free
|
|
12919
|
+
* structural labels (`face`, `seat`, `wheel.frontLeft`, `roof`, `lookAt`) —
|
|
12920
|
+
* human anatomy is never required. */
|
|
12921
|
+
interface Scene3DAnchor {
|
|
12922
|
+
name: string;
|
|
12923
|
+
position: Vec3;
|
|
12924
|
+
/** Euler XYZ radians. Absent = identity orientation. */
|
|
12925
|
+
rotation?: Vec3;
|
|
12926
|
+
}
|
|
12927
|
+
/** Binds an editable colour ROLE to a real material inside the entity's own
|
|
12928
|
+
* asset root. Recolouring `bodyPaint` on a car must not touch its tires, and
|
|
12929
|
+
* cannot reach a material that belongs to a different entity. */
|
|
12930
|
+
interface Scene3DMaterialBinding {
|
|
12931
|
+
role: string;
|
|
12932
|
+
materialName: string;
|
|
12933
|
+
/** Baked colour for the role, sRGB opaque hex. */
|
|
12934
|
+
color?: string;
|
|
12935
|
+
roughness?: number;
|
|
12936
|
+
}
|
|
12937
|
+
/** Maps a clip inside the referenced GLB onto public frames. Sampling is
|
|
12938
|
+
* `time = (frame - startFrame) / fps` — never a wall-clock mixer delta, or
|
|
12939
|
+
* scrubbing backwards would not reproduce the rendered frame. */
|
|
12940
|
+
interface Scene3DAssetAnimation {
|
|
12941
|
+
clipName: string;
|
|
12942
|
+
startFrame: number;
|
|
12943
|
+
endFrameExclusive: number;
|
|
12944
|
+
/** Absent/false = hold the last sample after the window. */
|
|
12945
|
+
loop?: boolean;
|
|
12946
|
+
}
|
|
12947
|
+
type Scene3DEntityVisual =
|
|
12948
|
+
/** Organizational identity: a transform and a name, no geometry of its own. */
|
|
12949
|
+
{
|
|
12950
|
+
kind: "group";
|
|
12951
|
+
}
|
|
12952
|
+
/** The v1 primitive vocabulary and validated dimensions. */
|
|
12953
|
+
| {
|
|
12954
|
+
kind: "primitive";
|
|
12955
|
+
primitive: Scene3DV2Primitive;
|
|
12956
|
+
dimensions: Vec3;
|
|
12957
|
+
color: string;
|
|
12958
|
+
}
|
|
12959
|
+
/** An authorized GLB plus the exported node that roots this entity. */
|
|
12960
|
+
| {
|
|
12961
|
+
kind: "asset";
|
|
12962
|
+
assetId: string;
|
|
12963
|
+
rootNodeId: string;
|
|
12964
|
+
animation?: Scene3DAssetAnimation;
|
|
12965
|
+
};
|
|
12966
|
+
interface Scene3DEntityV2 {
|
|
12967
|
+
id: string;
|
|
12968
|
+
name: string;
|
|
12969
|
+
/** Transform parent, another entity. Cycles are rejected. */
|
|
12970
|
+
parentId?: string;
|
|
12971
|
+
role?: Scene3DEntityRole;
|
|
12972
|
+
/**
|
|
12973
|
+
* Local base transform. REQUIRED for `group` and `primitive`.
|
|
12974
|
+
*
|
|
12975
|
+
* OPTIONAL for `asset`, where the GLB node's own transform is authoritative:
|
|
12976
|
+
* a value here is an informational frame-0 snapshot and the renderer must NOT
|
|
12977
|
+
* apply it on top of the node transform. Applying both is the
|
|
12978
|
+
* double-transform bug that puts a car at twice its offset.
|
|
12979
|
+
*/
|
|
12980
|
+
position?: Vec3;
|
|
12981
|
+
rotation?: Vec3;
|
|
12982
|
+
scale?: Vec3;
|
|
12983
|
+
/** The selection/identity chip colour. Opaque hex, sRGB. */
|
|
12984
|
+
identityColor?: string;
|
|
12985
|
+
anchors?: Scene3DAnchor[];
|
|
12986
|
+
/** Deterministic overlays this entity accepts. Absent = all of them. */
|
|
12987
|
+
capabilities?: Scene3DEntityCapability[];
|
|
12988
|
+
/** Currently frozen subset. An overlay is accepted iff its capability is
|
|
12989
|
+
* advertised AND not locked. */
|
|
12990
|
+
locks?: Scene3DEntityCapability[];
|
|
12991
|
+
/** `asset` entities only. */
|
|
12992
|
+
materialBindings?: Scene3DMaterialBinding[];
|
|
12993
|
+
visual: Scene3DEntityVisual;
|
|
12994
|
+
}
|
|
12995
|
+
/** A reference to immutable bytes. IDs and digests are persisted; short-lived
|
|
12996
|
+
* transport URLs are issued by the authenticated resolver and never stored. */
|
|
12997
|
+
interface Scene3DAssetRef {
|
|
12998
|
+
assetId: string;
|
|
12999
|
+
kind: Scene3DAssetKind;
|
|
13000
|
+
role: Scene3DAssetRole;
|
|
13001
|
+
byteLength: number;
|
|
13002
|
+
/** Lowercase hex SHA-256 of the bytes. */
|
|
13003
|
+
sha256: string;
|
|
13004
|
+
/** Set when this revision reuses an earlier revision's immutable bytes. */
|
|
13005
|
+
originRevisionId?: string;
|
|
13006
|
+
}
|
|
13007
|
+
/** A contiguous half-open frame range `[startFrame, endFrameExclusive)`. */
|
|
13008
|
+
interface Scene3DShot {
|
|
13009
|
+
id: string;
|
|
13010
|
+
startFrame: number;
|
|
13011
|
+
endFrameExclusive: number;
|
|
13012
|
+
label?: string;
|
|
13013
|
+
/** Who the shot is ABOUT — used by validation reporting and the UI. */
|
|
13014
|
+
subjectEntityIds?: string[];
|
|
13015
|
+
/** Who is deliberately in front of the lens (an over-the-shoulder anchor). */
|
|
13016
|
+
foregroundEntityIds?: string[];
|
|
13017
|
+
}
|
|
13018
|
+
interface Scene3DClayLighting {
|
|
13019
|
+
preset: Scene3DClayLightingPreset;
|
|
13020
|
+
ambientIntensity: number;
|
|
13021
|
+
keyIntensity: number;
|
|
13022
|
+
keyPosition: Vec3;
|
|
13023
|
+
}
|
|
13024
|
+
/** Which space a constant transform override is expressed in. Declared, so the
|
|
13025
|
+
* renderer never multiplies the same parent transform in twice. */
|
|
13026
|
+
type Scene3DOverrideSpace = "local" | "world";
|
|
13027
|
+
interface Scene3DOverrideProvenance {
|
|
13028
|
+
id: string;
|
|
13029
|
+
/** The revision this override was authored against. */
|
|
13030
|
+
sourceRevisionId: string;
|
|
13031
|
+
/** That revision's canonical content hash when the override was authored. */
|
|
13032
|
+
sourceContentHash: string;
|
|
13033
|
+
operationVersion: number;
|
|
13034
|
+
}
|
|
13035
|
+
type Scene3DOverride = Scene3DOverrideProvenance & ({
|
|
13036
|
+
kind: "entity-transform";
|
|
13037
|
+
entityId: string;
|
|
13038
|
+
space: Scene3DOverrideSpace;
|
|
13039
|
+
position?: Vec3;
|
|
13040
|
+
rotation?: Vec3;
|
|
13041
|
+
scale?: Vec3;
|
|
13042
|
+
} | {
|
|
13043
|
+
kind: "entity-color";
|
|
13044
|
+
entityId: string;
|
|
13045
|
+
materialRole: string;
|
|
13046
|
+
color: string;
|
|
13047
|
+
} | {
|
|
13048
|
+
kind: "entity-visibility";
|
|
13049
|
+
entityId: string;
|
|
13050
|
+
visible: boolean;
|
|
13051
|
+
} | {
|
|
13052
|
+
kind: "camera-shot-offset";
|
|
13053
|
+
shotId: string;
|
|
13054
|
+
positionOffset?: Vec3;
|
|
13055
|
+
targetOffset?: Vec3;
|
|
13056
|
+
});
|
|
13057
|
+
/**
|
|
13058
|
+
* Who built this revision and from what. Source versioning and renderer
|
|
13059
|
+
* versioning are independent — a renderer upgrade does not invalidate a scene.
|
|
13060
|
+
*
|
|
13061
|
+
* Every string here is a bounded slug, which is a structural guarantee that no
|
|
13062
|
+
* native path or block of prose fits in one. Scrubbing credentials
|
|
13063
|
+
* out of the values it does accept remains the producer's duty.
|
|
13064
|
+
*/
|
|
13065
|
+
interface Scene3DProvenance {
|
|
13066
|
+
engine: string;
|
|
13067
|
+
engineVersion: string;
|
|
13068
|
+
recipeVersion: string;
|
|
13069
|
+
compilerVersion: string;
|
|
13070
|
+
exporterVersion: string;
|
|
13071
|
+
rendererVersion: string;
|
|
13072
|
+
sourceRevisionId?: string;
|
|
13073
|
+
/** The retained `blend-source` asset, when one was kept. */
|
|
13074
|
+
sourceArtifactId?: string;
|
|
13075
|
+
/** Canonical content hash of this revision — see `scene3d-v2-resources.ts`. */
|
|
13076
|
+
contentHash: string;
|
|
13077
|
+
}
|
|
13078
|
+
interface Scene3DPlanV2 {
|
|
13079
|
+
planType: typeof SCENE3D_PLAN_TYPE;
|
|
13080
|
+
schemaVersion: typeof SCENE3D_SCHEMA_VERSION_V2;
|
|
13081
|
+
revisionId: string;
|
|
13082
|
+
parentRevisionId?: string;
|
|
13083
|
+
width: number;
|
|
13084
|
+
height: number;
|
|
13085
|
+
fps: number;
|
|
13086
|
+
durationInFrames: number;
|
|
13087
|
+
units: "meters";
|
|
13088
|
+
upAxis: "Y";
|
|
13089
|
+
handedness: "right";
|
|
13090
|
+
objects: Scene3DEntityV2[];
|
|
13091
|
+
assets: Scene3DAssetRef[];
|
|
13092
|
+
cameraTrackAssetId: string;
|
|
13093
|
+
shots: Scene3DShot[];
|
|
13094
|
+
lighting: Scene3DClayLighting;
|
|
13095
|
+
backgroundColor: string;
|
|
13096
|
+
references?: Scene3DReference[];
|
|
13097
|
+
overrides?: Scene3DOverride[];
|
|
13098
|
+
provenance: Scene3DProvenance;
|
|
13099
|
+
}
|
|
13100
|
+
/** Opaque storage id. Deliberately slash-free: an asset id is an ID, resolved
|
|
13101
|
+
* server-side against ownership — never a path and never a URL. */
|
|
13102
|
+
declare const scene3DAssetIdSchema: z.ZodString;
|
|
13103
|
+
/** A node name inside an exported GLB. */
|
|
13104
|
+
declare const scene3DNodeIdSchema: z.ZodString;
|
|
13105
|
+
declare const scene3DSha256Schema: z.ZodString;
|
|
13106
|
+
/**
|
|
13107
|
+
* A version/engine token. The charset excludes `/`, `\`, `:` and whitespace, so
|
|
13108
|
+
* a native filesystem path cannot be spelled as one; the 64-character cap
|
|
13109
|
+
* excludes prose.
|
|
13110
|
+
*/
|
|
13111
|
+
declare const scene3DVersionTokenSchema: z.ZodString;
|
|
13112
|
+
declare const scene3DEngineIdSchema: z.ZodString;
|
|
13113
|
+
/** Anchor names and material roles share the id charset (dots allowed, so
|
|
13114
|
+
* `wheel.frontLeft` is one name and not a path). */
|
|
13115
|
+
declare const scene3DAnchorNameSchema: z.ZodString;
|
|
13116
|
+
declare const scene3DMaterialRoleSchema: z.ZodString;
|
|
13117
|
+
declare const scene3DMaterialNameSchema: z.ZodString;
|
|
13118
|
+
declare const scene3DEntityCapabilitySchema: z.ZodEnum<{
|
|
13119
|
+
transform: "transform";
|
|
13120
|
+
color: "color";
|
|
13121
|
+
visibility: "visibility";
|
|
13122
|
+
}>;
|
|
13123
|
+
declare const scene3DAnchorSchema: z.ZodObject<{
|
|
13124
|
+
name: z.ZodString;
|
|
13125
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13126
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13127
|
+
}, z.core.$strict>;
|
|
13128
|
+
declare const scene3DMaterialBindingSchema: z.ZodObject<{
|
|
13129
|
+
role: z.ZodString;
|
|
13130
|
+
materialName: z.ZodString;
|
|
13131
|
+
color: z.ZodOptional<z.ZodString>;
|
|
13132
|
+
roughness: z.ZodOptional<z.ZodNumber>;
|
|
13133
|
+
}, z.core.$strict>;
|
|
13134
|
+
declare const scene3DAssetAnimationSchema: z.ZodObject<{
|
|
13135
|
+
clipName: z.ZodString;
|
|
13136
|
+
startFrame: z.ZodNumber;
|
|
13137
|
+
endFrameExclusive: z.ZodNumber;
|
|
13138
|
+
loop: z.ZodOptional<z.ZodBoolean>;
|
|
13139
|
+
}, z.core.$strict>;
|
|
13140
|
+
declare const scene3DEntityVisualSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13141
|
+
kind: z.ZodLiteral<"group">;
|
|
13142
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13143
|
+
kind: z.ZodLiteral<"primitive">;
|
|
13144
|
+
primitive: z.ZodEnum<{
|
|
13145
|
+
box: "box";
|
|
13146
|
+
sphere: "sphere";
|
|
13147
|
+
cylinder: "cylinder";
|
|
13148
|
+
cone: "cone";
|
|
13149
|
+
plane: "plane";
|
|
13150
|
+
capsule: "capsule";
|
|
13151
|
+
}>;
|
|
13152
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13153
|
+
color: z.ZodString;
|
|
13154
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13155
|
+
kind: z.ZodLiteral<"asset">;
|
|
13156
|
+
assetId: z.ZodString;
|
|
13157
|
+
rootNodeId: z.ZodString;
|
|
13158
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
13159
|
+
clipName: z.ZodString;
|
|
13160
|
+
startFrame: z.ZodNumber;
|
|
13161
|
+
endFrameExclusive: z.ZodNumber;
|
|
13162
|
+
loop: z.ZodOptional<z.ZodBoolean>;
|
|
13163
|
+
}, z.core.$strict>>;
|
|
13164
|
+
}, z.core.$strict>], "kind">;
|
|
13165
|
+
declare const scene3DEntityV2Schema: z.ZodObject<{
|
|
13166
|
+
id: z.ZodString;
|
|
13167
|
+
name: z.ZodString;
|
|
13168
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
13169
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
13170
|
+
other: "other";
|
|
13171
|
+
person: "person";
|
|
13172
|
+
vehicle: "vehicle";
|
|
13173
|
+
prop: "prop";
|
|
13174
|
+
environment: "environment";
|
|
13175
|
+
}>>;
|
|
13176
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13177
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13178
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13179
|
+
identityColor: z.ZodOptional<z.ZodString>;
|
|
13180
|
+
anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13181
|
+
name: z.ZodString;
|
|
13182
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13183
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13184
|
+
}, z.core.$strict>>>;
|
|
13185
|
+
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13186
|
+
transform: "transform";
|
|
13187
|
+
color: "color";
|
|
13188
|
+
visibility: "visibility";
|
|
13189
|
+
}>>>;
|
|
13190
|
+
locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13191
|
+
transform: "transform";
|
|
13192
|
+
color: "color";
|
|
13193
|
+
visibility: "visibility";
|
|
13194
|
+
}>>>;
|
|
13195
|
+
materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13196
|
+
role: z.ZodString;
|
|
13197
|
+
materialName: z.ZodString;
|
|
13198
|
+
color: z.ZodOptional<z.ZodString>;
|
|
13199
|
+
roughness: z.ZodOptional<z.ZodNumber>;
|
|
13200
|
+
}, z.core.$strict>>>;
|
|
13201
|
+
visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13202
|
+
kind: z.ZodLiteral<"group">;
|
|
13203
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13204
|
+
kind: z.ZodLiteral<"primitive">;
|
|
13205
|
+
primitive: z.ZodEnum<{
|
|
13206
|
+
box: "box";
|
|
13207
|
+
sphere: "sphere";
|
|
13208
|
+
cylinder: "cylinder";
|
|
13209
|
+
cone: "cone";
|
|
13210
|
+
plane: "plane";
|
|
13211
|
+
capsule: "capsule";
|
|
13212
|
+
}>;
|
|
13213
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13214
|
+
color: z.ZodString;
|
|
13215
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13216
|
+
kind: z.ZodLiteral<"asset">;
|
|
13217
|
+
assetId: z.ZodString;
|
|
13218
|
+
rootNodeId: z.ZodString;
|
|
13219
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
13220
|
+
clipName: z.ZodString;
|
|
13221
|
+
startFrame: z.ZodNumber;
|
|
13222
|
+
endFrameExclusive: z.ZodNumber;
|
|
13223
|
+
loop: z.ZodOptional<z.ZodBoolean>;
|
|
13224
|
+
}, z.core.$strict>>;
|
|
13225
|
+
}, z.core.$strict>], "kind">;
|
|
13226
|
+
}, z.core.$strict>;
|
|
13227
|
+
declare const scene3DAssetRefSchema: z.ZodObject<{
|
|
13228
|
+
assetId: z.ZodString;
|
|
13229
|
+
kind: z.ZodEnum<{
|
|
13230
|
+
glb: "glb";
|
|
13231
|
+
"camera-track-json": "camera-track-json";
|
|
13232
|
+
poster: "poster";
|
|
13233
|
+
"validation-report": "validation-report";
|
|
13234
|
+
"blend-source": "blend-source";
|
|
13235
|
+
}>;
|
|
13236
|
+
role: z.ZodEnum<{
|
|
13237
|
+
source: "source";
|
|
13238
|
+
poster: "poster";
|
|
13239
|
+
"validation-report": "validation-report";
|
|
13240
|
+
"scene-geometry": "scene-geometry";
|
|
13241
|
+
"entity-geometry": "entity-geometry";
|
|
13242
|
+
"camera-track": "camera-track";
|
|
13243
|
+
}>;
|
|
13244
|
+
byteLength: z.ZodNumber;
|
|
13245
|
+
sha256: z.ZodString;
|
|
13246
|
+
originRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13247
|
+
}, z.core.$strict>;
|
|
13248
|
+
declare const scene3DShotSchema: z.ZodObject<{
|
|
13249
|
+
id: z.ZodString;
|
|
13250
|
+
startFrame: z.ZodNumber;
|
|
13251
|
+
endFrameExclusive: z.ZodNumber;
|
|
13252
|
+
label: z.ZodOptional<z.ZodString>;
|
|
13253
|
+
subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13254
|
+
foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13255
|
+
}, z.core.$strict>;
|
|
13256
|
+
declare const scene3DClayLightingSchema: z.ZodObject<{
|
|
13257
|
+
preset: z.ZodEnum<{
|
|
13258
|
+
"clay-studio-v1": "clay-studio-v1";
|
|
13259
|
+
}>;
|
|
13260
|
+
ambientIntensity: z.ZodNumber;
|
|
13261
|
+
keyIntensity: z.ZodNumber;
|
|
13262
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13263
|
+
}, z.core.$strict>;
|
|
13264
|
+
declare const scene3DOverrideSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13265
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
13266
|
+
entityId: z.ZodString;
|
|
13267
|
+
space: z.ZodEnum<{
|
|
13268
|
+
local: "local";
|
|
13269
|
+
world: "world";
|
|
13270
|
+
}>;
|
|
13271
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13272
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13273
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13274
|
+
id: z.ZodString;
|
|
13275
|
+
sourceRevisionId: z.ZodUUID;
|
|
13276
|
+
sourceContentHash: z.ZodString;
|
|
13277
|
+
operationVersion: z.ZodNumber;
|
|
13278
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13279
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
13280
|
+
entityId: z.ZodString;
|
|
13281
|
+
materialRole: z.ZodString;
|
|
13282
|
+
color: z.ZodString;
|
|
13283
|
+
id: z.ZodString;
|
|
13284
|
+
sourceRevisionId: z.ZodUUID;
|
|
13285
|
+
sourceContentHash: z.ZodString;
|
|
13286
|
+
operationVersion: z.ZodNumber;
|
|
13287
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13288
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
13289
|
+
entityId: z.ZodString;
|
|
13290
|
+
visible: z.ZodBoolean;
|
|
13291
|
+
id: z.ZodString;
|
|
13292
|
+
sourceRevisionId: z.ZodUUID;
|
|
13293
|
+
sourceContentHash: z.ZodString;
|
|
13294
|
+
operationVersion: z.ZodNumber;
|
|
13295
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13296
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
13297
|
+
shotId: z.ZodString;
|
|
13298
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13299
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13300
|
+
id: z.ZodString;
|
|
13301
|
+
sourceRevisionId: z.ZodUUID;
|
|
13302
|
+
sourceContentHash: z.ZodString;
|
|
13303
|
+
operationVersion: z.ZodNumber;
|
|
13304
|
+
}, z.core.$strict>], "kind">;
|
|
13305
|
+
declare const scene3DProvenanceSchema: z.ZodObject<{
|
|
13306
|
+
engine: z.ZodString;
|
|
13307
|
+
engineVersion: z.ZodString;
|
|
13308
|
+
recipeVersion: z.ZodString;
|
|
13309
|
+
compilerVersion: z.ZodString;
|
|
13310
|
+
exporterVersion: z.ZodString;
|
|
13311
|
+
rendererVersion: z.ZodString;
|
|
13312
|
+
sourceRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13313
|
+
sourceArtifactId: z.ZodOptional<z.ZodString>;
|
|
13314
|
+
contentHash: z.ZodString;
|
|
13315
|
+
}, z.core.$strict>;
|
|
13316
|
+
type Issue$3 = Scene3DSemanticIssue;
|
|
13317
|
+
/** Decoded byte length of a JSON payload, browser and Node alike. Size is
|
|
13318
|
+
* checked on the BYTES, before `JSON.parse` allocates anything. */
|
|
13319
|
+
declare function scene3DJsonByteLength(text: string): number;
|
|
13320
|
+
/** What every `parse…Json` admission helper returns: the value, or the issues
|
|
13321
|
+
* that stopped it — never a throw, so a route can map issues to a 400. */
|
|
13322
|
+
type Scene3DParseResult<T> = {
|
|
13323
|
+
ok: true;
|
|
13324
|
+
value: T;
|
|
13325
|
+
} | {
|
|
13326
|
+
ok: false;
|
|
13327
|
+
issues: Issue$3[];
|
|
13328
|
+
};
|
|
13329
|
+
/** Flattens a zod failure into the same issue shape the semantic validators use. */
|
|
13330
|
+
declare function scene3DZodIssues(error: z.ZodError): Issue$3[];
|
|
13331
|
+
|
|
13332
|
+
/**
|
|
13333
|
+
* The Scene3D v2 PLAN: whole-manifest schema, every cross-field rule, and the
|
|
13334
|
+
* V1|V2 union the rest of the platform reads.
|
|
13335
|
+
*
|
|
13336
|
+
* `scene3d-v2.ts` says what a v2 entity, asset, shot or override looks like on
|
|
13337
|
+
* its own. Nothing there can catch the failures that actually reach a renderer,
|
|
13338
|
+
* because every one of them is a relationship:
|
|
13339
|
+
*
|
|
13340
|
+
* - an entity whose GLB is not in `assets`, or two entities claiming the same
|
|
13341
|
+
* exported root node;
|
|
13342
|
+
* - a parent chain that loops, or nests deeper than the transform walk allows;
|
|
13343
|
+
* - shots with a one-frame gap, so some frame belongs to no shot at all;
|
|
13344
|
+
* - a colour override naming a material role its entity never declared — the
|
|
13345
|
+
* bug where recolouring a person also repaints its chair;
|
|
13346
|
+
* - two overrides driving one channel, or one driving a locked entity;
|
|
13347
|
+
* - declared asset bytes over the download budget.
|
|
13348
|
+
*
|
|
13349
|
+
* All of it runs in `scene3DPlanV2Issues`, which the schema calls from a
|
|
13350
|
+
* `superRefine` and a caller holding an already-parsed plan can call directly —
|
|
13351
|
+
* the same split v1 uses, so both versions report failures identically.
|
|
13352
|
+
*/
|
|
13353
|
+
|
|
13354
|
+
/** THE plan type. Narrow with `isScene3DPlanV1` / `isScene3DPlanV2` before
|
|
13355
|
+
* reading version-specific fields. */
|
|
13356
|
+
type Scene3DPlan = Scene3DPlanV1 | Scene3DPlanV2;
|
|
13357
|
+
interface Scene3DJobOutputV2 {
|
|
13358
|
+
scenePlan: Scene3DPlanV2;
|
|
13359
|
+
changeSummary?: string;
|
|
13360
|
+
}
|
|
13361
|
+
/** Job output when either version may come back. */
|
|
13362
|
+
interface Scene3DJobOutputAny {
|
|
13363
|
+
scenePlan: Scene3DPlan;
|
|
13364
|
+
changeSummary?: string;
|
|
13365
|
+
}
|
|
13366
|
+
type Issue$2 = Scene3DSemanticIssue;
|
|
13367
|
+
/** An overlay is accepted iff the entity advertises the capability AND has not
|
|
13368
|
+
* frozen it. One rule, checked in exactly one place. */
|
|
13369
|
+
declare function scene3DEntityAcceptsOverlay(entity: Scene3DEntityV2, capability: Scene3DEntityCapability): boolean;
|
|
13370
|
+
/**
|
|
13371
|
+
* Every v2 rule that needs more than one field: timing, identity, hierarchy,
|
|
13372
|
+
* asset resolution and budgets, shot coverage, overlay ownership and locks.
|
|
13373
|
+
*
|
|
13374
|
+
* Split out of the schema's `superRefine` (exactly as v1 does) so a caller
|
|
13375
|
+
* holding an already-parsed plan can re-check it without re-parsing.
|
|
13376
|
+
*/
|
|
13377
|
+
declare function scene3DPlanV2Issues(plan: Scene3DPlanV2): Issue$2[];
|
|
13378
|
+
/**
|
|
13379
|
+
* The v2 object shape WITHOUT the cross-field pass. Exported so
|
|
13380
|
+
* `scene3DAnyPlanSchema` can discriminate on `schemaVersion`; parse with
|
|
13381
|
+
* `scene3DPlanV2Schema`.
|
|
13382
|
+
*
|
|
13383
|
+
* Deliberately free of `.default()`: `parse(x)` must deep-equal `x`, or a
|
|
13384
|
+
* producer hashing raw JSON and a consumer hashing parsed output would compute
|
|
13385
|
+
* different content hashes for the same revision.
|
|
13386
|
+
*/
|
|
13387
|
+
declare const scene3DPlanV2ObjectSchema: z.ZodObject<{
|
|
13388
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
13389
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
13390
|
+
revisionId: z.ZodUUID;
|
|
13391
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13392
|
+
width: z.ZodNumber;
|
|
13393
|
+
height: z.ZodNumber;
|
|
13394
|
+
fps: z.ZodNumber;
|
|
13395
|
+
durationInFrames: z.ZodNumber;
|
|
13396
|
+
units: z.ZodLiteral<"meters">;
|
|
13397
|
+
upAxis: z.ZodLiteral<"Y">;
|
|
13398
|
+
handedness: z.ZodLiteral<"right">;
|
|
13399
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
13400
|
+
id: z.ZodString;
|
|
13401
|
+
name: z.ZodString;
|
|
13402
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
13403
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
13404
|
+
other: "other";
|
|
13405
|
+
person: "person";
|
|
13406
|
+
vehicle: "vehicle";
|
|
13407
|
+
prop: "prop";
|
|
13408
|
+
environment: "environment";
|
|
13409
|
+
}>>;
|
|
13410
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13411
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13412
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13413
|
+
identityColor: z.ZodOptional<z.ZodString>;
|
|
13414
|
+
anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13415
|
+
name: z.ZodString;
|
|
13416
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13417
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13418
|
+
}, z.core.$strict>>>;
|
|
13419
|
+
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13420
|
+
transform: "transform";
|
|
13421
|
+
color: "color";
|
|
13422
|
+
visibility: "visibility";
|
|
13423
|
+
}>>>;
|
|
13424
|
+
locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13425
|
+
transform: "transform";
|
|
13426
|
+
color: "color";
|
|
13427
|
+
visibility: "visibility";
|
|
13428
|
+
}>>>;
|
|
13429
|
+
materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13430
|
+
role: z.ZodString;
|
|
13431
|
+
materialName: z.ZodString;
|
|
13432
|
+
color: z.ZodOptional<z.ZodString>;
|
|
13433
|
+
roughness: z.ZodOptional<z.ZodNumber>;
|
|
13434
|
+
}, z.core.$strict>>>;
|
|
13435
|
+
visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13436
|
+
kind: z.ZodLiteral<"group">;
|
|
13437
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13438
|
+
kind: z.ZodLiteral<"primitive">;
|
|
13439
|
+
primitive: z.ZodEnum<{
|
|
13440
|
+
box: "box";
|
|
13441
|
+
sphere: "sphere";
|
|
13442
|
+
cylinder: "cylinder";
|
|
13443
|
+
cone: "cone";
|
|
13444
|
+
plane: "plane";
|
|
13445
|
+
capsule: "capsule";
|
|
13446
|
+
}>;
|
|
13447
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13448
|
+
color: z.ZodString;
|
|
13449
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13450
|
+
kind: z.ZodLiteral<"asset">;
|
|
13451
|
+
assetId: z.ZodString;
|
|
13452
|
+
rootNodeId: z.ZodString;
|
|
13453
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
13454
|
+
clipName: z.ZodString;
|
|
13455
|
+
startFrame: z.ZodNumber;
|
|
13456
|
+
endFrameExclusive: z.ZodNumber;
|
|
13457
|
+
loop: z.ZodOptional<z.ZodBoolean>;
|
|
13458
|
+
}, z.core.$strict>>;
|
|
13459
|
+
}, z.core.$strict>], "kind">;
|
|
13460
|
+
}, z.core.$strict>>;
|
|
13461
|
+
assets: z.ZodArray<z.ZodObject<{
|
|
13462
|
+
assetId: z.ZodString;
|
|
13463
|
+
kind: z.ZodEnum<{
|
|
13464
|
+
glb: "glb";
|
|
13465
|
+
"camera-track-json": "camera-track-json";
|
|
13466
|
+
poster: "poster";
|
|
13467
|
+
"validation-report": "validation-report";
|
|
13468
|
+
"blend-source": "blend-source";
|
|
13469
|
+
}>;
|
|
13470
|
+
role: z.ZodEnum<{
|
|
13471
|
+
source: "source";
|
|
13472
|
+
poster: "poster";
|
|
13473
|
+
"validation-report": "validation-report";
|
|
13474
|
+
"scene-geometry": "scene-geometry";
|
|
13475
|
+
"entity-geometry": "entity-geometry";
|
|
13476
|
+
"camera-track": "camera-track";
|
|
13477
|
+
}>;
|
|
13478
|
+
byteLength: z.ZodNumber;
|
|
13479
|
+
sha256: z.ZodString;
|
|
13480
|
+
originRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13481
|
+
}, z.core.$strict>>;
|
|
13482
|
+
cameraTrackAssetId: z.ZodString;
|
|
13483
|
+
shots: z.ZodArray<z.ZodObject<{
|
|
13484
|
+
id: z.ZodString;
|
|
13485
|
+
startFrame: z.ZodNumber;
|
|
13486
|
+
endFrameExclusive: z.ZodNumber;
|
|
13487
|
+
label: z.ZodOptional<z.ZodString>;
|
|
13488
|
+
subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13489
|
+
foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13490
|
+
}, z.core.$strict>>;
|
|
13491
|
+
lighting: z.ZodObject<{
|
|
13492
|
+
preset: z.ZodEnum<{
|
|
13493
|
+
"clay-studio-v1": "clay-studio-v1";
|
|
13494
|
+
}>;
|
|
13495
|
+
ambientIntensity: z.ZodNumber;
|
|
13496
|
+
keyIntensity: z.ZodNumber;
|
|
13497
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13498
|
+
}, z.core.$strict>;
|
|
13499
|
+
backgroundColor: z.ZodString;
|
|
13500
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13501
|
+
id: z.ZodString;
|
|
13502
|
+
url: z.ZodString;
|
|
13503
|
+
kind: z.ZodEnum<{
|
|
13504
|
+
image: "image";
|
|
13505
|
+
video: "video";
|
|
13506
|
+
}>;
|
|
13507
|
+
role: z.ZodEnum<{
|
|
13508
|
+
motion: "motion";
|
|
13509
|
+
layout: "layout";
|
|
13510
|
+
appearance: "appearance";
|
|
13511
|
+
}>;
|
|
13512
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
13513
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
13514
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
13515
|
+
}, z.core.$strict>>>;
|
|
13516
|
+
overrides: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13517
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
13518
|
+
entityId: z.ZodString;
|
|
13519
|
+
space: z.ZodEnum<{
|
|
13520
|
+
local: "local";
|
|
13521
|
+
world: "world";
|
|
13522
|
+
}>;
|
|
13523
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13524
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13525
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13526
|
+
id: z.ZodString;
|
|
13527
|
+
sourceRevisionId: z.ZodUUID;
|
|
13528
|
+
sourceContentHash: z.ZodString;
|
|
13529
|
+
operationVersion: z.ZodNumber;
|
|
13530
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13531
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
13532
|
+
entityId: z.ZodString;
|
|
13533
|
+
materialRole: z.ZodString;
|
|
13534
|
+
color: z.ZodString;
|
|
13535
|
+
id: z.ZodString;
|
|
13536
|
+
sourceRevisionId: z.ZodUUID;
|
|
13537
|
+
sourceContentHash: z.ZodString;
|
|
13538
|
+
operationVersion: z.ZodNumber;
|
|
13539
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13540
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
13541
|
+
entityId: z.ZodString;
|
|
13542
|
+
visible: z.ZodBoolean;
|
|
13543
|
+
id: z.ZodString;
|
|
13544
|
+
sourceRevisionId: z.ZodUUID;
|
|
13545
|
+
sourceContentHash: z.ZodString;
|
|
13546
|
+
operationVersion: z.ZodNumber;
|
|
13547
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13548
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
13549
|
+
shotId: z.ZodString;
|
|
13550
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13551
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13552
|
+
id: z.ZodString;
|
|
13553
|
+
sourceRevisionId: z.ZodUUID;
|
|
13554
|
+
sourceContentHash: z.ZodString;
|
|
13555
|
+
operationVersion: z.ZodNumber;
|
|
13556
|
+
}, z.core.$strict>], "kind">>>;
|
|
13557
|
+
provenance: z.ZodObject<{
|
|
13558
|
+
engine: z.ZodString;
|
|
13559
|
+
engineVersion: z.ZodString;
|
|
13560
|
+
recipeVersion: z.ZodString;
|
|
13561
|
+
compilerVersion: z.ZodString;
|
|
13562
|
+
exporterVersion: z.ZodString;
|
|
13563
|
+
rendererVersion: z.ZodString;
|
|
13564
|
+
sourceRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13565
|
+
sourceArtifactId: z.ZodOptional<z.ZodString>;
|
|
13566
|
+
contentHash: z.ZodString;
|
|
13567
|
+
}, z.core.$strict>;
|
|
13568
|
+
}, z.core.$strict>;
|
|
13569
|
+
/** THE v2 plan validator: structure first, then the cross-field rules. */
|
|
13570
|
+
declare const scene3DPlanV2Schema: z.ZodObject<{
|
|
13571
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
13572
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
13573
|
+
revisionId: z.ZodUUID;
|
|
13574
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13575
|
+
width: z.ZodNumber;
|
|
13576
|
+
height: z.ZodNumber;
|
|
13577
|
+
fps: z.ZodNumber;
|
|
13578
|
+
durationInFrames: z.ZodNumber;
|
|
13579
|
+
units: z.ZodLiteral<"meters">;
|
|
13580
|
+
upAxis: z.ZodLiteral<"Y">;
|
|
13581
|
+
handedness: z.ZodLiteral<"right">;
|
|
13582
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
13583
|
+
id: z.ZodString;
|
|
13584
|
+
name: z.ZodString;
|
|
13585
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
13586
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
13587
|
+
other: "other";
|
|
13588
|
+
person: "person";
|
|
13589
|
+
vehicle: "vehicle";
|
|
13590
|
+
prop: "prop";
|
|
13591
|
+
environment: "environment";
|
|
13592
|
+
}>>;
|
|
13593
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13594
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13595
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13596
|
+
identityColor: z.ZodOptional<z.ZodString>;
|
|
13597
|
+
anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13598
|
+
name: z.ZodString;
|
|
13599
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13600
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13601
|
+
}, z.core.$strict>>>;
|
|
13602
|
+
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13603
|
+
transform: "transform";
|
|
13604
|
+
color: "color";
|
|
13605
|
+
visibility: "visibility";
|
|
13606
|
+
}>>>;
|
|
13607
|
+
locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13608
|
+
transform: "transform";
|
|
13609
|
+
color: "color";
|
|
13610
|
+
visibility: "visibility";
|
|
13611
|
+
}>>>;
|
|
13612
|
+
materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13613
|
+
role: z.ZodString;
|
|
13614
|
+
materialName: z.ZodString;
|
|
13615
|
+
color: z.ZodOptional<z.ZodString>;
|
|
13616
|
+
roughness: z.ZodOptional<z.ZodNumber>;
|
|
13617
|
+
}, z.core.$strict>>>;
|
|
13618
|
+
visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13619
|
+
kind: z.ZodLiteral<"group">;
|
|
13620
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13621
|
+
kind: z.ZodLiteral<"primitive">;
|
|
13622
|
+
primitive: z.ZodEnum<{
|
|
13623
|
+
box: "box";
|
|
13624
|
+
sphere: "sphere";
|
|
13625
|
+
cylinder: "cylinder";
|
|
13626
|
+
cone: "cone";
|
|
13627
|
+
plane: "plane";
|
|
13628
|
+
capsule: "capsule";
|
|
13629
|
+
}>;
|
|
13630
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13631
|
+
color: z.ZodString;
|
|
13632
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13633
|
+
kind: z.ZodLiteral<"asset">;
|
|
13634
|
+
assetId: z.ZodString;
|
|
13635
|
+
rootNodeId: z.ZodString;
|
|
13636
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
13637
|
+
clipName: z.ZodString;
|
|
13638
|
+
startFrame: z.ZodNumber;
|
|
13639
|
+
endFrameExclusive: z.ZodNumber;
|
|
13640
|
+
loop: z.ZodOptional<z.ZodBoolean>;
|
|
13641
|
+
}, z.core.$strict>>;
|
|
13642
|
+
}, z.core.$strict>], "kind">;
|
|
13643
|
+
}, z.core.$strict>>;
|
|
13644
|
+
assets: z.ZodArray<z.ZodObject<{
|
|
13645
|
+
assetId: z.ZodString;
|
|
13646
|
+
kind: z.ZodEnum<{
|
|
13647
|
+
glb: "glb";
|
|
13648
|
+
"camera-track-json": "camera-track-json";
|
|
13649
|
+
poster: "poster";
|
|
13650
|
+
"validation-report": "validation-report";
|
|
13651
|
+
"blend-source": "blend-source";
|
|
13652
|
+
}>;
|
|
13653
|
+
role: z.ZodEnum<{
|
|
13654
|
+
source: "source";
|
|
13655
|
+
poster: "poster";
|
|
13656
|
+
"validation-report": "validation-report";
|
|
13657
|
+
"scene-geometry": "scene-geometry";
|
|
13658
|
+
"entity-geometry": "entity-geometry";
|
|
13659
|
+
"camera-track": "camera-track";
|
|
13660
|
+
}>;
|
|
13661
|
+
byteLength: z.ZodNumber;
|
|
13662
|
+
sha256: z.ZodString;
|
|
13663
|
+
originRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13664
|
+
}, z.core.$strict>>;
|
|
13665
|
+
cameraTrackAssetId: z.ZodString;
|
|
13666
|
+
shots: z.ZodArray<z.ZodObject<{
|
|
13667
|
+
id: z.ZodString;
|
|
13668
|
+
startFrame: z.ZodNumber;
|
|
13669
|
+
endFrameExclusive: z.ZodNumber;
|
|
13670
|
+
label: z.ZodOptional<z.ZodString>;
|
|
13671
|
+
subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13672
|
+
foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13673
|
+
}, z.core.$strict>>;
|
|
13674
|
+
lighting: z.ZodObject<{
|
|
13675
|
+
preset: z.ZodEnum<{
|
|
13676
|
+
"clay-studio-v1": "clay-studio-v1";
|
|
13677
|
+
}>;
|
|
13678
|
+
ambientIntensity: z.ZodNumber;
|
|
13679
|
+
keyIntensity: z.ZodNumber;
|
|
13680
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13681
|
+
}, z.core.$strict>;
|
|
13682
|
+
backgroundColor: z.ZodString;
|
|
13683
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13684
|
+
id: z.ZodString;
|
|
13685
|
+
url: z.ZodString;
|
|
13686
|
+
kind: z.ZodEnum<{
|
|
13687
|
+
image: "image";
|
|
13688
|
+
video: "video";
|
|
13689
|
+
}>;
|
|
13690
|
+
role: z.ZodEnum<{
|
|
13691
|
+
motion: "motion";
|
|
13692
|
+
layout: "layout";
|
|
13693
|
+
appearance: "appearance";
|
|
13694
|
+
}>;
|
|
13695
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
13696
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
13697
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
13698
|
+
}, z.core.$strict>>>;
|
|
13699
|
+
overrides: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13700
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
13701
|
+
entityId: z.ZodString;
|
|
13702
|
+
space: z.ZodEnum<{
|
|
13703
|
+
local: "local";
|
|
13704
|
+
world: "world";
|
|
13705
|
+
}>;
|
|
13706
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13707
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13708
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13709
|
+
id: z.ZodString;
|
|
13710
|
+
sourceRevisionId: z.ZodUUID;
|
|
13711
|
+
sourceContentHash: z.ZodString;
|
|
13712
|
+
operationVersion: z.ZodNumber;
|
|
13713
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13714
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
13715
|
+
entityId: z.ZodString;
|
|
13716
|
+
materialRole: z.ZodString;
|
|
13717
|
+
color: z.ZodString;
|
|
13718
|
+
id: z.ZodString;
|
|
13719
|
+
sourceRevisionId: z.ZodUUID;
|
|
13720
|
+
sourceContentHash: z.ZodString;
|
|
13721
|
+
operationVersion: z.ZodNumber;
|
|
13722
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13723
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
13724
|
+
entityId: z.ZodString;
|
|
13725
|
+
visible: z.ZodBoolean;
|
|
13726
|
+
id: z.ZodString;
|
|
13727
|
+
sourceRevisionId: z.ZodUUID;
|
|
13728
|
+
sourceContentHash: z.ZodString;
|
|
13729
|
+
operationVersion: z.ZodNumber;
|
|
13730
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13731
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
13732
|
+
shotId: z.ZodString;
|
|
13733
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13734
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13735
|
+
id: z.ZodString;
|
|
13736
|
+
sourceRevisionId: z.ZodUUID;
|
|
13737
|
+
sourceContentHash: z.ZodString;
|
|
13738
|
+
operationVersion: z.ZodNumber;
|
|
13739
|
+
}, z.core.$strict>], "kind">>>;
|
|
13740
|
+
provenance: z.ZodObject<{
|
|
13741
|
+
engine: z.ZodString;
|
|
13742
|
+
engineVersion: z.ZodString;
|
|
13743
|
+
recipeVersion: z.ZodString;
|
|
13744
|
+
compilerVersion: z.ZodString;
|
|
13745
|
+
exporterVersion: z.ZodString;
|
|
13746
|
+
rendererVersion: z.ZodString;
|
|
13747
|
+
sourceRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13748
|
+
sourceArtifactId: z.ZodOptional<z.ZodString>;
|
|
13749
|
+
contentHash: z.ZodString;
|
|
13750
|
+
}, z.core.$strict>;
|
|
13751
|
+
}, z.core.$strict>;
|
|
13752
|
+
/**
|
|
13753
|
+
* Either version, discriminated on `schemaVersion` — so an unknown version
|
|
13754
|
+
* reports "Invalid discriminator value. Expected '1' | '2'" instead of a pile
|
|
13755
|
+
* of unknown-key errors from whichever branch failed last.
|
|
13756
|
+
*/
|
|
13757
|
+
declare const scene3DAnyPlanSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13758
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
13759
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
13760
|
+
revisionId: z.ZodUUID;
|
|
13761
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13762
|
+
width: z.ZodNumber;
|
|
13763
|
+
height: z.ZodNumber;
|
|
13764
|
+
fps: z.ZodNumber;
|
|
13765
|
+
durationInFrames: z.ZodNumber;
|
|
13766
|
+
backgroundColor: z.ZodString;
|
|
13767
|
+
camera: z.ZodObject<{
|
|
13768
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13769
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13770
|
+
focalLengthMm: z.ZodNumber;
|
|
13771
|
+
sensorWidthMm: z.ZodDefault<z.ZodNumber>;
|
|
13772
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13773
|
+
frame: z.ZodNumber;
|
|
13774
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13775
|
+
target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13776
|
+
focalLengthMm: z.ZodOptional<z.ZodNumber>;
|
|
13777
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
13778
|
+
linear: "linear";
|
|
13779
|
+
easeInOut: "easeInOut";
|
|
13780
|
+
}>>;
|
|
13781
|
+
}, z.core.$strict>>>;
|
|
13782
|
+
}, z.core.$strict>;
|
|
13783
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
13784
|
+
id: z.ZodString;
|
|
13785
|
+
name: z.ZodString;
|
|
13786
|
+
primitive: z.ZodEnum<{
|
|
13787
|
+
group: "group";
|
|
13788
|
+
box: "box";
|
|
13789
|
+
sphere: "sphere";
|
|
13790
|
+
cylinder: "cylinder";
|
|
13791
|
+
cone: "cone";
|
|
13792
|
+
plane: "plane";
|
|
13793
|
+
capsule: "capsule";
|
|
13794
|
+
}>;
|
|
13795
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
13796
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13797
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13798
|
+
rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13799
|
+
scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13800
|
+
color: z.ZodString;
|
|
13801
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13802
|
+
frame: z.ZodNumber;
|
|
13803
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13804
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13805
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13806
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
13807
|
+
linear: "linear";
|
|
13808
|
+
easeInOut: "easeInOut";
|
|
13809
|
+
}>>;
|
|
13810
|
+
}, z.core.$strict>>>;
|
|
13811
|
+
}, z.core.$strict>>;
|
|
13812
|
+
lighting: z.ZodObject<{
|
|
13813
|
+
ambientIntensity: z.ZodNumber;
|
|
13814
|
+
keyIntensity: z.ZodNumber;
|
|
13815
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13816
|
+
}, z.core.$strict>;
|
|
13817
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13818
|
+
id: z.ZodString;
|
|
13819
|
+
url: z.ZodString;
|
|
13820
|
+
kind: z.ZodEnum<{
|
|
13821
|
+
image: "image";
|
|
13822
|
+
video: "video";
|
|
13823
|
+
}>;
|
|
13824
|
+
role: z.ZodEnum<{
|
|
13825
|
+
motion: "motion";
|
|
13826
|
+
layout: "layout";
|
|
13827
|
+
appearance: "appearance";
|
|
13828
|
+
}>;
|
|
13829
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
13830
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
13831
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
13832
|
+
}, z.core.$strict>>>;
|
|
13833
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13834
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
13835
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
13836
|
+
revisionId: z.ZodUUID;
|
|
13837
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13838
|
+
width: z.ZodNumber;
|
|
13839
|
+
height: z.ZodNumber;
|
|
13840
|
+
fps: z.ZodNumber;
|
|
13841
|
+
durationInFrames: z.ZodNumber;
|
|
13842
|
+
units: z.ZodLiteral<"meters">;
|
|
13843
|
+
upAxis: z.ZodLiteral<"Y">;
|
|
13844
|
+
handedness: z.ZodLiteral<"right">;
|
|
13845
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
13846
|
+
id: z.ZodString;
|
|
13847
|
+
name: z.ZodString;
|
|
13848
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
13849
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
13850
|
+
other: "other";
|
|
13851
|
+
person: "person";
|
|
13852
|
+
vehicle: "vehicle";
|
|
13853
|
+
prop: "prop";
|
|
13854
|
+
environment: "environment";
|
|
13855
|
+
}>>;
|
|
13856
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13857
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13858
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13859
|
+
identityColor: z.ZodOptional<z.ZodString>;
|
|
13860
|
+
anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13861
|
+
name: z.ZodString;
|
|
13862
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13863
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13864
|
+
}, z.core.$strict>>>;
|
|
13865
|
+
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13866
|
+
transform: "transform";
|
|
13867
|
+
color: "color";
|
|
13868
|
+
visibility: "visibility";
|
|
13869
|
+
}>>>;
|
|
13870
|
+
locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13871
|
+
transform: "transform";
|
|
13872
|
+
color: "color";
|
|
13873
|
+
visibility: "visibility";
|
|
13874
|
+
}>>>;
|
|
13875
|
+
materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13876
|
+
role: z.ZodString;
|
|
13877
|
+
materialName: z.ZodString;
|
|
13878
|
+
color: z.ZodOptional<z.ZodString>;
|
|
13879
|
+
roughness: z.ZodOptional<z.ZodNumber>;
|
|
13880
|
+
}, z.core.$strict>>>;
|
|
13881
|
+
visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13882
|
+
kind: z.ZodLiteral<"group">;
|
|
13883
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13884
|
+
kind: z.ZodLiteral<"primitive">;
|
|
13885
|
+
primitive: z.ZodEnum<{
|
|
13886
|
+
box: "box";
|
|
13887
|
+
sphere: "sphere";
|
|
13888
|
+
cylinder: "cylinder";
|
|
13889
|
+
cone: "cone";
|
|
13890
|
+
plane: "plane";
|
|
13891
|
+
capsule: "capsule";
|
|
13892
|
+
}>;
|
|
13893
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13894
|
+
color: z.ZodString;
|
|
13895
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13896
|
+
kind: z.ZodLiteral<"asset">;
|
|
13897
|
+
assetId: z.ZodString;
|
|
13898
|
+
rootNodeId: z.ZodString;
|
|
13899
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
13900
|
+
clipName: z.ZodString;
|
|
13901
|
+
startFrame: z.ZodNumber;
|
|
13902
|
+
endFrameExclusive: z.ZodNumber;
|
|
13903
|
+
loop: z.ZodOptional<z.ZodBoolean>;
|
|
13904
|
+
}, z.core.$strict>>;
|
|
13905
|
+
}, z.core.$strict>], "kind">;
|
|
13906
|
+
}, z.core.$strict>>;
|
|
13907
|
+
assets: z.ZodArray<z.ZodObject<{
|
|
13908
|
+
assetId: z.ZodString;
|
|
13909
|
+
kind: z.ZodEnum<{
|
|
13910
|
+
glb: "glb";
|
|
13911
|
+
"camera-track-json": "camera-track-json";
|
|
13912
|
+
poster: "poster";
|
|
13913
|
+
"validation-report": "validation-report";
|
|
13914
|
+
"blend-source": "blend-source";
|
|
13915
|
+
}>;
|
|
13916
|
+
role: z.ZodEnum<{
|
|
13917
|
+
source: "source";
|
|
13918
|
+
poster: "poster";
|
|
13919
|
+
"validation-report": "validation-report";
|
|
13920
|
+
"scene-geometry": "scene-geometry";
|
|
13921
|
+
"entity-geometry": "entity-geometry";
|
|
13922
|
+
"camera-track": "camera-track";
|
|
13923
|
+
}>;
|
|
13924
|
+
byteLength: z.ZodNumber;
|
|
13925
|
+
sha256: z.ZodString;
|
|
13926
|
+
originRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
13927
|
+
}, z.core.$strict>>;
|
|
13928
|
+
cameraTrackAssetId: z.ZodString;
|
|
13929
|
+
shots: z.ZodArray<z.ZodObject<{
|
|
13930
|
+
id: z.ZodString;
|
|
13931
|
+
startFrame: z.ZodNumber;
|
|
13932
|
+
endFrameExclusive: z.ZodNumber;
|
|
13933
|
+
label: z.ZodOptional<z.ZodString>;
|
|
13934
|
+
subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13935
|
+
foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13936
|
+
}, z.core.$strict>>;
|
|
13937
|
+
lighting: z.ZodObject<{
|
|
13938
|
+
preset: z.ZodEnum<{
|
|
13939
|
+
"clay-studio-v1": "clay-studio-v1";
|
|
13940
|
+
}>;
|
|
13941
|
+
ambientIntensity: z.ZodNumber;
|
|
13942
|
+
keyIntensity: z.ZodNumber;
|
|
13943
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
13944
|
+
}, z.core.$strict>;
|
|
13945
|
+
backgroundColor: z.ZodString;
|
|
13946
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13947
|
+
id: z.ZodString;
|
|
13948
|
+
url: z.ZodString;
|
|
13949
|
+
kind: z.ZodEnum<{
|
|
13950
|
+
image: "image";
|
|
13951
|
+
video: "video";
|
|
13952
|
+
}>;
|
|
13953
|
+
role: z.ZodEnum<{
|
|
13954
|
+
motion: "motion";
|
|
13955
|
+
layout: "layout";
|
|
13956
|
+
appearance: "appearance";
|
|
13957
|
+
}>;
|
|
13958
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
13959
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
13960
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
13961
|
+
}, z.core.$strict>>>;
|
|
13962
|
+
overrides: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13963
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
13964
|
+
entityId: z.ZodString;
|
|
13965
|
+
space: z.ZodEnum<{
|
|
13966
|
+
local: "local";
|
|
13967
|
+
world: "world";
|
|
13968
|
+
}>;
|
|
13969
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13970
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13971
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13972
|
+
id: z.ZodString;
|
|
13973
|
+
sourceRevisionId: z.ZodUUID;
|
|
13974
|
+
sourceContentHash: z.ZodString;
|
|
13975
|
+
operationVersion: z.ZodNumber;
|
|
13976
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13977
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
13978
|
+
entityId: z.ZodString;
|
|
13979
|
+
materialRole: z.ZodString;
|
|
13980
|
+
color: z.ZodString;
|
|
13981
|
+
id: z.ZodString;
|
|
13982
|
+
sourceRevisionId: z.ZodUUID;
|
|
13983
|
+
sourceContentHash: z.ZodString;
|
|
13984
|
+
operationVersion: z.ZodNumber;
|
|
13985
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13986
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
13987
|
+
entityId: z.ZodString;
|
|
13988
|
+
visible: z.ZodBoolean;
|
|
13989
|
+
id: z.ZodString;
|
|
13990
|
+
sourceRevisionId: z.ZodUUID;
|
|
13991
|
+
sourceContentHash: z.ZodString;
|
|
13992
|
+
operationVersion: z.ZodNumber;
|
|
13993
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13994
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
13995
|
+
shotId: z.ZodString;
|
|
13996
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13997
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
13998
|
+
id: z.ZodString;
|
|
13999
|
+
sourceRevisionId: z.ZodUUID;
|
|
14000
|
+
sourceContentHash: z.ZodString;
|
|
14001
|
+
operationVersion: z.ZodNumber;
|
|
14002
|
+
}, z.core.$strict>], "kind">>>;
|
|
14003
|
+
provenance: z.ZodObject<{
|
|
14004
|
+
engine: z.ZodString;
|
|
14005
|
+
engineVersion: z.ZodString;
|
|
14006
|
+
recipeVersion: z.ZodString;
|
|
14007
|
+
compilerVersion: z.ZodString;
|
|
14008
|
+
exporterVersion: z.ZodString;
|
|
14009
|
+
rendererVersion: z.ZodString;
|
|
14010
|
+
sourceRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
14011
|
+
sourceArtifactId: z.ZodOptional<z.ZodString>;
|
|
14012
|
+
contentHash: z.ZodString;
|
|
14013
|
+
}, z.core.$strict>;
|
|
14014
|
+
}, z.core.$strict>], "schemaVersion">;
|
|
14015
|
+
/** Zod for a client's `acceptedSceneSchemaVersions`. */
|
|
14016
|
+
declare const scene3DAcceptedSchemaVersionsSchema: z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
|
|
14017
|
+
declare function isScene3DPlanV2(value: unknown): value is Scene3DPlanV2;
|
|
14018
|
+
/** Accepts EITHER version. `isScene3DPlanV1` (in `scene3d.ts`) is the v1-only
|
|
14019
|
+
* form; narrow with one of them before reading version-specific fields. */
|
|
14020
|
+
declare function isScene3DPlan(value: unknown): value is Scene3DPlan;
|
|
14021
|
+
/**
|
|
14022
|
+
* The schema version a value CLAIMS, without validating the rest of it.
|
|
14023
|
+
*
|
|
14024
|
+
* Returns the number even when this package cannot handle it, so an SDK
|
|
14025
|
+
* consumer can say "this scene is v3, upgrade to render it" instead of "invalid
|
|
14026
|
+
* plan". `null` means it is not a Scene3D plan at all.
|
|
14027
|
+
*/
|
|
14028
|
+
declare function scene3DPlanSchemaVersion(value: unknown): number | null;
|
|
14029
|
+
declare function isScene3DSchemaVersionSupported(version: number): version is Scene3DSupportedSchemaVersion;
|
|
14030
|
+
declare function isKnownScene3DEngine(engine: string): engine is Scene3DKnownEngine;
|
|
14031
|
+
/**
|
|
14032
|
+
* The shot owning `frame`, or `-1`. Ranges are half-open and contiguous, so
|
|
14033
|
+
* this is total over `[0, durationInFrames)` on a validated plan — and it is
|
|
14034
|
+
* the ONLY place a renderer decides which side of a cut a frame is on.
|
|
14035
|
+
*/
|
|
14036
|
+
declare function scene3DShotIndexForFrame(shots: readonly Scene3DShot[], frame: number): number;
|
|
14037
|
+
declare function scene3DShotForFrame(shots: readonly Scene3DShot[], frame: number): Scene3DShot | undefined;
|
|
14038
|
+
|
|
14039
|
+
/**
|
|
14040
|
+
* Scene3D v2 resource admission and revision identity.
|
|
14041
|
+
*
|
|
14042
|
+
* Two gates and one hash, all of which have to agree across the builder, the
|
|
14043
|
+
* platform route and the renderer — so they live in one published place instead
|
|
14044
|
+
* of being re-derived three times.
|
|
14045
|
+
*
|
|
14046
|
+
* **Pre-allocation gate** (`scene3DV2AdmissionIssues`). Everything checkable
|
|
14047
|
+
* from the manifest alone, BEFORE a byte is fetched or a decoder is handed
|
|
14048
|
+
* anything: declared asset sizes, counts, timeline length, hierarchy depth, and
|
|
14049
|
+
* the decoded size of the manifest itself. A limit enforced after the download
|
|
14050
|
+
* is not a limit.
|
|
14051
|
+
*
|
|
14052
|
+
* **Post-decode gate** (`scene3DV2NormalizationIssues`). What only the actual
|
|
14053
|
+
* bytes can answer: real length versus declared, digest versus declared,
|
|
14054
|
+
* triangles, mesh nodes, node depth, image dimensions. A 2 MiB GLB can decode
|
|
14055
|
+
* to a hundred million triangles, so compression never waives a geometry
|
|
14056
|
+
* budget.
|
|
14057
|
+
*
|
|
14058
|
+
* **Content hash.** The canonical form of a revision, which is what makes
|
|
14059
|
+
* "these two revisions are the same scene" a decidable question — for
|
|
14060
|
+
* content-addressed caching, and for asserting after a rebuild that the entities
|
|
14061
|
+
* the user locked really did come back unchanged.
|
|
14062
|
+
*/
|
|
14063
|
+
|
|
14064
|
+
type Issue$1 = Scene3DSemanticIssue;
|
|
14065
|
+
interface Scene3DV2ResourceUsage {
|
|
14066
|
+
entities: number;
|
|
14067
|
+
assets: number;
|
|
14068
|
+
shots: number;
|
|
14069
|
+
overrides: number;
|
|
14070
|
+
references: number;
|
|
14071
|
+
frames: number;
|
|
14072
|
+
durationSeconds: number;
|
|
14073
|
+
/** Deepest entity parent chain, 1 for a flat scene. */
|
|
14074
|
+
hierarchyDepth: number;
|
|
14075
|
+
/** Declared bytes of everything the browser downloads. */
|
|
14076
|
+
rendererAssetBytes: number;
|
|
14077
|
+
/** Declared bytes of the camera sidecar. */
|
|
14078
|
+
cameraTrackBytes: number;
|
|
14079
|
+
/** Declared bytes of the retained native source, which the browser never sees. */
|
|
14080
|
+
blendSourceBytes: number;
|
|
14081
|
+
}
|
|
14082
|
+
/** Deepest parent chain, counting the entity itself. Bounded by the entity
|
|
14083
|
+
* count even on a cyclic plan, so it is safe to call before validation. */
|
|
14084
|
+
declare function scene3DV2HierarchyDepth(entities: readonly Scene3DEntityV2[]): number;
|
|
14085
|
+
/** What this manifest CLAIMS it will cost. Also the shape a capabilities or
|
|
14086
|
+
* quote surface displays — it is derived, never authored. */
|
|
14087
|
+
declare function scene3DV2ResourceUsage(plan: Scene3DPlanV2): Scene3DV2ResourceUsage;
|
|
14088
|
+
/**
|
|
14089
|
+
* The pre-allocation gate. `manifestBytes` is the DECODED size of the manifest
|
|
14090
|
+
* as it arrived — pass it when admitting a downloaded manifest, omit it when
|
|
14091
|
+
* the plan is already in memory.
|
|
14092
|
+
*
|
|
14093
|
+
* Most of these are also enforced by `scene3DPlanV2Schema`; this function is
|
|
14094
|
+
* what a caller runs when it wants the budget answer without re-parsing, and
|
|
14095
|
+
* what makes the ceilings quotable in one place by capabilities and docs.
|
|
14096
|
+
*/
|
|
14097
|
+
declare function scene3DV2AdmissionIssues(plan: Scene3DPlanV2, manifestBytes?: number): Issue$1[];
|
|
14098
|
+
/**
|
|
14099
|
+
* What the normalizer measured on the ACTUAL bytes of one asset. Optional
|
|
14100
|
+
* fields are "not applicable to this kind" — a poster has image dimensions and
|
|
14101
|
+
* no triangles; a GLB is the other way round.
|
|
14102
|
+
*/
|
|
14103
|
+
interface Scene3DNormalizedAssetStats {
|
|
14104
|
+
assetId: string;
|
|
14105
|
+
kind: Scene3DAssetKind;
|
|
14106
|
+
/** Decoded length, after any transport compression. */
|
|
14107
|
+
byteLength: number;
|
|
14108
|
+
/** Digest of the decoded bytes, lowercase hex, when computed. */
|
|
14109
|
+
sha256?: string;
|
|
14110
|
+
meshNodes?: number;
|
|
14111
|
+
triangles?: number;
|
|
14112
|
+
/** Deepest node chain inside the asset's own scene graph. */
|
|
14113
|
+
maxNodeDepth?: number;
|
|
14114
|
+
imageWidth?: number;
|
|
14115
|
+
imageHeight?: number;
|
|
14116
|
+
}
|
|
14117
|
+
/**
|
|
14118
|
+
* The post-decode gate: does what arrived match what the manifest promised, and
|
|
14119
|
+
* does the resolved geometry fit the budget?
|
|
14120
|
+
*
|
|
14121
|
+
* Mesh nodes and triangles are summed ACROSS assets — the ceiling is on the
|
|
14122
|
+
* scene the renderer assembles, not on any single file.
|
|
14123
|
+
*/
|
|
14124
|
+
declare function scene3DV2NormalizationIssues(plan: Scene3DPlanV2, stats: readonly Scene3DNormalizedAssetStats[]): Issue$1[];
|
|
14125
|
+
/** Size-gate on the bytes, then parse, then the full v2 schema. Refuses an
|
|
14126
|
+
* oversized manifest before `JSON.parse` allocates it. */
|
|
14127
|
+
declare function parseScene3DPlanV2Json(text: string): Scene3DParseResult<Scene3DPlanV2>;
|
|
14128
|
+
/**
|
|
14129
|
+
* Fields excluded from the canonical form.
|
|
14130
|
+
*
|
|
14131
|
+
* `revisionId`/`parentRevisionId` are IDENTITY, not content: two revisions with
|
|
14132
|
+
* the same scene must hash the same, or a content-addressed cache never hits
|
|
14133
|
+
* and "did the rebuild preserve the locked entities?" cannot be answered by
|
|
14134
|
+
* comparing hashes. `provenance.contentHash` is excluded because a value cannot
|
|
14135
|
+
* contain its own hash.
|
|
14136
|
+
*
|
|
14137
|
+
* Everything else is in — entities, anchors, material bindings, overrides, asset
|
|
14138
|
+
* digests, shots, lighting, provenance versions.
|
|
14139
|
+
*/
|
|
14140
|
+
declare const SCENE3D_V2_CONTENT_HASH_EXCLUDED: readonly ["revisionId", "parentRevisionId"];
|
|
14141
|
+
/**
|
|
14142
|
+
* The exact bytes a revision's content hash is computed over: recursively
|
|
14143
|
+
* key-sorted JSON with the identity fields removed. Key order in the input
|
|
14144
|
+
* cannot change the result, so a manifest that survives a round-trip through a
|
|
14145
|
+
* database or a re-serialization still hashes the same.
|
|
14146
|
+
*/
|
|
14147
|
+
declare function canonicalScene3DPlanV2Json(plan: Scene3DPlanV2): string;
|
|
14148
|
+
/**
|
|
14149
|
+
* SHA-256 of the canonical form, lowercase hex — the value that belongs in
|
|
14150
|
+
* `provenance.contentHash`. Uses WebCrypto, which the browser, Node 18+ and the
|
|
14151
|
+
* Remotion renderer all expose, so producer and consumer compute it the same
|
|
14152
|
+
* way.
|
|
14153
|
+
*/
|
|
14154
|
+
declare function computeScene3DPlanV2ContentHash(plan: Scene3DPlanV2): Promise<string>;
|
|
14155
|
+
/** Does the manifest's declared `provenance.contentHash` match its content? */
|
|
14156
|
+
declare function verifyScene3DPlanV2ContentHash(plan: Scene3DPlanV2): Promise<boolean>;
|
|
14157
|
+
|
|
14158
|
+
/**
|
|
14159
|
+
* The Scene3D v2 camera sidecar — one baked sample per frame.
|
|
14160
|
+
*
|
|
14161
|
+
* A 30-second scene is 720 camera samples. V1's 240-keyframe interpolated track
|
|
14162
|
+
* cannot carry that, and interpolating a sparse track across a hard cut blends
|
|
14163
|
+
* two shots into a frame that belongs to neither. So v2 moves the camera out of
|
|
14164
|
+
* the manifest into this dense JSON asset, and the rule becomes trivial:
|
|
14165
|
+
*
|
|
14166
|
+
* **at integer frame `f`, use `samples[f]`.**
|
|
14167
|
+
*
|
|
14168
|
+
* No interpolation, no easing, no "nearest key". Pausing, scrubbing backwards
|
|
14169
|
+
* and rendering frames out of order therefore produce identical state, which is
|
|
14170
|
+
* the whole reason preview and export can be trusted to agree.
|
|
14171
|
+
*
|
|
14172
|
+
* Two things this format refuses to guess at:
|
|
14173
|
+
*
|
|
14174
|
+
* - **Orientation is a quaternion, not a look-at.** A renderer that replaces the
|
|
14175
|
+
* exported quaternion with `lookAt(target)` throws away the authored roll and
|
|
14176
|
+
* the handheld component. `target` is carried for inspection and intent only.
|
|
14177
|
+
* - **Projection is a matrix, not a lens number.** A focal length cannot express
|
|
14178
|
+
* sensor fit or lens shift, and re-deriving a projection at a different aspect
|
|
14179
|
+
* silently reframes every shot. `focalLengthMm` is metadata; the 16-element
|
|
14180
|
+
* column-major matrix is authoritative.
|
|
14181
|
+
*
|
|
14182
|
+
* Changing fps or aspect ratio is an explicit resample/reprojection producing a
|
|
14183
|
+
* NEW revision — never a render-time override. `scene3DCameraTrackPlanIssues`
|
|
14184
|
+
* is what makes that non-negotiable.
|
|
14185
|
+
*/
|
|
14186
|
+
|
|
14187
|
+
declare const SCENE3D_CAMERA_TRACK_FORMAT = "scene3d-camera-track";
|
|
14188
|
+
declare const SCENE3D_CAMERA_TRACK_VERSION = 1;
|
|
14189
|
+
declare const SCENE3D_CAMERA_TRACK_LIMITS: {
|
|
14190
|
+
readonly maxJsonBytes: number;
|
|
14191
|
+
readonly maxFrameCount: 3600;
|
|
14192
|
+
readonly minFps: 15;
|
|
14193
|
+
readonly maxFps: 60;
|
|
14194
|
+
/** A unit quaternion off by more than this is a bug, not float noise. */
|
|
14195
|
+
readonly quaternionTolerance: 0.0001;
|
|
14196
|
+
/** Absolute tolerance on the projection entries that must be exactly zero
|
|
14197
|
+
* (or exactly ∓1) in a perspective matrix. */
|
|
14198
|
+
readonly projectionEpsilon: 0.000001;
|
|
14199
|
+
/** Relative tolerance when comparing declared near/far against the values the
|
|
14200
|
+
* projection matrix implies. */
|
|
14201
|
+
readonly nearFarRelativeTolerance: 0.001;
|
|
14202
|
+
/** Relative tolerance on `m[0]/m[5]` vs the manifest's `height/width`. */
|
|
14203
|
+
readonly aspectRelativeTolerance: 0.001;
|
|
14204
|
+
readonly minNear: 0.0001;
|
|
14205
|
+
readonly maxFar: 10000000;
|
|
14206
|
+
};
|
|
14207
|
+
interface Scene3DCameraSample {
|
|
14208
|
+
position: Vec3;
|
|
14209
|
+
/** `[x, y, z, w]` — that order, normalized. */
|
|
14210
|
+
quaternion: [number, number, number, number];
|
|
14211
|
+
/** Exactly 16 entries, COLUMN-MAJOR (Three.js `Matrix4.elements` order). */
|
|
14212
|
+
projectionMatrix: number[];
|
|
14213
|
+
near: number;
|
|
14214
|
+
far: number;
|
|
14215
|
+
/** Authoring intent, for inspection and validation reporting. A renderer must
|
|
14216
|
+
* never feed this back through `lookAt()`. */
|
|
14217
|
+
target?: Vec3;
|
|
14218
|
+
/** Metadata only; the projection matrix wins. */
|
|
14219
|
+
focalLengthMm?: number;
|
|
14220
|
+
}
|
|
14221
|
+
interface Scene3DCameraTrackV1 {
|
|
14222
|
+
format: typeof SCENE3D_CAMERA_TRACK_FORMAT;
|
|
14223
|
+
version: typeof SCENE3D_CAMERA_TRACK_VERSION;
|
|
14224
|
+
/** Always 0: public frames are zero-based, and the exporter has already
|
|
14225
|
+
* subtracted the authoring package's start frame. */
|
|
14226
|
+
frameStart: 0;
|
|
14227
|
+
frameCount: number;
|
|
14228
|
+
fps: number;
|
|
14229
|
+
samples: Scene3DCameraSample[];
|
|
14230
|
+
}
|
|
14231
|
+
declare const scene3DCameraSampleSchema: z.ZodObject<{
|
|
14232
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14233
|
+
quaternion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14234
|
+
projectionMatrix: z.ZodArray<z.ZodNumber>;
|
|
14235
|
+
near: z.ZodNumber;
|
|
14236
|
+
far: z.ZodNumber;
|
|
14237
|
+
target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14238
|
+
focalLengthMm: z.ZodOptional<z.ZodNumber>;
|
|
14239
|
+
}, z.core.$strict>;
|
|
14240
|
+
/** Structure only; `scene3DCameraTrackIssues` carries the numeric rules. */
|
|
14241
|
+
declare const scene3DCameraTrackObjectSchema: z.ZodObject<{
|
|
14242
|
+
format: z.ZodLiteral<"scene3d-camera-track">;
|
|
14243
|
+
version: z.ZodLiteral<1>;
|
|
14244
|
+
frameStart: z.ZodLiteral<0>;
|
|
14245
|
+
frameCount: z.ZodNumber;
|
|
14246
|
+
fps: z.ZodNumber;
|
|
14247
|
+
samples: z.ZodArray<z.ZodObject<{
|
|
14248
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14249
|
+
quaternion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14250
|
+
projectionMatrix: z.ZodArray<z.ZodNumber>;
|
|
14251
|
+
near: z.ZodNumber;
|
|
14252
|
+
far: z.ZodNumber;
|
|
14253
|
+
target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14254
|
+
focalLengthMm: z.ZodOptional<z.ZodNumber>;
|
|
14255
|
+
}, z.core.$strict>>;
|
|
14256
|
+
}, z.core.$strict>;
|
|
14257
|
+
type Issue = Scene3DSemanticIssue;
|
|
14258
|
+
/**
|
|
14259
|
+
* Is this a real PERSPECTIVE projection, and does it agree with the declared
|
|
14260
|
+
* near/far?
|
|
14261
|
+
*
|
|
14262
|
+
* Column-major layout produced by every Three.js/glTF perspective camera:
|
|
14263
|
+
*
|
|
14264
|
+
* ```text
|
|
14265
|
+
* m0 0 m8 0
|
|
14266
|
+
* 0 m5 m9 0
|
|
14267
|
+
* 0 0 m10 m14
|
|
14268
|
+
* 0 0 -1 0
|
|
14269
|
+
* ```
|
|
14270
|
+
*
|
|
14271
|
+
* `m8`/`m9` carry lens shift and are free. Everything else is pinned. Inverting
|
|
14272
|
+
* the two depth terms recovers `near = m14 / (m10 - 1)` and
|
|
14273
|
+
* `far = m14 / (m10 + 1)`, which is how a matrix that quietly disagrees with its
|
|
14274
|
+
* own declared clip planes gets caught.
|
|
14275
|
+
*
|
|
14276
|
+
* Exported because the builder validates its export with the same function the
|
|
14277
|
+
* renderer admits it with.
|
|
14278
|
+
*/
|
|
14279
|
+
declare function scene3DProjectionIssues(matrix: readonly number[], near: number, far: number, path: (string | number)[]): Issue[];
|
|
14280
|
+
/**
|
|
14281
|
+
* The numeric rules the schema cannot express: exact sample count, normalized
|
|
14282
|
+
* quaternions, and a real perspective projection on every frame.
|
|
14283
|
+
*
|
|
14284
|
+
* Split out of the schema (as v1 does) so a caller holding a parsed track can
|
|
14285
|
+
* re-check it, and so the per-sample walk stays one readable loop over up to
|
|
14286
|
+
* 3,600 samples.
|
|
14287
|
+
*/
|
|
14288
|
+
declare function scene3DCameraTrackIssues(track: Scene3DCameraTrackV1): Issue[];
|
|
14289
|
+
/** THE camera-track validator: structure, then the numeric rules. */
|
|
14290
|
+
declare const scene3DCameraTrackSchema: z.ZodObject<{
|
|
14291
|
+
format: z.ZodLiteral<"scene3d-camera-track">;
|
|
14292
|
+
version: z.ZodLiteral<1>;
|
|
14293
|
+
frameStart: z.ZodLiteral<0>;
|
|
14294
|
+
frameCount: z.ZodNumber;
|
|
14295
|
+
fps: z.ZodNumber;
|
|
14296
|
+
samples: z.ZodArray<z.ZodObject<{
|
|
14297
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14298
|
+
quaternion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14299
|
+
projectionMatrix: z.ZodArray<z.ZodNumber>;
|
|
14300
|
+
near: z.ZodNumber;
|
|
14301
|
+
far: z.ZodNumber;
|
|
14302
|
+
target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14303
|
+
focalLengthMm: z.ZodOptional<z.ZodNumber>;
|
|
14304
|
+
}, z.core.$strict>>;
|
|
14305
|
+
}, z.core.$strict>;
|
|
14306
|
+
declare function isScene3DCameraTrack(value: unknown): value is Scene3DCameraTrackV1;
|
|
14307
|
+
/**
|
|
14308
|
+
* Track ↔ manifest agreement. A track that is valid on its own can still be the
|
|
14309
|
+
* WRONG track for this scene: a different fps, a different length, or a
|
|
14310
|
+
* projection baked for another aspect ratio. Each of those silently reframes or
|
|
14311
|
+
* retimes every shot, so each is an error here rather than a render-time
|
|
14312
|
+
* surprise.
|
|
14313
|
+
*/
|
|
14314
|
+
declare function scene3DCameraTrackPlanIssues(track: Scene3DCameraTrackV1, plan: Pick<Scene3DPlanV2, "fps" | "durationInFrames" | "width" | "height">): Issue[];
|
|
14315
|
+
/**
|
|
14316
|
+
* The sample for an integer frame. `undefined` outside `[0, frameCount)` — a
|
|
14317
|
+
* caller must fail rather than clamp, because a clamped frame is a wrong frame
|
|
14318
|
+
* that looks plausible.
|
|
14319
|
+
*/
|
|
14320
|
+
declare function scene3DSampleForFrame(track: Scene3DCameraTrackV1, frame: number): Scene3DCameraSample | undefined;
|
|
14321
|
+
/**
|
|
14322
|
+
* Size-gate, then parse, then validate. This is the admission path for a
|
|
14323
|
+
* downloaded camera track: an 80 MiB "8 MiB" track is refused before
|
|
14324
|
+
* `JSON.parse` gets a chance to allocate it.
|
|
14325
|
+
*/
|
|
14326
|
+
declare function parseScene3DCameraTrackJson(text: string): Scene3DParseResult<Scene3DCameraTrackV1>;
|
|
14327
|
+
|
|
14328
|
+
/**
|
|
14329
|
+
* The `pro-3d-render` ("3D Render Pro") WIRE CONTRACT.
|
|
14330
|
+
*
|
|
14331
|
+
* ONE durable operation, three ways in. A `source` says WHERE the scene comes
|
|
14332
|
+
* from — a new brief, an existing revision, or a completed desktop export —
|
|
14333
|
+
* and the settled job carries BOTH halves of the result: the exact composition
|
|
14334
|
+
* (`scenePlan`) and the standard video field every downstream consumer already
|
|
14335
|
+
* reads (`videoUrl`).
|
|
14336
|
+
*
|
|
14337
|
+
* The `source` is a strict discriminated union rather than a bag of optional
|
|
14338
|
+
* fields, and that is the load-bearing decision here. "Prompt present" and
|
|
14339
|
+
* "revisionId present" are not two settings on one request: they select
|
|
14340
|
+
* different pipelines with different costs. A flat shape lets a caller send
|
|
14341
|
+
* both, or neither, and pushes the "what did they actually mean" decision into
|
|
14342
|
+
* whichever surface reads it last — which is how an existing scene silently
|
|
14343
|
+
* becomes a paid re-authoring run.
|
|
14344
|
+
*
|
|
14345
|
+
* The same union is what makes RENDER-ONLY expressible: `{kind:'scene'}` with
|
|
14346
|
+
* NO `editPrompt` means "export this revision", and its absence must survive
|
|
14347
|
+
* every hop unchanged. Nothing may helpfully substitute an empty string or
|
|
14348
|
+
* copy the node's brief into it — that converts a free export into an
|
|
14349
|
+
* authoring run the user never asked for.
|
|
14350
|
+
*
|
|
14351
|
+
* What lives here is only what a client needs to CALL the operation, QUOTE it
|
|
14352
|
+
* and READ its result. How the scene is planned, compiled, built, priced or
|
|
14353
|
+
* authorized is not part of this contract and is not described here.
|
|
14354
|
+
*
|
|
14355
|
+
* Deliberately NOT here:
|
|
14356
|
+
* - a model chooser. The planner is fixed and server-owned.
|
|
14357
|
+
* - a credit number. The cost is resolved server-side and returned by the
|
|
14358
|
+
* quote endpoint; a constant in a published package would be a wrong answer
|
|
14359
|
+
* shipped to every consumer (see `PRO3D_RENDER_CREDIT_ID`).
|
|
14360
|
+
*/
|
|
14361
|
+
|
|
14362
|
+
/** Canvas/API/MCP node type. */
|
|
14363
|
+
declare const PRO3D_RENDER_NODE_TYPE = "pro-3d-render";
|
|
14364
|
+
/** Display name. One string, so every surface spells it the same way. */
|
|
14365
|
+
declare const PRO3D_RENDER_LABEL = "3D Render Pro";
|
|
14366
|
+
/**
|
|
14367
|
+
* The credit identifier the operation settles under.
|
|
14368
|
+
*
|
|
14369
|
+
* An IDENTIFIER, not a price: the number is operator/deployment configuration
|
|
14370
|
+
* (a `model_pricing` row), and the per-run ceiling comes from a quote. There is
|
|
14371
|
+
* deliberately no fallback constant — a flat default would underprice an
|
|
14372
|
+
* operation that plans, builds and renders, and "cheap by accident" is not a
|
|
14373
|
+
* failure mode you notice from the outside.
|
|
14374
|
+
*/
|
|
14375
|
+
declare const PRO3D_RENDER_CREDIT_ID = "pro-3d-render";
|
|
14376
|
+
/**
|
|
14377
|
+
* Where the scene is built. `blender-local` is a paired desktop and is refused
|
|
14378
|
+
* unless the deployment both enables it and has an engine advertising it — an
|
|
14379
|
+
* unknown or unavailable engine is an error, never a downgrade to the cheaper
|
|
14380
|
+
* cloud path.
|
|
14381
|
+
*/
|
|
14382
|
+
declare const PRO3D_RENDER_ENGINES: readonly ["blender-cloud", "blender-local"];
|
|
14383
|
+
type Pro3DRenderEngine = (typeof PRO3D_RENDER_ENGINES)[number];
|
|
14384
|
+
declare const PRO3D_RENDER_DEFAULT_ENGINE: Pro3DRenderEngine;
|
|
14385
|
+
/**
|
|
14386
|
+
* Render quality profiles.
|
|
14387
|
+
*
|
|
14388
|
+
* One today. A surface must advertise only what the installed engine reports
|
|
14389
|
+
* (`capabilities().pro.qualityProfiles`) rather than this list — offering a
|
|
14390
|
+
* profile the engine cannot serve is a run that fails after the user chose it.
|
|
14391
|
+
*/
|
|
14392
|
+
declare const PRO3D_RENDER_QUALITY_PROFILES: readonly ["standard"];
|
|
14393
|
+
type Pro3DRenderQuality = (typeof PRO3D_RENDER_QUALITY_PROFILES)[number];
|
|
14394
|
+
declare const PRO3D_RENDER_DEFAULT_QUALITY: Pro3DRenderQuality;
|
|
14395
|
+
/** Material/lighting treatment. Clay is the movement-reference default. */
|
|
14396
|
+
declare const PRO3D_RENDER_STYLES: readonly ["clay"];
|
|
14397
|
+
type Pro3DRenderStyle = (typeof PRO3D_RENDER_STYLES)[number];
|
|
14398
|
+
declare const PRO3D_RENDER_DEFAULT_STYLE: Pro3DRenderStyle;
|
|
14399
|
+
/**
|
|
14400
|
+
* The correction budget: how many repair passes the engine may spend after its
|
|
14401
|
+
* first attempt. Displayed to the user because each pass is paid work.
|
|
14402
|
+
*/
|
|
14403
|
+
declare const PRO3D_RENDER_MIN_REPAIR_PASSES = 0;
|
|
14404
|
+
declare const PRO3D_RENDER_MAX_REPAIR_PASSES = 2;
|
|
14405
|
+
declare const PRO3D_RENDER_DEFAULT_REPAIR_PASSES = 2;
|
|
14406
|
+
/**
|
|
14407
|
+
* Aspect ratios the node authors at.
|
|
14408
|
+
*
|
|
14409
|
+
* `21:9` is not decoration: the acceptance fixture is a 30-second 21:9 scene,
|
|
14410
|
+
* so a set that omitted it could not express the case the feature is measured
|
|
14411
|
+
* against. Its canonical pixel pair is the contract's explicitly supported
|
|
14412
|
+
* 1680×720 (see `ASPECT_RATIO_DIMENSIONS`).
|
|
14413
|
+
*/
|
|
14414
|
+
declare const PRO3D_RENDER_ASPECT_RATIOS: readonly ["16:9", "9:16", "1:1", "4:5", "21:9"];
|
|
14415
|
+
type Pro3DRenderAspectRatio = (typeof PRO3D_RENDER_ASPECT_RATIOS)[number];
|
|
14416
|
+
/** Same prompt ceiling the Basic authoring routes enforce. */
|
|
14417
|
+
declare const PRO3D_RENDER_PROMPT_MAX = 8000;
|
|
14418
|
+
/**
|
|
14419
|
+
* Request bounds shared by every ingress (HTTP route, orchestrator, MCP, SDK).
|
|
14420
|
+
*
|
|
14421
|
+
* Timing/reference limits reuse the Basic authoring limits verbatim rather
|
|
14422
|
+
* than declaring a second set: the two nodes describe the same kind of scene,
|
|
14423
|
+
* and two drifting ceilings is how one surface starts accepting what another
|
|
14424
|
+
* refuses.
|
|
14425
|
+
*/
|
|
14426
|
+
declare const PRO3D_RENDER_LIMITS: {
|
|
14427
|
+
readonly promptMax: 8000;
|
|
14428
|
+
readonly editPromptMax: 8000;
|
|
14429
|
+
readonly minDurationSeconds: 1;
|
|
14430
|
+
readonly maxDurationSeconds: 60;
|
|
14431
|
+
readonly minFps: 15;
|
|
14432
|
+
readonly maxFps: 60;
|
|
14433
|
+
readonly maxReferences: 8;
|
|
14434
|
+
/** Opaque ids the caller echoes back (quote, export, connection). */
|
|
14435
|
+
readonly maxIdLength: 200;
|
|
14436
|
+
/** `Idempotency-Key` bounds — the platform's floor, with a ceiling so an
|
|
14437
|
+
* unbounded header can never reach a lookup or a database column. */
|
|
14438
|
+
readonly minIdempotencyKeyLength: 8;
|
|
14439
|
+
readonly maxIdempotencyKeyLength: 255;
|
|
14440
|
+
};
|
|
14441
|
+
declare const PRO3D_RENDER_SOURCE_KINDS: readonly ["prompt", "scene", "local-export"];
|
|
14442
|
+
type Pro3DRenderSourceKind = (typeof PRO3D_RENDER_SOURCE_KINDS)[number];
|
|
14443
|
+
/** A new scene, authored from a brief plus optional image/video references. */
|
|
14444
|
+
interface Pro3DRenderPromptSource {
|
|
14445
|
+
kind: "prompt";
|
|
14446
|
+
prompt: string;
|
|
14447
|
+
references?: readonly Scene3DReference[];
|
|
14448
|
+
}
|
|
14449
|
+
/**
|
|
14450
|
+
* An existing immutable revision.
|
|
14451
|
+
*
|
|
14452
|
+
* `editPrompt` ABSENT is the render-only path — export this revision, spend no
|
|
14453
|
+
* authoring or build credits. Its absence is meaningful and must be preserved
|
|
14454
|
+
* verbatim; an empty string is not the same request.
|
|
14455
|
+
*
|
|
14456
|
+
* Retained revisions are authorized through their current scene permissions.
|
|
14457
|
+
* `sourceJobId` locates Basic scenes stored only in job history; it is required
|
|
14458
|
+
* for that source, but optional for retained scenes (including manual edits).
|
|
14459
|
+
*/
|
|
14460
|
+
interface Pro3DRenderSceneSource {
|
|
14461
|
+
kind: "scene";
|
|
14462
|
+
revisionId: string;
|
|
14463
|
+
sourceJobId?: string;
|
|
14464
|
+
editPrompt?: string;
|
|
14465
|
+
}
|
|
14466
|
+
/** A completed export from a paired desktop Blender. */
|
|
14467
|
+
interface Pro3DRenderLocalExportSource {
|
|
14468
|
+
kind: "local-export";
|
|
14469
|
+
exportId: string;
|
|
14470
|
+
connectionId: string;
|
|
14471
|
+
}
|
|
14472
|
+
type Pro3DRenderSource = Pro3DRenderPromptSource | Pro3DRenderSceneSource | Pro3DRenderLocalExportSource;
|
|
14473
|
+
/** True when this source exports an existing revision without re-authoring it. */
|
|
14474
|
+
declare function isPro3DRenderRenderOnly(source: Pro3DRenderSource): boolean;
|
|
14475
|
+
/**
|
|
14476
|
+
* Which scene-schema version a source PRODUCES, or `null` when only the server
|
|
14477
|
+
* can know.
|
|
14478
|
+
*
|
|
14479
|
+
* A `prompt` or `local-export` source always mints a fresh v2 manifest, so a
|
|
14480
|
+
* client that cannot read v2 is refusable for free, before any work. A `scene`
|
|
14481
|
+
* source inherits whatever version the named revision already is — the host
|
|
14482
|
+
* does not resolve revisions, so demanding v2 there would refuse a perfectly
|
|
14483
|
+
* renderable retained v1 scene.
|
|
14484
|
+
*/
|
|
14485
|
+
declare function pro3DRenderProducedSchemaVersion(source: Pro3DRenderSource): number | null;
|
|
14486
|
+
/** One priced component of a quote. Display copy, not economics. */
|
|
14487
|
+
interface Pro3DRenderQuoteLine {
|
|
14488
|
+
code: string;
|
|
14489
|
+
label: string;
|
|
14490
|
+
credits: number;
|
|
14491
|
+
}
|
|
14492
|
+
/**
|
|
14493
|
+
* The paired quote's answer.
|
|
14494
|
+
*
|
|
14495
|
+
* `maxCredits` is a CEILING, not a charge: quoting reserves nothing and spends
|
|
14496
|
+
* nothing. `normalizedInputHash` is what run admission re-checks, so a body
|
|
14497
|
+
* edited between quote and run is refused rather than executed at a price it
|
|
14498
|
+
* was never quoted for.
|
|
14499
|
+
*/
|
|
14500
|
+
interface Pro3DRenderQuote {
|
|
14501
|
+
quoteId: string;
|
|
14502
|
+
/** ISO-8601. After this the quote is stale and run answers "quote again". */
|
|
14503
|
+
expiresAt: string;
|
|
14504
|
+
maxCredits: number;
|
|
14505
|
+
breakdown: Pro3DRenderQuoteLine[];
|
|
14506
|
+
pricingVersion: string;
|
|
14507
|
+
capabilitiesVersion: string;
|
|
14508
|
+
normalizedInputHash: string;
|
|
14509
|
+
}
|
|
14510
|
+
declare const pro3DRenderQuoteSchema: z.ZodObject<{
|
|
14511
|
+
quoteId: z.ZodString;
|
|
14512
|
+
expiresAt: z.ZodString;
|
|
14513
|
+
maxCredits: z.ZodNumber;
|
|
14514
|
+
breakdown: z.ZodArray<z.ZodObject<{
|
|
14515
|
+
code: z.ZodString;
|
|
14516
|
+
label: z.ZodString;
|
|
14517
|
+
credits: z.ZodNumber;
|
|
14518
|
+
}, z.core.$loose>>;
|
|
14519
|
+
pricingVersion: z.ZodString;
|
|
14520
|
+
capabilitiesVersion: z.ZodString;
|
|
14521
|
+
normalizedInputHash: z.ZodString;
|
|
14522
|
+
}, z.core.$loose>;
|
|
14523
|
+
declare function isPro3DRenderQuote(value: unknown): value is Pro3DRenderQuote;
|
|
14524
|
+
/**
|
|
14525
|
+
* What this deployment can actually serve.
|
|
14526
|
+
*
|
|
14527
|
+
* Every surface that offers a control reads it from here rather than from the
|
|
14528
|
+
* vocabularies above: the constants say what the CONTRACT can express, this
|
|
14529
|
+
* says what the INSTALLED engine will accept.
|
|
14530
|
+
*/
|
|
14531
|
+
interface Pro3DRenderCapabilities {
|
|
14532
|
+
available: boolean;
|
|
14533
|
+
engines: Pro3DRenderEngine[];
|
|
14534
|
+
qualityProfiles: Pro3DRenderQuality[];
|
|
14535
|
+
styles: Pro3DRenderStyle[];
|
|
14536
|
+
aspectRatios: Pro3DRenderAspectRatio[];
|
|
14537
|
+
maxRepairPasses: number;
|
|
14538
|
+
}
|
|
14539
|
+
interface Pro3DRenderValidationWarning {
|
|
14540
|
+
code: string;
|
|
14541
|
+
message: string;
|
|
14542
|
+
shotId?: string;
|
|
14543
|
+
}
|
|
14544
|
+
interface Pro3DRenderResultMetadata {
|
|
14545
|
+
width: number;
|
|
14546
|
+
height: number;
|
|
14547
|
+
fps: number;
|
|
14548
|
+
frames: number;
|
|
14549
|
+
duration: number;
|
|
14550
|
+
}
|
|
14551
|
+
/**
|
|
14552
|
+
* The completed job's `output_data`.
|
|
14553
|
+
*
|
|
14554
|
+
* `videoUrl` is the platform's existing resolved-video field (the contract's
|
|
14555
|
+
* `resultUrl` mapped onto the envelope this platform already has), so the node
|
|
14556
|
+
* connects to every existing video consumer without a second video result type
|
|
14557
|
+
* producer validators cannot parse. `scenePlan` + `sceneRevisionId` are the
|
|
14558
|
+
* exact revision that video was rendered from, so a later render-only re-run
|
|
14559
|
+
* costs no authoring.
|
|
14560
|
+
*
|
|
14561
|
+
* Everything else is what the spec requires a caller to be able to act on: the
|
|
14562
|
+
* poster to show before playback, the validation report to read warnings from,
|
|
14563
|
+
* the renderer/metadata to check the export against a downstream model's
|
|
14564
|
+
* limits, and the optional source artifact to offer as a download.
|
|
14565
|
+
*/
|
|
14566
|
+
interface Pro3DRenderJobOutput {
|
|
14567
|
+
videoUrl: string;
|
|
14568
|
+
scenePlan: Scene3DPlan;
|
|
14569
|
+
sceneRevisionId: string;
|
|
14570
|
+
posterAssetId: string;
|
|
14571
|
+
/** Present when an editable native source was retained for this revision. */
|
|
14572
|
+
sourceArtifactId?: string;
|
|
14573
|
+
validation: {
|
|
14574
|
+
status: "passed";
|
|
14575
|
+
reportAssetId: string;
|
|
14576
|
+
warnings: Pro3DRenderValidationWarning[];
|
|
14577
|
+
};
|
|
14578
|
+
renderer: string;
|
|
14579
|
+
metadata: Pro3DRenderResultMetadata;
|
|
14580
|
+
/** Short, user-safe note about what this revision contains. Never diagnostics. */
|
|
14581
|
+
changeSummary?: string;
|
|
14582
|
+
}
|
|
14583
|
+
/**
|
|
14584
|
+
* Reader-side schema.
|
|
14585
|
+
*
|
|
14586
|
+
* Passthrough on purpose: a job row may carry additive metadata a client of
|
|
14587
|
+
* this version has never heard of, and refusing the whole result over an
|
|
14588
|
+
* unknown key would turn an additive server change into a client outage.
|
|
14589
|
+
*
|
|
14590
|
+
* The required fields are required because the contract makes them so — this
|
|
14591
|
+
* is what a COMPLETE result looks like. Nothing in the platform fabricates
|
|
14592
|
+
* them to satisfy the schema; a runtime that has not produced them yet simply
|
|
14593
|
+
* does not parse as complete, which is the honest answer.
|
|
14594
|
+
*/
|
|
14595
|
+
declare const pro3DRenderJobOutputSchema: z.ZodObject<{
|
|
14596
|
+
videoUrl: z.ZodString;
|
|
14597
|
+
scenePlan: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
14598
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
14599
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
14600
|
+
revisionId: z.ZodUUID;
|
|
14601
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
14602
|
+
width: z.ZodNumber;
|
|
14603
|
+
height: z.ZodNumber;
|
|
14604
|
+
fps: z.ZodNumber;
|
|
14605
|
+
durationInFrames: z.ZodNumber;
|
|
14606
|
+
backgroundColor: z.ZodString;
|
|
14607
|
+
camera: z.ZodObject<{
|
|
14608
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14609
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14610
|
+
focalLengthMm: z.ZodNumber;
|
|
14611
|
+
sensorWidthMm: z.ZodDefault<z.ZodNumber>;
|
|
14612
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14613
|
+
frame: z.ZodNumber;
|
|
14614
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14615
|
+
target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14616
|
+
focalLengthMm: z.ZodOptional<z.ZodNumber>;
|
|
14617
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
14618
|
+
linear: "linear";
|
|
14619
|
+
easeInOut: "easeInOut";
|
|
14620
|
+
}>>;
|
|
14621
|
+
}, z.core.$strict>>>;
|
|
14622
|
+
}, z.core.$strict>;
|
|
14623
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
14624
|
+
id: z.ZodString;
|
|
14625
|
+
name: z.ZodString;
|
|
14626
|
+
primitive: z.ZodEnum<{
|
|
14627
|
+
group: "group";
|
|
14628
|
+
box: "box";
|
|
14629
|
+
sphere: "sphere";
|
|
14630
|
+
cylinder: "cylinder";
|
|
14631
|
+
cone: "cone";
|
|
14632
|
+
plane: "plane";
|
|
14633
|
+
capsule: "capsule";
|
|
14634
|
+
}>;
|
|
14635
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
14636
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14637
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14638
|
+
rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14639
|
+
scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14640
|
+
color: z.ZodString;
|
|
14641
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14642
|
+
frame: z.ZodNumber;
|
|
14643
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14644
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14645
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14646
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
14647
|
+
linear: "linear";
|
|
14648
|
+
easeInOut: "easeInOut";
|
|
14649
|
+
}>>;
|
|
14650
|
+
}, z.core.$strict>>>;
|
|
14651
|
+
}, z.core.$strict>>;
|
|
14652
|
+
lighting: z.ZodObject<{
|
|
14653
|
+
ambientIntensity: z.ZodNumber;
|
|
14654
|
+
keyIntensity: z.ZodNumber;
|
|
14655
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14656
|
+
}, z.core.$strict>;
|
|
14657
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14658
|
+
id: z.ZodString;
|
|
14659
|
+
url: z.ZodString;
|
|
14660
|
+
kind: z.ZodEnum<{
|
|
14661
|
+
image: "image";
|
|
14662
|
+
video: "video";
|
|
14663
|
+
}>;
|
|
14664
|
+
role: z.ZodEnum<{
|
|
14665
|
+
motion: "motion";
|
|
14666
|
+
layout: "layout";
|
|
14667
|
+
appearance: "appearance";
|
|
14668
|
+
}>;
|
|
14669
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
14670
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
14671
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
14672
|
+
}, z.core.$strict>>>;
|
|
14673
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
14674
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
14675
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
14676
|
+
revisionId: z.ZodUUID;
|
|
14677
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
14678
|
+
width: z.ZodNumber;
|
|
14679
|
+
height: z.ZodNumber;
|
|
14680
|
+
fps: z.ZodNumber;
|
|
14681
|
+
durationInFrames: z.ZodNumber;
|
|
14682
|
+
units: z.ZodLiteral<"meters">;
|
|
14683
|
+
upAxis: z.ZodLiteral<"Y">;
|
|
14684
|
+
handedness: z.ZodLiteral<"right">;
|
|
14685
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
14686
|
+
id: z.ZodString;
|
|
14687
|
+
name: z.ZodString;
|
|
14688
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
14689
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
14690
|
+
other: "other";
|
|
14691
|
+
person: "person";
|
|
14692
|
+
vehicle: "vehicle";
|
|
14693
|
+
prop: "prop";
|
|
14694
|
+
environment: "environment";
|
|
14695
|
+
}>>;
|
|
14696
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14697
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14698
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14699
|
+
identityColor: z.ZodOptional<z.ZodString>;
|
|
14700
|
+
anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14701
|
+
name: z.ZodString;
|
|
14702
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14703
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14704
|
+
}, z.core.$strict>>>;
|
|
14705
|
+
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
14706
|
+
transform: "transform";
|
|
14707
|
+
color: "color";
|
|
14708
|
+
visibility: "visibility";
|
|
14709
|
+
}>>>;
|
|
14710
|
+
locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
14711
|
+
transform: "transform";
|
|
14712
|
+
color: "color";
|
|
14713
|
+
visibility: "visibility";
|
|
14714
|
+
}>>>;
|
|
14715
|
+
materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14716
|
+
role: z.ZodString;
|
|
14717
|
+
materialName: z.ZodString;
|
|
14718
|
+
color: z.ZodOptional<z.ZodString>;
|
|
14719
|
+
roughness: z.ZodOptional<z.ZodNumber>;
|
|
14720
|
+
}, z.core.$strict>>>;
|
|
14721
|
+
visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
14722
|
+
kind: z.ZodLiteral<"group">;
|
|
14723
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
14724
|
+
kind: z.ZodLiteral<"primitive">;
|
|
14725
|
+
primitive: z.ZodEnum<{
|
|
14726
|
+
box: "box";
|
|
14727
|
+
sphere: "sphere";
|
|
14728
|
+
cylinder: "cylinder";
|
|
14729
|
+
cone: "cone";
|
|
14730
|
+
plane: "plane";
|
|
14731
|
+
capsule: "capsule";
|
|
14732
|
+
}>;
|
|
14733
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14734
|
+
color: z.ZodString;
|
|
14735
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
14736
|
+
kind: z.ZodLiteral<"asset">;
|
|
14737
|
+
assetId: z.ZodString;
|
|
14738
|
+
rootNodeId: z.ZodString;
|
|
14739
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
14740
|
+
clipName: z.ZodString;
|
|
14741
|
+
startFrame: z.ZodNumber;
|
|
14742
|
+
endFrameExclusive: z.ZodNumber;
|
|
14743
|
+
loop: z.ZodOptional<z.ZodBoolean>;
|
|
14744
|
+
}, z.core.$strict>>;
|
|
14745
|
+
}, z.core.$strict>], "kind">;
|
|
14746
|
+
}, z.core.$strict>>;
|
|
14747
|
+
assets: z.ZodArray<z.ZodObject<{
|
|
14748
|
+
assetId: z.ZodString;
|
|
14749
|
+
kind: z.ZodEnum<{
|
|
14750
|
+
glb: "glb";
|
|
14751
|
+
"camera-track-json": "camera-track-json";
|
|
14752
|
+
poster: "poster";
|
|
14753
|
+
"validation-report": "validation-report";
|
|
14754
|
+
"blend-source": "blend-source";
|
|
14755
|
+
}>;
|
|
14756
|
+
role: z.ZodEnum<{
|
|
14757
|
+
source: "source";
|
|
14758
|
+
poster: "poster";
|
|
14759
|
+
"validation-report": "validation-report";
|
|
14760
|
+
"scene-geometry": "scene-geometry";
|
|
14761
|
+
"entity-geometry": "entity-geometry";
|
|
14762
|
+
"camera-track": "camera-track";
|
|
14763
|
+
}>;
|
|
14764
|
+
byteLength: z.ZodNumber;
|
|
14765
|
+
sha256: z.ZodString;
|
|
14766
|
+
originRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
14767
|
+
}, z.core.$strict>>;
|
|
14768
|
+
cameraTrackAssetId: z.ZodString;
|
|
14769
|
+
shots: z.ZodArray<z.ZodObject<{
|
|
14770
|
+
id: z.ZodString;
|
|
14771
|
+
startFrame: z.ZodNumber;
|
|
14772
|
+
endFrameExclusive: z.ZodNumber;
|
|
14773
|
+
label: z.ZodOptional<z.ZodString>;
|
|
14774
|
+
subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14775
|
+
foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14776
|
+
}, z.core.$strict>>;
|
|
14777
|
+
lighting: z.ZodObject<{
|
|
14778
|
+
preset: z.ZodEnum<{
|
|
14779
|
+
"clay-studio-v1": "clay-studio-v1";
|
|
14780
|
+
}>;
|
|
14781
|
+
ambientIntensity: z.ZodNumber;
|
|
14782
|
+
keyIntensity: z.ZodNumber;
|
|
14783
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14784
|
+
}, z.core.$strict>;
|
|
14785
|
+
backgroundColor: z.ZodString;
|
|
14786
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14787
|
+
id: z.ZodString;
|
|
14788
|
+
url: z.ZodString;
|
|
14789
|
+
kind: z.ZodEnum<{
|
|
14790
|
+
image: "image";
|
|
14791
|
+
video: "video";
|
|
14792
|
+
}>;
|
|
14793
|
+
role: z.ZodEnum<{
|
|
14794
|
+
motion: "motion";
|
|
14795
|
+
layout: "layout";
|
|
14796
|
+
appearance: "appearance";
|
|
14797
|
+
}>;
|
|
14798
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
14799
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
14800
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
14801
|
+
}, z.core.$strict>>>;
|
|
14802
|
+
overrides: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
14803
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
14804
|
+
entityId: z.ZodString;
|
|
14805
|
+
space: z.ZodEnum<{
|
|
14806
|
+
local: "local";
|
|
14807
|
+
world: "world";
|
|
14808
|
+
}>;
|
|
14809
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14810
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14811
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14812
|
+
id: z.ZodString;
|
|
14813
|
+
sourceRevisionId: z.ZodUUID;
|
|
14814
|
+
sourceContentHash: z.ZodString;
|
|
14815
|
+
operationVersion: z.ZodNumber;
|
|
14816
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
14817
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
14818
|
+
entityId: z.ZodString;
|
|
14819
|
+
materialRole: z.ZodString;
|
|
14820
|
+
color: z.ZodString;
|
|
14821
|
+
id: z.ZodString;
|
|
14822
|
+
sourceRevisionId: z.ZodUUID;
|
|
14823
|
+
sourceContentHash: z.ZodString;
|
|
14824
|
+
operationVersion: z.ZodNumber;
|
|
14825
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
14826
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
14827
|
+
entityId: z.ZodString;
|
|
14828
|
+
visible: z.ZodBoolean;
|
|
14829
|
+
id: z.ZodString;
|
|
14830
|
+
sourceRevisionId: z.ZodUUID;
|
|
14831
|
+
sourceContentHash: z.ZodString;
|
|
14832
|
+
operationVersion: z.ZodNumber;
|
|
14833
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
14834
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
14835
|
+
shotId: z.ZodString;
|
|
14836
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14837
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14838
|
+
id: z.ZodString;
|
|
14839
|
+
sourceRevisionId: z.ZodUUID;
|
|
14840
|
+
sourceContentHash: z.ZodString;
|
|
14841
|
+
operationVersion: z.ZodNumber;
|
|
14842
|
+
}, z.core.$strict>], "kind">>>;
|
|
14843
|
+
provenance: z.ZodObject<{
|
|
14844
|
+
engine: z.ZodString;
|
|
14845
|
+
engineVersion: z.ZodString;
|
|
14846
|
+
recipeVersion: z.ZodString;
|
|
14847
|
+
compilerVersion: z.ZodString;
|
|
14848
|
+
exporterVersion: z.ZodString;
|
|
14849
|
+
rendererVersion: z.ZodString;
|
|
14850
|
+
sourceRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
14851
|
+
sourceArtifactId: z.ZodOptional<z.ZodString>;
|
|
14852
|
+
contentHash: z.ZodString;
|
|
14853
|
+
}, z.core.$strict>;
|
|
14854
|
+
}, z.core.$strict>], "schemaVersion">;
|
|
14855
|
+
sceneRevisionId: z.ZodString;
|
|
14856
|
+
posterAssetId: z.ZodString;
|
|
14857
|
+
sourceArtifactId: z.ZodOptional<z.ZodString>;
|
|
14858
|
+
validation: z.ZodObject<{
|
|
14859
|
+
status: z.ZodLiteral<"passed">;
|
|
14860
|
+
reportAssetId: z.ZodString;
|
|
14861
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
14862
|
+
code: z.ZodString;
|
|
14863
|
+
message: z.ZodString;
|
|
14864
|
+
shotId: z.ZodOptional<z.ZodString>;
|
|
14865
|
+
}, z.core.$loose>>;
|
|
14866
|
+
}, z.core.$loose>;
|
|
14867
|
+
renderer: z.ZodString;
|
|
14868
|
+
metadata: z.ZodObject<{
|
|
14869
|
+
width: z.ZodNumber;
|
|
14870
|
+
height: z.ZodNumber;
|
|
14871
|
+
fps: z.ZodNumber;
|
|
14872
|
+
frames: z.ZodNumber;
|
|
14873
|
+
duration: z.ZodNumber;
|
|
14874
|
+
}, z.core.$loose>;
|
|
14875
|
+
changeSummary: z.ZodOptional<z.ZodString>;
|
|
14876
|
+
}, z.core.$loose>;
|
|
14877
|
+
declare function isPro3DRenderJobOutput(value: unknown): value is Pro3DRenderJobOutput;
|
|
14878
|
+
/**
|
|
14879
|
+
* The two fields every EXECUTION SURFACE must be able to resolve, whatever
|
|
14880
|
+
* else a runtime does or does not attach yet.
|
|
14881
|
+
*
|
|
14882
|
+
* Separate from the full reader above on purpose: canvas wiring, the DAG
|
|
14883
|
+
* extractors and the render-only re-run need "is there a video and a scene
|
|
14884
|
+
* here", and gating those on complete metadata would blank a node over a
|
|
14885
|
+
* missing poster id.
|
|
14886
|
+
*/
|
|
14887
|
+
declare const pro3DRenderCoreOutputSchema: z.ZodObject<{
|
|
14888
|
+
videoUrl: z.ZodString;
|
|
14889
|
+
scenePlan: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
14890
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
14891
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
14892
|
+
revisionId: z.ZodUUID;
|
|
14893
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
14894
|
+
width: z.ZodNumber;
|
|
14895
|
+
height: z.ZodNumber;
|
|
14896
|
+
fps: z.ZodNumber;
|
|
14897
|
+
durationInFrames: z.ZodNumber;
|
|
14898
|
+
backgroundColor: z.ZodString;
|
|
14899
|
+
camera: z.ZodObject<{
|
|
14900
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14901
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14902
|
+
focalLengthMm: z.ZodNumber;
|
|
14903
|
+
sensorWidthMm: z.ZodDefault<z.ZodNumber>;
|
|
14904
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14905
|
+
frame: z.ZodNumber;
|
|
14906
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14907
|
+
target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14908
|
+
focalLengthMm: z.ZodOptional<z.ZodNumber>;
|
|
14909
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
14910
|
+
linear: "linear";
|
|
14911
|
+
easeInOut: "easeInOut";
|
|
14912
|
+
}>>;
|
|
14913
|
+
}, z.core.$strict>>>;
|
|
14914
|
+
}, z.core.$strict>;
|
|
14915
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
14916
|
+
id: z.ZodString;
|
|
14917
|
+
name: z.ZodString;
|
|
14918
|
+
primitive: z.ZodEnum<{
|
|
14919
|
+
group: "group";
|
|
14920
|
+
box: "box";
|
|
14921
|
+
sphere: "sphere";
|
|
14922
|
+
cylinder: "cylinder";
|
|
14923
|
+
cone: "cone";
|
|
14924
|
+
plane: "plane";
|
|
14925
|
+
capsule: "capsule";
|
|
14926
|
+
}>;
|
|
14927
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
14928
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14929
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14930
|
+
rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14931
|
+
scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14932
|
+
color: z.ZodString;
|
|
14933
|
+
keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14934
|
+
frame: z.ZodNumber;
|
|
14935
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14936
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14937
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14938
|
+
easing: z.ZodOptional<z.ZodEnum<{
|
|
14939
|
+
linear: "linear";
|
|
14940
|
+
easeInOut: "easeInOut";
|
|
14941
|
+
}>>;
|
|
14942
|
+
}, z.core.$strict>>>;
|
|
14943
|
+
}, z.core.$strict>>;
|
|
14944
|
+
lighting: z.ZodObject<{
|
|
14945
|
+
ambientIntensity: z.ZodNumber;
|
|
14946
|
+
keyIntensity: z.ZodNumber;
|
|
14947
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14948
|
+
}, z.core.$strict>;
|
|
14949
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14950
|
+
id: z.ZodString;
|
|
14951
|
+
url: z.ZodString;
|
|
14952
|
+
kind: z.ZodEnum<{
|
|
14953
|
+
image: "image";
|
|
14954
|
+
video: "video";
|
|
14955
|
+
}>;
|
|
14956
|
+
role: z.ZodEnum<{
|
|
14957
|
+
motion: "motion";
|
|
14958
|
+
layout: "layout";
|
|
14959
|
+
appearance: "appearance";
|
|
14960
|
+
}>;
|
|
14961
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
14962
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
14963
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
14964
|
+
}, z.core.$strict>>>;
|
|
14965
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
14966
|
+
planType: z.ZodLiteral<"3d-scene">;
|
|
14967
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
14968
|
+
revisionId: z.ZodUUID;
|
|
14969
|
+
parentRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
14970
|
+
width: z.ZodNumber;
|
|
14971
|
+
height: z.ZodNumber;
|
|
14972
|
+
fps: z.ZodNumber;
|
|
14973
|
+
durationInFrames: z.ZodNumber;
|
|
14974
|
+
units: z.ZodLiteral<"meters">;
|
|
14975
|
+
upAxis: z.ZodLiteral<"Y">;
|
|
14976
|
+
handedness: z.ZodLiteral<"right">;
|
|
14977
|
+
objects: z.ZodArray<z.ZodObject<{
|
|
14978
|
+
id: z.ZodString;
|
|
14979
|
+
name: z.ZodString;
|
|
14980
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
14981
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
14982
|
+
other: "other";
|
|
14983
|
+
person: "person";
|
|
14984
|
+
vehicle: "vehicle";
|
|
14985
|
+
prop: "prop";
|
|
14986
|
+
environment: "environment";
|
|
14987
|
+
}>>;
|
|
14988
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14989
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14990
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14991
|
+
identityColor: z.ZodOptional<z.ZodString>;
|
|
14992
|
+
anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
14993
|
+
name: z.ZodString;
|
|
14994
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
14995
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
14996
|
+
}, z.core.$strict>>>;
|
|
14997
|
+
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
14998
|
+
transform: "transform";
|
|
14999
|
+
color: "color";
|
|
15000
|
+
visibility: "visibility";
|
|
15001
|
+
}>>>;
|
|
15002
|
+
locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
15003
|
+
transform: "transform";
|
|
15004
|
+
color: "color";
|
|
15005
|
+
visibility: "visibility";
|
|
15006
|
+
}>>>;
|
|
15007
|
+
materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
15008
|
+
role: z.ZodString;
|
|
15009
|
+
materialName: z.ZodString;
|
|
15010
|
+
color: z.ZodOptional<z.ZodString>;
|
|
15011
|
+
roughness: z.ZodOptional<z.ZodNumber>;
|
|
15012
|
+
}, z.core.$strict>>>;
|
|
15013
|
+
visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
15014
|
+
kind: z.ZodLiteral<"group">;
|
|
15015
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15016
|
+
kind: z.ZodLiteral<"primitive">;
|
|
15017
|
+
primitive: z.ZodEnum<{
|
|
15018
|
+
box: "box";
|
|
15019
|
+
sphere: "sphere";
|
|
15020
|
+
cylinder: "cylinder";
|
|
15021
|
+
cone: "cone";
|
|
15022
|
+
plane: "plane";
|
|
15023
|
+
capsule: "capsule";
|
|
15024
|
+
}>;
|
|
15025
|
+
dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
15026
|
+
color: z.ZodString;
|
|
15027
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15028
|
+
kind: z.ZodLiteral<"asset">;
|
|
15029
|
+
assetId: z.ZodString;
|
|
15030
|
+
rootNodeId: z.ZodString;
|
|
15031
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
15032
|
+
clipName: z.ZodString;
|
|
15033
|
+
startFrame: z.ZodNumber;
|
|
15034
|
+
endFrameExclusive: z.ZodNumber;
|
|
15035
|
+
loop: z.ZodOptional<z.ZodBoolean>;
|
|
15036
|
+
}, z.core.$strict>>;
|
|
15037
|
+
}, z.core.$strict>], "kind">;
|
|
15038
|
+
}, z.core.$strict>>;
|
|
15039
|
+
assets: z.ZodArray<z.ZodObject<{
|
|
15040
|
+
assetId: z.ZodString;
|
|
15041
|
+
kind: z.ZodEnum<{
|
|
15042
|
+
glb: "glb";
|
|
15043
|
+
"camera-track-json": "camera-track-json";
|
|
15044
|
+
poster: "poster";
|
|
15045
|
+
"validation-report": "validation-report";
|
|
15046
|
+
"blend-source": "blend-source";
|
|
15047
|
+
}>;
|
|
15048
|
+
role: z.ZodEnum<{
|
|
15049
|
+
source: "source";
|
|
15050
|
+
poster: "poster";
|
|
15051
|
+
"validation-report": "validation-report";
|
|
15052
|
+
"scene-geometry": "scene-geometry";
|
|
15053
|
+
"entity-geometry": "entity-geometry";
|
|
15054
|
+
"camera-track": "camera-track";
|
|
15055
|
+
}>;
|
|
15056
|
+
byteLength: z.ZodNumber;
|
|
15057
|
+
sha256: z.ZodString;
|
|
15058
|
+
originRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
15059
|
+
}, z.core.$strict>>;
|
|
15060
|
+
cameraTrackAssetId: z.ZodString;
|
|
15061
|
+
shots: z.ZodArray<z.ZodObject<{
|
|
15062
|
+
id: z.ZodString;
|
|
15063
|
+
startFrame: z.ZodNumber;
|
|
15064
|
+
endFrameExclusive: z.ZodNumber;
|
|
15065
|
+
label: z.ZodOptional<z.ZodString>;
|
|
15066
|
+
subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
15067
|
+
foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
15068
|
+
}, z.core.$strict>>;
|
|
15069
|
+
lighting: z.ZodObject<{
|
|
15070
|
+
preset: z.ZodEnum<{
|
|
15071
|
+
"clay-studio-v1": "clay-studio-v1";
|
|
15072
|
+
}>;
|
|
15073
|
+
ambientIntensity: z.ZodNumber;
|
|
15074
|
+
keyIntensity: z.ZodNumber;
|
|
15075
|
+
keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
15076
|
+
}, z.core.$strict>;
|
|
15077
|
+
backgroundColor: z.ZodString;
|
|
15078
|
+
references: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
15079
|
+
id: z.ZodString;
|
|
15080
|
+
url: z.ZodString;
|
|
15081
|
+
kind: z.ZodEnum<{
|
|
15082
|
+
image: "image";
|
|
15083
|
+
video: "video";
|
|
15084
|
+
}>;
|
|
15085
|
+
role: z.ZodEnum<{
|
|
15086
|
+
motion: "motion";
|
|
15087
|
+
layout: "layout";
|
|
15088
|
+
appearance: "appearance";
|
|
15089
|
+
}>;
|
|
15090
|
+
objectId: z.ZodOptional<z.ZodString>;
|
|
15091
|
+
startSeconds: z.ZodOptional<z.ZodNumber>;
|
|
15092
|
+
endSeconds: z.ZodOptional<z.ZodNumber>;
|
|
15093
|
+
}, z.core.$strict>>>;
|
|
15094
|
+
overrides: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
15095
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
15096
|
+
entityId: z.ZodString;
|
|
15097
|
+
space: z.ZodEnum<{
|
|
15098
|
+
local: "local";
|
|
15099
|
+
world: "world";
|
|
15100
|
+
}>;
|
|
15101
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15102
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15103
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15104
|
+
id: z.ZodString;
|
|
15105
|
+
sourceRevisionId: z.ZodUUID;
|
|
15106
|
+
sourceContentHash: z.ZodString;
|
|
15107
|
+
operationVersion: z.ZodNumber;
|
|
15108
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15109
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
15110
|
+
entityId: z.ZodString;
|
|
15111
|
+
materialRole: z.ZodString;
|
|
15112
|
+
color: z.ZodString;
|
|
15113
|
+
id: z.ZodString;
|
|
15114
|
+
sourceRevisionId: z.ZodUUID;
|
|
15115
|
+
sourceContentHash: z.ZodString;
|
|
15116
|
+
operationVersion: z.ZodNumber;
|
|
15117
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15118
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
15119
|
+
entityId: z.ZodString;
|
|
15120
|
+
visible: z.ZodBoolean;
|
|
15121
|
+
id: z.ZodString;
|
|
15122
|
+
sourceRevisionId: z.ZodUUID;
|
|
15123
|
+
sourceContentHash: z.ZodString;
|
|
15124
|
+
operationVersion: z.ZodNumber;
|
|
15125
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15126
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
15127
|
+
shotId: z.ZodString;
|
|
15128
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15129
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15130
|
+
id: z.ZodString;
|
|
15131
|
+
sourceRevisionId: z.ZodUUID;
|
|
15132
|
+
sourceContentHash: z.ZodString;
|
|
15133
|
+
operationVersion: z.ZodNumber;
|
|
15134
|
+
}, z.core.$strict>], "kind">>>;
|
|
15135
|
+
provenance: z.ZodObject<{
|
|
15136
|
+
engine: z.ZodString;
|
|
15137
|
+
engineVersion: z.ZodString;
|
|
15138
|
+
recipeVersion: z.ZodString;
|
|
15139
|
+
compilerVersion: z.ZodString;
|
|
15140
|
+
exporterVersion: z.ZodString;
|
|
15141
|
+
rendererVersion: z.ZodString;
|
|
15142
|
+
sourceRevisionId: z.ZodOptional<z.ZodUUID>;
|
|
15143
|
+
sourceArtifactId: z.ZodOptional<z.ZodString>;
|
|
15144
|
+
contentHash: z.ZodString;
|
|
15145
|
+
}, z.core.$strict>;
|
|
15146
|
+
}, z.core.$strict>], "schemaVersion">;
|
|
15147
|
+
}, z.core.$loose>;
|
|
15148
|
+
/** What a canvas node / DAG builder holds before it can name a source. */
|
|
15149
|
+
interface Pro3DRenderSourceInput {
|
|
15150
|
+
/** `"scene"` selects the existing-revision path; anything else is a brief. */
|
|
15151
|
+
sourceMode?: string;
|
|
15152
|
+
/** The brief, already resolved and affix-applied by the caller. */
|
|
15153
|
+
prompt?: string;
|
|
15154
|
+
references?: readonly Scene3DReference[];
|
|
15155
|
+
/** The revision to export or edit, and the run that produced it. */
|
|
15156
|
+
revisionId?: string;
|
|
15157
|
+
sourceJobId?: string;
|
|
15158
|
+
/** Absent/blank keeps the render-only path. */
|
|
15159
|
+
editPrompt?: string;
|
|
15160
|
+
}
|
|
15161
|
+
type Pro3DRenderSourceResult = {
|
|
15162
|
+
ok: true;
|
|
15163
|
+
source: Pro3DRenderSource;
|
|
15164
|
+
} | {
|
|
15165
|
+
ok: false;
|
|
15166
|
+
message: string;
|
|
15167
|
+
};
|
|
15168
|
+
/**
|
|
15169
|
+
* Turn node/DAG state into the wire `source`.
|
|
15170
|
+
*
|
|
15171
|
+
* Shared by BOTH execution engines because the alternative — one copy in the
|
|
15172
|
+
* browser executor and one in the orchestrator — is the drift that lets a
|
|
15173
|
+
* canvas run and a headless run of the same node mean different things. The
|
|
15174
|
+
* refusals are part of that: a scene source missing its correlation must fail
|
|
15175
|
+
* the same way on both.
|
|
15176
|
+
*
|
|
15177
|
+
* A blank `editPrompt` is treated as ABSENT, never as an empty instruction: a
|
|
15178
|
+
* user who cleared the box asked for a plain export, and forwarding `""` would
|
|
15179
|
+
* buy them an authoring pass.
|
|
15180
|
+
*/
|
|
15181
|
+
declare function buildPro3DRenderSource(input: Pro3DRenderSourceInput): Pro3DRenderSourceResult;
|
|
15182
|
+
/**
|
|
15183
|
+
* Which timing fields a request may carry.
|
|
15184
|
+
*
|
|
15185
|
+
* A `scene` source already HAS timing, and the contract forbids silently
|
|
15186
|
+
* overriding it — so the node's own duration/fps/aspect are withheld unless
|
|
15187
|
+
* the user explicitly asked to re-time, in which case they are sent and the
|
|
15188
|
+
* engine decides whether the change is compatible. For a new scene the node's
|
|
15189
|
+
* settings simply are the request.
|
|
15190
|
+
*
|
|
15191
|
+
* Returning an object with the keys omitted (rather than set to `undefined`)
|
|
15192
|
+
* matters: these bodies are JSON-serialized, and an explicit `undefined` and a
|
|
15193
|
+
* missing key are the same on the wire only by luck of the serializer.
|
|
15194
|
+
*/
|
|
15195
|
+
declare function pro3DRenderTimingOverrides(input: {
|
|
15196
|
+
source: Pro3DRenderSource;
|
|
15197
|
+
overrideSourceTiming?: boolean;
|
|
15198
|
+
durationSeconds?: number;
|
|
15199
|
+
fps?: number;
|
|
15200
|
+
aspectRatio?: string;
|
|
15201
|
+
}): {
|
|
15202
|
+
durationSeconds?: number;
|
|
15203
|
+
fps?: number;
|
|
15204
|
+
aspectRatio?: string;
|
|
15205
|
+
};
|
|
15206
|
+
|
|
15207
|
+
/**
|
|
15208
|
+
* The parts of `settings.studio` that must not leave the owner's account.
|
|
15209
|
+
*
|
|
15210
|
+
* A shared production is read by anyone with the link. Three things inside the
|
|
15211
|
+
* document are the OWNER'S working state and nobody else's business:
|
|
15212
|
+
*
|
|
15213
|
+
* - `trash` — the recycle bin, which holds every shot, still and clip they
|
|
15214
|
+
* deleted, with prompts and urls intact. A share viewer receiving the bin is
|
|
15215
|
+
* the sharpest of the three: it hands out work the owner explicitly threw away.
|
|
15216
|
+
* - the in-flight job markers — `pendingClips` / `pendingStills` per shot, and
|
|
15217
|
+
* `pendingMusic` / `pendingDraft` on the document. A viewer cannot land any
|
|
15218
|
+
* of them and does not own them; all they carry across is job ids.
|
|
15219
|
+
* - `freecutDraftUrl` — an unsaved editor draft.
|
|
15220
|
+
*
|
|
15221
|
+
* They do NOT all live at the same level, and that is the whole reason this
|
|
15222
|
+
* file exists rather than one array: the writer puts `trash` and
|
|
15223
|
+
* `freecutDraftUrl` on `settings.studio` itself, and puts the per-shot markers
|
|
15224
|
+
* on the `settings.studio.shots[]` entry. A strip that walked only the top
|
|
15225
|
+
* level would pass its own test and still hand a share viewer every marker in
|
|
15226
|
+
* the production.
|
|
15227
|
+
*
|
|
15228
|
+
* It lives in `@nodaro/shared` because two independent readers need the SAME
|
|
15229
|
+
* list: the public share read (which is the reason the list exists) and the
|
|
15230
|
+
* production writer's own bundle projection. A second copy of a list like this
|
|
15231
|
+
* does not stay equal — it goes one key stale and the stale side is the one
|
|
15232
|
+
* that publishes.
|
|
15233
|
+
*
|
|
15234
|
+
* This is a plain JSON walker on purpose. `settings` is a free-form column that
|
|
15235
|
+
* a client owns end to end; the projection reads the keys it must drop and
|
|
15236
|
+
* nothing else, so it never needs — and must never grow — a dependency on
|
|
15237
|
+
* whatever writes the rest of the document.
|
|
15238
|
+
*/
|
|
15239
|
+
/**
|
|
15240
|
+
* `settings.studio`'s OWN transient keys.
|
|
15241
|
+
*
|
|
15242
|
+
* The per-shot pending lists are on this list as well as the shot one on
|
|
15243
|
+
* purpose: nothing writes them here today, and a stray one from an older
|
|
15244
|
+
* client — or from a client that is not the studio editor at all — still must
|
|
15245
|
+
* not ride out to a viewer.
|
|
15246
|
+
*/
|
|
15247
|
+
declare const STUDIO_TRANSIENT_KEYS: readonly ["trash", "pendingStills", "pendingClips", "pendingMusic", "pendingDraft", "freecutDraftUrl"];
|
|
15248
|
+
/**
|
|
15249
|
+
* ...and a SHOT entry's, which is where the per-shot markers actually are.
|
|
15250
|
+
*
|
|
15251
|
+
* `pendingClip` (singular) is the pre-concurrent-markers shape; the editor's
|
|
15252
|
+
* reader still migrates it on parse, so a row can still be carrying one and it
|
|
15253
|
+
* is still in-flight state.
|
|
15254
|
+
*/
|
|
15255
|
+
declare const STUDIO_SHOT_TRANSIENT_KEYS: readonly ["pendingClips", "pendingClip", "pendingStills"];
|
|
15256
|
+
/**
|
|
15257
|
+
* A production's `settings` with the owner's working state removed.
|
|
15258
|
+
*
|
|
15259
|
+
* Copy-on-write, and structurally: it rebuilds the objects without those keys
|
|
15260
|
+
* rather than deleting from the caller's, so the stored row is untouched. A
|
|
15261
|
+
* `settings` with no `studio` comes back unchanged — this is a studio concern,
|
|
15262
|
+
* and a workflow that is not a production has nothing here to strip.
|
|
15263
|
+
*
|
|
15264
|
+
* Takes and returns `unknown` because the column is free-form and every caller
|
|
15265
|
+
* already holds it as whatever its own layer calls JSON; narrowing here would
|
|
15266
|
+
* only move the cast one line up.
|
|
15267
|
+
*/
|
|
15268
|
+
declare function stripStudioTransientSettings(settings: unknown): unknown;
|
|
15269
|
+
|
|
15270
|
+
/** Immutable, deterministic edits over a baked scene. No asset bytes are mutated. */
|
|
15271
|
+
|
|
15272
|
+
/** Callers describe values. Revision identity and provenance are assigned here. */
|
|
15273
|
+
declare const scene3DV2OverrideInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
15274
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
15275
|
+
entityId: z.ZodString;
|
|
15276
|
+
space: z.ZodEnum<{
|
|
15277
|
+
local: "local";
|
|
15278
|
+
world: "world";
|
|
15279
|
+
}>;
|
|
15280
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15281
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15282
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15283
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15284
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
15285
|
+
entityId: z.ZodString;
|
|
15286
|
+
materialRole: z.ZodString;
|
|
15287
|
+
color: z.ZodString;
|
|
15288
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15289
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
15290
|
+
entityId: z.ZodString;
|
|
15291
|
+
visible: z.ZodBoolean;
|
|
15292
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15293
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
15294
|
+
shotId: z.ZodString;
|
|
15295
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15296
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15297
|
+
}, z.core.$strict>], "kind">;
|
|
15298
|
+
declare const scene3DV2EditOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
15299
|
+
op: z.ZodLiteral<"set-override">;
|
|
15300
|
+
override: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
15301
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
15302
|
+
entityId: z.ZodString;
|
|
15303
|
+
space: z.ZodEnum<{
|
|
15304
|
+
local: "local";
|
|
15305
|
+
world: "world";
|
|
15306
|
+
}>;
|
|
15307
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15308
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15309
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15310
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15311
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
15312
|
+
entityId: z.ZodString;
|
|
15313
|
+
materialRole: z.ZodString;
|
|
15314
|
+
color: z.ZodString;
|
|
15315
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15316
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
15317
|
+
entityId: z.ZodString;
|
|
15318
|
+
visible: z.ZodBoolean;
|
|
15319
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15320
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
15321
|
+
shotId: z.ZodString;
|
|
15322
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15323
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15324
|
+
}, z.core.$strict>], "kind">;
|
|
15325
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15326
|
+
op: z.ZodLiteral<"remove-override">;
|
|
15327
|
+
overrideId: z.ZodString;
|
|
15328
|
+
}, z.core.$strict>], "op">;
|
|
15329
|
+
declare const scene3DV2EditOperationsSchema: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
15330
|
+
op: z.ZodLiteral<"set-override">;
|
|
15331
|
+
override: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
15332
|
+
kind: z.ZodLiteral<"entity-transform">;
|
|
15333
|
+
entityId: z.ZodString;
|
|
15334
|
+
space: z.ZodEnum<{
|
|
15335
|
+
local: "local";
|
|
15336
|
+
world: "world";
|
|
15337
|
+
}>;
|
|
15338
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15339
|
+
rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15340
|
+
scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15341
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15342
|
+
kind: z.ZodLiteral<"entity-color">;
|
|
15343
|
+
entityId: z.ZodString;
|
|
15344
|
+
materialRole: z.ZodString;
|
|
15345
|
+
color: z.ZodString;
|
|
15346
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15347
|
+
kind: z.ZodLiteral<"entity-visibility">;
|
|
15348
|
+
entityId: z.ZodString;
|
|
15349
|
+
visible: z.ZodBoolean;
|
|
15350
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15351
|
+
kind: z.ZodLiteral<"camera-shot-offset">;
|
|
15352
|
+
shotId: z.ZodString;
|
|
15353
|
+
positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15354
|
+
targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
15355
|
+
}, z.core.$strict>], "kind">;
|
|
15356
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15357
|
+
op: z.ZodLiteral<"remove-override">;
|
|
15358
|
+
overrideId: z.ZodString;
|
|
15359
|
+
}, z.core.$strict>], "op">>;
|
|
15360
|
+
type Scene3DV2OverrideInput = z.infer<typeof scene3DV2OverrideInputSchema>;
|
|
15361
|
+
type Scene3DV2EditOperation = z.infer<typeof scene3DV2EditOperationSchema>;
|
|
15362
|
+
interface Scene3DV2EditOptions {
|
|
15363
|
+
expectedRevisionId: string;
|
|
15364
|
+
expectedContentHash?: string;
|
|
15365
|
+
lockedObjectIds?: readonly string[];
|
|
15366
|
+
/** Hosts may allocate identity at admission for idempotent job replay. */
|
|
15367
|
+
newRevisionId?: string;
|
|
15368
|
+
}
|
|
15369
|
+
type Scene3DV2EditResult = {
|
|
15370
|
+
ok: true;
|
|
15371
|
+
plan: Scene3DPlanV2;
|
|
15372
|
+
changeSummary: string;
|
|
15373
|
+
} | {
|
|
15374
|
+
ok: false;
|
|
15375
|
+
code: "invalid_plan" | "invalid_operations" | "stale_revision" | "locked";
|
|
15376
|
+
message: string;
|
|
15377
|
+
};
|
|
15378
|
+
/**
|
|
15379
|
+
* Edits are all-or-nothing. The expected revision and content hash are checked
|
|
15380
|
+
* before writing, and the result is validated and hashed before acceptance.
|
|
15381
|
+
* A source file belongs to its exact base revision: until the host materializes
|
|
15382
|
+
* these edits, the new revision must not advertise the old native download.
|
|
15383
|
+
*/
|
|
15384
|
+
declare function applyScene3DV2EditOperations(input: Scene3DPlanV2, operations: readonly Scene3DV2EditOperation[], options: Scene3DV2EditOptions): Promise<Scene3DV2EditResult>;
|
|
15385
|
+
|
|
15386
|
+
/** The value that names the Basic lane explicitly. Absent means the same. */
|
|
15387
|
+
declare const SCENE3D_BASIC_ENGINE = "basic";
|
|
15388
|
+
/** Everything a caller may put in `engine` on a Generate/Edit request. */
|
|
15389
|
+
declare const SCENE3D_AUTHORING_ENGINES: readonly ["basic", "blender-cloud", "blender-local"];
|
|
15390
|
+
type Scene3DAuthoringEngine = (typeof SCENE3D_AUTHORING_ENGINES)[number];
|
|
15391
|
+
/**
|
|
15392
|
+
* The engine an Advanced run picks when nothing else names one.
|
|
15393
|
+
*
|
|
15394
|
+
* Hosted cloud, because that is the contract's default lane; `blender-local`
|
|
15395
|
+
* is never inferred — it needs a paired desktop and its own deployment flag,
|
|
15396
|
+
* so it is only ever used when it was explicitly asked for or when the scene
|
|
15397
|
+
* under edit was authored by it and this install still offers it.
|
|
15398
|
+
*/
|
|
15399
|
+
declare const SCENE3D_DEFAULT_ADVANCED_ENGINE: Scene3DKnownEngine;
|
|
15400
|
+
declare function isScene3DAuthoringEngine(value: unknown): value is Scene3DAuthoringEngine;
|
|
15401
|
+
interface Scene3DEngineChoiceInput {
|
|
15402
|
+
/** The node's/caller's explicit selection. `undefined` = "not chosen". */
|
|
15403
|
+
requested?: string | null;
|
|
15404
|
+
/**
|
|
15405
|
+
* The plan the run edits, for an edit. Omit for generate.
|
|
15406
|
+
*
|
|
15407
|
+
* The raw plan rather than a version number on purpose: the caller already
|
|
15408
|
+
* holds it, and reading the version here is the ONE place the "v2 never goes
|
|
15409
|
+
* to Basic" rule can be enforced for every surface at once.
|
|
15410
|
+
*/
|
|
15411
|
+
plan?: unknown;
|
|
15412
|
+
/**
|
|
15413
|
+
* Advanced engines this install can actually serve, from
|
|
15414
|
+
* `GET /v1/3d-scene/capabilities`.
|
|
15415
|
+
*
|
|
15416
|
+
* `undefined` means NOT KNOWN (the headless orchestrator never asks, and the
|
|
15417
|
+
* browser has not had the answer back yet) — which is different from "none".
|
|
15418
|
+
* Unknown proceeds and lets the route refuse honestly with
|
|
15419
|
+
* `SCENE_CAPABILITY_UNAVAILABLE`; a known-empty list refuses here, before a
|
|
15420
|
+
* request that cannot succeed is sent.
|
|
15421
|
+
*/
|
|
15422
|
+
availableEngines?: readonly string[] | undefined;
|
|
15423
|
+
}
|
|
15424
|
+
/** The extra body fields an Advanced request carries. Empty on Basic, so the
|
|
15425
|
+
* Basic request stays byte-identical to what it has always been. */
|
|
15426
|
+
interface Scene3DEngineRequestFields {
|
|
15427
|
+
engine?: Scene3DKnownEngine;
|
|
15428
|
+
/**
|
|
15429
|
+
* Which scene schema versions the CALLER can read back.
|
|
15430
|
+
*
|
|
15431
|
+
* Contract §5: an advanced authoring request declares this so the engine
|
|
15432
|
+
* never answers with a revision the caller cannot render. Both of our
|
|
15433
|
+
* surfaces read v1 and v2, so both send the same list.
|
|
15434
|
+
*/
|
|
15435
|
+
acceptedSceneSchemaVersions?: number[];
|
|
15436
|
+
}
|
|
15437
|
+
type Scene3DEngineChoiceRefusalCode =
|
|
15438
|
+
/** The name is not an engine this contract knows. */
|
|
15439
|
+
"unknown_engine"
|
|
15440
|
+
/** Explicitly asked for an engine this install does not serve. */
|
|
15441
|
+
| "engine_unavailable"
|
|
15442
|
+
/** A v2 scene was pointed at the Basic lane. */
|
|
15443
|
+
| "schema_requires_advanced"
|
|
15444
|
+
/** The scene claims a version nothing here can author against. */
|
|
15445
|
+
| "unsupported_schema_version"
|
|
15446
|
+
/** v2 scene, and no Advanced engine installed at all. */
|
|
15447
|
+
| "advanced_unavailable";
|
|
15448
|
+
type Scene3DEngineChoice = {
|
|
15449
|
+
ok: true;
|
|
15450
|
+
lane: "basic";
|
|
15451
|
+
engine: undefined;
|
|
15452
|
+
fields: Scene3DEngineRequestFields;
|
|
15453
|
+
} | {
|
|
15454
|
+
ok: true;
|
|
15455
|
+
lane: "advanced";
|
|
15456
|
+
engine: Scene3DKnownEngine;
|
|
15457
|
+
fields: Scene3DEngineRequestFields;
|
|
15458
|
+
} | {
|
|
15459
|
+
ok: false;
|
|
15460
|
+
code: Scene3DEngineChoiceRefusalCode;
|
|
15461
|
+
message: string;
|
|
15462
|
+
};
|
|
15463
|
+
/**
|
|
15464
|
+
* Resolve the lane, or refuse with a sentence the user can act on.
|
|
15465
|
+
*
|
|
15466
|
+
* Pure and synchronous: every caller already holds the three inputs, and the
|
|
15467
|
+
* answer must be identical on the canvas and in the orchestrator.
|
|
15468
|
+
*/
|
|
15469
|
+
declare function resolveScene3DAuthoringEngine(input: Scene3DEngineChoiceInput): Scene3DEngineChoice;
|
|
15470
|
+
/** v1's version constant, re-exported for callers narrowing a plan by hand. */
|
|
15471
|
+
declare const SCENE3D_BASIC_SCHEMA_VERSION = 1;
|
|
12624
15472
|
|
|
12625
|
-
export { ACCESS_LEVELS, ACTIVE_SCENE_HELPERS, ADVANCED_MODE_UNAVAILABLE_REASON, AGGREGATEABLE_TYPES, AGGREGATE_LANE_SOURCE_TYPES, AI_AVATAR_DURATION_BUCKETS, AI_AVATAR_MAX_AUDIO_SEC, AI_AVATAR_MAX_DURATION_SEC, AI_AVATAR_RESERVE_IDS, AI_WRITER_PROVIDERS, ALA_CARTE_BOARDS, ALL_CAPTION_STYLES, ANIMALS, ANIMAL_SUBCATEGORY_LABELS, ANIMAL_SUBCATEGORY_ORDER, ASPECT_RATIO_DIMENSIONS, AUDIO_ADDON_PROVIDERS, AUDIO_CROSSFADE_CURVES, AUDIO_CROSSFADE_CURVE_IDS, AUDIO_FX_PRESETS, AUDIO_FX_PRESET_LABELS, AUDIO_FX_PRESET_SET, AUDIO_FX_REVERB_PRESETS, AUDIO_PRODUCER_TYPES, type AccessLevel, type AddBRollResult, AddBRollResultSchema, type AggregateableType, type AggregationBuckets, type AiAvatarDurationBucket, type AiAvatarEngine, type AiAvatarResolution, type AiWriterProvider, type AlaCarteBoard, type AnalyzedScene, type AnchorSceneStyleResult, AnchorSceneStyleResultSchema, type Animal, type AnimalSubcategory, type AssetRef, AssetRefSchema, type AudioCrossfadeCurve, type AudioFxPreset, type AudioLayer, type AuditImagesResult, AuditImagesResultSchema, type AuditImagesShotEntry, AuditImagesShotEntrySchema, AuditPromptIssueSchema, type AuditPromptResult, AuditPromptResultSchema, AvatarPayloadError, BOARD_TO_ASSET_TYPE, BOARD_TO_COLUMN, BOARD_VARIANTS, type BoardEntityKind, type BoardPromptContext, type BoardTemplate, BridgeToNextSceneInputSchema, type BridgeToNextSceneResult, BridgeToNextSceneResultSchema, type BrowseCommunityParams, type BrowseCommunityResult, CATEGORY_DURATION_DEFAULTS, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_ASSET_TYPES, CHARACTER_ASSET_VARIANTS, CHARACTER_ATTACH_COLUMNS, CHARACTER_FACETS, CHARACTER_FACET_IDS, CHARACTER_LORA_TRAINING_JOB_TYPE, CHARACTER_MOTION_PROVIDERS, CHARACTER_PICKER_DISPLAY_ORDER, CHARACTER_REFERENCE_PHOTO_KINDS, CHARACTER_STYLES, CHARACTER_VARIANT_ASSET_BUCKETS, CHAT_ENABLED_STAGES, CHAT_STAGES, CHAT_TURN_CAPS, CHAT_WIRED_STAGES, CINEMATIC_DEFAULT_DURATION_SEC, CINEMATIC_DEFAULT_RESOLUTION, CINEMATIC_MAX_DURATION_SEC, CINEMATIC_MAX_LOOKS, CINEMATIC_MAX_REFERENCE_IMAGES, CINEMATIC_MAX_REFERENCE_VIDEOS, CINEMATIC_MIN_DURATION_SEC, CINEMATIC_MIN_LOOKS, CINEMATIC_PROMPT_MAX, CINEMATIC_RESERVE_IDS, COLLABORATOR_ROLES, COLLECT_IN_HANDLE, COMBINE_TRANSITIONS, COMBINE_TRANSITION_GROUP_LABELS, COMBINE_TRANSITION_GROUP_ORDER, COMBINE_TRANSITION_IDS, COMPOSER_PLAN_FIELDS, COMPOSER_PLAN_MAP, CONTENT_TYPES_BY_PLATFORM, CREATURE_ATTACH_COLUMNS, CREDIT_BASE_USD, CREDIT_ROUNDING_RESOLUTION, type CaptionStyle, type CastCoverageCriticVerdict, CastCoverageCriticVerdictSchema, type CharacterAspectRatio, type CharacterAssetType, type CharacterAssetTypeForAspect, type CharacterAttachColumn, type CharacterDef, type CharacterFacet, type CharacterImageCriticVerdict, CharacterImageCriticVerdictSchema, type CharacterLoraFields, type CharacterMentionTokenInfo, CharacterMetadataSchema, type CharacterMotionProvider, type CharacterReferencePhoto, type CharacterReferencePhotoKind, type CharacterVariantAssetBucket, type CharacterVariantAssetItem, type CharacterVoiceSpec, type ChatEnabledStage, type ChatTurnResponse, ChatTurnResponseSchema, type CinematicResolution, type ClipLook, type CloneListingResult, type CollaboratorRole, type CombineTransition, type CombineTransitionGroup, type CombineVideosEstimatorInput, type CommunityCard, type CommunityEntityType, type CommunityFullDetail, type CommunityReportReason, type CommunitySort, type ComponentHandle, type ComponentMetadata, type ConnectedReference, type CreatureAttachColumn, CriticIssueSchema, type CustomEntry, DEFAULT_AUDIO_CROSSFADE_CURVE_ID, DEFAULT_CARRIED_FRACTION, DEFAULT_CHARACTER_ANGLE_COUNT, DEFAULT_CHARACTER_EXPRESSION_COUNT, DEFAULT_CHARACTER_FACET, DEFAULT_LABEL_BY_SOURCE, DEFAULT_LOCATION_USAGE_MODE, DEFAULT_PANEL_COUNT, DEFAULT_REF_IMAGE_MAX, DEFAULT_SECTIONS, DEFAULT_USAGE_MODE, DEFAULT_VIDEO_ANALYSIS_MODEL, DEFAULT_VIDEO_ANALYSIS_TIER, DEFAULT_VIDEO_CLIP_COST, DEFAULT_VIDEO_DURATION_SEC, DEFAULT_VIDEO_PROVIDER, DEFAULT_VOICE_CHANGER_MODEL, DEFAULT_VOICE_DESIGN_MODEL, DETAIL_VARIANTS, DURATION_PRICED_PROVIDERS, DYNAMIC_PRODUCER_TYPES, type DescribedReference, type DetectionResult, DetectionResultSchema, type DialogueLine, EFFORT_TIER_BUMP, EMOTIONAL_BEAT, ENTITY_ASPECT_DEFAULTS, ENTITY_BUCKET_FIELDS, ENTITY_DB_ID_FIELD, ENTITY_IMAGE_HANDLE_TYPES, ENTITY_KIND_SCALAR_FIELDS, ENTITY_NAME_FIELD, ENTITY_NODE_KINDS, ENTITY_SCALAR_FIELDS, ENTITY_SECTIONS, ENTITY_STATUSES, ENTITY_TABLE, ENTITY_TOOL_RETRY_CAP, ENTITY_TYPES, EXECUTION_DATA_KEYS, EXTEND_VIDEO_PROVIDERS, type EntityKind, type EntityMentionTokenInfo, type EntityMetadata, EntityMetadataSchema, type EntityNodeKind, type EntityReferenceInput, type EntityRejectInput, EntityRejectInputSchema, type EntitySlot, type EntityStaleEvent, EntityStaleEventSchema, type EntityStateChangeEvent, EntityStateChangeEventSchema, type EntityStatus, type EntityStudioKind, type EntityStyle, type EntityType, type EvaluateConditionOptions, type ExportedPreset, type ExposableField, type ExposableOutput, type ExposedSetting, type ExtendVideoProvider, type ExtraRefCharacterContext, type ExtraRefInput, FACE_SWAP_PROVIDERS, FAL_LIP_SYNC_PROVIDERS, FAN_OUT_EACH_TYPES, FEATURED_ENTITIES, FILM_BASE_CREDITS, FLEXIBLE_INPUT_LIP_SYNC_PROVIDERS, FLUX2_RES_MP, FLUX_LORA_CHARACTER_MODEL_ID, FRAME_MODE_ADAPTIVE_ONLY_ASPECT, FRAME_TARGET_HANDLES, FREECUT_EXPORT_COMPLETE, FREECUT_EXPORT_PROGRESS, FREECUT_READY, FREECUT_REQUEST_IMPORT, FURNITURE, FURNITURE_SUBCATEGORY_LABELS, FURNITURE_SUBCATEGORY_ORDER, type FaceSwapProvider, type FavoriteListingResult, type FeaturedEntity, type FilmCreditEstimate, type FilterListCondition, type FilterListOperator, type FilterOperator, type FixContinuityInput, FixContinuityInputSchema, type FixContinuityResult, FixContinuityResultSchema, type Flux2Model, type FreecutExportCompletePayload, type FreecutExportProgressPayload, type FreecutImportFile, type FreecutRequestImportPayload, type FullSelectorMode, type Furniture, type FurnitureSubcategory, GEMINI_OMNI_PROVIDERS, GENERATE_TEXT_DELIMITER, GLOBAL_MAX_DURATION_SECONDS, GRANTED_ACCESS, GROUP_HANDLE_PREFIX, GUIDANCE_SCALE_SUPPORT, GVP_ANCHOR_CHOICES, GVP_DEFAULT_PROVIDER, GVP_END_FRAME_PROVIDERS, GVP_EXTEND_PROVIDERS, GVP_SUPPORTED_PROVIDERS, GenerateMotionInputSchema, type GenerateMotionResult, GenerateMotionResultSchema, type GenericEdge, type GenericNode, type GrantedAccess, type GvpAnchorChoice, type GvpAnchorWireMode, HANDLE_PORT_SEPARATOR, HELPERS_SHIPPED_IN_1B3, HIGH_QUALITY_PROVIDERS, HINT_EXEMPT_PARAMETER_TYPES, type HintEdgeLike, type HintGraphContext, type HintNodeLike, type I18nCatalogId, I2I_MASK_SUPPORT, I2I_STRENGTH_SUPPORT, IDEOGRAM_PROVIDERS, IMAGE_ASPECT_RATIO_VALUES, IMAGE_CRITIC_LEAF_MODES, IMAGE_CRITIC_MAX_RETRIES, IMAGE_CRITIC_METADATA_KEYS, IMAGE_CRITIC_MIN_ADHERENCE_SCORE, IMAGE_CRITIC_MODES, IMAGE_CRITIC_UNRESOLVABLE, IMAGE_EDIT_PROVIDERS, IMAGE_GEN_PROVIDERS, IMAGE_I2I_PROVIDERS, IMAGE_MASK_MODE, IMAGE_PROMPT_MAX, IMAGE_REF_TYPES, IMAGE_TO_VIDEO_PROVIDERS, INPUT_FIELD_MAP, INPUT_NODE_TYPES, INSTAGRAM_CAROUSEL_MAX_ITEMS, INSTAGRAM_CAROUSEL_MIN_ITEMS, ITER_CLONE_PATTERN, type IdentityFidelity, type IdentityMeta, type ImageAspectRatio, type ImageCriticIssue, ImageCriticIssueSchema, type ImageCriticLeafMode, type ImageCriticMetadataKey, type ImageCriticMode, type ImageCriticNodeIssue, type ImageCriticResult, ImageCriticResultSchema, type ImageCriticVerdict, ImageCriticVerdictSchema, type ImageEditProvider, type ImageGenProvider, type ImageI2IProvider, type ImageMaskMode, type ImageMentionTokenInfo, type ImageToVideoProvider, type ImprovePromptInput, ImprovePromptInputSchema, type ImprovePromptResult, ImprovePromptResultSchema, type InputFieldSchema, type InvitationDelivery, type InvitationPreview, type InvitationState, type InvitationView, type JoinCodeView, type JsonEvalResult, type JsonFilter, type JsonPatch, KEYFRAME_CREDITS_PER_SHOT, KINETIC_CAPTION_STYLES, type KieApiFormat, type KineticCaptionStyle, LANGUAGES, LEGACY_LOTTIE_HOST_REMAP, LIP_SYNC_DURATION_BUCKETS, LIP_SYNC_MAX_AUDIO_SECONDS, LIP_SYNC_PROVIDERS, LLM_FEATURE_DEFAULTS, LLM_MODALITY_CAPS, LLM_MODELS, LLM_MODEL_IDS, LLM_REASONING_EFFORTS, LLM_ROUTE_DEFAULTS, LLM_TEXT_INPUT_MAX, LLM_VENDOR_LABELS, LLM_VENDOR_ORDER, LOCATION_ASSET_TYPES, LOCATION_ASSET_VARIANTS, LOCATION_ATMOSPHERE_PROVIDERS, LOCATION_ATTACH_COLUMNS, LOCATION_BUCKET_TO_CATALOG_ID, LOCATION_PRESET_TO_CATALOG, LOCATION_REFERENCE_PHOTO_KINDS, LOCATION_REFERENCE_PHOTO_KIND_LABELS, LOCATION_USAGE_MODES, LOTTIE_OVERLAY_CATALOG, LOTTIE_SLOT_FIELD_PREFIX, type LabeledOption, type LipSyncDurationBucket, type LipSyncProvider, type LlmFeature, type LlmModelDef, type LlmModelGroup, type LlmReasoningEffort, type LlmRouteDefaults, type LlmTier, type LlmVendor, type LocaleCatalogMap, type LocaleDirection, type LocaleId, type LocationAssetType, type LocationAtmosphereProvider, type LocationAttachColumn, type LocationCatalogRef, type LocationImageCriticVerdict, LocationImageCriticVerdictSchema, type LocationMentionTokenInfo, LocationMetadataSchema, type LocationReferencePhotoKind, type LocationUsageMode, LocationsCoverageCriticIssueSchema, type LocationsCoverageCriticVerdict, LocationsCoverageCriticVerdictSchema, type LoopTrimEstimatorInput, type LoopVideoEstimatorInput, type LoraEligibleRef, type LoraRouting, type LottieOverlayCatalogEntry, type LottieSlotField, MAX_CUSTOM_ENTRIES_PER_BOARD, MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER, MAX_LOCATION_VARIANTS, MAX_NEGATIVE_PROMPT_CHARS_BY_PROVIDER, MAX_PANELS_PER_SHEET, MAX_TTS_CHARS_BY_PROVIDER, MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER, MEMBER_STATUSES, MINIMAX_H3_DEFAULT_RESOLUTION, MINIMAX_H3_PROVIDERS, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, MODEL_CATALOG, MODEL_PARAM_NODE_TYPES, MODEL_RECOMMENDATIONS, MODIFY_IMAGE_PROVIDERS, MOTION_COLUMN, MOTION_TRANSFER_PROVIDERS, MUSIC_PROVIDERS, type MaskRegionDescriptor, type MatchCutVerdict, MatchCutVerdictSchema, type MeOrganizations, type Member, type MemberStatus, type MinimalEdge, type MinimalNode, type ModelCatalogEntry, type ModelInputAdjustment, type ModelKind, type ModelMenuOption, type ModelMode, type ModelNodeTarget, type ModelPromptingStyle, type ModelRecommendation, type ModelTreeLine, type ModelTreeVariant, type ModelValidationIssue, type ModifyImageProvider, type MotionTransferProviderType, type MusicProvider, NATIVE_ADAPTIVE_ASPECT, NATIVE_NEGATIVE_PROMPT_MODELS, NATIVE_NEGATIVE_VIDEO_PROVIDERS, NEGATIVE_PROMPT_MAX, NODARO_IMPORT_FILES, NODARO_LOAD_TIMELINE, NODARO_LOAD_VIDEO, NODARO_RESET_PROJECT, NODE_DEFAULT_TYPES, NODE_MAPPABLE_FIELDS, NODE_PRESET_EXPORT_KIND, NODE_REF_PATTERN, NON_EN_LOCALE_IDS, NO_SPLIT_DELIMITER, type NodaroLoadTimelinePayload, type NodaroLoadVideoPayload, type NodeDefaultType, type NodeParamAdjustment, type NodePresetExport, type NormalizedImageGen, type NormalizedModelInput, type NormalizedNodes, type NormalizedVideoRequest, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ASSET_VARIANTS, OBJECT_ATTACH_COLUMNS, OBJECT_MOTION_PROVIDERS, OBJECT_PICKER_NODE_TYPES, ORG_ERROR_CODES, ORG_KINDS, ORG_ROLES, ORG_STATUSES, OUTPUT_FIELD_MAP, OUTPUT_FORMATS, type ObjectAspectRatio, type ObjectAssetType, type ObjectAssetTypeForAspect, type ObjectAttachColumn, ObjectMetadataSchema, type ObjectMotionProvider, type ObjectsValidationIssue, type ObjectsValidationResult, OptimizeForModelInputSchema, type OptimizeForModelResult, OptimizeForModelResultSchema, type OrgAuditEntry, type OrgErrorCode, type OrgKind, type OrgMemberView, type OrgPage, type OrgRole, type OrgSettings, OrgSettingsSchema, type OrgStatus, type OrganizationSummary, type OrganizationView, type OutputFormat, type OutputMode, type OutputType, PARAMETER_NODE_TYPES, PASSTHROUGH_TYPES, PAYG_RETENTION_DAYS, PER_FORMAT_DURATION_BOUNDS, PICKER_TO_COMBINE_TRANSITION, PIPELINE_ACTIVATION_MODES, PIPELINE_FORMATS, PIPELINE_HARD_TIMEOUT_MS, PIPELINE_MODEL_STAGES, PIPELINE_MODES, PIPELINE_OUTPUT_RESOLUTIONS, PIPELINE_PINNABLE_IMAGE_MODELS, PIPELINE_PINNABLE_SCRIPT_LLMS, PIPELINE_PINNABLE_VIDEO_MODELS, PIPELINE_STAGE_NAMES, PIPELINE_STAGE_TIMEOUT_MS, PIPELINE_TYPES, PLACEHOLDER_CHARACTER_NAME, PLATFORM_LABELS, PLATFORM_SPECS, PRESET_APPLY_CLEAR_KEYS, PRESET_EXCLUDED_KEYS, PRESET_LABELS, PRESET_SETTING_KEYS, PRICING_DEFAULT_DURATION_SEC, PRICING_DEFAULT_RESOLUTION, PROMPT_HARD_CEILING, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PROVIDER_DIRECTIVE_DEFAULTS, PROVIDER_PLACEHOLDER_PREFIX, type PanelGenRequest, type PanelRequest, type PanelSource, type PipelineActivationMode, type PipelineCompletedEvent, PipelineCompletedEventSchema, type PipelineConfig, PipelineConfigSchema, type PipelineDriftSummary, PipelineDriftSummarySchema, type PipelineEditorDecisionsReadyEvent, PipelineEditorDecisionsReadyEventSchema, type PipelineEvent, type PipelineForkedEvent, PipelineForkedEventSchema, type PipelineFormat, type PipelineInput, PipelineInputSchema, type PipelineLifecycleEvent, type PipelineMode, type PipelineModelStage, type PipelineMusicReadyEvent, PipelineMusicReadyEventSchema, type PipelineOutputResolution, type PipelinePinnableImageModel, type PipelinePinnableScriptLlm, type PipelinePinnableVideoModel, type PipelineStageName, PipelineStageNameSchema, type PipelineStageStatus, PipelineStageStatusSchema, type PipelineState, PipelineStateSchema, type PipelineStatus, PipelineStatusSchema, type PipelineType, type PixelBox, type PresentationItem, type PresetEntry, type PresetSettingKey, type PresetSettings, PresetSettingsSchema, type PriceVariant, type PricedVideoSelection, type ProgressSegment, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, type PromptAffixFields, type PromptAffixes, type ProposedChange, type PublishListingParams, type PublishListingResult, QA_CHECK_PROVIDERS, type QaCheckProvider, type QualityLevel, REDUCE_STRATEGIES, REDUCE_STRATEGY_IDS, REFERENCE_BOARD_PROVIDERS, REFERENCE_BOARD_TEMPLATES, REFERENCE_HANDLE_MAP, REFERENCE_ROLE_PRESETS, REF_HANDLE_CATEGORY, REF_IMAGE_MAX_LIMITS, REF_TOKEN_NAMESPACE_PREFIXES, RENDERING_SPEED_SUPPORT, REPEATABLE_NODE_TYPES, REPEAT_PLACEHOLDER, REPLICATE_LIP_SYNC_PROVIDERS, RESERVED_TEMPLATE_VARS, type ReduceMeta, type ReduceStrategy, type ReduceStrategyId, type RefCandidate, type RefModalityEdge, type RefTokenKind, type RefVideoDurationLimit, type ReferenceBoardProvider, type ReferenceModality, type ReferenceSheet, type ReferenceSource, type ReportListingResult, type ResolveCharacterAspectOptions, type ResolveObjectAspectOptions, type ResolveSeparatorOptions, type ResolvedDialogueVoiceLine, type RouterConditionGroup, SCENE3D_DEFAULT_DURATION_SECONDS, SCENE3D_DEFAULT_FPS, SCENE3D_EDIT_NODE_TYPE, SCENE3D_GENERATE_NODE_TYPE, SCENE3D_LIMITS, SCENE3D_PLAN_FIELD, SCENE3D_PLAN_TYPE, SCENE3D_PRIMITIVES, SCENE3D_SCHEMA_VERSION, SCENE_HELPER_NAMES, SCRAPER_ACTOR_LABELS, SCRAPER_CREDIT_COSTS, SCRAPER_OUTPUT_FIELDS, SCRIPT_PROVIDERS, SEASONS, SECTION_BOARD, SECTION_KINDS, SEEDANCE_2_5_REF_LIMITS, SEEDANCE_2_CONTINUATION_REF_SEC, SEEDANCE_2_EXTEND_STITCH, SEEDANCE_2_PROVIDERS, SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER, SEEDANCE_2_R2V_MIN_REF_VIDEO_SEC, SEEDANCE_2_REF_LIMITS, SEEDANCE_LIP_SYNC_PROVIDERS, SEED_SUPPORT, SEPARATOR_DISPLAY, SEPARATOR_PRESETS, SHEET_ASPECTS, SHEET_BACKGROUNDS, SHEET_PRESETS, SHEET_SKINS, SHEET_TYPES, SHORT_FILM_ANGLE_COUNT, SHORT_FILM_EXPRESSION_COUNT, SHORT_FILM_VARIANT_THRESHOLD_SEC, SLOT_TOKEN_RE, SMART_CUT_WINDOW_DEFAULT, SMART_CUT_WINDOW_MAX, SMART_CUT_WINDOW_MIN, SOCIAL_POST_NODE_TYPES, STAGE_PATCH_SCHEMA, STATIC_CAPTION_STYLES, STRUCTURAL_SECTIONS, STRUCTURED_VISION_MODELS, STUDIO_SHOT_TRANSIENT_KEYS, STUDIO_TRANSIENT_KEYS, SUBMISSION_STATUSES, SUNO_ADD_TRACK_MODELS, SUNO_FIELD_HANDLE_FIELDS, SUNO_HARD_CEILING, SUNO_MODELS, SUNO_SELECT_OPERATIONS, SUNO_TEXT_MAX, SUNO_TITLE_MAX, SUNO_TRACK_SOURCE_TYPES, SUNO_VERSION_PRICED_OPERATIONS, SUPPORTED_FONT_NAMES, SURROUND_DIRECTIONS, SWITCHX_BLOCK_FRAMES, SWITCHX_FRAME_TIERS, type SafetyRetryPolicy, type Scene3DCamera, type Scene3DCameraChanges, type Scene3DCameraKeyframe, type Scene3DEasing, type Scene3DEditErrorCode, type Scene3DEditOperation, type Scene3DEditOptions, type Scene3DEditResult, type Scene3DJobOutput, type Scene3DLighting, type Scene3DLightingChanges, type Scene3DObject, type Scene3DObjectChanges, type Scene3DObjectKeyframe, type Scene3DPlan, type Scene3DPrimitive, type Scene3DReference, type Scene3DReferenceKind, type Scene3DReferenceRole, type SceneData, type SceneHelperName, SceneHelperNameSchema, type SceneInputMode, SceneInputModeSchema, type SceneMetadata, SceneMetadataSchema, type SceneNodeData, SceneNodeDataSchema, SceneSpecSchema, type ScraperActorId, type ScriptCriticVerdict, ScriptCriticVerdictSchema, type ScriptProvider, type Season, type SectionKind, type SelectorConfig, type SelectorFields, type SelectorMode, type SelectorPredicateOp, type SelectorResult, type SemanticAspectRatio, type SeparatorPreset, type SharedListing, type SharedVoice, type SheetAspect, type SheetBackground, type SheetCostEstimate, type SheetEntry, type SheetFlavour, type SheetGenerationPlan, type SheetPreset, type SheetPresetId, type SheetSection, type SheetSkin, type SheetTextData, type SheetType, type ShotElement, type ShotImageElement, type ShotShapeElement, type ShotSpec, ShotSpecSchema, type ShotTextElement, type ShowrunnerPlan, ShowrunnerPlanSchema, type SidecarLoader, type SlotControlDescriptor, type SlotControlKind, type SlotVariation, type SocialMediaContentType, type SocialMediaPlatform, type SocialMediaSpec, type SortDirection, type SortListOptions, type SortType, type StageAwaitingSubGateEvent, StageAwaitingSubGateEventSchema, type StaticCaptionStyle, type StoryboardCohesionCriticVerdict, StoryboardCohesionCriticVerdictSchema, type StyleDirectives, StyleDirectivesSchema, type SubGateName, SubGateNameSchema, type SubmissionStatus, type SunoAddTrackModel, type SunoModel, type SupportedFontName, type SurroundDirection, type Swatch, T2I_TO_I2I_VARIANT, TASK_CHAINED_EDIT_PROVIDERS, TEXT_TO_AUDIO_PROVIDERS, TEXT_TO_VIDEO_PROVIDERS, TIER_MAX_PIPELINE_COST_CREDITS, TIER_PIPELINE_PARALLELISM, TILT_CARRIED_FRACTION, TOPAZ_DEFAULT_UPSCALE_FACTOR, TOPAZ_UPSCALE_FACTORS, TRANSCRIBE_PROVIDERS, TRANSIENT_RUNTIME_KEYS, TTS_PROVIDERS, TTS_TEXT_MAX, TWO_K_RESOLUTION_PROVIDERS, type TextToAudioProvider, type TextToVideoProvider, type TopazUpscaleAdjustment, type TopazUpscaleFactor, type TopazUpscaleResolution, type TranscribeProvider, type TransitionType, TransitionTypeSchema, type TrimVideoEstimatorInput, type TtsProvider, UPSCALE_IMAGE_PROVIDERS, USAGE_GROUP_BYS, USAGE_MODES, type UpscaleImageProvider, type UsageGroupBy, type UsageLogEntry, type UsageMode, type UsageQuery, type UsageReport, type UsageReportRow, type UsageReportTotals, type UsageVarianceRow, VARIABLES_HANDLE_ID, VARIABLE_PRICING_MODELS, VEHICLES, VEHICLE_SUBCATEGORY_LABELS, VEHICLE_SUBCATEGORY_ORDER, VEO_PROVIDERS, VIDEO_ANALYSIS_AUDIO_MODES, VIDEO_ANALYSIS_BUCKET_CREDITS, VIDEO_ANALYSIS_CLIP_TRANSITIONS_IN, VIDEO_ANALYSIS_DEFAULT_VARIATION, VIDEO_ANALYSIS_DURATION_BUCKETS, VIDEO_ANALYSIS_DURATION_TOLERANCE_SEC, VIDEO_ANALYSIS_ENTITY_SOURCES, VIDEO_ANALYSIS_FACELESS_ANGLES, VIDEO_ANALYSIS_LEGACY_MODELS, VIDEO_ANALYSIS_LLM_MODELS, VIDEO_ANALYSIS_MAX_DURATION_SEC, VIDEO_ANALYSIS_MAX_SCENE_SEC, VIDEO_ANALYSIS_MAX_VARIATIONS, VIDEO_ANALYSIS_MIXED_TIERS, VIDEO_ANALYSIS_SHOT_ANGLES, VIDEO_ANALYSIS_SPEED_EFFECTS, VIDEO_ANALYSIS_STORY_JUMPS, VIDEO_ANALYSIS_TEXT_KINDS, VIDEO_ANALYSIS_TIERS, VIDEO_ANALYSIS_TIER_LABELS, VIDEO_ANALYSIS_TIER_ORDER, VIDEO_ANALYSIS_TIMES_OF_DAY, VIDEO_ANALYSIS_TRANSITIONS, VIDEO_ANALYSIS_VARIATION_SLUGS, VIDEO_ANALYSIS_VISUAL_EFFECTS, VIDEO_ANALYSIS_WINDOW, VIDEO_AUDIO_CAPABILITY, VIDEO_AUDIT_BUCKET_CREDITS, VIDEO_CLIP_CREDITS, VIDEO_CRITIC_CREDITS_PER_SHOT, VIDEO_CRITIC_FRAME_MODES, VIDEO_CRITIC_MAX_RETRIES, VIDEO_CRITIC_METADATA_KEYS, VIDEO_CRITIC_MIN_ADHERENCE_SCORE, VIDEO_DURATION_TIERS, VIDEO_GEN_COLLAPSED_T2V_IDS, VIDEO_GEN_PROVIDERS, VIDEO_INPUT_LIP_SYNC_PROVIDERS, VIDEO_MODEL_CAPS, VIDEO_MODE_ALIASES, VIDEO_PRODUCER_TYPES, VIDEO_PROMPT_MAX, VIDEO_PROVIDERS_REQUIRING_IMAGE, VIDEO_PROVIDERS_WITHOUT_DISPATCH, VIDEO_REF_LIMITS_BY_PROVIDER, VIDEO_REF_VIDEO_DURATION_LIMITS, VIDEO_TO_VIDEO_PROVIDERS, VIDEO_UPSCALE_PROVIDERS, VIDEO_UTIL_PRICING, VIDEO_VARIABLE_PRICING, VOICE_CHANGER_MODELS, VOICE_CHANGER_MODEL_IDS, VOICE_DESIGN_MODELS, type ValidateMatchCutInput, ValidateMatchCutInputSchema, type ValidateMatchCutResult, ValidateMatchCutResultSchema, type ValidationField, type Vec3, type Vehicle, type VehicleSubcategory, type VideoAnalysisAudioMode, type VideoAnalysisClipTransitionIn, type VideoAnalysisEntitySource, type VideoAnalysisMixedTier, type VideoAnalysisModelTier, type VideoAnalysisResult, type VideoAnalysisShotAngle, type VideoAnalysisSpeedEffect, type VideoAnalysisTextKind, type VideoAnalysisTier, type VideoAnalysisTransition, type VideoAnalysisVisualEffect, type VideoAudioCapability, type VideoAudioMode, type VideoClipCost, type VideoCriticFrameMode, type VideoCriticMetadataKey, type VideoCriticShotFields, type VideoCriticVerdict, VideoCriticVerdictSchema, type VideoGenProvider, type VideoModeAlias, type VideoModelCapabilities, type VideoToVideoProvider, type VideoUpscaleProvider, type Voice, type VoiceChangerModel, type VoiceClone, type VoiceDesignModel, type VoiceLibraryParams, type VoiceLibraryResponse, type VoiceMatch, VoiceMatchSchema, type VoiceType, WAN_3_DEFAULT_RESOLUTION, WAN_3_PROVIDERS, WARDROBE_VARIANTS, WEAPONS, WEAPON_SUBCATEGORY_LABELS, WEAPON_SUBCATEGORY_ORDER, WORKFLOW_VISIBILITIES, WORKSPACE_HEADER, WORKSPACE_HEADER_LOWER, WORKSPACE_ROLES, type Weapon, type WeaponSubcategory, type WindowAnalysis, type WindowScene, type WorkflowAssetKind, type WorkflowExport, type WorkflowExportCharacter, type WorkflowExportCreature, type WorkflowExportLocation, type WorkflowExportObject, type WorkflowImportReport, type WorkflowImportSkippedAsset, type WorkflowMediaRef, type WorkflowPortability, type WorkflowVisibility, type WorkspaceMemberView, type WorkspaceRole, type WorkspaceSettings, WorkspaceSettingsSchema, type WorkspaceSummary, type WorkspaceView, aggregateByType, aiAvatarReserveCreditId, analyzedSceneSchema, applyDefaultVideoSelection, applyHandleInputOverride, applyRange, applyRangeIndices, applyScene3DEditOperations, applySlots, applyVideoAudioToggle, applyVideoNegativePrompt, aspectRatioFromDims, aspectRatioOptionsByKind, aspectRatioToNumber, assembleNarratedVideoCredits, availableReasoningEfforts, bucketSecondsFromAuditCreditId, bucketSecondsFromCreditId, buildBoardPrompt, buildChildrenByParent, buildConditionVariables, buildCreditModelIdentifier, buildExpressionFromVisual, buildLipSyncCreditId, buildLlmCreditIdentifier, buildModelMenu, buildModelTree, buildMotionCreditModelIdentifier, buildNodePresetExport, buildPanelPrompt, buildProgressSegments, buildRangeLabel, buildScraperCreditId, buildVideoAnalysisCreditId, buildVideoAuditCreditId, buildVideoCreditModelIdentifier, calculateCombinedProgress, calculateMonetizationMarkup, calculateMonetizedCost, calculateProgress, canonicalVarName, characterBoardItems, characterBucketDisplayRank, characterMentionSlug, characterMentionableAssetArrays, characterSheetRefItems, characterVariantAssetArrays, checkRefVideoDurations, cinematicCreditId, clampCinematicDuration, clampSmartCutWindow, classifyRefToken, cleanOrphanedItems, clearImageCriticMetadata, clearVideoCriticMetadata, clipLookSchema, collectAncestorRefs, combineSameLabelRefs, computeAggregateLanes, countRefModalityEdges, creditRangesAll, creditsToUsd, decodeProviderItem, defaultCarriedFraction, defaultResolutionFor, defaultRoleForSource, defaultVideoAspectRatio, deriveLinkedFields, deriveLottieSlotFields, deriveSlotRefs, describeEdgeBehavior, describeMaskRegion, describeNodeAdjustments, describeSlotControl, dropUnknownBindings, dropUnknownSpeakers, durationsByMode, effectiveReasoningEffort, encodeProviderItem, ensureLocaleCatalogLoaded, entityHydrationColumns, entityMentionSlug, entityMentionSlugForRef, entityScalarFields, entitySlotSchema, entryMatchesQuery, estimateCombineVideosCredits, estimateFilmCredits, estimateLoopTrimAddonCredits, estimateLoopVideoCredits, estimateScriptDurationSec, estimateSheetCost, estimateTrimVideoCredits, evaluateCondition, evaluateConditionGroup, evaluateJsonExpression, evaluateJsonPath, expandExtraRefsToConnectedReferences, expandItemsWithRepeat, extractAllGeneratedResults, extractCharacterLoraFields, extractGeneratedJsonAsList, extractPresetData, extractReferencedLabels, extractVideoDurationFromNode, fieldKeyFromHandle, filterCloneNodes, findCharacterMentionTokens, findEntityMentionTokens, findImageMentionTokens, findLocationMentionTokens, findSeedance2AudioOverLimit, firstSightExtraRole, flattenItems, getAnimal, getAnimalLabel, getAnimalPromptHint, getAnimalTerm, getAspectRatioOptions, getAudioCrossfadeCurve, getCharacterFacet, getCombineTransition, getCreditRange, getDurationsForModel, getEffectiveRepeatCount, getFeaturedEntities, getFurniture, getFurnitureLabel, getInputFieldSchema, getInputNodes, getItemSortId, getLipSyncMaxAudioSeconds, getLlmModalityCaps, getLlmModel, getLlmTier, getLocaleDirection, getMaxImagePromptChars, getMaxNegativePromptChars, getMaxSunoPromptChars, getMaxSunoStyleChars, getMaxTtsChars, getMaxVideoPromptChars, getModel, getNodeLabel, getNodeResult, getOutputNodes, getOutputType, getParameterValue, getQualityOptions, getResolutionOptions, getRouteReachableNodeIds, getStrategy, getTargetField, getValidValues, getVehicle, getVehicleLabel, getVideoAudioCapability, getWeapon, getWeaponLabel, groupByFamily, groupHandleId, groupLlmModelsByVendor, hasContiguousSegmentDurations, hasFeature, hexToRgbaArray, humanizeSlotSid, imageMentionSlug, imageMentionSlugForRef, imageReferenceLimit, inferMusicVideo, isAggregateableType, isCharacterAspectRatio, isCollectInEdge, isDefaultSelectorConfig, isExpandedClone, isFlux2Model, isGeminiOmniProvider, isGvpSupportedProvider, isHandleInputWired, isKineticCaptionStyle, isLocationUsageMode, isMinimaxH3Provider, isObjectAspectRatio, isOversizedScene, isPaygRetentionActive, isPerSecondLipSyncProvider, isScene3DHttpUrl, isScene3DPlan, isScraperActor, isSeedance2Provider, isTiltDirection, isUsageMode, isVeoProvider, isVideoAnalysisMixedTier, isVideoAnalysisTier, isWan3Provider, jsonResultToList, knownEntitySlugsFromRefs, knownImageSlugsFromRefs, listBoardTemplates, listModels, listSlotSids, llmRouteDefaults, locationMentionSlug, locationReferencePhotoKindLabel, locationUsageModeLabel, mapAspectRatio, mapQuality, mapShotIntentToProviderDirectives, matchVariant, maxSegmentSecFor, maxSegmentsFor, mergeClipLook, mergeExposedSettings, migrateEdgeOutputMode, migrateToItems, minSegmentSecFor, modelIdsByKindMode, modelToNodeTarget, modelsForInputMode, modelsWithFeature, motionGraphicsFeature, newScene3DRevisionId, normalizeLottieLayers, normalizeMinimaxH3Resolution, normalizeModelInput, normalizeNodeModelParams, normalizePinterestUrl, normalizeRoleSlug, normalizeVideoRequestParams, normalizeWan3Resolution, orderedLlmModels, parseAttributedDialogue, parseCharacterMentionToken, parseEntityMentionToken, parseGroupHandle, parseHandleId, parseImageMentionToken, parseListExpression, parseLocationMentionToken, parseNodePresetExport, parseNodeRef, pickAiAvatarBucket, pickIds, pickLipSyncBucket, pickSwitchXFrameTier, pickVideoAnalysisBucket, planSheetGeneration, planSheetPanels, preferredInputModeForModel, presentTypes, presetApplyClearKeys, presetDataMatches, presetEntries, pricedVideoSelection, qualityOptionsByKind, readPromptAffixes, refHandleCategory, referenceModalityForHandle, referenceSheetCreditId, registerCatalogSidecars, registerSidecarLoaders, renderAnalyzedScene, resetCatalogSidecars, resolutionOptionsByKind, resolveAiAvatarCreditId, resolveAudioCrossfadeCurve, resolveCharacterAspectRatio, resolveCinematicCreditId, resolveConditionValue, resolveDefaultRole, resolveDescription, resolveDialogueVoices, resolveEffectiveSourceType, resolveEffectiveTier, resolveEntityAspect, resolveFieldMappings, resolveGvpAnchorWire, resolveImageGenCreditIdentifier, resolveIndex, resolveLabel, resolveListExpression, resolveLlmCreditId, resolveLocationFields, resolveLocationPresetCatalog, resolveLottieOverlaySrc, resolveNodeRefs, resolveNormalizedImageGen, resolveObjectAspectRatio, resolvePipelineModel, resolveRelativeWindowToken, resolveScraperCreditId, resolveSelectorRefs, resolveSeparator, resolveSheetSections, resolveSlideshowTransition, resolveSourceThroughConnectedList, resolveStoredTier, resolveSwitchXCreditId, resolveTopazUpscale, resolveVideoAnalysisModel, resolveVideoModeForInputs, resolveVideoProviderForMode, resolveXfadeName, rewriteSceneBindings, rewriteSlotTokens, rewriteSpeakerSlots, rgbaArrayToHex, roleToPhrase, rotationVec3Schema, runSelector, safetyRetryPolicy, sanitizeRole, scaleVec3Schema, scene3DCameraChangesSchema, scene3DCameraKeyframeSchema, scene3DCameraSchema, scene3DColorSchema, scene3DDeepEqual, scene3DEasingSchema, scene3DEditOperationSchema, scene3DEditOperationsSchema, scene3DIdSchema, scene3DLightingChangesSchema, scene3DLightingSchema, scene3DObjectChangesSchema, scene3DObjectKeyframeSchema, scene3DObjectSchema, scene3DPlanIssues, scene3DPlanSchema, scene3DPrimitiveSchema, scene3DReferenceSchema, scene3DUrlSchema, searchModelVariants, seedance2AudioLimitSec, segmentDurationsFor, selectByModulo, selectByNamedKey, selectByPredicate, selectListItems, selectLoraRoutingForMentions, selectRandom, setRegisteredPersonPackFields, settledWithLimit, sizeVec3Schema, slotVariationSchema, sortCharacterEntriesForDisplay, sortListItems, sourceRefKey, spliceDelimitedRows, splitByLoopDelimiter, splitGeneratedItems, spreadJsonArrayIfSingleton, stringifyPathResults, stripDerivedAnalysisFields, stripExportContent, stripStudioTransientSettings, stripTransientRuntimeData, summarizeScene3DOperations, sunoCreditType, supportedDefaultDimensions, supportsAdvancedMode, supportsEndAnchor, supportsExtendRender, toConnectedReference, toConnectedReferences, togglePick, tryParseJson, uiAspectRatioFill, uiDurationFill, uiResolutionFill, unresolvedRefTokens, unwrapUnresolvedTokens, usageModeDirective, usageModeIncludesName, usageModeLabel, usdToCredits, validateAiAvatarPayload, validateCinematicAvatarPayload, validateDurationForFormat, validateModeActivation, validateModelInput, validateNoNestedGroups, validateObjects, validateProviderForNodeType, validateSubWorkflowRoutes, variantJobId, vec3Schema, videoAnalysisCreditSegment, videoAnalysisNumWindows, videoAnalysisResultSchema, videoAuditCreditsForBucket, videoModelCanSpeakDialogue, videoModelSupportsAudio, videoNegativeSuffix, videoProviderFoldsLoneEndFrame, videoProviderRequiresImage, windowAnalysisSchema, zipMergeLists };
|
|
15473
|
+
export { ACCESS_LEVELS, ACTIVE_SCENE_HELPERS, ADVANCED_MODE_UNAVAILABLE_REASON, AGGREGATEABLE_TYPES, AGGREGATE_LANE_SOURCE_TYPES, AI_AVATAR_DURATION_BUCKETS, AI_AVATAR_MAX_AUDIO_SEC, AI_AVATAR_MAX_DURATION_SEC, AI_AVATAR_RESERVE_IDS, AI_WRITER_PROVIDERS, ALA_CARTE_BOARDS, ALL_CAPTION_STYLES, ANIMALS, ANIMAL_SUBCATEGORY_LABELS, ANIMAL_SUBCATEGORY_ORDER, ASPECT_RATIO_DIMENSIONS, AUDIO_ADDON_PROVIDERS, AUDIO_CROSSFADE_CURVES, AUDIO_CROSSFADE_CURVE_IDS, AUDIO_FX_PRESETS, AUDIO_FX_PRESET_LABELS, AUDIO_FX_PRESET_SET, AUDIO_FX_REVERB_PRESETS, AUDIO_PRODUCER_TYPES, type AccessLevel, type AddBRollResult, AddBRollResultSchema, type AggregateableType, type AggregationBuckets, type AiAvatarDurationBucket, type AiAvatarEngine, type AiAvatarResolution, type AiWriterProvider, type AlaCarteBoard, type AnalyzedScene, type AnchorSceneStyleResult, AnchorSceneStyleResultSchema, type Animal, type AnimalSubcategory, type AssetRef, AssetRefSchema, type AudioCrossfadeCurve, type AudioFxPreset, type AudioLayer, type AuditImagesResult, AuditImagesResultSchema, type AuditImagesShotEntry, AuditImagesShotEntrySchema, AuditPromptIssueSchema, type AuditPromptResult, AuditPromptResultSchema, AvatarPayloadError, BOARD_TO_ASSET_TYPE, BOARD_TO_COLUMN, BOARD_VARIANTS, type BoardEntityKind, type BoardPromptContext, type BoardTemplate, BridgeToNextSceneInputSchema, type BridgeToNextSceneResult, BridgeToNextSceneResultSchema, type BrowseCommunityParams, type BrowseCommunityResult, CATEGORY_DURATION_DEFAULTS, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_ASSET_TYPES, CHARACTER_ASSET_VARIANTS, CHARACTER_ATTACH_COLUMNS, CHARACTER_FACETS, CHARACTER_FACET_IDS, CHARACTER_LORA_TRAINING_JOB_TYPE, CHARACTER_MOTION_PROVIDERS, CHARACTER_PICKER_DISPLAY_ORDER, CHARACTER_REFERENCE_PHOTO_KINDS, CHARACTER_STYLES, CHARACTER_VARIANT_ASSET_BUCKETS, CHAT_ENABLED_STAGES, CHAT_STAGES, CHAT_TURN_CAPS, CHAT_WIRED_STAGES, CINEMATIC_DEFAULT_DURATION_SEC, CINEMATIC_DEFAULT_RESOLUTION, CINEMATIC_MAX_DURATION_SEC, CINEMATIC_MAX_LOOKS, CINEMATIC_MAX_REFERENCE_IMAGES, CINEMATIC_MAX_REFERENCE_VIDEOS, CINEMATIC_MIN_DURATION_SEC, CINEMATIC_MIN_LOOKS, CINEMATIC_PROMPT_MAX, CINEMATIC_RESERVE_IDS, COLLABORATOR_ROLES, COLLECT_IN_HANDLE, COMBINE_TRANSITIONS, COMBINE_TRANSITION_GROUP_LABELS, COMBINE_TRANSITION_GROUP_ORDER, COMBINE_TRANSITION_IDS, COMPOSER_PLAN_FIELDS, COMPOSER_PLAN_MAP, CONTENT_TYPES_BY_PLATFORM, CREATURE_ATTACH_COLUMNS, CREDIT_BASE_USD, CREDIT_ROUNDING_RESOLUTION, type CaptionStyle, type CastCoverageCriticVerdict, CastCoverageCriticVerdictSchema, type CharacterAspectRatio, type CharacterAssetType, type CharacterAssetTypeForAspect, type CharacterAttachColumn, type CharacterDef, type CharacterFacet, type CharacterImageCriticVerdict, CharacterImageCriticVerdictSchema, type CharacterLoraFields, type CharacterMentionTokenInfo, CharacterMetadataSchema, type CharacterMotionProvider, type CharacterReferencePhoto, type CharacterReferencePhotoKind, type CharacterVariantAssetBucket, type CharacterVariantAssetItem, type CharacterVoiceSpec, type ChatEnabledStage, type ChatTurnResponse, ChatTurnResponseSchema, type CinematicResolution, type ClipLook, type CloneListingResult, type CollaboratorRole, type CombineTransition, type CombineTransitionGroup, type CombineVideosEstimatorInput, type CommunityCard, type CommunityEntityType, type CommunityFullDetail, type CommunityReportReason, type CommunitySort, type ComponentHandle, type ComponentMetadata, type ConnectedReference, type CreatureAttachColumn, CriticIssueSchema, type CustomEntry, DEFAULT_AUDIO_CROSSFADE_CURVE_ID, DEFAULT_CARRIED_FRACTION, DEFAULT_CHARACTER_ANGLE_COUNT, DEFAULT_CHARACTER_EXPRESSION_COUNT, DEFAULT_CHARACTER_FACET, DEFAULT_LABEL_BY_SOURCE, DEFAULT_LOCATION_USAGE_MODE, DEFAULT_PANEL_COUNT, DEFAULT_REF_IMAGE_MAX, DEFAULT_SECTIONS, DEFAULT_USAGE_MODE, DEFAULT_VIDEO_ANALYSIS_MODEL, DEFAULT_VIDEO_ANALYSIS_TIER, DEFAULT_VIDEO_CLIP_COST, DEFAULT_VIDEO_DURATION_SEC, DEFAULT_VIDEO_PROVIDER, DEFAULT_VOICE_CHANGER_MODEL, DEFAULT_VOICE_DESIGN_MODEL, DETAIL_VARIANTS, DURATION_PRICED_PROVIDERS, DYNAMIC_PRODUCER_TYPES, type DescribedReference, type DetectionResult, DetectionResultSchema, type DialogueLine, EFFORT_TIER_BUMP, EMOTIONAL_BEAT, ENTITY_ASPECT_DEFAULTS, ENTITY_BUCKET_FIELDS, ENTITY_DB_ID_FIELD, ENTITY_IMAGE_HANDLE_TYPES, ENTITY_KIND_SCALAR_FIELDS, ENTITY_NAME_FIELD, ENTITY_NODE_KINDS, ENTITY_SCALAR_FIELDS, ENTITY_SECTIONS, ENTITY_STATUSES, ENTITY_TABLE, ENTITY_TOOL_RETRY_CAP, ENTITY_TYPES, EXECUTION_DATA_KEYS, EXTEND_VIDEO_PROVIDERS, type EntityKind, type EntityMentionTokenInfo, type EntityMetadata, EntityMetadataSchema, type EntityNodeKind, type EntityReferenceInput, type EntityRejectInput, EntityRejectInputSchema, type EntitySlot, type EntityStaleEvent, EntityStaleEventSchema, type EntityStateChangeEvent, EntityStateChangeEventSchema, type EntityStatus, type EntityStudioKind, type EntityStyle, type EntityType, type EvaluateConditionOptions, type ExportedPreset, type ExposableField, type ExposableOutput, type ExposedSetting, type ExtendVideoProvider, type ExtraRefCharacterContext, type ExtraRefInput, FACE_SWAP_PROVIDERS, FAL_LIP_SYNC_PROVIDERS, FAN_OUT_EACH_TYPES, FEATURED_ENTITIES, FILM_BASE_CREDITS, FLEXIBLE_INPUT_LIP_SYNC_PROVIDERS, FLUX2_RES_MP, FLUX_LORA_CHARACTER_MODEL_ID, FRAME_MODE_ADAPTIVE_ONLY_ASPECT, FRAME_TARGET_HANDLES, FREECUT_EXPORT_COMPLETE, FREECUT_EXPORT_PROGRESS, FREECUT_READY, FREECUT_REQUEST_IMPORT, FURNITURE, FURNITURE_SUBCATEGORY_LABELS, FURNITURE_SUBCATEGORY_ORDER, type FaceSwapProvider, type FavoriteListingResult, type FeaturedEntity, type FilmCreditEstimate, type FilterListCondition, type FilterListOperator, type FilterOperator, type FixContinuityInput, FixContinuityInputSchema, type FixContinuityResult, FixContinuityResultSchema, type Flux2Model, type FreecutExportCompletePayload, type FreecutExportProgressPayload, type FreecutImportFile, type FreecutRequestImportPayload, type FullSelectorMode, type Furniture, type FurnitureSubcategory, GEMINI_OMNI_PROVIDERS, GENERATE_TEXT_DELIMITER, GLOBAL_MAX_DURATION_SECONDS, GRANTED_ACCESS, GROUP_HANDLE_PREFIX, GUIDANCE_SCALE_SUPPORT, GVP_ANCHOR_CHOICES, GVP_DEFAULT_PROVIDER, GVP_END_FRAME_PROVIDERS, GVP_EXTEND_PROVIDERS, GVP_SUPPORTED_PROVIDERS, GenerateMotionInputSchema, type GenerateMotionResult, GenerateMotionResultSchema, type GenericEdge, type GenericNode, type GrantedAccess, type GvpAnchorChoice, type GvpAnchorWireMode, HANDLE_PORT_SEPARATOR, HELPERS_SHIPPED_IN_1B3, HIGH_QUALITY_PROVIDERS, HINT_EXEMPT_PARAMETER_TYPES, type HintEdgeLike, type HintGraphContext, type HintNodeLike, type I18nCatalogId, I2I_MASK_SUPPORT, I2I_STRENGTH_SUPPORT, IDEOGRAM_PROVIDERS, IMAGE_ASPECT_RATIO_VALUES, IMAGE_CRITIC_LEAF_MODES, IMAGE_CRITIC_MAX_RETRIES, IMAGE_CRITIC_METADATA_KEYS, IMAGE_CRITIC_MIN_ADHERENCE_SCORE, IMAGE_CRITIC_MODES, IMAGE_CRITIC_UNRESOLVABLE, IMAGE_EDIT_PROVIDERS, IMAGE_GEN_PROVIDERS, IMAGE_I2I_PROVIDERS, IMAGE_MASK_MODE, IMAGE_PROMPT_MAX, IMAGE_REF_TYPES, IMAGE_TO_VIDEO_PROVIDERS, INPUT_FIELD_MAP, INPUT_NODE_TYPES, INSTAGRAM_CAROUSEL_MAX_ITEMS, INSTAGRAM_CAROUSEL_MIN_ITEMS, ITER_CLONE_PATTERN, type IdentityFidelity, type IdentityMeta, type ImageAspectRatio, type ImageCriticIssue, ImageCriticIssueSchema, type ImageCriticLeafMode, type ImageCriticMetadataKey, type ImageCriticMode, type ImageCriticNodeIssue, type ImageCriticResult, ImageCriticResultSchema, type ImageCriticVerdict, ImageCriticVerdictSchema, type ImageEditProvider, type ImageGenProvider, type ImageI2IProvider, type ImageMaskMode, type ImageMentionTokenInfo, type ImageToVideoProvider, type ImprovePromptInput, ImprovePromptInputSchema, type ImprovePromptResult, ImprovePromptResultSchema, type InputFieldSchema, type InvitationDelivery, type InvitationPreview, type InvitationState, type InvitationView, type JoinCodeView, type JsonEvalResult, type JsonFilter, type JsonPatch, KEYFRAME_CREDITS_PER_SHOT, KINETIC_CAPTION_STYLES, type KieApiFormat, type KineticCaptionStyle, LANGUAGES, LEGACY_LOTTIE_HOST_REMAP, LIP_SYNC_DURATION_BUCKETS, LIP_SYNC_MAX_AUDIO_SECONDS, LIP_SYNC_PROVIDERS, LLM_FEATURE_DEFAULTS, LLM_MODALITY_CAPS, LLM_MODELS, LLM_MODEL_IDS, LLM_REASONING_EFFORTS, LLM_ROUTE_DEFAULTS, LLM_TEXT_INPUT_MAX, LLM_VENDOR_LABELS, LLM_VENDOR_ORDER, LOCATION_ASSET_TYPES, LOCATION_ASSET_VARIANTS, LOCATION_ATMOSPHERE_PROVIDERS, LOCATION_ATTACH_COLUMNS, LOCATION_BUCKET_TO_CATALOG_ID, LOCATION_PRESET_TO_CATALOG, LOCATION_REFERENCE_PHOTO_KINDS, LOCATION_REFERENCE_PHOTO_KIND_LABELS, LOCATION_USAGE_MODES, LOTTIE_OVERLAY_CATALOG, LOTTIE_SLOT_FIELD_PREFIX, type LabeledOption, type LipSyncDurationBucket, type LipSyncProvider, type LlmFeature, type LlmModelDef, type LlmModelGroup, type LlmReasoningEffort, type LlmRouteDefaults, type LlmTier, type LlmVendor, type LocaleCatalogMap, type LocaleDirection, type LocaleId, type LocationAssetType, type LocationAtmosphereProvider, type LocationAttachColumn, type LocationCatalogRef, type LocationImageCriticVerdict, LocationImageCriticVerdictSchema, type LocationMentionTokenInfo, LocationMetadataSchema, type LocationReferencePhotoKind, type LocationUsageMode, LocationsCoverageCriticIssueSchema, type LocationsCoverageCriticVerdict, LocationsCoverageCriticVerdictSchema, type LoopTrimEstimatorInput, type LoopVideoEstimatorInput, type LoraEligibleRef, type LoraRouting, type LottieOverlayCatalogEntry, type LottieSlotField, MAX_CUSTOM_ENTRIES_PER_BOARD, MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER, MAX_LOCATION_VARIANTS, MAX_NEGATIVE_PROMPT_CHARS_BY_PROVIDER, MAX_PANELS_PER_SHEET, MAX_TTS_CHARS_BY_PROVIDER, MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER, MEMBER_STATUSES, MINIMAX_H3_DEFAULT_RESOLUTION, MINIMAX_H3_PROVIDERS, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, MODEL_CATALOG, MODEL_PARAM_NODE_TYPES, MODEL_RECOMMENDATIONS, MODIFY_IMAGE_PROVIDERS, MOTION_COLUMN, MOTION_TRANSFER_PROVIDERS, MUSIC_PROVIDERS, type MaskRegionDescriptor, type MatchCutVerdict, MatchCutVerdictSchema, type MeOrganizations, type Member, type MemberStatus, type MinimalEdge, type MinimalNode, type ModelCatalogEntry, type ModelInputAdjustment, type ModelKind, type ModelMenuOption, type ModelMode, type ModelNodeTarget, type ModelPromptingStyle, type ModelRecommendation, type ModelTreeLine, type ModelTreeVariant, type ModelValidationIssue, type ModifyImageProvider, type MotionTransferProviderType, type MusicProvider, NATIVE_ADAPTIVE_ASPECT, NATIVE_NEGATIVE_PROMPT_MODELS, NATIVE_NEGATIVE_VIDEO_PROVIDERS, NEGATIVE_PROMPT_MAX, NODARO_IMPORT_FILES, NODARO_LOAD_TIMELINE, NODARO_LOAD_VIDEO, NODARO_RESET_PROJECT, NODE_DEFAULT_TYPES, NODE_MAPPABLE_FIELDS, NODE_PRESET_EXPORT_KIND, NODE_REF_PATTERN, NON_EN_LOCALE_IDS, NO_SPLIT_DELIMITER, type NodaroLoadTimelinePayload, type NodaroLoadVideoPayload, type NodeDefaultType, type NodeParamAdjustment, type NodePresetExport, type NormalizedImageGen, type NormalizedModelInput, type NormalizedNodes, type NormalizedVideoRequest, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ASSET_VARIANTS, OBJECT_ATTACH_COLUMNS, OBJECT_MOTION_PROVIDERS, OBJECT_PICKER_NODE_TYPES, ORG_ERROR_CODES, ORG_KINDS, ORG_ROLES, ORG_STATUSES, OUTPUT_FIELD_MAP, OUTPUT_FORMATS, type ObjectAspectRatio, type ObjectAssetType, type ObjectAssetTypeForAspect, type ObjectAttachColumn, ObjectMetadataSchema, type ObjectMotionProvider, type ObjectsValidationIssue, type ObjectsValidationResult, OptimizeForModelInputSchema, type OptimizeForModelResult, OptimizeForModelResultSchema, type OrgAuditEntry, type OrgErrorCode, type OrgKind, type OrgMemberView, type OrgPage, type OrgRole, type OrgSettings, OrgSettingsSchema, type OrgStatus, type OrganizationSummary, type OrganizationView, type OutputFormat, type OutputMode, type OutputType, PARAMETER_NODE_TYPES, PASSTHROUGH_TYPES, PAYG_RETENTION_DAYS, PER_FORMAT_DURATION_BOUNDS, PICKER_TO_COMBINE_TRANSITION, PIPELINE_ACTIVATION_MODES, PIPELINE_FORMATS, PIPELINE_HARD_TIMEOUT_MS, PIPELINE_MODEL_STAGES, PIPELINE_MODES, PIPELINE_OUTPUT_RESOLUTIONS, PIPELINE_PINNABLE_IMAGE_MODELS, PIPELINE_PINNABLE_SCRIPT_LLMS, PIPELINE_PINNABLE_VIDEO_MODELS, PIPELINE_STAGE_NAMES, PIPELINE_STAGE_TIMEOUT_MS, PIPELINE_TYPES, PLACEHOLDER_CHARACTER_NAME, PLATFORM_LABELS, PLATFORM_SPECS, PRESET_APPLY_CLEAR_KEYS, PRESET_EXCLUDED_KEYS, PRESET_LABELS, PRESET_SETTING_KEYS, PRICING_DEFAULT_DURATION_SEC, PRICING_DEFAULT_RESOLUTION, PRO3D_RENDER_ASPECT_RATIOS, PRO3D_RENDER_CREDIT_ID, PRO3D_RENDER_DEFAULT_ENGINE, PRO3D_RENDER_DEFAULT_QUALITY, PRO3D_RENDER_DEFAULT_REPAIR_PASSES, PRO3D_RENDER_DEFAULT_STYLE, PRO3D_RENDER_ENGINES, PRO3D_RENDER_LABEL, PRO3D_RENDER_LIMITS, PRO3D_RENDER_MAX_REPAIR_PASSES, PRO3D_RENDER_MIN_REPAIR_PASSES, PRO3D_RENDER_NODE_TYPE, PRO3D_RENDER_PROMPT_MAX, PRO3D_RENDER_QUALITY_PROFILES, PRO3D_RENDER_SOURCE_KINDS, PRO3D_RENDER_STYLES, PROMPT_HARD_CEILING, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PROVIDER_DIRECTIVE_DEFAULTS, PROVIDER_PLACEHOLDER_PREFIX, type PanelGenRequest, type PanelRequest, type PanelSource, type PipelineActivationMode, type PipelineCompletedEvent, PipelineCompletedEventSchema, type PipelineConfig, PipelineConfigSchema, type PipelineDriftSummary, PipelineDriftSummarySchema, type PipelineEditorDecisionsReadyEvent, PipelineEditorDecisionsReadyEventSchema, type PipelineEvent, type PipelineForkedEvent, PipelineForkedEventSchema, type PipelineFormat, type PipelineInput, PipelineInputSchema, type PipelineLifecycleEvent, type PipelineMode, type PipelineModelStage, type PipelineMusicReadyEvent, PipelineMusicReadyEventSchema, type PipelineOutputResolution, type PipelinePinnableImageModel, type PipelinePinnableScriptLlm, type PipelinePinnableVideoModel, type PipelineStageName, PipelineStageNameSchema, type PipelineStageStatus, PipelineStageStatusSchema, type PipelineState, PipelineStateSchema, type PipelineStatus, PipelineStatusSchema, type PipelineType, type PixelBox, type PresentationItem, type PresetEntry, type PresetSettingKey, type PresetSettings, PresetSettingsSchema, type PriceVariant, type PricedVideoSelection, type Pro3DRenderAspectRatio, type Pro3DRenderCapabilities, type Pro3DRenderEngine, type Pro3DRenderJobOutput, type Pro3DRenderLocalExportSource, type Pro3DRenderPromptSource, type Pro3DRenderQuality, type Pro3DRenderQuote, type Pro3DRenderQuoteLine, type Pro3DRenderResultMetadata, type Pro3DRenderSceneSource, type Pro3DRenderSource, type Pro3DRenderSourceInput, type Pro3DRenderSourceKind, type Pro3DRenderSourceResult, type Pro3DRenderStyle, type Pro3DRenderValidationWarning, type ProgressSegment, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, type PromptAffixFields, type PromptAffixes, type ProposedChange, type PublishListingParams, type PublishListingResult, QA_CHECK_PROVIDERS, type QaCheckProvider, type QualityLevel, REDUCE_STRATEGIES, REDUCE_STRATEGY_IDS, REFERENCE_BOARD_PROVIDERS, REFERENCE_BOARD_TEMPLATES, REFERENCE_HANDLE_MAP, REFERENCE_ROLE_PRESETS, REF_HANDLE_CATEGORY, REF_IMAGE_MAX_LIMITS, REF_TOKEN_NAMESPACE_PREFIXES, RENDERING_SPEED_SUPPORT, REPEATABLE_NODE_TYPES, REPEAT_PLACEHOLDER, REPLICATE_LIP_SYNC_PROVIDERS, RESERVED_TEMPLATE_VARS, type ReduceMeta, type ReduceStrategy, type ReduceStrategyId, type RefCandidate, type RefModalityEdge, type RefTokenKind, type RefVideoDurationLimit, type ReferenceBoardProvider, type ReferenceModality, type ReferenceSheet, type ReferenceSource, type ReportListingResult, type ResolveCharacterAspectOptions, type ResolveObjectAspectOptions, type ResolveSeparatorOptions, type ResolvedDialogueVoiceLine, type RouterConditionGroup, SCENE3D_ASSET_KINDS, SCENE3D_ASSET_ROLES, SCENE3D_ASSET_ROLE_KINDS, SCENE3D_AUTHORING_ENGINES, SCENE3D_BASIC_ENGINE, SCENE3D_BASIC_SCHEMA_VERSION, SCENE3D_CAMERA_TRACK_FORMAT, SCENE3D_CAMERA_TRACK_LIMITS, SCENE3D_CAMERA_TRACK_VERSION, SCENE3D_CLAY_LIGHTING_PRESETS, SCENE3D_DEFAULT_ADVANCED_ENGINE, SCENE3D_DEFAULT_DURATION_SECONDS, SCENE3D_DEFAULT_ENTITY_CAPABILITIES, SCENE3D_DEFAULT_FPS, SCENE3D_EDIT_NODE_TYPE, SCENE3D_ENTITY_CAPABILITIES, SCENE3D_ENTITY_ROLES, SCENE3D_GENERATE_NODE_TYPE, SCENE3D_GLB_EXTRAS_ALLOWLIST, SCENE3D_GLB_EXTRAS_ENTITY_ID, SCENE3D_GLB_EXTRAS_MATERIAL_ROLE, SCENE3D_GLB_EXTRAS_SUBPART_ID, SCENE3D_LIMITS, SCENE3D_PLAN_FIELD, SCENE3D_PLAN_TYPE, SCENE3D_PRIMITIVES, SCENE3D_PRIMITIVE_MATERIAL_ROLE, SCENE3D_RENDERER_ASSET_KINDS, SCENE3D_SCHEMA_VERSION, SCENE3D_SCHEMA_VERSION_V2, SCENE3D_SUPPORTED_SCHEMA_VERSIONS, SCENE3D_V2_CONTENT_HASH_EXCLUDED, SCENE3D_V2_ENGINES, SCENE3D_V2_LIMITS, SCENE3D_V2_OVERRIDE_OPERATION_VERSION, SCENE3D_V2_PRIMITIVES, SCENE_HELPER_NAMES, SCRAPER_ACTOR_LABELS, SCRAPER_CREDIT_COSTS, SCRAPER_OUTPUT_FIELDS, SCRIPT_PROVIDERS, SEASONS, SECTION_BOARD, SECTION_KINDS, SEEDANCE_2_5_REF_LIMITS, SEEDANCE_2_CONTINUATION_REF_SEC, SEEDANCE_2_EXTEND_STITCH, SEEDANCE_2_PROVIDERS, SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER, SEEDANCE_2_R2V_MIN_REF_VIDEO_SEC, SEEDANCE_2_REF_LIMITS, SEEDANCE_LIP_SYNC_PROVIDERS, SEED_SUPPORT, SEPARATOR_DISPLAY, SEPARATOR_PRESETS, SHEET_ASPECTS, SHEET_BACKGROUNDS, SHEET_PRESETS, SHEET_SKINS, SHEET_TYPES, SHORT_FILM_ANGLE_COUNT, SHORT_FILM_EXPRESSION_COUNT, SHORT_FILM_VARIANT_THRESHOLD_SEC, SLOT_TOKEN_RE, SMART_CUT_WINDOW_DEFAULT, SMART_CUT_WINDOW_MAX, SMART_CUT_WINDOW_MIN, SOCIAL_POST_NODE_TYPES, STAGE_PATCH_SCHEMA, STATIC_CAPTION_STYLES, STRUCTURAL_SECTIONS, STRUCTURED_VISION_MODELS, STUDIO_SHOT_TRANSIENT_KEYS, STUDIO_TRANSIENT_KEYS, SUBMISSION_STATUSES, SUNO_ADD_TRACK_MODELS, SUNO_FIELD_HANDLE_FIELDS, SUNO_HARD_CEILING, SUNO_MODELS, SUNO_SELECT_OPERATIONS, SUNO_TEXT_MAX, SUNO_TITLE_MAX, SUNO_TRACK_SOURCE_TYPES, SUNO_VERSION_PRICED_OPERATIONS, SUPPORTED_FONT_NAMES, SURROUND_DIRECTIONS, SWITCHX_BLOCK_FRAMES, SWITCHX_FRAME_TIERS, type SafetyRetryPolicy, type Scene3DAnchor, type Scene3DAssetAnimation, type Scene3DAssetKind, type Scene3DAssetRef, type Scene3DAssetRole, type Scene3DAuthoringEngine, type Scene3DCamera, type Scene3DCameraChanges, type Scene3DCameraKeyframe, type Scene3DCameraSample, type Scene3DCameraTrackV1, type Scene3DClayLighting, type Scene3DClayLightingPreset, type Scene3DEasing, type Scene3DEditErrorCode, type Scene3DEditOperation, type Scene3DEditOptions, type Scene3DEditResult, type Scene3DEngineChoice, type Scene3DEngineChoiceInput, type Scene3DEngineChoiceRefusalCode, type Scene3DEngineRequestFields, type Scene3DEntityCapability, type Scene3DEntityRole, type Scene3DEntityV2, type Scene3DEntityVisual, type Scene3DJobOutput, type Scene3DJobOutputAny, type Scene3DJobOutputV2, type Scene3DKnownEngine, type Scene3DLighting, type Scene3DLightingChanges, type Scene3DMaterialBinding, type Scene3DNormalizedAssetStats, type Scene3DObject, type Scene3DObjectChanges, type Scene3DObjectKeyframe, type Scene3DOverride, type Scene3DOverrideSpace, type Scene3DParseResult, type Scene3DPlan, type Scene3DPlanV1, type Scene3DPlanV2, type Scene3DPrimitive, type Scene3DProvenance, type Scene3DReference, type Scene3DReferenceKind, type Scene3DReferenceRole, type Scene3DSemanticIssue, type Scene3DShot, type Scene3DSupportedSchemaVersion, type Scene3DV2EditOperation, type Scene3DV2EditOptions, type Scene3DV2EditResult, type Scene3DV2OverrideInput, type Scene3DV2Primitive, type Scene3DV2ResourceUsage, type SceneData, type SceneHelperName, SceneHelperNameSchema, type SceneInputMode, SceneInputModeSchema, type SceneMetadata, SceneMetadataSchema, type SceneNodeData, SceneNodeDataSchema, SceneSpecSchema, type ScraperActorId, type ScriptCriticVerdict, ScriptCriticVerdictSchema, type ScriptProvider, type Season, type SectionKind, type SelectorConfig, type SelectorFields, type SelectorMode, type SelectorPredicateOp, type SelectorResult, type SemanticAspectRatio, type SeparatorPreset, type SharedListing, type SharedVoice, type SheetAspect, type SheetBackground, type SheetCostEstimate, type SheetEntry, type SheetFlavour, type SheetGenerationPlan, type SheetPreset, type SheetPresetId, type SheetSection, type SheetSkin, type SheetTextData, type SheetType, type ShotElement, type ShotImageElement, type ShotShapeElement, type ShotSpec, ShotSpecSchema, type ShotTextElement, type ShowrunnerPlan, ShowrunnerPlanSchema, type SidecarLoader, type SlotControlDescriptor, type SlotControlKind, type SlotVariation, type SocialMediaContentType, type SocialMediaPlatform, type SocialMediaSpec, type SortDirection, type SortListOptions, type SortType, type StageAwaitingSubGateEvent, StageAwaitingSubGateEventSchema, type StaticCaptionStyle, type StoryboardCohesionCriticVerdict, StoryboardCohesionCriticVerdictSchema, type StyleDirectives, StyleDirectivesSchema, type SubGateName, SubGateNameSchema, type SubmissionStatus, type SunoAddTrackModel, type SunoModel, type SupportedFontName, type SurroundDirection, type Swatch, T2I_TO_I2I_VARIANT, TASK_CHAINED_EDIT_PROVIDERS, TEXT_TO_AUDIO_PROVIDERS, TEXT_TO_VIDEO_PROVIDERS, TIER_MAX_PIPELINE_COST_CREDITS, TIER_PIPELINE_PARALLELISM, TILT_CARRIED_FRACTION, TOPAZ_DEFAULT_UPSCALE_FACTOR, TOPAZ_UPSCALE_FACTORS, TRANSCRIBE_PROVIDERS, TRANSIENT_RUNTIME_KEYS, TTS_PROVIDERS, TTS_TEXT_MAX, TWO_K_RESOLUTION_PROVIDERS, type TextToAudioProvider, type TextToVideoProvider, type TopazUpscaleAdjustment, type TopazUpscaleFactor, type TopazUpscaleResolution, type TranscribeProvider, type TransitionType, TransitionTypeSchema, type TrimVideoEstimatorInput, type TtsProvider, UPSCALE_IMAGE_PROVIDERS, USAGE_GROUP_BYS, USAGE_MODES, type UpscaleImageProvider, type UsageGroupBy, type UsageLogEntry, type UsageMode, type UsageQuery, type UsageReport, type UsageReportRow, type UsageReportTotals, type UsageVarianceRow, VARIABLES_HANDLE_ID, VARIABLE_PRICING_MODELS, VEHICLES, VEHICLE_SUBCATEGORY_LABELS, VEHICLE_SUBCATEGORY_ORDER, VEO_PROVIDERS, VIDEO_ANALYSIS_AUDIO_MODES, VIDEO_ANALYSIS_BUCKET_CREDITS, VIDEO_ANALYSIS_CLIP_TRANSITIONS_IN, VIDEO_ANALYSIS_DEFAULT_VARIATION, VIDEO_ANALYSIS_DURATION_BUCKETS, VIDEO_ANALYSIS_DURATION_TOLERANCE_SEC, VIDEO_ANALYSIS_ENTITY_SOURCES, VIDEO_ANALYSIS_FACELESS_ANGLES, VIDEO_ANALYSIS_LEGACY_MODELS, VIDEO_ANALYSIS_LLM_MODELS, VIDEO_ANALYSIS_MAX_DURATION_SEC, VIDEO_ANALYSIS_MAX_SCENE_SEC, VIDEO_ANALYSIS_MAX_VARIATIONS, VIDEO_ANALYSIS_MIXED_TIERS, VIDEO_ANALYSIS_SHOT_ANGLES, VIDEO_ANALYSIS_SPEED_EFFECTS, VIDEO_ANALYSIS_STORY_JUMPS, VIDEO_ANALYSIS_TEXT_KINDS, VIDEO_ANALYSIS_TIERS, VIDEO_ANALYSIS_TIER_LABELS, VIDEO_ANALYSIS_TIER_ORDER, VIDEO_ANALYSIS_TIMES_OF_DAY, VIDEO_ANALYSIS_TRANSITIONS, VIDEO_ANALYSIS_VARIATION_SLUGS, VIDEO_ANALYSIS_VISUAL_EFFECTS, VIDEO_ANALYSIS_WINDOW, VIDEO_AUDIO_CAPABILITY, VIDEO_AUDIT_BUCKET_CREDITS, VIDEO_CLIP_CREDITS, VIDEO_CRITIC_CREDITS_PER_SHOT, VIDEO_CRITIC_FRAME_MODES, VIDEO_CRITIC_MAX_RETRIES, VIDEO_CRITIC_METADATA_KEYS, VIDEO_CRITIC_MIN_ADHERENCE_SCORE, VIDEO_DURATION_TIERS, VIDEO_GEN_COLLAPSED_T2V_IDS, VIDEO_GEN_PROVIDERS, VIDEO_INPUT_LIP_SYNC_PROVIDERS, VIDEO_MODEL_CAPS, VIDEO_MODE_ALIASES, VIDEO_PRODUCER_TYPES, VIDEO_PROMPT_MAX, VIDEO_PROVIDERS_REQUIRING_IMAGE, VIDEO_PROVIDERS_WITHOUT_DISPATCH, VIDEO_REF_LIMITS_BY_PROVIDER, VIDEO_REF_VIDEO_DURATION_LIMITS, VIDEO_TO_VIDEO_PROVIDERS, VIDEO_UPSCALE_PROVIDERS, VIDEO_UTIL_PRICING, VIDEO_VARIABLE_PRICING, VOICE_CHANGER_MODELS, VOICE_CHANGER_MODEL_IDS, VOICE_DESIGN_MODELS, type ValidateMatchCutInput, ValidateMatchCutInputSchema, type ValidateMatchCutResult, ValidateMatchCutResultSchema, type ValidationField, type Vec3, type Vehicle, type VehicleSubcategory, type VideoAnalysisAudioMode, type VideoAnalysisClipTransitionIn, type VideoAnalysisEntitySource, type VideoAnalysisMixedTier, type VideoAnalysisModelTier, type VideoAnalysisResult, type VideoAnalysisShotAngle, type VideoAnalysisSpeedEffect, type VideoAnalysisTextKind, type VideoAnalysisTier, type VideoAnalysisTransition, type VideoAnalysisVisualEffect, type VideoAudioCapability, type VideoAudioMode, type VideoClipCost, type VideoCriticFrameMode, type VideoCriticMetadataKey, type VideoCriticShotFields, type VideoCriticVerdict, VideoCriticVerdictSchema, type VideoGenProvider, type VideoModeAlias, type VideoModelCapabilities, type VideoToVideoProvider, type VideoUpscaleProvider, type Voice, type VoiceChangerModel, type VoiceClone, type VoiceDesignModel, type VoiceLibraryParams, type VoiceLibraryResponse, type VoiceMatch, VoiceMatchSchema, type VoiceType, WAN_3_DEFAULT_RESOLUTION, WAN_3_PROVIDERS, WARDROBE_VARIANTS, WEAPONS, WEAPON_SUBCATEGORY_LABELS, WEAPON_SUBCATEGORY_ORDER, WORKFLOW_VISIBILITIES, WORKSPACE_HEADER, WORKSPACE_HEADER_LOWER, WORKSPACE_ROLES, type Weapon, type WeaponSubcategory, type WindowAnalysis, type WindowScene, type WorkflowAssetKind, type WorkflowExport, type WorkflowExportCharacter, type WorkflowExportCreature, type WorkflowExportLocation, type WorkflowExportObject, type WorkflowImportReport, type WorkflowImportSkippedAsset, type WorkflowMediaRef, type WorkflowPortability, type WorkflowVisibility, type WorkspaceMemberView, type WorkspaceRole, type WorkspaceSettings, WorkspaceSettingsSchema, type WorkspaceSummary, type WorkspaceView, aggregateByType, aiAvatarReserveCreditId, analyzedSceneSchema, applyDefaultVideoSelection, applyHandleInputOverride, applyRange, applyRangeIndices, applyScene3DEditOperations, applyScene3DV2EditOperations, applySlots, applyVideoAudioToggle, applyVideoNegativePrompt, aspectRatioFromDims, aspectRatioOptionsByKind, aspectRatioToNumber, assembleNarratedVideoCredits, availableReasoningEfforts, bucketSecondsFromAuditCreditId, bucketSecondsFromCreditId, buildBoardPrompt, buildChildrenByParent, buildConditionVariables, buildCreditModelIdentifier, buildExpressionFromVisual, buildLipSyncCreditId, buildLlmCreditIdentifier, buildModelMenu, buildModelTree, buildMotionCreditModelIdentifier, buildNodePresetExport, buildPanelPrompt, buildPro3DRenderSource, buildProgressSegments, buildRangeLabel, buildScraperCreditId, buildVideoAnalysisCreditId, buildVideoAuditCreditId, buildVideoCreditModelIdentifier, calculateCombinedProgress, calculateMonetizationMarkup, calculateMonetizedCost, calculateProgress, canonicalScene3DPlanV2Json, canonicalVarName, characterBoardItems, characterBucketDisplayRank, characterMentionSlug, characterMentionableAssetArrays, characterSheetRefItems, characterVariantAssetArrays, checkRefVideoDurations, cinematicCreditId, clampCinematicDuration, clampSmartCutWindow, classifyRefToken, cleanOrphanedItems, clearImageCriticMetadata, clearVideoCriticMetadata, clipLookSchema, collectAncestorRefs, combineSameLabelRefs, computeAggregateLanes, computeScene3DPlanV2ContentHash, countRefModalityEdges, creditRangesAll, creditsToUsd, decodeProviderItem, defaultCarriedFraction, defaultResolutionFor, defaultRoleForSource, defaultVideoAspectRatio, deriveLinkedFields, deriveLottieSlotFields, deriveSlotRefs, describeEdgeBehavior, describeMaskRegion, describeNodeAdjustments, describeSlotControl, dropUnknownBindings, dropUnknownSpeakers, durationsByMode, effectiveReasoningEffort, encodeProviderItem, ensureLocaleCatalogLoaded, entityHydrationColumns, entityMentionSlug, entityMentionSlugForRef, entityScalarFields, entitySlotSchema, entryMatchesQuery, estimateCombineVideosCredits, estimateFilmCredits, estimateLoopTrimAddonCredits, estimateLoopVideoCredits, estimateScriptDurationSec, estimateSheetCost, estimateTrimVideoCredits, evaluateCondition, evaluateConditionGroup, evaluateJsonExpression, evaluateJsonPath, expandExtraRefsToConnectedReferences, expandItemsWithRepeat, extractAllGeneratedResults, extractCharacterLoraFields, extractGeneratedJsonAsList, extractPresetData, extractReferencedLabels, extractVideoDurationFromNode, fieldKeyFromHandle, filterCloneNodes, findCharacterMentionTokens, findEntityMentionTokens, findImageMentionTokens, findLocationMentionTokens, findSeedance2AudioOverLimit, firstSightExtraRole, flattenItems, getAnimal, getAnimalLabel, getAnimalPromptHint, getAnimalTerm, getAspectRatioOptions, getAudioCrossfadeCurve, getCharacterFacet, getCombineTransition, getCreditRange, getDurationsForModel, getEffectiveRepeatCount, getFeaturedEntities, getFurniture, getFurnitureLabel, getInputFieldSchema, getInputNodes, getItemSortId, getLipSyncMaxAudioSeconds, getLlmModalityCaps, getLlmModel, getLlmTier, getLocaleDirection, getMaxImagePromptChars, getMaxNegativePromptChars, getMaxSunoPromptChars, getMaxSunoStyleChars, getMaxTtsChars, getMaxVideoPromptChars, getModel, getNodeLabel, getNodeResult, getOutputNodes, getOutputType, getParameterValue, getQualityOptions, getResolutionOptions, getRouteReachableNodeIds, getStrategy, getTargetField, getValidValues, getVehicle, getVehicleLabel, getVideoAudioCapability, getWeapon, getWeaponLabel, groupByFamily, groupHandleId, groupLlmModelsByVendor, hasContiguousSegmentDurations, hasFeature, hexToRgbaArray, humanizeSlotSid, imageMentionSlug, imageMentionSlugForRef, imageReferenceLimit, inferMusicVideo, isAggregateableType, isCharacterAspectRatio, isCollectInEdge, isDefaultSelectorConfig, isExpandedClone, isFlux2Model, isGeminiOmniProvider, isGvpSupportedProvider, isHandleInputWired, isKineticCaptionStyle, isKnownScene3DEngine, isLocationUsageMode, isMinimaxH3Provider, isObjectAspectRatio, isOversizedScene, isPaygRetentionActive, isPerSecondLipSyncProvider, isPro3DRenderJobOutput, isPro3DRenderQuote, isPro3DRenderRenderOnly, isScene3DAuthoringEngine, isScene3DCameraTrack, isScene3DHttpUrl, isScene3DPlan, isScene3DPlanV1, isScene3DPlanV2, isScene3DSchemaVersionSupported, isScraperActor, isSeedance2Provider, isTiltDirection, isUsageMode, isVeoProvider, isVideoAnalysisMixedTier, isVideoAnalysisTier, isWan3Provider, jsonResultToList, knownEntitySlugsFromRefs, knownImageSlugsFromRefs, listBoardTemplates, listModels, listSlotSids, llmRouteDefaults, locationMentionSlug, locationReferencePhotoKindLabel, locationUsageModeLabel, mapAspectRatio, mapQuality, mapShotIntentToProviderDirectives, matchVariant, maxSegmentSecFor, maxSegmentsFor, mergeClipLook, mergeExposedSettings, migrateEdgeOutputMode, migrateToItems, minSegmentSecFor, modelIdsByKindMode, modelToNodeTarget, modelsForInputMode, modelsWithFeature, motionGraphicsFeature, newScene3DRevisionId, normalizeLottieLayers, normalizeMinimaxH3Resolution, normalizeModelInput, normalizeNodeModelParams, normalizePinterestUrl, normalizeRoleSlug, normalizeVideoRequestParams, normalizeWan3Resolution, orderedLlmModels, parseAttributedDialogue, parseCharacterMentionToken, parseEntityMentionToken, parseGroupHandle, parseHandleId, parseImageMentionToken, parseListExpression, parseLocationMentionToken, parseNodePresetExport, parseNodeRef, parseScene3DCameraTrackJson, parseScene3DPlanV2Json, pickAiAvatarBucket, pickIds, pickLipSyncBucket, pickSwitchXFrameTier, pickVideoAnalysisBucket, planSheetGeneration, planSheetPanels, preferredInputModeForModel, presentTypes, presetApplyClearKeys, presetDataMatches, presetEntries, pricedVideoSelection, pro3DRenderCoreOutputSchema, pro3DRenderJobOutputSchema, pro3DRenderProducedSchemaVersion, pro3DRenderQuoteSchema, pro3DRenderTimingOverrides, qualityOptionsByKind, readPromptAffixes, refHandleCategory, referenceModalityForHandle, referenceSheetCreditId, registerCatalogSidecars, registerSidecarLoaders, renderAnalyzedScene, resetCatalogSidecars, resolutionOptionsByKind, resolveAiAvatarCreditId, resolveAudioCrossfadeCurve, resolveCharacterAspectRatio, resolveCinematicCreditId, resolveConditionValue, resolveDefaultRole, resolveDescription, resolveDialogueVoices, resolveEffectiveSourceType, resolveEffectiveTier, resolveEntityAspect, resolveFieldMappings, resolveGvpAnchorWire, resolveImageGenCreditIdentifier, resolveIndex, resolveLabel, resolveListExpression, resolveLlmCreditId, resolveLocationFields, resolveLocationPresetCatalog, resolveLottieOverlaySrc, resolveNodeRefs, resolveNormalizedImageGen, resolveObjectAspectRatio, resolvePipelineModel, resolveRelativeWindowToken, resolveScene3DAuthoringEngine, resolveScraperCreditId, resolveSelectorRefs, resolveSeparator, resolveSheetSections, resolveSlideshowTransition, resolveSourceThroughConnectedList, resolveStoredTier, resolveSwitchXCreditId, resolveTopazUpscale, resolveVideoAnalysisModel, resolveVideoModeForInputs, resolveVideoProviderForMode, resolveXfadeName, rewriteSceneBindings, rewriteSlotTokens, rewriteSpeakerSlots, rgbaArrayToHex, roleToPhrase, rotationVec3Schema, runSelector, safetyRetryPolicy, sanitizeRole, scaleVec3Schema, scene3DAcceptedSchemaVersionsSchema, scene3DAnchorNameSchema, scene3DAnchorSchema, scene3DAnyPlanSchema, scene3DAssetAnimationSchema, scene3DAssetIdSchema, scene3DAssetRefSchema, scene3DCameraChangesSchema, scene3DCameraKeyframeSchema, scene3DCameraSampleSchema, scene3DCameraSchema, scene3DCameraTrackIssues, scene3DCameraTrackObjectSchema, scene3DCameraTrackPlanIssues, scene3DCameraTrackSchema, scene3DClayLightingSchema, scene3DColorSchema, scene3DDeepEqual, scene3DEasingSchema, scene3DEditOperationSchema, scene3DEditOperationsSchema, scene3DEngineIdSchema, scene3DEntityAcceptsOverlay, scene3DEntityCapabilitySchema, scene3DEntityV2Schema, scene3DEntityVisualSchema, scene3DIdSchema, scene3DJsonByteLength, scene3DLightingChangesSchema, scene3DLightingSchema, scene3DMaterialBindingSchema, scene3DMaterialNameSchema, scene3DMaterialRoleSchema, scene3DNodeIdSchema, scene3DObjectChangesSchema, scene3DObjectKeyframeSchema, scene3DObjectSchema, scene3DOverrideSchema, scene3DPlanIssues, scene3DPlanSchema, scene3DPlanSchemaVersion, scene3DPlanV1Issues, scene3DPlanV1ObjectSchema, scene3DPlanV1Schema, scene3DPlanV2Issues, scene3DPlanV2ObjectSchema, scene3DPlanV2Schema, scene3DPrimitiveSchema, scene3DProjectionIssues, scene3DProvenanceSchema, scene3DReferenceSchema, scene3DSampleForFrame, scene3DSha256Schema, scene3DShotForFrame, scene3DShotIndexForFrame, scene3DShotSchema, scene3DUrlSchema, scene3DV2AdmissionIssues, scene3DV2EditOperationSchema, scene3DV2EditOperationsSchema, scene3DV2HierarchyDepth, scene3DV2NormalizationIssues, scene3DV2OverrideInputSchema, scene3DV2ResourceUsage, scene3DVersionTokenSchema, scene3DZodIssues, searchModelVariants, seedance2AudioLimitSec, segmentDurationsFor, selectByModulo, selectByNamedKey, selectByPredicate, selectListItems, selectLoraRoutingForMentions, selectRandom, setRegisteredPersonPackFields, settledWithLimit, sizeVec3Schema, slotVariationSchema, sortCharacterEntriesForDisplay, sortListItems, sourceRefKey, spliceDelimitedRows, splitByLoopDelimiter, splitGeneratedItems, spreadJsonArrayIfSingleton, stringifyPathResults, stripDerivedAnalysisFields, stripExportContent, stripStudioTransientSettings, stripTransientRuntimeData, summarizeScene3DOperations, sunoCreditType, supportedDefaultDimensions, supportsAdvancedMode, supportsEndAnchor, supportsExtendRender, toConnectedReference, toConnectedReferences, togglePick, tryParseJson, uiAspectRatioFill, uiDurationFill, uiResolutionFill, unresolvedRefTokens, unwrapUnresolvedTokens, usageModeDirective, usageModeIncludesName, usageModeLabel, usdToCredits, validateAiAvatarPayload, validateCinematicAvatarPayload, validateDurationForFormat, validateModeActivation, validateModelInput, validateNoNestedGroups, validateObjects, validateProviderForNodeType, validateSubWorkflowRoutes, variantJobId, vec3Schema, verifyScene3DPlanV2ContentHash, videoAnalysisCreditSegment, videoAnalysisNumWindows, videoAnalysisResultSchema, videoAuditCreditsForBucket, videoModelCanSpeakDialogue, videoModelSupportsAudio, videoNegativeSuffix, videoProviderFoldsLoneEndFrame, videoProviderRequiresImage, windowAnalysisSchema, zipMergeLists };
|