@nodaro/prompts 1.20.0 → 1.23.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 (54) hide show
  1. package/dist/index.cjs +8214 -7143
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +213 -61
  4. package/dist/index.d.ts +213 -61
  5. package/dist/index.js +8206 -7145
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/__tests__/adult-only-ratchet.test.ts +9 -1
  9. package/src/__tests__/catalog-packs.test.ts +13 -0
  10. package/src/__tests__/character-motion-audit.test.ts +77 -0
  11. package/src/__tests__/character-motion-exit-visibility.test.ts +183 -0
  12. package/src/__tests__/character-motion-partner-referent.test.ts +225 -0
  13. package/src/__tests__/character-motion.test.ts +11 -4
  14. package/src/__tests__/factory-presets.test.ts +28 -3
  15. package/src/__tests__/fixtures/parameter-hint-golden.json +22 -6
  16. package/src/__tests__/frame-delivery.test.ts +93 -0
  17. package/src/__tests__/graph-composed-unwired-identity.test.ts +166 -0
  18. package/src/__tests__/node-prompt-fields.test.ts +2 -2
  19. package/src/__tests__/parameter-prompt-hint.test.ts +9 -3
  20. package/src/__tests__/transitions-instant.test.ts +112 -0
  21. package/src/ad-creative-analysis.ts +99 -0
  22. package/src/catalog-packs.ts +13 -2
  23. package/src/character-motion/animals-pets.ts +112 -85
  24. package/src/character-motion/athletic-stunts.ts +155 -214
  25. package/src/character-motion/camera-interaction.ts +92 -133
  26. package/src/character-motion/combat-weapons.ts +143 -202
  27. package/src/character-motion/dance.ts +121 -169
  28. package/src/character-motion/entrances-exits.ts +88 -109
  29. package/src/character-motion/evasive-falls.ts +88 -130
  30. package/src/character-motion/everyday-actions.ts +233 -274
  31. package/src/character-motion/face-expression.ts +125 -178
  32. package/src/character-motion/gestures.ts +211 -304
  33. package/src/character-motion/head-gestures.ts +66 -94
  34. package/src/character-motion/idle-ambient.ts +85 -124
  35. package/src/character-motion/posture-shifts.ts +116 -139
  36. package/src/character-motion/runway.ts +73 -97
  37. package/src/character-motion/stage-performance.ts +92 -127
  38. package/src/character-motion/turns-looks.ts +86 -112
  39. package/src/character-motion/two-person.ts +241 -229
  40. package/src/character-motion/types.ts +4 -1
  41. package/src/character-motion/unnatural-horror.ts +53 -91
  42. package/src/character-motion/vehicles-mounts.ts +101 -97
  43. package/src/character-motion/walks-runs.ts +93 -121
  44. package/src/character-motion-diagnostics.ts +49 -0
  45. package/src/character-motion.ts +89 -13
  46. package/src/factory-presets/generate-video.ts +22 -0
  47. package/src/frame-delivery.ts +106 -0
  48. package/src/index.ts +7 -0
  49. package/src/node-prompt-fields.ts +4 -0
  50. package/src/parameter-prompt-hint.ts +23 -17
  51. package/src/picker-catalogs.ts +23 -2
  52. package/src/ref-binding.ts +19 -0
  53. package/src/transitions.ts +47 -10
  54. package/src/video-reference-resolver.ts +1 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { ConnectedReference, GenericNode, GenericEdge, HintNodeLike, HintGraphContext, EntityStyle, SupportedFontName, DescribedReference, CharacterDef, IdentityMeta, SceneData, CharacterMentionTokenInfo, LocationMentionTokenInfo, UsageMode, ProjectedCatalog, ProjectedCatalogDimension, ProjectedCatalogOption, LocaleId, LocaleCatalogMap, PromptAffixes, StyleDirectives, I18nCatalogId, SurroundDirection } from '@nodaro/shared';
