@nodaro/prompts 1.10.0 → 1.11.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.d.cts CHANGED
@@ -859,6 +859,12 @@ interface BuildImagePromptConfig {
859
859
  * (`flux-lora-character`) — the trigger word + LoRA carries identity, so
860
860
  * the directive bullets are redundant and the wired-character refs
861
861
  * shouldn't be injected as `Image N`.
862
+ *
863
+ * The strip regex is grammar-agnostic — it eats LOCATION and named-IMAGE
864
+ * mentions (`@town:3:background`) as well as character ones. That is
865
+ * INTENDED, not an oversight: this path drops `connectedReferences` outright,
866
+ * so there is no reference left for any mention to bind to and a surviving
867
+ * token would reach the model as literal noise. Do not narrow it.
862
868
  */
863
869
  skipCharacterMentions?: boolean;
864
870
  }
@@ -999,6 +1005,451 @@ interface StructuredPromptFields {
999
1005
  */
1000
1006
  declare function renderStructuredFields(fields: StructuredPromptFields): string;
1001
1007
 
1008
+ /**
1009
+ * THE DIRECTION REGISTRY — the single, ordered table of every cinematic
1010
+ * dimension the flat `direction` channel carries, plus the one renderer that
1011
+ * folds it into prompt text.
1012
+ *
1013
+ * WHY IT EXISTS: before this module, five of the ~35 cinematic dimensions rode
1014
+ * the `direction` wire channel and every other dimension was folded into prompt
1015
+ * TEXT by the client. A production copied between clients therefore froze stale
1016
+ * catalog wording, and each client re-implemented the fold. The table below is
1017
+ * the platform-owned replacement: the wire carries ids, the platform renders
1018
+ * the clauses, and the fold ORDER is exported so a client preview cannot drift
1019
+ * from what the server actually emits.
1020
+ *
1021
+ * WIRE VOCABULARY: the keys are the platform's OWN node-data field names — the
1022
+ * ones `SINGLE_PICKER_WIRING[].valueField` and the four `*_FIELD_BY_CATEGORY`
1023
+ * maps already use (`shotSize`, `lightingStyle`, `isoValue`, `style`, `mood`,
1024
+ * `cameraMotion`, …). A Studio-emitted graph and a hand-built canvas node
1025
+ * therefore speak ONE vocabulary for one catalog, and every `build*Hints`
1026
+ * already consumes these names.
1027
+ *
1028
+ * IMPORT RULE (hard): this module imports only `get*PromptHint` / `get*Term` /
1029
+ * `build*Hints` FUNCTIONS — never a raw UPPERCASE catalog array.
1030
+ * `catalog-funnel-ratchet.test.ts` derives its watch set from
1031
+ * `picker-catalogs.ts`'s uppercase value imports and can only SHRINK, so a raw
1032
+ * array import here would be a new offender. Nothing here reads an environment
1033
+ * variable either (`content-free-contract.test.ts`) — verbosity and surface are
1034
+ * threaded parameters, never deployment state.
1035
+ *
1036
+ * DELIBERATELY EXCLUDED, so neither is filed as a gap:
1037
+ * - `characterFx` — a per-shot composer with catalog timing levers
1038
+ * (`composeCharacterFxHintFromConnections`) positioned at an in-prose effect
1039
+ * token, not a bare id. A single-id channel cannot carry it.
1040
+ * - Subject / Styling / prop dimensions (`animal`, `heldProp`, `material`,
1041
+ * Person, Styling) — a separate `subject` channel, deliberately out of scope
1042
+ * here.
1043
+ *
1044
+ * PACK BLINDNESS (parity, not a regression): `get*PromptHint` reads the frozen
1045
+ * base arrays, so ids added by a deployment-registered catalog pack resolve to
1046
+ * `""` and contribute no clause. This is identical to the behavior of the five
1047
+ * keys that shipped before this table; routing through `getPickerCatalog` is a
1048
+ * deliberate non-goal.
1049
+ */
1050
+
1051
+ /** Which generation stages fold a dimension. */
1052
+ type DirectionSurface = "image" | "video" | "both";
1053
+ /** Verbosity family — the video policy folds `motion` compact, `look` full. */
1054
+ type DirectionFamily = "look" | "motion";
1055
+ interface DirectionFieldSpec {
1056
+ /**
1057
+ * Wire key — also the `DirectionFields` property name and the canvas
1058
+ * node-data field name for the same catalog.
1059
+ */
1060
+ readonly key: string;
1061
+ /**
1062
+ * Which generation stages fold this dimension. Filtering happens in the
1063
+ * RENDERER, never in the wire schema: an image-only key sent to
1064
+ * `/v1/generate-video` is accepted and simply contributes no hint.
1065
+ */
1066
+ readonly surface: DirectionSurface;
1067
+ /** Verbosity family. The video policy folds `motion` compact, `look` full. */
1068
+ readonly family: DirectionFamily;
1069
+ /** Ids honored per dimension. Extras are SLICED at render, never a 400. */
1070
+ readonly maxPicks: number;
1071
+ /**
1072
+ * Render selected ids in this catalog's own doctrine: per-id for independent
1073
+ * catalogs, ONE blended clause for Mood / Aesthetic / Photographer, the
1074
+ * catalog's own multi builder where it has one. `[]` when nothing resolves.
1075
+ */
1076
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1077
+ }
1078
+ /**
1079
+ * THE TABLE. Declaration order IS fold order (`DIRECTION_KEYS`), pinned by
1080
+ * `__tests__/direction-registry.test.ts`.
1081
+ *
1082
+ * Group order: camera motion leads (matching the video hint order the canvas
1083
+ * and Studio both emit today), then composition → camera → exposure → light →
1084
+ * style → scene → motion, then the LEGACY BLOCK last.
1085
+ *
1086
+ * THE LEGACY BLOCK (the last five rows) is the pre-registry published
1087
+ * `DirectionFields`, placed LAST in today's exact `composePromptText` order so
1088
+ * every existing caller's fold is byte-identical. They are WHOLE-CATALOG keys —
1089
+ * `framingId` accepts ANY `FRAMINGS` id and `lightingId` ANY `LIGHTINGS` id —
1090
+ * so they are NOT aliases of `shotSize` / `lightingStyle`, and an alias table
1091
+ * would wrongly suppress a legal second selection. Overlap is handled instead
1092
+ * by the exact-string dedupe in `renderDirectionHints`.
1093
+ */
1094
+ declare const DIRECTION_FIELDS: readonly [{
1095
+ readonly key: "cameraMotion";
1096
+ readonly surface: "video";
1097
+ readonly family: "motion";
1098
+ readonly maxPicks: 1;
1099
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1100
+ }, {
1101
+ readonly key: "shotSize";
1102
+ readonly surface: "both";
1103
+ readonly family: "look";
1104
+ readonly maxPicks: 1;
1105
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1106
+ }, {
1107
+ readonly key: "angle";
1108
+ readonly surface: "both";
1109
+ readonly family: "look";
1110
+ readonly maxPicks: 1;
1111
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1112
+ }, {
1113
+ readonly key: "coverage";
1114
+ readonly surface: "both";
1115
+ readonly family: "look";
1116
+ readonly maxPicks: 1;
1117
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1118
+ }, {
1119
+ readonly key: "composition";
1120
+ readonly surface: "both";
1121
+ readonly family: "look";
1122
+ readonly maxPicks: 2;
1123
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1124
+ }, {
1125
+ readonly key: "vantage";
1126
+ readonly surface: "both";
1127
+ readonly family: "look";
1128
+ readonly maxPicks: 1;
1129
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1130
+ }, {
1131
+ readonly key: "pose";
1132
+ readonly surface: "both";
1133
+ readonly family: "look";
1134
+ readonly maxPicks: 1;
1135
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1136
+ }, {
1137
+ readonly key: "compositionEffect";
1138
+ readonly surface: "both";
1139
+ readonly family: "look";
1140
+ readonly maxPicks: 1;
1141
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1142
+ }, {
1143
+ readonly key: "cameraFormat";
1144
+ readonly surface: "both";
1145
+ readonly family: "look";
1146
+ readonly maxPicks: 1;
1147
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1148
+ }, {
1149
+ readonly key: "lens";
1150
+ readonly surface: "both";
1151
+ readonly family: "look";
1152
+ readonly maxPicks: 1;
1153
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1154
+ }, {
1155
+ readonly key: "aperture";
1156
+ readonly surface: "image";
1157
+ readonly family: "look";
1158
+ readonly maxPicks: 1;
1159
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1160
+ }, {
1161
+ readonly key: "shutterSpeed";
1162
+ readonly surface: "image";
1163
+ readonly family: "look";
1164
+ readonly maxPicks: 1;
1165
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1166
+ }, {
1167
+ readonly key: "isoValue";
1168
+ readonly surface: "image";
1169
+ readonly family: "look";
1170
+ readonly maxPicks: 1;
1171
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1172
+ }, {
1173
+ readonly key: "timeOfDay";
1174
+ readonly surface: "both";
1175
+ readonly family: "look";
1176
+ readonly maxPicks: 1;
1177
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1178
+ }, {
1179
+ readonly key: "lightingStyle";
1180
+ readonly surface: "both";
1181
+ readonly family: "look";
1182
+ readonly maxPicks: 2;
1183
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1184
+ }, {
1185
+ readonly key: "lightingDirection";
1186
+ readonly surface: "both";
1187
+ readonly family: "look";
1188
+ readonly maxPicks: 1;
1189
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1190
+ }, {
1191
+ readonly key: "lightingRatio";
1192
+ readonly surface: "both";
1193
+ readonly family: "look";
1194
+ readonly maxPicks: 1;
1195
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1196
+ }, {
1197
+ readonly key: "colorTemperature";
1198
+ readonly surface: "both";
1199
+ readonly family: "look";
1200
+ readonly maxPicks: 1;
1201
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1202
+ }, {
1203
+ readonly key: "colorLook";
1204
+ readonly surface: "both";
1205
+ readonly family: "look";
1206
+ readonly maxPicks: 1;
1207
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1208
+ }, {
1209
+ readonly key: "atmosphere";
1210
+ readonly surface: "both";
1211
+ readonly family: "look";
1212
+ readonly maxPicks: 2;
1213
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1214
+ }, {
1215
+ readonly key: "postProcess";
1216
+ readonly surface: "image";
1217
+ readonly family: "look";
1218
+ readonly maxPicks: 2;
1219
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1220
+ }, {
1221
+ readonly key: "style";
1222
+ readonly surface: "both";
1223
+ readonly family: "look";
1224
+ readonly maxPicks: 1;
1225
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1226
+ }, {
1227
+ readonly key: "mood";
1228
+ readonly surface: "both";
1229
+ readonly family: "look";
1230
+ readonly maxPicks: 2;
1231
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1232
+ }, {
1233
+ readonly key: "aesthetic";
1234
+ readonly surface: "both";
1235
+ readonly family: "look";
1236
+ readonly maxPicks: 2;
1237
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1238
+ }, {
1239
+ readonly key: "photoGenre";
1240
+ readonly surface: "image";
1241
+ readonly family: "look";
1242
+ readonly maxPicks: 1;
1243
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1244
+ }, {
1245
+ readonly key: "photographer";
1246
+ readonly surface: "image";
1247
+ readonly family: "look";
1248
+ readonly maxPicks: 2;
1249
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1250
+ }, {
1251
+ readonly key: "renderQuality";
1252
+ readonly surface: "image";
1253
+ readonly family: "look";
1254
+ readonly maxPicks: 1;
1255
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1256
+ }, {
1257
+ readonly key: "setting";
1258
+ readonly surface: "both";
1259
+ readonly family: "look";
1260
+ readonly maxPicks: 1;
1261
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1262
+ }, {
1263
+ readonly key: "era";
1264
+ readonly surface: "both";
1265
+ readonly family: "look";
1266
+ readonly maxPicks: 1;
1267
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1268
+ }, {
1269
+ readonly key: "backdrop";
1270
+ readonly surface: "both";
1271
+ readonly family: "look";
1272
+ readonly maxPicks: 1;
1273
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1274
+ }, {
1275
+ readonly key: "actionFx";
1276
+ readonly surface: "video";
1277
+ readonly family: "motion";
1278
+ readonly maxPicks: 2;
1279
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1280
+ }, {
1281
+ readonly key: "temporalSpeed";
1282
+ readonly surface: "video";
1283
+ readonly family: "motion";
1284
+ readonly maxPicks: 1;
1285
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1286
+ }, {
1287
+ readonly key: "temporalFreeze";
1288
+ readonly surface: "video";
1289
+ readonly family: "motion";
1290
+ readonly maxPicks: 1;
1291
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1292
+ }, {
1293
+ readonly key: "temporalDirection";
1294
+ readonly surface: "video";
1295
+ readonly family: "motion";
1296
+ readonly maxPicks: 1;
1297
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1298
+ }, {
1299
+ readonly key: "temporalShutter";
1300
+ readonly surface: "video";
1301
+ readonly family: "motion";
1302
+ readonly maxPicks: 1;
1303
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1304
+ }, {
1305
+ readonly key: "transition";
1306
+ readonly surface: "video";
1307
+ readonly family: "motion";
1308
+ readonly maxPicks: 2;
1309
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1310
+ }, {
1311
+ readonly key: "loopSubject";
1312
+ readonly surface: "video";
1313
+ readonly family: "motion";
1314
+ readonly maxPicks: 1;
1315
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1316
+ }, {
1317
+ readonly key: "framingId";
1318
+ readonly surface: "both";
1319
+ readonly family: "look";
1320
+ readonly maxPicks: 1;
1321
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1322
+ }, {
1323
+ readonly key: "framingAngleId";
1324
+ readonly surface: "both";
1325
+ readonly family: "look";
1326
+ readonly maxPicks: 1;
1327
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1328
+ }, {
1329
+ readonly key: "lightingId";
1330
+ readonly surface: "both";
1331
+ readonly family: "look";
1332
+ readonly maxPicks: 1;
1333
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1334
+ }, {
1335
+ readonly key: "lensId";
1336
+ readonly surface: "both";
1337
+ readonly family: "look";
1338
+ readonly maxPicks: 1;
1339
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1340
+ }, {
1341
+ readonly key: "cameraFormatId";
1342
+ readonly surface: "both";
1343
+ readonly family: "look";
1344
+ readonly maxPicks: 1;
1345
+ readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1346
+ }];
1347
+ type DirectionFieldRow = (typeof DIRECTION_FIELDS)[number];
1348
+ type DirectionKey = DirectionFieldRow["key"];
1349
+ type ImageDirectionKey = Extract<DirectionFieldRow, {
1350
+ surface: "image" | "both";
1351
+ }>["key"];
1352
+ type VideoDirectionKey = Extract<DirectionFieldRow, {
1353
+ surface: "video" | "both";
1354
+ }>["key"];
1355
+ /**
1356
+ * Flat cinematic-direction ids (Studio / MCP / canvas node data).
1357
+ *
1358
+ * Every key accepts a single id OR an array: multi-pick dimensions always carry
1359
+ * an array, and a single-pick key may legitimately carry one (a client's
1360
+ * partition writer preserving legacy out-of-catalog ids). Absent ≠ empty — a
1361
+ * missing key means "no hint", never a default.
1362
+ */
1363
+ type DirectionFields = {
1364
+ readonly [K in DirectionKey]?: string | readonly string[];
1365
+ };
1366
+ /**
1367
+ * Table order — THE canonical fold order. Exported so a client's "will inject
1368
+ * into prompt" preview folds in the exact order the server does instead of
1369
+ * re-deriving one.
1370
+ */
1371
+ declare const DIRECTION_KEYS: ReadonlyArray<DirectionKey>;
1372
+ /** Verbosity for a whole fold, or split per family. */
1373
+ type DirectionHintMode = PickerHintMode | {
1374
+ readonly look: PickerHintMode;
1375
+ readonly motion: PickerHintMode;
1376
+ };
1377
+ /** Image policy: full clause for every dimension (today's behavior). */
1378
+ declare const IMAGE_HINT_MODE_DEFAULT: DirectionHintMode;
1379
+ /** Video policy: full look clauses, compact motion terms. */
1380
+ declare const VIDEO_HINT_MODE_DEFAULT: DirectionHintMode;
1381
+ declare function modeForFamily(mode: DirectionHintMode, family: DirectionFamily): PickerHintMode;
1382
+ /**
1383
+ * Wire tolerance ceiling for an array-valued direction key. The SEMANTIC cap is
1384
+ * the per-row render-time slice (`maxPicks`) — this is only the point past
1385
+ * which a body is malformed rather than merely over-generous.
1386
+ */
1387
+ declare const DIRECTION_ARRAY_CEILING = 8;
1388
+ /**
1389
+ * Tolerance ceiling for the LENGTH of a single direction id. Catalog ids are
1390
+ * short slugs (<= ~40 chars); 100 is generous and closes an otherwise unbounded
1391
+ * string channel that lands verbatim in `jobs.input_data`.
1392
+ *
1393
+ * ONE literal for BOTH doors into the fold — the route's `directionSchema`
1394
+ * (`backend/src/lib/direction-schema.ts`) and the persisted-node reader
1395
+ * (`read-node-direction.ts`) — so the wire and the canvas cannot start
1396
+ * disagreeing about which strings are ids at all.
1397
+ */
1398
+ declare const DIRECTION_ID_MAX_CHARS = 100;
1399
+ /** The rows a given generation stage folds, in table order. */
1400
+ declare function directionFieldsForSurface(surface: "image" | "video"): ReadonlyArray<DirectionFieldSpec>;
1401
+ /**
1402
+ * Every clause the `direction` channel injects, in canonical table order.
1403
+ *
1404
+ * Iterates the TABLE (never the caller's object), so unknown wire keys are
1405
+ * ignored, the order is platform-owned, and off-surface dimensions are inert.
1406
+ * Unknown IDS are silently skipped too — every `get*PromptHint` returns `""` on
1407
+ * a miss, so a retired or pack-only id contributes no clause rather than a 400.
1408
+ *
1409
+ * DEDUPE: the result is de-duplicated by exact clause string, FIRST OCCURRENCE
1410
+ * WINS (order-preserving). This is what lets the five legacy whole-catalog keys
1411
+ * (`framingId`, `lightingId`, …) coexist with their canonical counterparts
1412
+ * without an alias table: a caller sending `framingId` and `shotSize` with the
1413
+ * SAME id emits the clause once, while `lightingId: "golden-hour"` alongside
1414
+ * `lightingStyle: "rembrandt"` correctly emits BOTH (they are different ids in
1415
+ * the same catalog — an alias table would have wrongly suppressed one).
1416
+ * A caller sending two DIFFERENT ids for the same dimension gets both clauses,
1417
+ * exactly as two wired picker nodes of one family behave today.
1418
+ *
1419
+ * Exported so a client's "will inject into prompt" preview renders the exact
1420
+ * server output instead of re-implementing the fold.
1421
+ */
1422
+ declare function renderDirectionHints(direction: DirectionFields | undefined, opts: {
1423
+ surface: "image" | "video";
1424
+ mode?: DirectionHintMode;
1425
+ }): string[];
1426
+
1427
+ /**
1428
+ * The measured hint join, shared by the image (`composePromptText`) and video
1429
+ * (`composeVideoPromptText`) composers so the two can never drift.
1430
+ *
1431
+ * EXACT NO-OP: zero hints → the user's prompt back VERBATIM AND UNTRIMMED (the
1432
+ * platform-caller byte-parity contract — the old platform path passed the
1433
+ * prompt straight to `buildImagePrompt`, which never trims, so trimming here
1434
+ * would change the assembled prompt and the recorded `jobs.input_data`
1435
+ * byte-for-byte). With hints → trim the body so the join reads cleanly
1436
+ * ("prompt. hint", not "prompt . hint"), and drop a blank body so the result
1437
+ * never starts with ". ".
1438
+ *
1439
+ * Never mutates its inputs.
1440
+ */
1441
+ /** The measured separator between the user's prompt and each folded hint. */
1442
+ declare const PROMPT_HINT_SEPARATOR = ". ";
1443
+ /**
1444
+ * Join a user prompt with its folded hint clauses.
1445
+ *
1446
+ * The trailing `.filter((p) => p.length > 0)` on the join array is
1447
+ * parity-critical — do NOT remove it as "redundant": `hints` arrives
1448
+ * pre-filtered but `userPrompt` does not, so a blank user prompt would
1449
+ * otherwise make the result start with ". ".
1450
+ */
1451
+ declare function joinPromptHints(userPrompt: string, hints: readonly string[]): string;
1452
+
1002
1453
  /**
1003
1454
  * The reference-binding surface string — `@image_N` / `@video_N` / `@audio_N`
1004
1455
  * — and the one identity sentence built on it. Split out of
@@ -1454,13 +1905,17 @@ declare function assembleSunoInput(input: AssembleSunoInput): AssembleSunoResult
1454
1905
  * This wrapper collapses them into one.
1455
1906
  *
1456
1907
  * THE NO-OP CONTRACT (load-bearing — the platform-caller parity relies on it):
1457
- * the two platform callers (`execute-node` / `payload-builder`) compose their
1458
- * prompt from the canvas graph themselves and pass NO cinematic `direction`
1459
- * ids and NO `structured` fields. In that case `composePromptText` MUST return
1460
- * the caller's `userPrompt` byte-for-byte unchanged, so the wrapper degenerates
1461
- * to exactly the `buildImagePrompt(...)` call those sites make today. Studio
1462
- * (and the MCP route) supply `direction` / `structured` and get the id-hint
1463
- * composition on top.
1908
+ * a node that carries NO stored `direction` / `structured` (every workflow
1909
+ * authored before the canvas honored them) still reaches here with both absent,
1910
+ * and `composePromptText` MUST return the caller's `userPrompt` byte-for-byte
1911
+ * unchanged, so the wrapper degenerates to exactly the `buildImagePrompt(...)`
1912
+ * call those sites made before. The platform callers (`execute-node` /
1913
+ * `payload-builder`) compose their prompt from the canvas GRAPH themselves and
1914
+ * ALSO forward a node's STORED `direction` / `structured` when it carries them
1915
+ * (`readDirectionFields` / `readStructuredFields`); those nodes get the id-hint
1916
+ * composition on top, ADDITIVE to the graph-wired cinematography hints the
1917
+ * caller already folded into `userPrompt`. Studio and the MCP route supply the
1918
+ * same two levers directly.
1464
1919
  *
1465
1920
  * THE EMPTY-CHECK FLAG (also load-bearing for parity): `execute-node` rejects a
1466
1921
  * truly-empty assembled prompt (its "type one, mention a character, or connect
@@ -1470,21 +1925,6 @@ declare function assembleSunoInput(input: AssembleSunoInput): AssembleSunoResult
1470
1925
  * guard (frontend, Studio, route) pass `throwOnEmpty: true`.
1471
1926
  */
1472
1927
 
1473
- /**
1474
- * Flat cinematic-direction ids the Studio framing UI (and the MCP route)
1475
- * expose — all optional. Promoted here from Studio's `assembly.ts` so the
1476
- * id → hint composition lives in one place. The platform callers pass none of
1477
- * these (they fold their hints from the graph into `userPrompt` themselves).
1478
- */
1479
- interface DirectionFields {
1480
- /** Shot Type — the FRAMINGS shot-size/coverage/composition/vantage dimensions. */
1481
- framingId?: string;
1482
- /** Angle — the FRAMINGS angle dimension (separate pill, so it can coexist with Shot Type). */
1483
- framingAngleId?: string;
1484
- lightingId?: string;
1485
- lensId?: string;
1486
- cameraFormatId?: string;
1487
- }
1488
1928
  /**
1489
1929
  * Input to `assembleImageInput`. A faithful SUPERSET of what the two platform
1490
1930
  * callers pass to `buildImagePrompt` today (so they can route through this
@@ -1504,8 +1944,9 @@ interface AssembleImageInput {
1504
1944
  connectedReferences?: ConnectedReference[];
1505
1945
  /**
1506
1946
  * Flat cinematic-direction ids → folded into the prompt as hints. Studio /
1507
- * MCP-route use; the platform callers pass none (so `composePromptText` is a
1508
- * no-op for them and the result is byte-identical to today).
1947
+ * MCP-route use, and the platform callers' narrow-read of a node's STORED
1948
+ * `data.direction`; absent on a node that carries none (so `composePromptText`
1949
+ * is a no-op for it and the result is byte-identical to today).
1509
1950
  */
1510
1951
  direction?: DirectionFields;
1511
1952
  /** Path-1 structured fields → composed fragment appended to the prompt. */
@@ -1573,6 +2014,134 @@ interface AssembleImageInput {
1573
2014
  */
1574
2015
  declare function assembleImageInput(input: AssembleImageInput): BuildImagePromptResult;
1575
2016
 
2017
+ /**
2018
+ * `composeVideoPromptText` — the video twin of `assemble-image-input.ts`'s
2019
+ * `composePromptText`: fold cinematic-direction picker IDS into the prompt BODY,
2020
+ * server-side, at the model call.
2021
+ *
2022
+ * WHY THIS EXISTS: `/v1/generate-video` had no structured direction channel, so
2023
+ * every client baked the hint TEXT itself. A copied scene then carried stale
2024
+ * catalog wording forever, a re-generate double-baked it, and each client
2025
+ * re-implemented the fold with its own separator and its own order. The wire
2026
+ * now carries ids; the platform renders the clauses.
2027
+ *
2028
+ * WHERE IT RUNS (load-bearing): on the prompt BODY, BEFORE
2029
+ * `resolveVideoReferenceCore`. That resolver FRAMES the body — legacy prepends
2030
+ * its `Use these characters:` block, hybrid prepends the lock lines and APPENDS
2031
+ * the canonical role phrases and extras. Folding afterwards would push the
2032
+ * scene/look description PAST the identity directives, a worse version of the
2033
+ * bug this channel exists to fix. The image side is structurally identical
2034
+ * (`assembleImageInput` = `composePromptText` → `buildImagePrompt`).
2035
+ *
2036
+ * THE VERBOSITY POLICY LIVES HERE, NOT IN THE CLIENT: motion dimensions render
2037
+ * their compact professional term, look dimensions their full clause
2038
+ * (`VIDEO_HINT_MODE_DEFAULT`, resolved per row's `family` by the registry).
2039
+ * It is a threaded PARAMETER with a pure default — never deployment state:
2040
+ * `__tests__/content-free-contract.test.ts` hard-fails any environment read
2041
+ * under `packages/prompts/src`, and this module has nothing to read anyway.
2042
+ *
2043
+ * EXACT NO-OP CONTRACT: with no direction and no structured fields the caller's
2044
+ * `userPrompt` comes back VERBATIM AND UNTRIMMED — `undefined` included, since
2045
+ * a video prompt is optional on the route. That is what keeps every existing
2046
+ * caller byte-identical (the "backward-compatible: no connectedReferences →
2047
+ * prompt + flat refs pass through unchanged" oracle in
2048
+ * `backend/src/routes/__tests__/generate-video.test.ts`, restated locally in
2049
+ * `__tests__/assemble-video-input.test.ts`).
2050
+ *
2051
+ * WHAT IS DELIBERATELY NOT HERE: the dimension table, the fold order, the
2052
+ * dedupe and the surface filter all live in `direction-registry.ts` — ONE
2053
+ * renderer serves both surfaces, so the image and video folds cannot drift.
2054
+ * Clients render their "will inject into prompt" preview by importing
2055
+ * `renderDirectionHints` + `joinPromptHints` directly.
2056
+ */
2057
+
2058
+ /**
2059
+ * Fold a video run's cinematic-direction ids (and optional structured fields)
2060
+ * into its prompt body.
2061
+ *
2062
+ * The direction hints land first, in the registry's canonical table order
2063
+ * (camera motion leads), and the structured fragment lands LAST — the same
2064
+ * ordering `composePromptText` uses for stills.
2065
+ *
2066
+ * @param userPrompt The user's prompt. Optional: an image-to-video run may
2067
+ * legitimately have none, and it is returned as-is when nothing folds.
2068
+ * @param direction Flat catalog ids. Unknown keys, off-surface keys (an
2069
+ * image-only dimension sent to a video run) and unknown ids all contribute
2070
+ * nothing — never a throw.
2071
+ * @param structured Path-1 structured fields. Not a `/v1/generate-video` wire
2072
+ * field today; the canvas orchestrator passes it directly.
2073
+ * @param opts.hintMode Override the verbosity policy (a whole-fold
2074
+ * `PickerHintMode`, or a `{ look, motion }` split).
2075
+ */
2076
+ declare function composeVideoPromptText(userPrompt: string | undefined, direction: DirectionFields | undefined, structured?: StructuredPromptFields, opts?: {
2077
+ readonly hintMode?: DirectionHintMode;
2078
+ }): string | undefined;
2079
+
2080
+ /**
2081
+ * Narrow readers turning UNTRUSTED persisted node data (`workflows.nodes`
2082
+ * JSONB — import, MCP write, node preset, a Studio-emitted graph) into the
2083
+ * typed `direction` / `structured` levers `assembleImageInput` accepts.
2084
+ * `buildPayload` has no zod and workflow writes are
2085
+ * `z.record(z.string(), z.unknown())`, so this blob may have been written years
2086
+ * ago by any client.
2087
+ *
2088
+ * Used by ALL THREE image-assembly sites so what the canvas accepts cannot
2089
+ * drift between them: the frontend single-node executor (`execute-node.ts`),
2090
+ * the orchestrator (`payload-builder.ts`), and the config-panel final-prompt
2091
+ * preview (`build-image-assemble-input.ts`).
2092
+ *
2093
+ * `readDirectionFields` is DERIVED FROM `DIRECTION_FIELDS`, never a hand list:
2094
+ * a dimension added to the registry is honored here by construction, so the
2095
+ * reader can never silently drop a key the wire schema and the renderer both
2096
+ * know about. Anything unrecognised is DROPPED, never thrown on — a malformed
2097
+ * blob must not fail a canvas run, and an unknown catalog ID already degrades
2098
+ * to `""` inside each `get*PromptHint`, so this validates SHAPE only.
2099
+ *
2100
+ * BOUNDS MATCH THE WIRE SCHEMA where both exist, by SHARED CONSTANT:
2101
+ * `DIRECTION_ID_MAX_CHARS` and `DIRECTION_ARRAY_CEILING` are the same two
2102
+ * literals the `generate-image` route's `directionSchema` enforces, imported
2103
+ * from the registry rather than re-typed here — a body the route accepts and a
2104
+ * node the canvas re-runs must not disagree about which strings are ids.
2105
+ *
2106
+ * DELIBERATELY STRICTER THAN THE WIRE SCHEMA on `structured` values: the
2107
+ * route's `structuredPromptFieldsSchema` declares every field as a bare
2108
+ * `z.string().optional()` (unbounded), while `MAX_STRUCTURED_VALUE_CHARS` below
2109
+ * bounds them at 200. Do not "fix" that asymmetry by loosening HERE — this
2110
+ * reads a blob any client may have written years ago, and the values land
2111
+ * verbatim in `jobs.input_data.prompt`. Tightening the ROUTE instead would be a
2112
+ * new 400 on currently-accepted input, so a >200-char structured value stored
2113
+ * on a node is dropped on a canvas run while `POST /v1/generate-image` still
2114
+ * renders it. That is the one known divergence; it is bounded to a field the
2115
+ * canvas UI never writes that long.
2116
+ *
2117
+ * RETURNS `undefined`, NEVER `{}`: an empty object would still be a *defined*
2118
+ * `direction`, and the call sites' `...(x !== undefined ? { x } : {})` spread
2119
+ * would then hand `assembleImageInput` a defined-but-empty lever. Returning
2120
+ * `undefined` keeps that spread honest and the exact no-op branch taken.
2121
+ */
2122
+
2123
+ /**
2124
+ * Read a node's stored cinematic-direction ids. Accepts a single id OR an array
2125
+ * on every key (multi-pick dimensions carry arrays; a single-pick key may
2126
+ * legitimately carry one).
2127
+ *
2128
+ * The SEMANTIC per-dimension cap stays the renderer's slice (`maxPicks`) — this
2129
+ * reader does not know a row's pick budget and must not guess it. But it DOES
2130
+ * bound cardinality at `DIRECTION_ARRAY_CEILING`, the same ceiling the wire
2131
+ * schema enforces: the value is untrusted persisted JSONB (a node blob is
2132
+ * validated only as `z.record(z.string(), z.unknown())` on write), and handing
2133
+ * an unbounded array to `renderDirectionHints` would put an `includes`-dedupe
2134
+ * scan in front of that slice. Keeping the FIRST `DIRECTION_ARRAY_CEILING`
2135
+ * survivors is what the wire door already does to the same input.
2136
+ *
2137
+ * Junk is filtered BEFORE the cap, so valid ids sitting behind malformed
2138
+ * entries survive rather than being crowded out by them.
2139
+ */
2140
+ declare function readDirectionFields(value: unknown): DirectionFields | undefined;
2141
+ /** Read a node's stored Path-1 structured prompt fields. Same drop-never-throw
2142
+ * and `undefined`-never-`{}` contract as `readDirectionFields`. */
2143
+ declare function readStructuredFields(value: unknown): StructuredPromptFields | undefined;
2144
+
1576
2145
  type Seedance2Mode = "first-frame" | "first-last-frame" | "reference";
1577
2146
  interface Seedance2InputsArgs {
1578
2147
  /** The generation prompt — used ONLY to detect an existing first-frame
@@ -5924,4 +6493,4 @@ declare function getPickerWiring(nodeType: string | undefined | null): PickerWir
5924
6493
  */
5925
6494
  declare function buildSurroundFillPrompt(direction: SurroundDirection, userPrompt?: string): string;
5926
6495
 
5927
- export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, ANGLE_LABELS, ASPECT_RATIO_LABELS, ATMOSPHERES, ATMOSPHERE_IDS, AUDIO_WIZARD_CATEGORIES, type ActionFx, type ActionFxCategory, type Aesthetic, type AestheticCategory, type AssembleImageInput, type AssembleSunoInput, type AssembleSunoResult, type Atmosphere, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, type Backdrop, type BackdropCategory, type BrandCasing, type BrandFonts, type BrandLogo, type BrandPalette, type BrandPresetId, type BrandPresetMeta, type BrandTokens, type BrandTypeSpec, type BuildImagePromptConfig, type BuildImagePromptResult, type BuildImagePromptSegmentsResult, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_DURATIONS, CHARACTER_FX_IDS, CHARACTER_FX_INTENSITIES, CHARACTER_FX_POSITIONS, CINEMATIC_LOOK_TAIL, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, type CameraFormat, type CameraMotion, type CameraMotionCategory, type CatalogPack, type CatalogPackMode, type CategorizedInstrument, type CharacterFx, type CharacterFxCategory, type CharacterFxDuration, type CharacterFxIntensity, type CharacterFxPosition, type CharacterFxTiming, type CharacterFxTimingOption, type CharacterMeta, type CharacterMotionPromptInput, type CharacterPromptInput, type ColorLook, type ColorLookCategory, type CompositionEffect, type ComputeNodePromptArgs, type CreaturePromptInput, DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, type DirectionFields, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, type Era, type EraCategory, type ExposureCategory, type ExposureSettings, type ExposureValue, FACTORY_PRESETS, FACTORY_SNIPPETS, FILM_STILL_PREFIX, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type FacePromptInput, type FactoryPreset, type FactoryPresetGroup, type FactorySnippet, type Framing, type FramingCategory, type FramingValue, GAPS_SCHEMA, type GeminiOmniI2vInputsArgs, type GeminiOmniI2vInputsResult, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, type HeldProp, type HeldPropCategory, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type IdentityLockMode, type ImageReferenceDoctrine, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LlmChatFieldArgs, type LocationMotionPromptInput, type LocationPromptInput, type LocationRefinePromptInput, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, type Material, type MaterialCategory, type ModelChange, type Mood, type MoodCategory, type MoodValue, type MultiDimPickerWiring, type MultiPickerAnalyzerSpec, type MusicEra, type MusicGenre, type MusicGenreCategory, type MusicMoodData, type MusicMoodEntry, type MusicSubgenre, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, type ObjectMotionPromptInput, type ObjectPresetAssetType, type ObjectPromptInput, PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PERSON_DIMENSION_SECTIONS, PERSON_FIELD_BY_DIMENSION, PERSON_IDS, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, type Person, type PersonDimension, type PersonDimensionSection, type PersonPack, type PersonValue, type PhotoGenre, type PhotoGenreCategory, type Photographer, type PhotographerCategory, type PickerAnalyzer, type PickerAnalyzerDescriptor, type PickerAnalyzerSpec, type PickerApplyMode, type PickerCatalog, type PickerCatalogDetail, type PickerCatalogInput, type PickerCatalogSummary, type PickerDimension, type PickerDimensionInput, type PickerDimensionSpec, type PickerGaps, type PickerHintMode, type PickerOption, type PickerOptionInput, type PickerType, type PickerWiring, type PickerWiringEntry, type Pose, type PoseCategory, type PoseValue, type PostProcessEffect, type ProjectPickerCatalogOptions, type ProjectedPickerCatalog, type ProjectedPickerDimension, type ProjectedPickerOption, type PromptFieldSpec, type PromptIconKind, type PromptSegment, type PromptSegmentOrigin, type ProviderPromptDoctrine, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, type RecommendedModel, type RefIdTokenContext, type ReferenceCounts, type RegisteredPersonEntry, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, type Seedance2InputsArgs, type Seedance2InputsResult, type Seedance2Mode, type Setting, type SettingCategory, type SidecarCoverageReport, type SingleDimPickerWiring, type SnippetMedia, type SnippetTarget, type SoundComposition, type SoundCompositionFields, type SoundConsumerType, type StructuredPromptFields, type Style, type StylePreset, type Styling, type StylingDimension, type StylingValue, type SuspiciousTermOptions, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TERM_MAX_CHARS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_POSITIONS, type Temporal, type TemporalCategory, type TemporalValue, type TermCarrier, type Transition, type TransitionCategory, type TransitionDuration, type TransitionIntensity, type TransitionPosition, type TransitionTiming, type TransitionTimingOption, VIDEO_WIZARD_CATEGORIES, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, type VeoI2vInputsArgs, type VeoI2vInputsResult, type VideoExtraRef, type VoiceCharacterEntry, type VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, type WardrobeDimension, type WardrobeEntry, type WardrobeValue, type WizardCategory, type WizardNodeContext, type WizardOption, type WizardQuestion, type WizardSelection, appendField, appendMusicMeta, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, assembleImageInput, assembleSunoInput, buildActionFxHints, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScenePrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeNegative, composePickerCatalogs, composeSoundHintFromConnections, composeTransitionHintFromConnections, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, deriveTerm, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptFields, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getSnippetMedia, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasUpstreamCharacter, identityRefsSentence, isAnalyzablePicker, isInstrumentalVocal, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinPromptParts, listPickerCatalogs, migratePersonValue, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, personPacksVersion, pickerFanoutTargets, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderStructuredFields, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
6496
+ export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, ANGLE_LABELS, ASPECT_RATIO_LABELS, ATMOSPHERES, ATMOSPHERE_IDS, AUDIO_WIZARD_CATEGORIES, type ActionFx, type ActionFxCategory, type Aesthetic, type AestheticCategory, type AssembleImageInput, type AssembleSunoInput, type AssembleSunoResult, type Atmosphere, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, type Backdrop, type BackdropCategory, type BrandCasing, type BrandFonts, type BrandLogo, type BrandPalette, type BrandPresetId, type BrandPresetMeta, type BrandTokens, type BrandTypeSpec, type BuildImagePromptConfig, type BuildImagePromptResult, type BuildImagePromptSegmentsResult, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_DURATIONS, CHARACTER_FX_IDS, CHARACTER_FX_INTENSITIES, CHARACTER_FX_POSITIONS, CINEMATIC_LOOK_TAIL, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, type CameraFormat, type CameraMotion, type CameraMotionCategory, type CatalogPack, type CatalogPackMode, type CategorizedInstrument, type CharacterFx, type CharacterFxCategory, type CharacterFxDuration, type CharacterFxIntensity, type CharacterFxPosition, type CharacterFxTiming, type CharacterFxTimingOption, type CharacterMeta, type CharacterMotionPromptInput, type CharacterPromptInput, type ColorLook, type ColorLookCategory, type CompositionEffect, type ComputeNodePromptArgs, type CreaturePromptInput, DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, DIRECTION_ARRAY_CEILING, DIRECTION_FIELDS, DIRECTION_ID_MAX_CHARS, DIRECTION_KEYS, type DirectionFamily, type DirectionFieldRow, type DirectionFieldSpec, type DirectionFields, type DirectionHintMode, type DirectionKey, type DirectionSurface, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, type Era, type EraCategory, type ExposureCategory, type ExposureSettings, type ExposureValue, FACTORY_PRESETS, FACTORY_SNIPPETS, FILM_STILL_PREFIX, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type FacePromptInput, type FactoryPreset, type FactoryPresetGroup, type FactorySnippet, type Framing, type FramingCategory, type FramingValue, GAPS_SCHEMA, type GeminiOmniI2vInputsArgs, type GeminiOmniI2vInputsResult, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, type HeldProp, type HeldPropCategory, IMAGE_HINT_MODE_DEFAULT, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type IdentityLockMode, type ImageDirectionKey, type ImageReferenceDoctrine, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LlmChatFieldArgs, type LocationMotionPromptInput, type LocationPromptInput, type LocationRefinePromptInput, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, type Material, type MaterialCategory, type ModelChange, type Mood, type MoodCategory, type MoodValue, type MultiDimPickerWiring, type MultiPickerAnalyzerSpec, type MusicEra, type MusicGenre, type MusicGenreCategory, type MusicMoodData, type MusicMoodEntry, type MusicSubgenre, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, type ObjectMotionPromptInput, type ObjectPresetAssetType, type ObjectPromptInput, PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PERSON_DIMENSION_SECTIONS, PERSON_FIELD_BY_DIMENSION, PERSON_IDS, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROMPT_HINT_SEPARATOR, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, type Person, type PersonDimension, type PersonDimensionSection, type PersonPack, type PersonValue, type PhotoGenre, type PhotoGenreCategory, type Photographer, type PhotographerCategory, type PickerAnalyzer, type PickerAnalyzerDescriptor, type PickerAnalyzerSpec, type PickerApplyMode, type PickerCatalog, type PickerCatalogDetail, type PickerCatalogInput, type PickerCatalogSummary, type PickerDimension, type PickerDimensionInput, type PickerDimensionSpec, type PickerGaps, type PickerHintMode, type PickerOption, type PickerOptionInput, type PickerType, type PickerWiring, type PickerWiringEntry, type Pose, type PoseCategory, type PoseValue, type PostProcessEffect, type ProjectPickerCatalogOptions, type ProjectedPickerCatalog, type ProjectedPickerDimension, type ProjectedPickerOption, type PromptFieldSpec, type PromptIconKind, type PromptSegment, type PromptSegmentOrigin, type ProviderPromptDoctrine, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, type RecommendedModel, type RefIdTokenContext, type ReferenceCounts, type RegisteredPersonEntry, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, type Seedance2InputsArgs, type Seedance2InputsResult, type Seedance2Mode, type Setting, type SettingCategory, type SidecarCoverageReport, type SingleDimPickerWiring, type SnippetMedia, type SnippetTarget, type SoundComposition, type SoundCompositionFields, type SoundConsumerType, type StructuredPromptFields, type Style, type StylePreset, type Styling, type StylingDimension, type StylingValue, type SuspiciousTermOptions, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TERM_MAX_CHARS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_POSITIONS, type Temporal, type TemporalCategory, type TemporalValue, type TermCarrier, type Transition, type TransitionCategory, type TransitionDuration, type TransitionIntensity, type TransitionPosition, type TransitionTiming, type TransitionTimingOption, VIDEO_HINT_MODE_DEFAULT, VIDEO_WIZARD_CATEGORIES, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, type VeoI2vInputsArgs, type VeoI2vInputsResult, type VideoDirectionKey, type VideoExtraRef, type VoiceCharacterEntry, type VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, type WardrobeDimension, type WardrobeEntry, type WardrobeValue, type WizardCategory, type WizardNodeContext, type WizardOption, type WizardQuestion, type WizardSelection, appendField, appendMusicMeta, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, assembleImageInput, assembleSunoInput, buildActionFxHints, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScenePrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeNegative, composePickerCatalogs, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, deriveTerm, directionFieldsForSurface, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptFields, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getSnippetMedia, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasUpstreamCharacter, identityRefsSentence, isAnalyzablePicker, isInstrumentalVocal, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinPromptHints, joinPromptParts, listPickerCatalogs, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, personPacksVersion, pickerFanoutTargets, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDirectionHints, renderStructuredFields, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };