@nodaro/prompts 1.21.0 → 1.25.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.
Files changed (33) hide show
  1. package/dist/index.cjs +191 -45
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +362 -207
  4. package/dist/index.d.ts +362 -207
  5. package/dist/index.js +183 -46
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/__tests__/assemble-video-input.test.ts +20 -12
  9. package/src/__tests__/camera-motion-approved.test.ts +46 -0
  10. package/src/__tests__/camera-motions-from-connections.test.ts +3 -2
  11. package/src/__tests__/catalog-packs.test.ts +13 -0
  12. package/src/__tests__/character-fx-timing-catalogs.test.ts +3 -2
  13. package/src/__tests__/factory-presets.test.ts +28 -3
  14. package/src/__tests__/fixtures/camera-motion-approved.json +330 -0
  15. package/src/__tests__/fixtures/parameter-hint-golden.json +32 -16
  16. package/src/__tests__/hint-join.test.ts +3 -2
  17. package/src/__tests__/node-prompt-fields.test.ts +2 -2
  18. package/src/__tests__/parameter-hint-mode.test.ts +17 -5
  19. package/src/__tests__/prompt-style-section.test.ts +2 -2
  20. package/src/__tests__/transitions-instant.test.ts +242 -0
  21. package/src/__tests__/transitions-scope.test.ts +160 -0
  22. package/src/__tests__/transitions.test.ts +9 -9
  23. package/src/ad-creative-analysis.ts +99 -0
  24. package/src/camera-motions.ts +21 -21
  25. package/src/catalog-packs.ts +13 -2
  26. package/src/direction-registry.ts +2 -2
  27. package/src/factory-presets/generate-video.ts +22 -0
  28. package/src/index.ts +3 -0
  29. package/src/node-prompt-fields.ts +4 -0
  30. package/src/picker-catalogs.ts +13 -0
  31. package/src/ref-binding.ts +19 -0
  32. package/src/transitions.ts +204 -27
  33. package/src/video-reference-resolver.ts +1 -1