2
- export { HintEdgeLike, HintGraphContext, HintNodeLike } from '@nodaro/shared';
1
+ import { ConnectedReference, GenericNode, GenericEdge, HintNodeLike, HintGraphContext, EntityStyle, SupportedFontName, DescribedReference, CharacterDef, IdentityMeta, SceneData, CharacterMentionTokenInfo, LocationMentionTokenInfo, UsageMode, CharacterMotionMetadata, ProjectedCatalog, ProjectedCatalogDimension, ProjectedCatalogOption, LocaleId, LocaleCatalogMap, PromptAffixes, StyleDirectives, I18nCatalogId, SurroundDirection, FrameDelivery } from '@nodaro/shared';
2
+ export { CharacterMotionMetadata, HintEdgeLike, HintGraphContext, HintNodeLike } from '@nodaro/shared';
3
3
  import { z } from 'zod';
4
4
 
5
5
  /**
@@ -421,6 +421,13 @@ declare function isSuspiciousDerivedTerm(label: string, opts?: SuspiciousTermOpt
421
421
  */
422
422
  declare function resolveTerm(entry: TermCarrier | undefined | null): string;
423
423
 
424
+ /** The preview, diagnostics and execution use identical graph bindings. */
425
+ declare function getCharacterMotionBindings(node: HintNodeLike, ctx?: HintGraphContext): {
426
+ targetNames: string[];
427
+ partnerNames: string[];
428
+ subjectMinor: boolean;
429
+ selfPairing: boolean;
430
+ };
424
431
  /**
425
432
  * Dispatch by parameter-node type to its prompt-hint string. For camera-motion,
426
433
  * pass `ctx` to include the composed start/end clauses; otherwise only the
@@ -2108,6 +2115,19 @@ declare const REF_BINDING: {
2108
2115
  readonly ordinal: (n: number) => string;
2109
2116
  readonly frame: (n: number, role: "opening" | "closing") => string;
2110
2117
  };
2118
+ /**
2119
+ * The instruction that makes Seedance EDIT a wired clip rather than use it as a
2120
+ * style reference — the Video to Video node's Seedance lane prepends it to the
2121
+ * user's own sentence. Written with the EDITOR token (`{video:1}`) so it goes
2122
+ * through the same reference resolver as any prompt: the source clip is the
2123
+ * run's first reference video, so it resolves to `@video_1` on the wire. The
2124
+ * instruction lands on its own line after it.
2125
+ */
2126
+ declare const SEEDANCE_VIDEO_EDIT_PREFIX = "edit {video:1} as follows:\n";
2127
+ /** The user's sentence, framed as an edit of the source clip. Idempotent: a
2128
+ * prompt that already opens with the instruction (a preset's pre text, a
2129
+ * hand-written one, either token spelling) is left alone. */
2130
+ declare function buildSeedanceVideoEditPrompt(prompt: string | undefined): string;
2111
2131
 
2112
2132
  /**
2113
2133
  * `{ref:<id>}` / `{ref:<id>:<label>}` — id-addressed reference tokens.
@@ -3351,41 +3371,29 @@ declare function buildPersonTerms(data: Record<string, unknown> & PersonValue):
3351
3371
  declare function migratePersonValue<T extends Record<string, unknown>>(data: T): T;
3352
3372
 
3353
3373
  /**
3354
- * Public, discoverable registry of the parameter-picker catalogs.
3355
- *
3356
- * This is the pure-data mirror of the frontend picker registry
3357
- * (`frontend/src/lib/parameter-picker-registry.tsx`). It contains NO React —
3358
- * just the catalog metadata + flattened options — so it can be consumed by
3359
- * the backend, the public SDK, docs tooling, and the editor alike from one
3360
- * source of truth.
3361
- *
3362
- * Two kinds of entry (mirroring the frontend):
3363
- * - "single": one value field whose value is a string id chosen from a
3364
- * catalog. `options` carries the full flattened catalog (id/label/
3365
- * description/category/promptHint), so a consumer can render a picker or
3366
- * resolve an id → prompt fragment without importing the heavy frontend
3367
- * registry.
3368
- * - "multi": several value fields (e.g. Framing.shotSize + .angle + …).
3369
- * Structured / multi-dimensional. There is no single catalog to flatten,
3370
- * so instead of top-level `options` each multi entry carries a
3371
- * `dimensions` array — one self-describing entry per field
3372
- * ({ field, label, options }) in `fields` order — so a consumer can render
3373
- * a per-field picker or resolve any field's id → prompt fragment without
3374
- * importing the heavy frontend registry.
3375
- *
3376
- * A drift-guard test (`frontend/src/lib/__tests__/picker-catalogs-sync.test.ts`)
3377
- * asserts parity between this registry and the frontend one so the two cannot
3378
- * silently diverge.
3379
- *
3380
- * NOTE on `promptHint` for the four Object-entity catalogs (animal / vehicle /
3381
- * weapon / furniture): those catalog entries do NOT carry a `promptHint`
3382
- * field — at runtime `getParameterPromptHint` synthesizes the fragment from
3383
- * `label` + `description` ("featuring a golden retriever, …"). We reproduce the
3384
- * exact same phrasing here so each option's `promptHint` is non-empty AND
3385
- * matches what actually gets injected downstream.
3374
+ * Types for the Character Motion catalog. The entry arrays live one file per
3375
+ * category under this directory; `../character-motion.ts` aggregates them and
3376
+ * owns the getters, the timing scales and the composer. Kept apart so no file
3377
+ * in the catalog passes the repo's 800-line ceiling.
3386
3378
  */
3379
+ type CharacterMotionCategory = "entrances-exits" | "turns-looks" | "head-gestures" | "walks-runs" | "runway" | "dance" | "face-expression" | "gestures" | "camera-interaction" | "combat-weapons" | "athletic-stunts" | "evasive-falls" | "posture-shifts" | "everyday-actions" | "vehicles-mounts" | "animals-pets" | "two-person" | "idle-ambient" | "stage-performance" | "unnatural-horror";
3380
+ interface CharacterMotion extends CharacterMotionMetadata {
3381
+ readonly id: string;
3382
+ readonly label: string;
3383
+ readonly category: CharacterMotionCategory;
3384
+ readonly description: string;
3385
+ readonly promptHint: string;
3386
+ /** Authored compact term (see `../term.ts`); every injecting entry authors one. */
3387
+ readonly term?: string;
3388
+ /** Minor-age floor flag (see `../pose.ts`). Hand-curated; never on neutral movement. */
3389
+ readonly adultOnly?: true;
3390
+ /** The move needs a second person; the hint contains the literal words "the partner". */
3391
+ readonly twoPerson?: true;
3392
+ }
3387
3393
 
3388
3394
  interface PickerOption {
3395
+ /** Character Motion only: authored prerequisites, state and search metadata. */
3396
+ readonly motion?: CharacterMotionMetadata;
3389
3397
  readonly id: string;
3390
3398
  readonly label: string;
3391
3399
  readonly description?: string;
@@ -3403,6 +3411,16 @@ interface PickerOption {
3403
3411
  * `label` and inject `term`; they never derive it themselves.
3404
3412
  */
3405
3413
  readonly term: string;
3414
+ /**
3415
+ * Transitions only: present (`true`) on a row whose mechanism is a CUT, so
3416
+ * it takes no duration — see `Transition.instant` / `isInstantTransition`.
3417
+ * A consumer that only reads this wire catalog (Studio builds the transition
3418
+ * Duration lever from `getPickerCatalog("transition")`) hides that lever for
3419
+ * such a row. Carried from the base catalog; a row a catalog pack ADDS has
3420
+ * it only when the pack's own option says so, and absent means "has a
3421
+ * duration" — the safe reading, since the composer then behaves as before.
3422
+ */
3423
+ readonly instant?: true;
3406
3424
  /** Only present if the source catalog entry already carries a data icon/emoji/thumbnail field. */
3407
3425
  readonly icon?: string;
3408
3426
  }
@@ -5045,27 +5063,6 @@ declare const CHARACTER_FX_INTENSITIES: readonly [{
5045
5063
  */
5046
5064
  declare function composeCharacterFxHintFromConnections(effectId: string | ReadonlyArray<string> | undefined, targetHints: ReadonlyArray<string>, timing?: CharacterFxTiming, mode?: PickerHintMode): string;
5047
5065
 
5048
- /**
5049
- * Types for the Character Motion catalog. The entry arrays live one file per
5050
- * category under this directory; `../character-motion.ts` aggregates them and
5051
- * owns the getters, the timing scales and the composer. Kept apart so no file
5052
- * in the catalog passes the repo's 800-line ceiling.
5053
- */
5054
- type CharacterMotionCategory = "entrances-exits" | "turns-looks" | "head-gestures" | "walks-runs" | "runway" | "dance" | "face-expression" | "gestures" | "camera-interaction" | "combat-weapons" | "athletic-stunts" | "evasive-falls" | "posture-shifts" | "everyday-actions" | "vehicles-mounts" | "animals-pets" | "two-person" | "idle-ambient" | "stage-performance" | "unnatural-horror";
5055
- interface CharacterMotion {
5056
- readonly id: string;
5057
- readonly label: string;
5058
- readonly category: CharacterMotionCategory;
5059
- readonly description: string;
5060
- readonly promptHint: string;
5061
- /** Authored compact term (see `../term.ts`); every injecting entry authors one. */
5062
- readonly term?: string;
5063
- /** Minor-age floor flag (see `../pose.ts`). Hand-curated; never on neutral movement. */
5064
- readonly adultOnly?: true;
5065
- /** The move needs a second person; the hint contains the literal words "the partner". */
5066
- readonly twoPerson?: true;
5067
- }
5068
-
5069
5066
  /**
5070
5067
  * Canonical catalog of CHARACTER MOTION choices — what the subject DOES across
5071
5068
  * a video clip: walks in, turns to camera, breaks into a smile, ducks, draws and
@@ -5084,7 +5081,14 @@ interface CharacterMotion {
5084
5081
  * Every non-empty `promptHint` references "the subject" at least once — the
5085
5082
  * composer does a global regex replace of "the subject" with the wired target's
5086
5083
  * display name. Two-person moves ALSO contain the literal words "the partner",
5087
- * replaced with the wired partner's name, or "another person" when unwired.
5084
+ * replaced with the wired partner's name on every occurrence. With nothing
5085
+ * wired to the partner handle, the fallback "another person" INTRODUCES the
5086
+ * referent at its first occurrence in THAT TARGET's clauses and every later
5087
+ * occurrence of that target reads "that same person" — a hint that names the
5088
+ * partner five times still describes one person, and a sequence of picks keeps
5089
+ * that one person throughout. Multiple wired targets each perform a separate
5090
+ * copy of the sequence, so each copy introduces its own partner rather than
5091
+ * sharing one between two performers. See `referenceTo` in the composer.
5088
5092
  *
5089
5093
  * Multi-pick is an ORDERED SEQUENCE: value field accepts `string | string[]`
5090
5094
  * (cap 3), joined with ", then " in BOTH hint modes (a movement happens after
@@ -5100,7 +5104,7 @@ declare const CHARACTER_MOTION_CATEGORY_ORDER: ReadonlyArray<CharacterMotionCate
5100
5104
  declare const CHARACTER_MOTION_CATEGORY_LABELS: Readonly<Record<CharacterMotionCategory, string>>;
5101
5105
  /**
5102
5106
  * The catalog: two no-op heads + every category array, in category order.
5103
- * 1003 injecting entries across 20 categories.
5107
+ * Authored injecting entries across 20 categories.
5104
5108
  */
5105
5109
  declare const CHARACTER_MOTIONS: ReadonlyArray<CharacterMotion>;
5106
5110
  declare function getCharacterMotion(id: string | undefined | null): CharacterMotion | undefined;
@@ -5205,9 +5209,10 @@ interface CharacterMotionFloor {
5205
5209
  * optional Position / Pace timing.
5206
5210
  *
5207
5211
  * Full mode: each hint has "the subject" rewritten to the target name(s) (only
5208
- * when a target is wired) and "the partner" rewritten to the partner name (or
5209
- * "another person" — ALWAYS, so the literal words "the partner" never ship);
5210
- * both BEFORE the ", then " join. Compact mode: terms joined with ", then ",
5212
+ * when a target is wired) and "the partner" rewritten to the partner name, or —
5213
+ * when nothing is wired to that handle — to "another person" on that target's
5214
+ * first mention and "that same person" after; ALWAYS, so the literal words
5215
+ * "the partner" never ship. Both BEFORE the ", then " join. Compact mode: terms joined with ", then ",
5211
5216
  * prefixed `"{target}: "` when a target is wired. A term never contains "the
5212
5217
  * subject" (the prefix names the target) but a two-person term always contains
5213
5218
  * "the partner", which is substituted exactly as in full mode.
@@ -7009,6 +7014,18 @@ interface Transition {
7009
7014
  * "invisible cut"). Everywhere else the label IS the term.
7010
7015
  */
7011
7016
  readonly term?: string;
7017
+ /**
7018
+ * `true` on rows whose mechanism IS A CUT — the change happens between two
7019
+ * frames, so it has no duration to time. A duration clause ("lasting
7020
+ * approximately 1 second") on such a row tells the video model to spend a
7021
+ * second on the change, and it obliges with a dissolve: a match cut rendered
7022
+ * as a 1.75 s cross-dissolve in QA. The composer therefore skips the duration
7023
+ * lever when every picked transition is instant, and consumers (the picker
7024
+ * UI, Studio) read `isInstantTransition` to hide that lever. Position and
7025
+ * intensity still apply — WHERE the cut lands, and how hard it hits, are
7026
+ * real choices.
7027
+ */
7028
+ readonly instant?: boolean;
7012
7029
  }
7013
7030
  /**
7014
7031
  * The three timing scales, each derived from the catalog that defines it (see
@@ -7049,6 +7066,16 @@ declare function getTransitionPromptHint(id: string | undefined | null): string;
7049
7066
  */
7050
7067
  declare function getTransitionTerm(id: string | undefined | null): string;
7051
7068
  declare const TRANSITION_IDS: ReadonlyArray<string>;
7069
+ /**
7070
+ * Whether a transition is a CUT — instantaneous by nature, so it takes no
7071
+ * duration (see `Transition.instant`). Reads through `getTransition`, so it
7072
+ * answers for the same entry every other getter describes; an unknown id, the
7073
+ * no-op "auto" and an empty value are all `false`.
7074
+ *
7075
+ * A multi-pick (`string[]`) is instant only when EVERY picked id is: a cut
7076
+ * paired with a dissolve still has a dissolve to time.
7077
+ */
7078
+ declare function isInstantTransition(id: string | ReadonlyArray<string> | undefined | null): boolean;
7052
7079
  /**
7053
7080
  * The transition node's three timing parameters, as catalogs.
7054
7081
  *
@@ -7173,6 +7200,8 @@ declare const TRANSITION_INTENSITIES: readonly [{
7173
7200
  * - 0 hints (no transition, empty array, or all-empty hints) → ""
7174
7201
  * - n base hints joined with ", and "
7175
7202
  * - Timing/start/end clauses apply ONCE at the outer layer, not per-id
7203
+ * - The duration clause is dropped when every picked id is instant (a cut —
7204
+ * see `isInstantTransition`); position and intensity still apply
7176
7205
  * - null input is treated like undefined (falsy short-circuit → returns "")
7177
7206
  *
7178
7207
  * @param mode `"compact"` builds the base from each transition's short
@@ -8125,4 +8154,127 @@ declare function getPickerWiring(nodeType: string | undefined | null): PickerWir
8125
8154
  */
8126
8155
  declare function buildSurroundFillPrompt(direction: SurroundDirection, userPrompt?: string): string;
8127
8156
 
8128
- 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 CharacterMotionCategory, 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 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, 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, 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 };
8157
+ /**
8158
+ * HOW A START/END FRAME TRAVELS — one plan, read by both ends.
8159
+ *
8160
+ * A frame can reach a model two ways: as a real frame, or as a reference image
8161
+ * bound in prose as the opening (or closing) frame. Which one is right is
8162
+ * measured per model — the Seedance 2.0 family crop-zooms a frame 2% and drifts
8163
+ * 11-26% darker within six frames, but holds its look from frame 0 when the same
8164
+ * image rides as a reference; every other model measured reproduces the opening
8165
+ * frame better as a frame (see `resolveFrameDelivery` in @nodaro/shared).
8166
+ *
8167
+ * The composition — where the frames sit in the reference list, which sentence
8168
+ * binds them, when the switch is refused — lives HERE rather than at the
8169
+ * dispatch site, because two places need the same answer:
8170
+ *
8171
+ * - `backend/src/lib/video-frame-dispatch.ts` builds the actual request,
8172
+ * - the editor's config panel tells the user which mode their node will run in.
8173
+ *
8174
+ * When those two disagree the panel lies, which is worse than having no panel
8175
+ * text at all. One function, two callers, no drift.
8176
+ */
8177
+
8178
+ interface FrameDeliveryPlanArgs {
8179
+ readonly provider: string | undefined;
8180
+ /** The node's / caller's choice. `auto` (or absent) resolves per model. */
8181
+ readonly requested?: FrameDelivery;
8182
+ /** Whether the model accepts reference images at all. */
8183
+ readonly supportsReferenceImages: boolean;
8184
+ readonly startFrameUrl?: string;
8185
+ readonly endFrameUrl?: string;
8186
+ /** The user's OWN reference images, in their existing order. */
8187
+ readonly userReferenceUrls?: readonly string[];
8188
+ /** Consulted only to avoid a duplicate opening-frame sentence. */
8189
+ readonly prompt?: string;
8190
+ }
8191
+ interface FrameDeliveryPlan {
8192
+ /** What will actually happen — never `auto`. */
8193
+ readonly delivery: Exclude<FrameDelivery, "auto">;
8194
+ /** The full reference list to send. Equals the user's own list under `frame`. */
8195
+ readonly referenceImageUrls: readonly string[];
8196
+ /** Sentence(s) to append to the prompt. Empty under `frame`. */
8197
+ readonly promptSuffix: string;
8198
+ /** Set when reference delivery was WANTED but refused, so a caller can say why. */
8199
+ readonly refusedReason?: "no-reference-support" | "image-cap";
8200
+ }
8201
+ /**
8202
+ * Resolve delivery and compose the request shape that follows from it.
8203
+ *
8204
+ * Two refusals, both deliberate:
8205
+ * - a model with no reference-image support keeps frame mode (there is nowhere
8206
+ * for the frame to go);
8207
+ * - a switch that would push past the model's image cap keeps frame mode,
8208
+ * because the alternative is dropping one of the USER's reference images to
8209
+ * make room for ours.
8210
+ *
8211
+ * The frames are appended AFTER the user's own images so their `@image_N`
8212
+ * ordinals never shift, and the opening sentence is skipped when the prompt
8213
+ * already binds its own first frame — a second binding at another position
8214
+ * dilutes the first back into coin-flip behaviour (field finding 2026-07-20).
8215
+ */
8216
+ declare function planFrameDelivery(args: FrameDeliveryPlanArgs): FrameDeliveryPlan;
8217
+
8218
+ interface CharacterMotionDiagnostic {
8219
+ readonly code: "unknown" | "omitted" | "retired" | "pose" | "visibility" | "hands" | "pace" | "requirements" | "compound" | "capacity" | "multiple-targets" | "roles";
8220
+ readonly severity: "error" | "warning" | "info";
8221
+ readonly ids: readonly string[];
8222
+ readonly message: string;
8223
+ }
8224
+ interface CharacterMotionBindings {
8225
+ readonly selfPairing?: boolean;
8226
+ readonly subjectMinor?: boolean;
8227
+ readonly partnerNames?: readonly string[];
8228
+ readonly targetNames?: readonly string[];
8229
+ }
8230
+ /** Shared by editor, API clients and local review. Missing metadata means
8231
+ * unknown; this never certifies a sequence or predicts clip duration. */
8232
+ declare function getCharacterMotionDiagnostics(value: string | readonly string[] | null | undefined, timing?: CharacterMotionTiming, bindings?: CharacterMotionBindings): readonly CharacterMotionDiagnostic[];
8233
+
8234
+ /**
8235
+ * Per-ad creative analysis — the "expert competitor ad analyst" pass the
8236
+ * social scraper nodes (Meta Ads first; TikTok / Instagram / LinkedIn next)
8237
+ * can run on every ad they return. Node-agnostic on purpose: the input is
8238
+ * "one creative + its copy + a little context", never a Meta-shaped ad.
8239
+ *
8240
+ * The model answers in a fixed JSON shape (the schema lives with the backend
8241
+ * call site); this file owns the WORDS — what each field means and how to
8242
+ * judge it — so the prompt can be tuned without touching the wire contract.
8243
+ */
8244
+ /** The fields the analysis returns, in the order a reader wants them. */
8245
+ declare const AD_CREATIVE_ANALYSIS_FIELDS: readonly ["assetType", "format", "visualHooks", "audiences", "graphicIdentity", "copywritingHooks", "usps", "cta", "summary"];
8246
+ type AdCreativeAnalysisField = (typeof AD_CREATIVE_ANALYSIS_FIELDS)[number];
8247
+ 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).";
8248
+ /**
8249
+ * The organic-content twin of the ad prompt — for scraped social POSTS
8250
+ * (Instagram / TikTok / LinkedIn), not paid ads. SAME output fields (so one
8251
+ * schema and one UI serve both), read for organic content: hooks, audience,
8252
+ * the value/benefit the post conveys (`usps`), and its ask (`cta` — "link in
8253
+ * bio", "follow", a comment prompt, or none).
8254
+ */
8255
+ 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).";
8256
+ interface AdCreativeAnalysisInput {
8257
+ /** Who is advertising (the Page / account name). */
8258
+ readonly advertiser?: string;
8259
+ readonly headline?: string;
8260
+ readonly body?: string;
8261
+ readonly ctaLabel?: string;
8262
+ /** Where the ad points (the landing domain is enough). */
8263
+ readonly landing?: string;
8264
+ /** Placements the ad ran on (Facebook, Instagram, TikTok…). */
8265
+ readonly platforms?: readonly string[];
8266
+ /** Creative shape already classified by the caller ("vertical", "square", "horizontal"). */
8267
+ readonly creativeFormat?: string;
8268
+ /** "1 video, 2 images" — what the ad carries beyond the one frame the model sees. */
8269
+ readonly mediaSummary?: string;
8270
+ /** The user's optional focus ("we sell running shoes — compare against our positioning"). */
8271
+ readonly focus?: string;
8272
+ }
8273
+ /**
8274
+ * The user turn's text. The creative itself travels as a separate image
8275
+ * block; this is everything else the analyst should know, one labelled
8276
+ * line per fact, blanks left out.
8277
+ */
8278
+ declare function buildAdCreativeAnalysisUserText(input: AdCreativeAnalysisInput): string;
8279
+
8280
+ 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, 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 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, 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 };