package/dist/index.d.ts CHANGED
@@ -1121,6 +1121,297 @@ interface StructuredPromptFields {
1121
1121
  */
1122
1122
  declare function renderStructuredFields(fields: StructuredPromptFields): string;
1123
1123
 
1124
+ /**
1125
+ * Canonical catalog of cinematic transitions for AI-video generation.
1126
+ *
1127
+ * Shared between frontend (picker UI, prompt hint injection) and backend
1128
+ * (orchestrator payload builder). The `promptHint` is a natural-language
1129
+ * cue that gets composed into the user prompt when a transition node is
1130
+ * connected to a video consumer.
1131
+ *
1132
+ * Multi-pick supported: value field accepts `string | string[]` (cap 2).
1133
+ * Graph-aware: `startState` / `endState` input handles accept upstream
1134
+ * parameter nodes whose hints are folded into the composed clause as
1135
+ * "starting from <X>, ending at <Y>".
1136
+ */
1137
+
1138
+ type TransitionCategory = "standard" | "time" | "element" | "morph" | "portal" | "physics" | "light" | "glitch";
1139
+ interface Transition {
1140
+ readonly id: string;
1141
+ readonly label: string;
1142
+ readonly category: TransitionCategory;
1143
+ readonly description: string;
1144
+ readonly promptHint: string;
1145
+ /**
1146
+ * Optional authored compact term (see `term.ts`). Authored where the
1147
+ * lowercased label is not what an editor would write in a prompt — a UI
1148
+ * compound ("None / Hard Cut" → "hard cut"), an annotation the derivation
1149
+ * drops ("Fast-Forward (Day → Night)" → "day-to-night time-lapse"), a bare
1150
+ * word that collides with another meaning ("Melt Down", "Channel Flip",
1151
+ * "Roll"), or a coinage that is not the trade term ("Seamless Match" →
1152
+ * "invisible cut"). Everywhere else the label IS the term.
1153
+ */
1154
+ readonly term?: string;
1155
+ /**
1156
+ * `true` on rows whose mechanism IS A CUT — the change happens between two
1157
+ * frames, so it has no duration to time. A duration clause ("lasting
1158
+ * approximately 1 second") on such a row tells the video model to spend a
1159
+ * second on the change, and it obliges with a dissolve: a match cut rendered
1160
+ * as a 1.75 s cross-dissolve in QA. The composer therefore skips the duration
1161
+ * lever when every picked transition is instant, and consumers (the picker
1162
+ * UI, Studio) read `isInstantTransition` to hide that lever.
1163
+ *
1164
+ * The same holds for INTENSITY: every intensity clause describes how the
1165
+ * change PERFORMS over time ("natural unhurried timing", "wild flourishes and
1166
+ * dramatic distortion"), and a cut has no performance to shape — "unhurried"
1167
+ * on a match cut is another invitation to blend. So the composer drops the
1168
+ * intensity clause too when every pick is instant. Position still applies —
1169
+ * WHERE the cut lands is a real choice — except `full`: a single-frame cut
1170
+ * cannot "span the entire clip", so that clause is dropped on an all-instant
1171
+ * pick (start / middle / end still place the cut).
1172
+ *
1173
+ * The bare term is not enough on its own either: "match cut" still came back
1174
+ * as a ~1 s superimposition in prod QA (seedance-2-5). The composer therefore
1175
+ * puts `INSTANT_CUT_CLAUSE` inside an all-instant pick's parentheses, once — the explicit
1176
+ * anti-blend instruction that made the model render a true single-frame cut.
1177
+ */
1178
+ readonly instant?: boolean;
1179
+ }
1180
+ /**
1181
+ * The three timing scales, each derived from the catalog that defines it (see
1182
+ * `TRANSITION_POSITIONS` and friends below).
1183
+ *
1184
+ * The direction matters. These used to be hand-written unions with the clause
1185
+ * tables written out separately beside them, so the two could disagree: add a
1186
+ * step to the union, forget the clause, and the composer indexed a missing key
1187
+ * — pushing `undefined` into the parts list, which `join(", ")` renders as a
1188
+ * dangling separator on a prompt that then ships to a provider with the user's
1189
+ * chosen parameter silently dropped. Deriving the union FROM the catalog makes
1190
+ * that unrepresentable: one array is the source of the type, the option list
1191
+ * the API serves, and the clause table, so a new step reaches all three or
1192
+ * none. The exact id sets are pinned by `transition-timing-catalogs.test.ts`.
1193
+ */
1194
+ type TransitionPosition = (typeof TRANSITION_POSITIONS)[number]["id"];
1195
+ type TransitionDuration = (typeof TRANSITION_DURATIONS)[number]["id"];
1196
+ type TransitionIntensity = (typeof TRANSITION_INTENSITIES)[number]["id"];
1197
+ interface TransitionTiming {
1198
+ position?: TransitionPosition;
1199
+ duration?: TransitionDuration;
1200
+ intensity?: TransitionIntensity;
1201
+ }
1202
+ declare const TRANSITIONS: ReadonlyArray<Transition>;
1203
+ declare const TRANSITION_CATEGORY_ORDER: ReadonlyArray<TransitionCategory>;
1204
+ declare const TRANSITION_CATEGORY_LABELS: Readonly<Record<TransitionCategory, string>>;
1205
+ declare function getTransition(id: string | undefined | null): Transition | undefined;
1206
+ declare function getTransitionLabel(id: string | undefined | null, fallback?: string): string;
1207
+ declare function getTransitionPromptHint(id: string | undefined | null): string;
1208
+ /**
1209
+ * Compact professional TERM for an id — the short phrase an editor would write
1210
+ * in a prompt ("hard cut", "invisible cut", "day-to-night time-lapse"), as
1211
+ * opposed to the paragraph-length `promptHint`.
1212
+ *
1213
+ * Same lookup and same empty-string-on-miss behavior as
1214
+ * `getTransitionPromptHint`, so the two can never disagree about which entry
1215
+ * they describe. The no-op "Auto" entry resolves to `""` in both.
1216
+ */
1217
+ declare function getTransitionTerm(id: string | undefined | null): string;
1218
+ declare const TRANSITION_IDS: ReadonlyArray<string>;
1219
+ /**
1220
+ * Whether a transition is a CUT — instantaneous by nature, so it takes no
1221
+ * duration (see `Transition.instant`). Reads through `getTransition`, so it
1222
+ * answers for the same entry every other getter describes; an unknown id, the
1223
+ * no-op "auto" and an empty value are all `false`.
1224
+ *
1225
+ * A multi-pick (`string[]`) is instant only when EVERY picked id is: a cut
1226
+ * paired with a dissolve still has a dissolve to time.
1227
+ */
1228
+ declare function isInstantTransition(id: string | ReadonlyArray<string> | undefined | null): boolean;
1229
+ /**
1230
+ * The anti-blend instruction an all-instant transition pick carries — the ONE
1231
+ * place this sentence lives (see `Transition.instant`). Each row keeps its own
1232
+ * meaning in its own hint (a match cut still matches shapes, snap to black
1233
+ * still holds black for a beat); this clause only forbids the blend a video
1234
+ * model otherwise puts between the two images. Measured on prod with
1235
+ * seedance-2-5: with it, a match cut renders as a true single-frame hard cut,
1236
+ * with and without an end frame; without it, as a ~1 s dissolve.
1237
+ */
1238
+ declare const INSTANT_CUT_CLAUSE = "an abrupt single-frame hard cut, no dissolve, crossfade or superimposition; the two images never blend";
1239
+ /**
1240
+ * The transition BASE fragments for a pick — one `<term> (<hint body>)` per id
1241
+ * that resolves to a term, in pick order. When EVERY contributing id is
1242
+ * instant, the FIRST fragment's parentheses also carry `; INSTANT_CUT_CLAUSE`
1243
+ * (once per pick — two cuts picked together are still one cut). FIRST, not
1244
+ * last: the direction fold sheds fragments from the TAIL under a provider cap,
1245
+ * so the clause rides the fragment that survives longest. A mixed pick carries
1246
+ * no clause: its non-cut is meant to blend.
1247
+ *
1248
+ * The same text in both hint modes. A transition only ever reaches a VIDEO
1249
+ * prompt (the registry row is `surface: "video"`; the canvas node is in
1250
+ * `VIDEO_ONLY_PARAMETER_NODE_TYPES`), and there the bare compact term was not
1251
+ * enough to steer the model, so the mode no longer changes a transition.
1252
+ *
1253
+ * Each fragment is ONE string, parentheses included: the cap-aware assemblers
1254
+ * shed whole fragments from the tail, so a fragment is kept or dropped whole
1255
+ * and can never lose its hint or its clause on its own.
1256
+ *
1257
+ * Shared by `composeTransitionHintFromConnections` (the canvas transition node,
1258
+ * Studio's transition clauses) and the direction registry's `transition` row
1259
+ * (the server fold of `direction.transition`), so both paths word a transition
1260
+ * identically.
1261
+ */
1262
+ declare function renderTransitionBases(ids: ReadonlyArray<string>, _mode?: PickerHintMode): string[];
1263
+ /**
1264
+ * The transition node's three timing parameters, as catalogs.
1265
+ *
1266
+ * These are graded scales, not free numbers — the same shape as
1267
+ * `exposure-settings`' aperture or `temporal`'s speed — so a consumer that can
1268
+ * only send ids (Studio, the SDK, MCP) can offer them without composing prompt
1269
+ * text of its own. `auto` is the no-op head of each scale: an empty
1270
+ * `promptHint`, so an unset parameter contributes nothing and the model is left
1271
+ * to decide, exactly as before these were enumerable.
1272
+ *
1273
+ * `POSITION_CLAUSES` / `DURATION_CLAUSES` / `INTENSITY_CLAUSES` below are
1274
+ * DERIVED from these arrays, so the clause the composer injects and the hint
1275
+ * the catalog advertises are the same string by construction and cannot drift.
1276
+ */
1277
+ interface TransitionTimingOption {
1278
+ readonly id: string;
1279
+ readonly label: string;
1280
+ readonly description: string;
1281
+ readonly promptHint: string;
1282
+ readonly term?: string;
1283
+ }
1284
+ declare const TRANSITION_POSITIONS: readonly [{
1285
+ readonly id: "auto";
1286
+ readonly label: "Auto";
1287
+ readonly description: "Let the model place it";
1288
+ readonly promptHint: "";
1289
+ readonly term: "";
1290
+ }, {
1291
+ readonly id: "start";
1292
+ readonly label: "Start";
1293
+ readonly description: "At the opening of the clip";
1294
+ readonly promptHint: "the transition occurs at the opening of the clip";
1295
+ readonly term: "at the opening of the clip";
1296
+ }, {
1297
+ readonly id: "middle";
1298
+ readonly label: "Middle";
1299
+ readonly description: "In the middle of the clip";
1300
+ readonly promptHint: "the transition occurs in the middle of the clip";
1301
+ readonly term: "mid-clip";
1302
+ }, {
1303
+ readonly id: "end";
1304
+ readonly label: "End";
1305
+ readonly description: "At the end of the clip";
1306
+ readonly promptHint: "the transition occurs at the end of the clip";
1307
+ readonly term: "at the end of the clip";
1308
+ }, {
1309
+ readonly id: "full";
1310
+ readonly label: "Full";
1311
+ readonly description: "Spans the entire clip";
1312
+ readonly promptHint: "the transition spans the entire clip";
1313
+ readonly term: "across the whole clip";
1314
+ }];
1315
+ declare const TRANSITION_DURATIONS: readonly [{
1316
+ readonly id: "auto";
1317
+ readonly label: "Auto";
1318
+ readonly description: "Let the model time it";
1319
+ readonly promptHint: "";
1320
+ readonly term: "";
1321
+ }, {
1322
+ readonly id: "instant";
1323
+ readonly label: "Instant";
1324
+ readonly description: "No perceptible duration";
1325
+ readonly promptHint: "occurring instantaneously";
1326
+ readonly term: "instantaneous";
1327
+ }, {
1328
+ readonly id: "short";
1329
+ readonly label: "Short (~1s)";
1330
+ readonly description: "Approximately 1 second";
1331
+ readonly promptHint: "lasting approximately 1 second";
1332
+ readonly term: "about 1 second";
1333
+ }, {
1334
+ readonly id: "medium";
1335
+ readonly label: "Medium (~2s)";
1336
+ readonly description: "Approximately 2 seconds";
1337
+ readonly promptHint: "lasting approximately 2 seconds";
1338
+ readonly term: "about 2 seconds";
1339
+ }, {
1340
+ readonly id: "long";
1341
+ readonly label: "Long (~3s)";
1342
+ readonly description: "Approximately 3 seconds";
1343
+ readonly promptHint: "lasting approximately 3 seconds";
1344
+ readonly term: "about 3 seconds";
1345
+ }];
1346
+ declare const TRANSITION_INTENSITIES: readonly [{
1347
+ readonly id: "auto";
1348
+ readonly label: "Auto";
1349
+ readonly description: "Let the model judge it";
1350
+ readonly promptHint: "";
1351
+ readonly term: "";
1352
+ }, {
1353
+ readonly id: "subtle";
1354
+ readonly label: "Subtle";
1355
+ readonly description: "Restrained, minimal flourish";
1356
+ readonly promptHint: "with subtle restrained energy and minimal flourish";
1357
+ readonly term: "subtly";
1358
+ }, {
1359
+ readonly id: "natural";
1360
+ readonly label: "Natural";
1361
+ readonly description: "Unhurried, unforced timing";
1362
+ readonly promptHint: "with natural timing";
1363
+ readonly term: "at a natural pace";
1364
+ }, {
1365
+ readonly id: "dynamic";
1366
+ readonly label: "Dynamic";
1367
+ readonly description: "Assertive, energetic";
1368
+ readonly promptHint: "with dynamic energy and assertive flourish";
1369
+ readonly term: "energetically";
1370
+ }, {
1371
+ readonly id: "crazy";
1372
+ readonly label: "Crazy";
1373
+ readonly description: "Extreme, wild, distorted";
1374
+ readonly promptHint: "with extreme exaggerated energy, wild flourishes, and dramatic distortion";
1375
+ readonly term: "wildly exaggerated";
1376
+ }];
1377
+ /**
1378
+ * Where the composed hint lands. `"clip"` (the default) is a whole video's
1379
+ * prompt, so a position is placed within "the clip". `"shot"` is one shot's
1380
+ * time window inside a multi-shot prompt (`0-2s — …`, `2-4s — …`): there "the
1381
+ * middle of the clip" points the model at the wrong span, so the position
1382
+ * clause says "of this shot" instead.
1383
+ */
1384
+ type TransitionHintScope = "clip" | "shot";
1385
+ interface TransitionHintOptions {
1386
+ readonly scope?: TransitionHintScope;
1387
+ }
1388
+ /**
1389
+ * Compose a structural prompt-hint sentence from a transition id (or array
1390
+ * of 1-2 ids for multi-pick) plus optional start-state/end-state hints
1391
+ * (collected by walking the source node's startState / endState input
1392
+ * handle edges upstream) and optional timing fields.
1393
+ *
1394
+ * Behavior:
1395
+ * - 0 hints (no transition, empty array, or all-empty hints) → ""
1396
+ * - each pick rendered `<term> (<hint body>)` (`renderTransitionBases`),
1397
+ * n picks joined with ", and "
1398
+ * - Timing/start/end clauses apply ONCE at the outer layer, not per-id
1399
+ * - When every picked id is instant (a cut — see `isInstantTransition`) the
1400
+ * first base's parentheses carry `INSTANT_CUT_CLAUSE` once, and the
1401
+ * duration and intensity clauses are dropped; position still applies,
1402
+ * except `full` — a single-frame cut spans nothing, so it adds no clause
1403
+ * - null input is treated like undefined (falsy short-circuit → returns "")
1404
+ *
1405
+ * @param mode Accepted for the picker-hint signature; a transition composes
1406
+ * the same text in both modes — each pick as `<term> (<hint body>)`, see
1407
+ * `renderTransitionBases`.
1408
+ * @param options `scope: "shot"` when the hint is folded into one shot's time
1409
+ * window of a multi-shot prompt — the position clause then says "of this
1410
+ * shot" instead of "of the clip" (and `full`, on a non-cut, "spans this
1411
+ * entire shot"). Omitted, the wording is the clip's.
1412
+ */
1413
+ declare function composeTransitionHintFromConnections(transitionId: string | ReadonlyArray<string> | undefined, startHints: ReadonlyArray<string>, endHints: ReadonlyArray<string>, timing?: TransitionTiming, mode?: PickerHintMode, options?: TransitionHintOptions): string;
1414
+
1124
1415
  /**
1125
1416
  * THE DIRECTION REGISTRY — the single, ordered table of every cinematic
1126
1417
  * dimension the flat `direction` channel carries, plus the one renderer that
@@ -1468,7 +1759,7 @@ declare const DIRECTION_FIELDS: readonly [{
1468
1759
  readonly surface: "video";
1469
1760
  readonly family: "motion";
1470
1761
  readonly maxPicks: 2;
1471
- readonly render: (ids: readonly string[], mode: PickerHintMode) => string[];
1762
+ readonly render: typeof renderTransitionBases;
1472
1763
  }, {
1473
1764
  readonly key: "loopSubject";
1474
1765
  readonly surface: "video";
@@ -2115,6 +2406,19 @@ declare const REF_BINDING: {
2115
2406
  readonly ordinal: (n: number) => string;
2116
2407
  readonly frame: (n: number, role: "opening" | "closing") => string;
2117
2408
  };
2409
+ /**
2410
+ * The instruction that makes Seedance EDIT a wired clip rather than use it as a
2411
+ * style reference — the Video to Video node's Seedance lane prepends it to the
2412
+ * user's own sentence. Written with the EDITOR token (`{video:1}`) so it goes
2413
+ * through the same reference resolver as any prompt: the source clip is the
2414
+ * run's first reference video, so it resolves to `@video_1` on the wire. The
2415
+ * instruction lands on its own line after it.
2416
+ */
2417
+ declare const SEEDANCE_VIDEO_EDIT_PREFIX = "edit {video:1} as follows:\n";
2418
+ /** The user's sentence, framed as an edit of the source clip. Idempotent: a
2419
+ * prompt that already opens with the instruction (a preset's pre text, a
2420
+ * hand-written one, either token spelling) is left alone. */
2421
+ declare function buildSeedanceVideoEditPrompt(prompt: string | undefined): string;
2118
2422
 
2119
2423
  /**
2120
2424
  * `{ref:<id>}` / `{ref:<id>:<label>}` — id-addressed reference tokens.
@@ -3398,6 +3702,16 @@ interface PickerOption {
3398
3702
  * `label` and inject `term`; they never derive it themselves.
3399
3703
  */
3400
3704
  readonly term: string;
3705
+ /**
3706
+ * Transitions only: present (`true`) on a row whose mechanism is a CUT, so
3707
+ * it takes no duration and no intensity — see `Transition.instant` /
3708
+ * `isInstantTransition`. A consumer that only reads this wire catalog
3709
+ * (Studio builds the transition Duration lever from
3710
+ * `getPickerCatalog("transition")`) hides those levers for such a row. Carried from the base catalog; a row a catalog pack ADDS has
3711
+ * it only when the pack's own option says so, and absent means "has a
3712
+ * duration" — the safe reading, since the composer then behaves as before.
3713
+ */
3714
+ readonly instant?: true;
3401
3715
  /** Only present if the source catalog entry already carries a data icon/emoji/thumbnail field. */
3402
3716
  readonly icon?: string;
3403
3717
  }
@@ -6960,211 +7274,6 @@ declare function buildTemporalTerms(data: Record<string, unknown> & {
6960
7274
  temporalShutter?: unknown;
6961
7275
  }): string[];
6962
7276
 
6963
- /**
6964
- * Canonical catalog of cinematic transitions for AI-video generation.
6965
- *
6966
- * Shared between frontend (picker UI, prompt hint injection) and backend
6967
- * (orchestrator payload builder). The `promptHint` is a natural-language
6968
- * cue that gets composed into the user prompt when a transition node is
6969
- * connected to a video consumer.
6970
- *
6971
- * Multi-pick supported: value field accepts `string | string[]` (cap 2).
6972
- * Graph-aware: `startState` / `endState` input handles accept upstream
6973
- * parameter nodes whose hints are folded into the composed clause as
6974
- * "starting from <X>, ending at <Y>".
6975
- */
6976
-
6977
- type TransitionCategory = "standard" | "time" | "element" | "morph" | "portal" | "physics" | "light" | "glitch";
6978
- interface Transition {
6979
- readonly id: string;
6980
- readonly label: string;
6981
- readonly category: TransitionCategory;
6982
- readonly description: string;
6983
- readonly promptHint: string;
6984
- /**
6985
- * Optional authored compact term (see `term.ts`). Authored where the
6986
- * lowercased label is not what an editor would write in a prompt — a UI
6987
- * compound ("None / Hard Cut" → "hard cut"), an annotation the derivation
6988
- * drops ("Fast-Forward (Day → Night)" → "day-to-night time-lapse"), a bare
6989
- * word that collides with another meaning ("Melt Down", "Channel Flip",
6990
- * "Roll"), or a coinage that is not the trade term ("Seamless Match" →
6991
- * "invisible cut"). Everywhere else the label IS the term.
6992
- */
6993
- readonly term?: string;
6994
- }
6995
- /**
6996
- * The three timing scales, each derived from the catalog that defines it (see
6997
- * `TRANSITION_POSITIONS` and friends below).
6998
- *
6999
- * The direction matters. These used to be hand-written unions with the clause
7000
- * tables written out separately beside them, so the two could disagree: add a
7001
- * step to the union, forget the clause, and the composer indexed a missing key
7002
- * — pushing `undefined` into the parts list, which `join(", ")` renders as a
7003
- * dangling separator on a prompt that then ships to a provider with the user's
7004
- * chosen parameter silently dropped. Deriving the union FROM the catalog makes
7005
- * that unrepresentable: one array is the source of the type, the option list
7006
- * the API serves, and the clause table, so a new step reaches all three or
7007
- * none. The exact id sets are pinned by `transition-timing-catalogs.test.ts`.
7008
- */
7009
- type TransitionPosition = (typeof TRANSITION_POSITIONS)[number]["id"];
7010
- type TransitionDuration = (typeof TRANSITION_DURATIONS)[number]["id"];
7011
- type TransitionIntensity = (typeof TRANSITION_INTENSITIES)[number]["id"];
7012
- interface TransitionTiming {
7013
- position?: TransitionPosition;
7014
- duration?: TransitionDuration;
7015
- intensity?: TransitionIntensity;
7016
- }
7017
- declare const TRANSITIONS: ReadonlyArray<Transition>;
7018
- declare const TRANSITION_CATEGORY_ORDER: ReadonlyArray<TransitionCategory>;
7019
- declare const TRANSITION_CATEGORY_LABELS: Readonly<Record<TransitionCategory, string>>;
7020
- declare function getTransition(id: string | undefined | null): Transition | undefined;
7021
- declare function getTransitionLabel(id: string | undefined | null, fallback?: string): string;
7022
- declare function getTransitionPromptHint(id: string | undefined | null): string;
7023
- /**
7024
- * Compact professional TERM for an id — the short phrase an editor would write
7025
- * in a prompt ("hard cut", "invisible cut", "day-to-night time-lapse"), as
7026
- * opposed to the paragraph-length `promptHint`.
7027
- *
7028
- * Same lookup and same empty-string-on-miss behavior as
7029
- * `getTransitionPromptHint`, so the two can never disagree about which entry
7030
- * they describe. The no-op "Auto" entry resolves to `""` in both.
7031
- */
7032
- declare function getTransitionTerm(id: string | undefined | null): string;
7033
- declare const TRANSITION_IDS: ReadonlyArray<string>;
7034
- /**
7035
- * The transition node's three timing parameters, as catalogs.
7036
- *
7037
- * These are graded scales, not free numbers — the same shape as
7038
- * `exposure-settings`' aperture or `temporal`'s speed — so a consumer that can
7039
- * only send ids (Studio, the SDK, MCP) can offer them without composing prompt
7040
- * text of its own. `auto` is the no-op head of each scale: an empty
7041
- * `promptHint`, so an unset parameter contributes nothing and the model is left
7042
- * to decide, exactly as before these were enumerable.
7043
- *
7044
- * `POSITION_CLAUSES` / `DURATION_CLAUSES` / `INTENSITY_CLAUSES` below are
7045
- * DERIVED from these arrays, so the clause the composer injects and the hint
7046
- * the catalog advertises are the same string by construction and cannot drift.
7047
- */
7048
- interface TransitionTimingOption {
7049
- readonly id: string;
7050
- readonly label: string;
7051
- readonly description: string;
7052
- readonly promptHint: string;
7053
- readonly term?: string;
7054
- }
7055
- declare const TRANSITION_POSITIONS: readonly [{
7056
- readonly id: "auto";
7057
- readonly label: "Auto";
7058
- readonly description: "Let the model place it";
7059
- readonly promptHint: "";
7060
- readonly term: "";
7061
- }, {
7062
- readonly id: "start";
7063
- readonly label: "Start";
7064
- readonly description: "At the opening of the clip";
7065
- readonly promptHint: "the transition occurs at the opening of the clip";
7066
- readonly term: "at the opening of the clip";
7067
- }, {
7068
- readonly id: "middle";
7069
- readonly label: "Middle";
7070
- readonly description: "In the middle of the clip";
7071
- readonly promptHint: "the transition occurs in the middle of the clip";
7072
- readonly term: "mid-clip";
7073
- }, {
7074
- readonly id: "end";
7075
- readonly label: "End";
7076
- readonly description: "At the end of the clip";
7077
- readonly promptHint: "the transition occurs at the end of the clip";
7078
- readonly term: "at the end of the clip";
7079
- }, {
7080
- readonly id: "full";
7081
- readonly label: "Full";
7082
- readonly description: "Spans the entire clip";
7083
- readonly promptHint: "the transition spans the entire clip";
7084
- readonly term: "across the whole clip";
7085
- }];
7086
- declare const TRANSITION_DURATIONS: readonly [{
7087
- readonly id: "auto";
7088
- readonly label: "Auto";
7089
- readonly description: "Let the model time it";
7090
- readonly promptHint: "";
7091
- readonly term: "";
7092
- }, {
7093
- readonly id: "instant";
7094
- readonly label: "Instant";
7095
- readonly description: "No perceptible duration";
7096
- readonly promptHint: "occurring instantaneously";
7097
- readonly term: "instantaneous";
7098
- }, {
7099
- readonly id: "short";
7100
- readonly label: "Short (~1s)";
7101
- readonly description: "Approximately 1 second";
7102
- readonly promptHint: "lasting approximately 1 second";
7103
- readonly term: "about 1 second";
7104
- }, {
7105
- readonly id: "medium";
7106
- readonly label: "Medium (~2s)";
7107
- readonly description: "Approximately 2 seconds";
7108
- readonly promptHint: "lasting approximately 2 seconds";
7109
- readonly term: "about 2 seconds";
7110
- }, {
7111
- readonly id: "long";
7112
- readonly label: "Long (~3s)";
7113
- readonly description: "Approximately 3 seconds";
7114
- readonly promptHint: "lasting approximately 3 seconds";
7115
- readonly term: "about 3 seconds";
7116
- }];
7117
- declare const TRANSITION_INTENSITIES: readonly [{
7118
- readonly id: "auto";
7119
- readonly label: "Auto";
7120
- readonly description: "Let the model judge it";
7121
- readonly promptHint: "";
7122
- readonly term: "";
7123
- }, {
7124
- readonly id: "subtle";
7125
- readonly label: "Subtle";
7126
- readonly description: "Restrained, minimal flourish";
7127
- readonly promptHint: "with subtle restrained energy and minimal flourish";
7128
- readonly term: "subtly";
7129
- }, {
7130
- readonly id: "natural";
7131
- readonly label: "Natural";
7132
- readonly description: "Unhurried, unforced timing";
7133
- readonly promptHint: "with natural unhurried timing";
7134
- readonly term: "at a natural pace";
7135
- }, {
7136
- readonly id: "dynamic";
7137
- readonly label: "Dynamic";
7138
- readonly description: "Assertive, energetic";
7139
- readonly promptHint: "with dynamic energy and assertive flourish";
7140
- readonly term: "energetically";
7141
- }, {
7142
- readonly id: "crazy";
7143
- readonly label: "Crazy";
7144
- readonly description: "Extreme, wild, distorted";
7145
- readonly promptHint: "with extreme exaggerated energy, wild flourishes, and dramatic distortion";
7146
- readonly term: "wildly exaggerated";
7147
- }];
7148
- /**
7149
- * Compose a structural prompt-hint sentence from a transition id (or array
7150
- * of 1-2 ids for multi-pick) plus optional start-state/end-state hints
7151
- * (collected by walking the source node's startState / endState input
7152
- * handle edges upstream) and optional timing fields.
7153
- *
7154
- * Behavior:
7155
- * - 0 hints (no transition, empty array, or all-empty hints) → ""
7156
- * - n base hints joined with ", and "
7157
- * - Timing/start/end clauses apply ONCE at the outer layer, not per-id
7158
- * - null input is treated like undefined (falsy short-circuit → returns "")
7159
- *
7160
- * @param mode `"compact"` builds the base from each transition's short
7161
- * professional `term` ("hard cut") instead of its full mechanism paragraph.
7162
- * Everything else — the ", and " multi-pick join, the position/duration/
7163
- * intensity clauses, and the "starting from"/"ending at" clauses — is
7164
- * emitted identically in both modes.
7165
- */
7166
- declare function composeTransitionHintFromConnections(transitionId: string | ReadonlyArray<string> | undefined, startHints: ReadonlyArray<string>, endHints: ReadonlyArray<string>, timing?: TransitionTiming, mode?: PickerHintMode): string;
7167
-
7168
7277
  /**
7169
7278
  * Voice-character catalog: age + gender + language + accent + timbre. Feeds
7170
7279
  * Voice Design's voiceDescription field via the Sound aggregator.
@@ -8184,4 +8293,50 @@ interface CharacterMotionBindings {
8184
8293
  * unknown; this never certifies a sequence or predicts clip duration. */
8185
8294
  declare function getCharacterMotionDiagnostics(value: string | readonly string[] | null | undefined, timing?: CharacterMotionTiming, bindings?: CharacterMotionBindings): readonly CharacterMotionDiagnostic[];
8186
8295
 
8187
- export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_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 AdultOnlyEntry, 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 BuildImagePromptOverflowResult, 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, CHARACTER_MOTIONS, CHARACTER_MOTION_CATEGORY_LABELS, CHARACTER_MOTION_CATEGORY_ORDER, CHARACTER_MOTION_IDS, CHARACTER_MOTION_MAX_PICKS, CHARACTER_MOTION_PACES, CHARACTER_MOTION_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 CharacterMotion, type CharacterMotionBindings, type CharacterMotionCategory, type CharacterMotionDiagnostic, type CharacterMotionFloor, type CharacterMotionPace, type CharacterMotionPosition, type CharacterMotionPromptInput, type CharacterMotionTiming, type CharacterMotionTimingOption, 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 DirectionHintClause, type DirectionHintMode, type DirectionKey, type DirectionStyleGroup, 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, FILM_STYLE_KEYS, FLOORED_PICKER_KEYS, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type FacePromptInput, type FactoryPreset, type FactoryPresetGroup, type FactorySnippet, type ForeignCatalogId, type FrameDeliveryPlan, type FrameDeliveryPlanArgs, 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, MAX_SUBJECT_KEYS, MINOR_IMPLYING_TYPE_IDS, 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 PromptClauseSlot, 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, RETIRED_ADULT_ONLY_HINT_STRINGS, type RecommendedModel, type RefIdTokenContext, type ReferenceCounts, type ReferenceLineFormat, type RegisteredPersonEntry, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, 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, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, SUBJECT_ARRAY_CEILING, SUBJECT_CUSTOM_AGE_KEY, SUBJECT_FIELDS, SUBJECT_FOLD_KEYS, SUBJECT_ID_MAX_CHARS, SUBJECT_IMAGE_HINT_MODE_DEFAULT, SUBJECT_KEYS, SUBJECT_KEY_MAX_CHARS, SUBJECT_VIDEO_HINT_MODE_DEFAULT, type Scene3DFigureReferenceCheck, type Scene3DLayoutReferenceCarrier, type Scene3DLayoutReferenceSeat, type Scene3DLayoutScopingSpec, type Scene3DUnreferencedFiguresWarning, type Seedance2InputsArgs, type Seedance2InputsResult, type Seedance2Mode, type Setting, type SettingCategory, type SidecarCoverageReport, type SingleDimPickerWiring, type SlottedPromptClause, type SnippetMedia, type SnippetTarget, type SoundComposition, type SoundCompositionFields, type SoundConsumerType, type StructuredPromptFields, type Style, type StylePreset, type Styling, type StylingDimension, type StylingValue, type SubjectFieldRow, type SubjectFieldSpec, type SubjectFields, type SubjectGroupFieldSpec, type SubjectHintMode, type SubjectIdsFieldSpec, type SubjectSurface, 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 VideoPromptCapOptions, 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, __resetCatalogIdGuardForTests, appendField, appendMusicMeta, appendReferenceLines, appendScene3DStillScopingLines, applyMinorAgeFloorToPickerValues, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, asBodyClauses, assembleImageInput, assembleSunoInput, buildActionFxHints, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildImagePromptWithOverflow, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildNeedleAlternationSource, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, buildScenePrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogGuardActive, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, composedHas, composedOption, composedOptionIndex, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, containsMinorAgeHint, curateEntries, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, deriveTerm, directionFieldsForSurface, endsInsideStyleSection, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, 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, getCharacterMotion, getCharacterMotionBindings, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, 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, getMinorAgeHintStrings, 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, getRegisteredSubjectKeys, 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, hasCatalogPacksFor, hasScene3DLayoutScopingLine, hasUpstreamCharacter, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isDeniedStyleId, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinHintFragments, joinPromptHints, joinPromptParts, keepableDirectionHints, listPickerCatalogs, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, planFrameDelivery, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, referenceDescriptionLine, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDescribedReferenceLines, renderDirectionHintClauses, renderDirectionHints, renderReferenceCaptionLines, renderScene3DLayoutScopingLine, renderStructuredFields, renderStyleSection, renderSubjectHints, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, scene3DLayoutVideoCaptions, sectionedClauseCosts, setComposedCatalogResolver, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
8296
+ /**
8297
+ * Per-ad creative analysis — the "expert competitor ad analyst" pass the
8298
+ * social scraper nodes (Meta Ads first; TikTok / Instagram / LinkedIn next)
8299
+ * can run on every ad they return. Node-agnostic on purpose: the input is
8300
+ * "one creative + its copy + a little context", never a Meta-shaped ad.
8301
+ *
8302
+ * The model answers in a fixed JSON shape (the schema lives with the backend
8303
+ * call site); this file owns the WORDS — what each field means and how to
8304
+ * judge it — so the prompt can be tuned without touching the wire contract.
8305
+ */
8306
+ /** The fields the analysis returns, in the order a reader wants them. */
8307
+ declare const AD_CREATIVE_ANALYSIS_FIELDS: readonly ["assetType", "format", "visualHooks", "audiences", "graphicIdentity", "copywritingHooks", "usps", "cta", "summary"];
8308
+ type AdCreativeAnalysisField = (typeof AD_CREATIVE_ANALYSIS_FIELDS)[number];
8309
+ declare const AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT = "You are an expert competitor ad analyst. You look at a competitor's ad \u2014 its creative (image or video poster frame) and its copy \u2014 and extract the relevant ad information into a structured summary a marketing team can act on.\n\nJudge from what is actually in the creative and copy; never invent claims that are not visible or written. Be concrete and specific (name the objects, colors, people, layouts, words), not generic (\"eye-catching visuals\"). Write in the language of the ad copy when it is not English, otherwise in English.\n\nFill every field:\n- assetType: \"static\" (a still image), \"motion\" (a video \u2014 you see its poster frame), \"carousel\" (several creatives in one ad), or \"unknown\".\n- format: the placement the creative is built for \u2014 e.g. \"in-feed\", \"story / reel (9:16)\", \"square feed\", \"banner / web\", judged from its shape and framing.\n- visualHooks: the key visuals and visual angles used to stop the scroll (product close-up, before/after, face + eye contact, big number, screenshot, meme style, UGC selfie, text-on-image\u2026). 2\u20136 short items.\n- audiences: who the ad represents or addresses (age band, gender, life situation, profession, interest, geography, pain point). 1\u20135 short items.\n- graphicIdentity: the graphic components \u2014 color palette, typography style, logo placement, layout system, illustration vs photo, brand consistency cues. One or two sentences.\n- copywritingHooks: the copywriting angles used in the visual text and in the body (curiosity, urgency, social proof, question, offer, fear of missing out, authority, humor\u2026). 1\u20136 short items, each naming the angle and quoting or paraphrasing the line that carries it.\n- usps: the unique selling points the ad claims (price, speed, exclusivity, guarantee, results, features). 1\u20135 short items.\n- cta: the call to action \u2014 the button label and/or the closing line that tells the viewer what to do.\n- summary: two to four sentences: what the ad sells, to whom, with what hook, and why it likely works (or does not).";
8310
+ /**
8311
+ * The organic-content twin of the ad prompt — for scraped social POSTS
8312
+ * (Instagram / TikTok / LinkedIn), not paid ads. SAME output fields (so one
8313
+ * schema and one UI serve both), read for organic content: hooks, audience,
8314
+ * the value/benefit the post conveys (`usps`), and its ask (`cta` — "link in
8315
+ * bio", "follow", a comment prompt, or none).
8316
+ */
8317
+ declare const POST_CONTENT_ANALYSIS_SYSTEM_PROMPT = "You are an expert social-media content analyst. You look at a single organic post \u2014 its creative (image or video cover frame) and its caption \u2014 and extract what a marketing team can learn from it into a structured summary.\n\nJudge from what is actually in the creative and caption; never invent claims that are not visible or written. Be concrete and specific (name the objects, colors, people, layouts, words), not generic (\"engaging content\"). Write in the language of the caption when it is not English, otherwise in English.\n\nFill every field:\n- assetType: \"static\" (a still image), \"motion\" (a video / reel \u2014 you see its cover frame), \"carousel\" (a multi-image post), or \"unknown\".\n- format: the format the post is built for \u2014 e.g. \"reel (9:16)\", \"square feed photo\", \"carousel\", \"portrait (4:5)\", judged from its shape and framing.\n- visualHooks: the key visuals and visual angles used to stop the scroll (product close-up, before/after, face + eye contact, big text overlay, meme style, UGC selfie, trend/format\u2026). 2\u20136 short items.\n- audiences: who the post represents or speaks to (age band, gender, life situation, profession, interest, geography, community). 1\u20135 short items.\n- graphicIdentity: the graphic components \u2014 color palette, typography style, logo / handle placement, layout, illustration vs photo, brand consistency cues. One or two sentences.\n- copywritingHooks: the caption / content angles (curiosity, storytelling, question, trend, humor, social proof, education, behind-the-scenes\u2026). 1\u20136 short items, each naming the angle and quoting or paraphrasing the line that carries it.\n- usps: the value or benefit the post conveys to the viewer (entertainment, education, inspiration, a product benefit, a deal). 1\u20135 short items.\n- cta: the ask \u2014 the caption's call to action (\"link in bio\", \"shop now\", \"follow\", \"comment below\"), or \"none\" if the post makes none.\n- summary: two to four sentences: what the post is about, who it speaks to, with what hook, and why it likely performs (or does not).";
8318
+ interface AdCreativeAnalysisInput {
8319
+ /** Who is advertising (the Page / account name). */
8320
+ readonly advertiser?: string;
8321
+ readonly headline?: string;
8322
+ readonly body?: string;
8323
+ readonly ctaLabel?: string;
8324
+ /** Where the ad points (the landing domain is enough). */
8325
+ readonly landing?: string;
8326
+ /** Placements the ad ran on (Facebook, Instagram, TikTok…). */
8327
+ readonly platforms?: readonly string[];
8328
+ /** Creative shape already classified by the caller ("vertical", "square", "horizontal"). */
8329
+ readonly creativeFormat?: string;
8330
+ /** "1 video, 2 images" — what the ad carries beyond the one frame the model sees. */
8331
+ readonly mediaSummary?: string;
8332
+ /** The user's optional focus ("we sell running shoes — compare against our positioning"). */
8333
+ readonly focus?: string;
8334
+ }
8335
+ /**
8336
+ * The user turn's text. The creative itself travels as a separate image
8337
+ * block; this is everything else the analyst should know, one labelled
8338
+ * line per fact, blanks left out.
8339
+ */
8340
+ declare function buildAdCreativeAnalysisUserText(input: AdCreativeAnalysisInput): string;
8341
+
8342
+ export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_IDS, AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, 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 AdCreativeAnalysisField, type AdCreativeAnalysisInput, type AdultOnlyEntry, 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 BuildImagePromptOverflowResult, 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, CHARACTER_MOTIONS, CHARACTER_MOTION_CATEGORY_LABELS, CHARACTER_MOTION_CATEGORY_ORDER, CHARACTER_MOTION_IDS, CHARACTER_MOTION_MAX_PICKS, CHARACTER_MOTION_PACES, CHARACTER_MOTION_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 CharacterMotion, type CharacterMotionBindings, type CharacterMotionCategory, type CharacterMotionDiagnostic, type CharacterMotionFloor, type CharacterMotionPace, type CharacterMotionPosition, type CharacterMotionPromptInput, type CharacterMotionTiming, type CharacterMotionTimingOption, 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 DirectionHintClause, type DirectionHintMode, type DirectionKey, type DirectionStyleGroup, 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, FILM_STYLE_KEYS, FLOORED_PICKER_KEYS, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type FacePromptInput, type FactoryPreset, type FactoryPresetGroup, type FactorySnippet, type ForeignCatalogId, type FrameDeliveryPlan, type FrameDeliveryPlanArgs, 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, INSTANT_CUT_CLAUSE, 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, MAX_SUBJECT_KEYS, MINOR_IMPLYING_TYPE_IDS, 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_CONTENT_ANALYSIS_SYSTEM_PROMPT, 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 PromptClauseSlot, 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, RETIRED_ADULT_ONLY_HINT_STRINGS, type RecommendedModel, type RefIdTokenContext, type ReferenceCounts, type ReferenceLineFormat, type RegisteredPersonEntry, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SEEDANCE_VIDEO_EDIT_PREFIX, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, SUBJECT_ARRAY_CEILING, SUBJECT_CUSTOM_AGE_KEY, SUBJECT_FIELDS, SUBJECT_FOLD_KEYS, SUBJECT_ID_MAX_CHARS, SUBJECT_IMAGE_HINT_MODE_DEFAULT, SUBJECT_KEYS, SUBJECT_KEY_MAX_CHARS, SUBJECT_VIDEO_HINT_MODE_DEFAULT, type Scene3DFigureReferenceCheck, type Scene3DLayoutReferenceCarrier, type Scene3DLayoutReferenceSeat, type Scene3DLayoutScopingSpec, type Scene3DUnreferencedFiguresWarning, type Seedance2InputsArgs, type Seedance2InputsResult, type Seedance2Mode, type Setting, type SettingCategory, type SidecarCoverageReport, type SingleDimPickerWiring, type SlottedPromptClause, type SnippetMedia, type SnippetTarget, type SoundComposition, type SoundCompositionFields, type SoundConsumerType, type StructuredPromptFields, type Style, type StylePreset, type Styling, type StylingDimension, type StylingValue, type SubjectFieldRow, type SubjectFieldSpec, type SubjectFields, type SubjectGroupFieldSpec, type SubjectHintMode, type SubjectIdsFieldSpec, type SubjectSurface, 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 TransitionHintOptions, type TransitionHintScope, 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 VideoPromptCapOptions, 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, __resetCatalogIdGuardForTests, appendField, appendMusicMeta, appendReferenceLines, appendScene3DStillScopingLines, applyMinorAgeFloorToPickerValues, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, asBodyClauses, assembleImageInput, assembleSunoInput, buildActionFxHints, buildActionFxTerms, buildAdCreativeAnalysisUserText, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildImagePromptWithOverflow, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildNeedleAlternationSource, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, buildScenePrompt, buildSeedanceVideoEditPrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogGuardActive, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, composedHas, composedOption, composedOptionIndex, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, containsMinorAgeHint, curateEntries, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, deriveTerm, directionFieldsForSurface, endsInsideStyleSection, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, 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, getCharacterMotion, getCharacterMotionBindings, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, 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, getMinorAgeHintStrings, 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, getRegisteredSubjectKeys, 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, hasCatalogPacksFor, hasScene3DLayoutScopingLine, hasUpstreamCharacter, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinHintFragments, joinPromptHints, joinPromptParts, keepableDirectionHints, listPickerCatalogs, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, planFrameDelivery, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, referenceDescriptionLine, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDescribedReferenceLines, renderDirectionHintClauses, renderDirectionHints, renderReferenceCaptionLines, renderScene3DLayoutScopingLine, renderStructuredFields, renderStyleSection, renderSubjectHints, renderTransitionBases, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, scene3DLayoutVideoCaptions, sectionedClauseCosts, setComposedCatalogResolver, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };