@nodaro/prompts 1.6.0 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ConnectedReference, GenericNode, GenericEdge, HintNodeLike, HintGraphContext, EntityStyle, SupportedFontName, CharacterDef, IdentityMeta, SceneData, CharacterMentionTokenInfo, LocationMentionTokenInfo, UsageMode, StyleDirectives } from '@nodaro/shared';
1
+ import { ConnectedReference, GenericNode, GenericEdge, HintNodeLike, HintGraphContext, EntityStyle, SupportedFontName, CharacterDef, IdentityMeta, SceneData, CharacterMentionTokenInfo, LocationMentionTokenInfo, UsageMode, StyleDirectives, I18nCatalogId } from '@nodaro/shared';
2
2
  export { HintEdgeLike, HintGraphContext, HintNodeLike } from '@nodaro/shared';
3
3
  import { z } from 'zod';
4
4
 
@@ -904,6 +904,13 @@ declare function renderStructuredFields(fields: StructuredPromptFields): string;
904
904
  * the body `{image:N}` tokens through `REF_BINDING[kind]` — so the five arrows
905
905
  * are the ONLY emission sites for the binding surface string.
906
906
  */
907
+ /**
908
+ * The identity-reference binding sentence shared by the flat-image-list
909
+ * resolvers (gemini-omni, veo i2v): names the ordinal span as identities and
910
+ * says the two things a multimodal model needs to hear — match exactly, and
911
+ * these are not frames. One spelling; both resolvers ride it.
912
+ */
913
+ declare function identityRefsSentence(firstOrdinal: number, lastOrdinal: number): string;
907
914
  declare const REF_BINDING: {
908
915
  readonly image: (label: string, n: number) => string;
909
916
  readonly video: (label: string, n: number) => string;
@@ -1359,6 +1366,16 @@ interface Seedance2InputsArgs {
1359
1366
  refImageUrls?: readonly string[];
1360
1367
  refVideoUrls?: readonly string[];
1361
1368
  refAudioUrls?: readonly string[];
1369
+ /** Per-provider input caps (2026-08-15). The Seedance 2.x GENERATIONS share
1370
+ * this resolver's whole mode logic but not their caps — 2.5 takes the same
1371
+ * three kinds at 30/10/10 where 2.0 stops at 9/3/3. Defaults to the 2.0
1372
+ * caps so every existing caller is byte-identical; the adapter passes the
1373
+ * provider's own entry from VIDEO_REF_LIMITS_BY_PROVIDER. */
1374
+ limits?: {
1375
+ images: number;
1376
+ videos: number;
1377
+ audio: number;
1378
+ };
1362
1379
  }
1363
1380
  interface Seedance2InputsResult {
1364
1381
  mode: Seedance2Mode;
@@ -1389,6 +1406,92 @@ interface Seedance2InputsResult {
1389
1406
  declare function promptBindsFirstFrame(prompt: string | undefined): boolean;
1390
1407
  declare function resolveSeedance2Inputs(args: Seedance2InputsArgs): Seedance2InputsResult;
1391
1408
 
1409
+ /**
1410
+ * Gemini Omni Video i2v input resolution — the sibling of
1411
+ * `resolveSeedance2Inputs` for a model whose multimodal channel is ONE flat
1412
+ * `image_urls` list.
1413
+ *
1414
+ * WHY BINDING IS LOAD-BEARING: Gemini Omni receives the start frame and the
1415
+ * identity references in the same array, with nothing in the payload marking
1416
+ * which is which. A multimodal model treats unbound images as loose context —
1417
+ * field finding (recast keyframes run, 2026-08-14): the identity references
1418
+ * rode every call and the cast still drifted part to part, because the prompt
1419
+ * never said the images WERE identities to keep. So the resolver names the
1420
+ * roles in a prompt suffix, through the same `REF_BINDING` swap-point every
1421
+ * other video binding uses: image 1 is the opening frame; the rest are
1422
+ * identity references, explicitly not frames.
1423
+ *
1424
+ * BUDGETED, NEVER REJECTED, for the list this resolver assembles: KIE's quota
1425
+ * is `images + 2×videos ≤ 7`, and `runGeminiOmni` hard-rejects overflow. That
1426
+ * reject is right for a caller-assembled list (the user's own images should
1427
+ * not silently thin out) and wrong for THIS merge, where the overflow is our
1428
+ * own construction — so trailing references are dropped to fit, the start
1429
+ * frame always kept, mirroring `resolveSeedance2Inputs`' drop-trailing
1430
+ * convention, and the drop count is reported for the caller to log.
1431
+ *
1432
+ * BYTE-IDENTICAL when there is nothing to bind: no references ⇒ no suffix and
1433
+ * a single-image list — exactly what every plain gemini-omni i2v call has
1434
+ * always sent.
1435
+ */
1436
+ interface GeminiOmniI2vInputsArgs {
1437
+ /** The composed prompt, used only to detect an existing first-frame binding. */
1438
+ prompt?: string;
1439
+ /** The start frame — always kept, always first in the list. */
1440
+ firstFrameUrl: string;
1441
+ /** Identity references, in priority order (trailing ones drop first). */
1442
+ refImageUrls?: Array<string | undefined>;
1443
+ /** A connected source video occupies 2 of the 7 input slots (KIE quota). */
1444
+ videoConnected?: boolean;
1445
+ }
1446
+ interface GeminiOmniI2vInputsResult {
1447
+ /** `[firstFrameUrl, ...keptRefs]` — the `image_urls` payload, quota-fitted. */
1448
+ imageUrls: string[];
1449
+ /** The role-binding sentences; empty when no reference survived the budget. */
1450
+ promptSuffix: string;
1451
+ /** References dropped to fit the quota — surface in a log, never silently. */
1452
+ droppedRefImages: number;
1453
+ }
1454
+ declare function resolveGeminiOmniI2vInputs(args: GeminiOmniI2vInputsArgs): GeminiOmniI2vInputsResult;
1455
+
1456
+ /**
1457
+ * VEO 3.x i2v input resolution — the mutually-exclusive sibling of
1458
+ * `resolveGeminiOmniI2vInputs`. VEO's API carries ONE `imageUrls` array
1459
+ * (≤3) whose meaning flips with `generationType`: plain i2v reads it as
1460
+ * [first(, last)] frames; REFERENCE_2_VIDEO reads every entry as a
1461
+ * reference ingredient. Frames and identities cannot ride separate
1462
+ * channels, so an anchored call that must carry identity references moves
1463
+ * to REFERENCE_2_VIDEO with the anchor in seat 1, bound in prose as the
1464
+ * opening frame (requested, not pixel-guaranteed — the accepted trade,
1465
+ * same as seedance-2's reference mode).
1466
+ *
1467
+ * REFERENCES WIN THE SEATS (the 2026-08-14 standing rule: refs are a must,
1468
+ * frames additional): the end anchor is dropped in reference mode rather
1469
+ * than spending one of three seats on a closing guess. The caller logs it.
1470
+ *
1471
+ * BYTE-IDENTICAL with no references: plain frame mode, frames kept, no
1472
+ * generationType, no suffix — exactly what every veo i2v call has always
1473
+ * sent.
1474
+ */
1475
+ interface VeoI2vInputsArgs {
1476
+ /** Used only to detect an existing first-frame binding (seedance rule). */
1477
+ prompt?: string;
1478
+ firstFrameUrl: string;
1479
+ endFrameUrl?: string;
1480
+ refImageUrls?: Array<string | undefined>;
1481
+ }
1482
+ interface VeoI2vInputsResult {
1483
+ /** The `imageUrls` payload: frames in plain mode, [anchor, ...refs] in
1484
+ * reference mode — never more than VEO's 3-ingredient cap. */
1485
+ imageUrls: string[];
1486
+ /** Present (REFERENCE_2_VIDEO) exactly when references ride. */
1487
+ generationType?: "REFERENCE_2_VIDEO";
1488
+ promptSuffix: string;
1489
+ droppedRefImages: number;
1490
+ /** True when an end anchor was surrendered to reference mode. */
1491
+ droppedEndFrame: boolean;
1492
+ }
1493
+ declare function resolveVeoI2vInputs(args: VeoI2vInputsArgs): VeoI2vInputsResult;
1494
+
1392
1495
  /**
1393
1496
  * Canonical catalog of Person / subject-appearance choices.
1394
1497
  *
@@ -1824,9 +1927,342 @@ declare const PICKER_ANALYZER_REGISTRY: {
1824
1927
  label: string;
1825
1928
  entries: ReadonlyArray<AnalyzerEntry>;
1826
1929
  };
1930
+ setting: {
1931
+ kind: "flat";
1932
+ toolName: string;
1933
+ field: string;
1934
+ label: string;
1935
+ entries: ReadonlyArray<AnalyzerEntry>;
1936
+ };
1937
+ atmosphere: {
1938
+ kind: "flat";
1939
+ toolName: string;
1940
+ field: string;
1941
+ label: string;
1942
+ entries: ReadonlyArray<AnalyzerEntry>;
1943
+ };
1944
+ style: {
1945
+ kind: "flat";
1946
+ toolName: string;
1947
+ field: string;
1948
+ label: string;
1949
+ entries: ReadonlyArray<AnalyzerEntry>;
1950
+ };
1951
+ mood: {
1952
+ kind: "flat";
1953
+ toolName: string;
1954
+ field: string;
1955
+ label: string;
1956
+ entries: ReadonlyArray<AnalyzerEntry>;
1957
+ };
1958
+ "color-look": {
1959
+ kind: "flat";
1960
+ toolName: string;
1961
+ field: string;
1962
+ label: string;
1963
+ entries: ReadonlyArray<AnalyzerEntry>;
1964
+ };
1965
+ photographer: {
1966
+ kind: "flat";
1967
+ toolName: string;
1968
+ field: string;
1969
+ label: string;
1970
+ entries: ReadonlyArray<AnalyzerEntry>;
1971
+ };
1972
+ aesthetic: {
1973
+ kind: "flat";
1974
+ toolName: string;
1975
+ field: string;
1976
+ label: string;
1977
+ entries: ReadonlyArray<AnalyzerEntry>;
1978
+ };
1979
+ era: {
1980
+ kind: "flat";
1981
+ toolName: string;
1982
+ field: string;
1983
+ label: string;
1984
+ entries: ReadonlyArray<AnalyzerEntry>;
1985
+ };
1986
+ "photo-genre": {
1987
+ kind: "flat";
1988
+ toolName: string;
1989
+ field: string;
1990
+ label: string;
1991
+ entries: ReadonlyArray<AnalyzerEntry>;
1992
+ };
1993
+ backdrop: {
1994
+ kind: "flat";
1995
+ toolName: string;
1996
+ field: string;
1997
+ label: string;
1998
+ entries: ReadonlyArray<AnalyzerEntry>;
1999
+ };
2000
+ "render-quality": {
2001
+ kind: "flat";
2002
+ toolName: string;
2003
+ field: string;
2004
+ label: string;
2005
+ entries: ReadonlyArray<AnalyzerEntry>;
2006
+ };
2007
+ "composition-effects": {
2008
+ kind: "flat";
2009
+ toolName: string;
2010
+ field: string;
2011
+ label: string;
2012
+ entries: ReadonlyArray<AnalyzerEntry>;
2013
+ };
2014
+ "post-process-effects": {
2015
+ kind: "flat";
2016
+ toolName: string;
2017
+ field: string;
2018
+ label: string;
2019
+ entries: ReadonlyArray<AnalyzerEntry>;
2020
+ };
2021
+ "action-fx": {
2022
+ kind: "flat";
2023
+ toolName: string;
2024
+ field: string;
2025
+ label: string;
2026
+ entries: ReadonlyArray<AnalyzerEntry>;
2027
+ };
2028
+ "loop-subject": {
2029
+ kind: "flat";
2030
+ toolName: string;
2031
+ field: string;
2032
+ label: string;
2033
+ entries: ReadonlyArray<AnalyzerEntry>;
2034
+ };
2035
+ transition: {
2036
+ kind: "flat";
2037
+ toolName: string;
2038
+ field: string;
2039
+ label: string;
2040
+ entries: ReadonlyArray<AnalyzerEntry>;
2041
+ };
2042
+ "character-fx": {
2043
+ kind: "flat";
2044
+ toolName: string;
2045
+ field: string;
2046
+ label: string;
2047
+ entries: ReadonlyArray<AnalyzerEntry>;
2048
+ };
2049
+ pose: {
2050
+ kind: "flat";
2051
+ toolName: string;
2052
+ field: string;
2053
+ label: string;
2054
+ entries: ReadonlyArray<AnalyzerEntry>;
2055
+ };
2056
+ material: {
2057
+ kind: "flat";
2058
+ toolName: string;
2059
+ field: string;
2060
+ label: string;
2061
+ entries: ReadonlyArray<AnalyzerEntry>;
2062
+ };
2063
+ "held-prop": {
2064
+ kind: "flat";
2065
+ toolName: string;
2066
+ field: string;
2067
+ label: string;
2068
+ entries: ReadonlyArray<AnalyzerEntry>;
2069
+ };
2070
+ "camera-motion": {
2071
+ kind: "flat";
2072
+ toolName: string;
2073
+ field: string;
2074
+ label: string;
2075
+ entries: ReadonlyArray<AnalyzerEntry>;
2076
+ };
2077
+ animal: {
2078
+ kind: "flat";
2079
+ toolName: string;
2080
+ field: string;
2081
+ label: string;
2082
+ entries: ReadonlyArray<AnalyzerEntry>;
2083
+ };
2084
+ vehicle: {
2085
+ kind: "flat";
2086
+ toolName: string;
2087
+ field: string;
2088
+ label: string;
2089
+ entries: ReadonlyArray<AnalyzerEntry>;
2090
+ };
2091
+ weapon: {
2092
+ kind: "flat";
2093
+ toolName: string;
2094
+ field: string;
2095
+ label: string;
2096
+ entries: ReadonlyArray<AnalyzerEntry>;
2097
+ };
2098
+ furniture: {
2099
+ kind: "flat";
2100
+ toolName: string;
2101
+ field: string;
2102
+ label: string;
2103
+ entries: ReadonlyArray<AnalyzerEntry>;
2104
+ };
2105
+ lighting: {
2106
+ kind: "discriminated";
2107
+ toolName: string;
2108
+ discriminator: "category";
2109
+ order: ReadonlyArray<string>;
2110
+ fieldByKey: Readonly<Record<string, string>>;
2111
+ labels: Readonly<Record<string, string>>;
2112
+ entries: ReadonlyArray<AnalyzerEntry>;
2113
+ limitFn: () => number;
2114
+ };
2115
+ temporal: {
2116
+ kind: "discriminated";
2117
+ toolName: string;
2118
+ discriminator: "category";
2119
+ order: string[];
2120
+ fieldByKey: {
2121
+ speed: string;
2122
+ freeze: string;
2123
+ direction: string;
2124
+ shutter: string;
2125
+ };
2126
+ labels: {
2127
+ speed: string;
2128
+ freeze: string;
2129
+ direction: string;
2130
+ shutter: string;
2131
+ };
2132
+ entries: ReadonlyArray<AnalyzerEntry>;
2133
+ limitFn: () => number;
2134
+ };
2135
+ "exposure-settings": {
2136
+ kind: "discriminated";
2137
+ toolName: string;
2138
+ discriminator: "category";
2139
+ order: string[];
2140
+ fieldByKey: {
2141
+ aperture: string;
2142
+ "shutter-speed": string;
2143
+ iso: string;
2144
+ };
2145
+ labels: {
2146
+ aperture: string;
2147
+ "shutter-speed": string;
2148
+ iso: string;
2149
+ };
2150
+ entries: ReadonlyArray<AnalyzerEntry>;
2151
+ limitFn: () => number;
2152
+ };
2153
+ "music-genre": {
2154
+ kind: "discriminated";
2155
+ toolName: string;
2156
+ discriminator: "dimension";
2157
+ order: string[];
2158
+ fieldByKey: {
2159
+ genre: string;
2160
+ subgenre: string;
2161
+ era: string;
2162
+ };
2163
+ labels: {
2164
+ genre: string;
2165
+ subgenre: string;
2166
+ era: string;
2167
+ };
2168
+ entries: (AnalyzerEntry | {
2169
+ id: string;
2170
+ label: string;
2171
+ description: string;
2172
+ dimension: string;
2173
+ })[];
2174
+ limitFn: (k: string) => 1 | 2;
2175
+ };
2176
+ "music-mood": {
2177
+ kind: "discriminated";
2178
+ toolName: string;
2179
+ discriminator: "dimension";
2180
+ order: string[];
2181
+ fieldByKey: {
2182
+ energy: string;
2183
+ emotion: string;
2184
+ vibe: string;
2185
+ };
2186
+ labels: {
2187
+ energy: string;
2188
+ emotion: string;
2189
+ vibe: string;
2190
+ };
2191
+ entries: AnalyzerEntry[];
2192
+ limitFn: (k: string) => 1 | 2;
2193
+ };
2194
+ instrumentation: {
2195
+ kind: "discriminated";
2196
+ toolName: string;
2197
+ discriminator: "dimension";
2198
+ order: string[];
2199
+ fieldByKey: {
2200
+ instruments: string;
2201
+ production: string;
2202
+ vocalPresence: string;
2203
+ singingStyle: string;
2204
+ };
2205
+ labels: {
2206
+ instruments: string;
2207
+ production: string;
2208
+ vocalPresence: string;
2209
+ singingStyle: string;
2210
+ };
2211
+ entries: AnalyzerEntry[];
2212
+ limitFn: (k: string) => 1 | 2 | 3;
2213
+ };
2214
+ "voice-character": {
2215
+ kind: "discriminated";
2216
+ toolName: string;
2217
+ discriminator: "dimension";
2218
+ order: string[];
2219
+ fieldByKey: {
2220
+ age: string;
2221
+ gender: string;
2222
+ language: string;
2223
+ accent: string;
2224
+ timbre: string;
2225
+ };
2226
+ labels: {
2227
+ age: string;
2228
+ gender: string;
2229
+ language: string;
2230
+ accent: string;
2231
+ timbre: string;
2232
+ };
2233
+ entries: AnalyzerEntry[];
2234
+ limitFn: (k: string) => 1 | 2;
2235
+ };
2236
+ "voice-delivery": {
2237
+ kind: "discriminated";
2238
+ toolName: string;
2239
+ discriminator: "dimension";
2240
+ order: string[];
2241
+ fieldByKey: {
2242
+ pace: string;
2243
+ emotion: string;
2244
+ archetype: string;
2245
+ };
2246
+ labels: {
2247
+ pace: string;
2248
+ emotion: string;
2249
+ archetype: string;
2250
+ };
2251
+ entries: AnalyzerEntry[];
2252
+ limitFn: () => number;
2253
+ };
1827
2254
  };
1828
2255
  type PickerType = keyof typeof PICKER_ANALYZER_REGISTRY;
1829
2256
  declare const PICKER_TYPES: PickerType[];
2257
+ /**
2258
+ * Family grouping for BATCHED analysis. A single call across all 38 catalogs
2259
+ * carries a ~211k-char legend (~53k tokens — measured 2026-08-09, the
2260
+ * measure-first probe from the text-to-picker spec), which is slow, costly,
2261
+ * and dilutes per-section accuracy. The text-to-picker route fans out one
2262
+ * structured call per family (6-15k tokens each) and merges. Mirrors the
2263
+ * build-brief's §5 UI grouping so Cine can reuse the same partition.
2264
+ */
2265
+ declare const PICKER_ANALYZER_FAMILIES: Readonly<Record<string, ReadonlyArray<PickerType>>>;
1830
2266
  declare const ANALYZABLE_PICKER_TYPES: ReadonlySet<string>;
1831
2267
  declare function isAnalyzablePicker(t: string): t is PickerType;
1832
2268
  interface PickerDimensionSpec {
@@ -3791,4 +4227,65 @@ declare const FACTORY_SNIPPETS: readonly FactorySnippet[];
3791
4227
  /** Factory snippets for one field: target match + media membership. */
3792
4228
  declare function getFactorySnippets(target: SnippetTarget, media: SnippetMedia): readonly FactorySnippet[];
3793
4229
 
3794
- export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ANALYZABLE_PICKER_TYPES, ANGLE_LABELS, ASPECT_RATIO_LABELS, ATMOSPHERES, ATMOSPHERE_IDS, AUDIO_WIZARD_CATEGORIES, type ActionFx, type ActionFxCategory, type Aesthetic, type AestheticCategory, type AssembleImageInput, type AssembleSunoInput, type AssembleSunoResult, type Atmosphere, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, type Backdrop, type BackdropCategory, type BrandCasing, type BrandFonts, type BrandLogo, type BrandPalette, type BrandPresetId, type BrandPresetMeta, type BrandTokens, type BrandTypeSpec, type BuildImagePromptConfig, type BuildImagePromptResult, type BuildImagePromptSegmentsResult, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_IDS, 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 CategorizedInstrument, type CharacterFx, type CharacterFxCategory, type CharacterFxDuration, type CharacterFxIntensity, type CharacterFxPosition, type CharacterFxTiming, type CharacterMeta, type CharacterMotionPromptInput, type CharacterPromptInput, type ColorLook, type ColorLookCategory, type CompositionEffect, type ComputeNodePromptArgs, type CreaturePromptInput, DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, type DirectionFields, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, type Era, type EraCategory, type ExposureCategory, type ExposureSettings, type ExposureValue, FACTORY_PRESETS, FACTORY_SNIPPETS, FILM_STILL_PREFIX, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type FacePromptInput, type FactoryPreset, type FactoryPresetGroup, type FactorySnippet, type Framing, type FramingCategory, type FramingValue, GAPS_SCHEMA, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, type HeldProp, type HeldPropCategory, IMAGE_WIZARD_CATEGORIES, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type IdentityLockMode, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LlmChatFieldArgs, type LocationMotionPromptInput, type LocationPromptInput, type LocationRefinePromptInput, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, 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 MultiPickerAnalyzerSpec, type MusicEra, type MusicGenre, type MusicGenreCategory, type MusicMoodEntry, type MusicSubgenre, NODE_PROMPT_CANDIDATE_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_REGISTRY, PICKER_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, type Person, type PersonDimension, type PersonDimensionSection, type PersonValue, type PhotoGenre, type PhotoGenreCategory, type Photographer, type PhotographerCategory, type PickerAnalyzer, type PickerAnalyzerDescriptor, type PickerAnalyzerSpec, type PickerApplyMode, type PickerCatalog, type PickerCatalogDetail, type PickerCatalogSummary, type PickerDimension, type PickerDimensionSpec, type PickerGaps, type PickerOption, type PickerType, type Pose, type PoseCategory, type PoseValue, type PostProcessEffect, type ProjectPickerCatalogOptions, type ProjectedPickerCatalog, type ProjectedPickerDimension, type ProjectedPickerOption, type PromptSegment, type PromptSegmentOrigin, type ProviderPromptDoctrine, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, type RecommendedModel, type ReferenceCounts, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, type Seedance2InputsArgs, type Seedance2InputsResult, type Seedance2Mode, type Setting, type SettingCategory, type SnippetMedia, type SnippetTarget, type SoundComposition, type SoundCompositionFields, type SoundConsumerType, type StructuredPromptFields, type Style, type StylePreset, type Styling, type StylingDimension, type StylingValue, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_IDS, type Temporal, type TemporalCategory, type TemporalValue, type Transition, type TransitionCategory, type TransitionDuration, type TransitionIntensity, type TransitionPosition, type TransitionTiming, 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 VideoExtraRef, type VoiceCharacterEntry, type VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, type WardrobeDimension, type WardrobeEntry, type WardrobeValue, type WizardCategory, type WizardNodeContext, type WizardOption, type WizardQuestion, type WizardSelection, appendField, appendMusicMeta, applyPickerJson, applyReferenceOrderToVideo, applyTemplate, assembleImageInput, assembleSunoInput, buildActionFxHints, buildAestheticHints, buildAgeHint, buildAtmosphereHints, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildFaceTemplateInputs, buildFramingHints, buildHeldPropHints, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildInstrumentationHints, buildLightingHints, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMoodHints, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicMoodHints, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPhotographerHints, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPostProcessHints, buildReferenceBlocks, buildScenePrompt, buildStylingHints, buildTemporalHints, buildVoiceCharacterHints, buildVoiceDeliveryHints, buildWardrobeHints, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCharacterFxHintFromConnections, composeNegative, composeSoundHintFromConnections, composeTransitionHintFromConnections, computeLlmChatFields, computeNodePrompt, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, getActionFx, getActionFxLabel, getActionFxPromptHint, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getBackdrop, getBackdropLabel, getBackdropPromptHint, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getColorLook, getColorLookLabel, getColorLookPromptHint, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getExposure, getExposureLabel, getExposurePromptHint, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getIdentityLockClause, getInstrument, getLens, getLensLabel, getLensPromptHint, getLighting, getLightingLabel, getLightingPromptHint, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getMaterial, getMaterialLabel, getMaterialPromptHint, getMood, getMoodLabel, getMoodPromptHint, getMusicEmotion, getMusicEnergy, getMusicEra, getMusicGenre, getMusicGenreLabel, getMusicSubgenre, getMusicVibe, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPickerAnalyzer, getPickerCatalog, getPose, getPoseLabel, getPosePromptHint, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getProductionStyle, getPromptDoctrine, getPromptTips, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getSetting, getSettingLabel, getSettingPromptHint, getSingingStyle, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getTemporal, getTemporalLabel, getTemporalPromptHint, getTransition, getTransitionLabel, getTransitionPromptHint, getVocalPresence, getVoiceAccent, getVoiceAge, getVoiceArchetype, getVoiceEmotion, getVoiceGender, getVoiceLanguage, getVoicePace, getVoiceTimbre, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasUpstreamCharacter, isAnalyzablePicker, isInstrumentalVocal, isVantageFraming, isWizardSupported, listPickerCatalogs, migratePersonValue, pickerFanoutTargets, projectPickerCatalog, promptBindsFirstFrame, referenceRulesBlock, renderStructuredFields, resolveBrandInput, resolveCharacterMentions, resolveLocationMentions, resolvePrompt, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveVideoReferenceCore, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
4230
+ /**
4231
+ * Parameter-picker WIRING — the single source of truth for how each picker
4232
+ * node type binds to its catalog: value field(s), defaults, entries, grouping,
4233
+ * and per-field option lists for multi-dim pickers.
4234
+ *
4235
+ * Pure data, no React. Extracted from the app's parameter-picker-registry so
4236
+ * THREE consumers share one definition and cannot drift:
4237
+ * 1. The app's community fallback registry (chip pickers, no rich previews).
4238
+ * 2. `@nodaroai/picker-ui`'s rich registry (attaches preview/Picker renderers).
4239
+ * 3. Nodaro Cine's builder panels.
4240
+ *
4241
+ * Renderers (preview components, multi-dim Picker components) deliberately do
4242
+ * NOT live here — presentation is the private package's concern; this file is
4243
+ * the public vocabulary.
4244
+ */
4245
+
4246
+ /** One selectable catalog entry as picker UIs consume it. */
4247
+ interface PickerWiringEntry {
4248
+ readonly id: string;
4249
+ readonly label: string;
4250
+ readonly description: string;
4251
+ /** Optional group key for category headers. */
4252
+ readonly group?: string;
4253
+ }
4254
+ interface SingleDimPickerWiring {
4255
+ readonly kind: "single";
4256
+ readonly nodeType: string;
4257
+ readonly label: string;
4258
+ readonly valueField: string;
4259
+ readonly defaultValue: string;
4260
+ readonly catalogId: I18nCatalogId;
4261
+ readonly entries: ReadonlyArray<PickerWiringEntry>;
4262
+ readonly groupOrder?: ReadonlyArray<string>;
4263
+ readonly groupLabels?: Readonly<Record<string, string>>;
4264
+ }
4265
+ interface MultiDimPickerWiring {
4266
+ readonly kind: "multi";
4267
+ readonly nodeType: string;
4268
+ readonly label: string;
4269
+ /** Data fields the picker reads/writes — used to slice node.data into a value object. */
4270
+ readonly fields: ReadonlyArray<string>;
4271
+ readonly catalogId: I18nCatalogId;
4272
+ /** Flat id→label list — used to resolve ids into labels for summary chips. */
4273
+ readonly catalogEntries: ReadonlyArray<{
4274
+ readonly id: string;
4275
+ readonly label: string;
4276
+ }>;
4277
+ /** Per-field option lists — lets a data-only consumer (community fallback,
4278
+ * Cine simple mode) render one select per field without knowing the
4279
+ * catalog's discriminator scheme. */
4280
+ readonly fieldOptions: Readonly<Record<string, ReadonlyArray<{
4281
+ readonly id: string;
4282
+ readonly label: string;
4283
+ }>>>;
4284
+ }
4285
+ type PickerWiring = SingleDimPickerWiring | MultiDimPickerWiring;
4286
+ declare const SINGLE_PICKER_WIRING: ReadonlyArray<SingleDimPickerWiring>;
4287
+ declare const MULTI_PICKER_WIRING: ReadonlyArray<MultiDimPickerWiring>;
4288
+ declare const ALL_PICKER_WIRING: ReadonlyArray<PickerWiring>;
4289
+ declare function getPickerWiring(nodeType: string | undefined | null): PickerWiring | undefined;
4290
+
4291
+ export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, ANGLE_LABELS, ASPECT_RATIO_LABELS, ATMOSPHERES, ATMOSPHERE_IDS, AUDIO_WIZARD_CATEGORIES, type ActionFx, type ActionFxCategory, type Aesthetic, type AestheticCategory, type AssembleImageInput, type AssembleSunoInput, type AssembleSunoResult, type Atmosphere, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, type Backdrop, type BackdropCategory, type BrandCasing, type BrandFonts, type BrandLogo, type BrandPalette, type BrandPresetId, type BrandPresetMeta, type BrandTokens, type BrandTypeSpec, type BuildImagePromptConfig, type BuildImagePromptResult, type BuildImagePromptSegmentsResult, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_IDS, 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 CategorizedInstrument, type CharacterFx, type CharacterFxCategory, type CharacterFxDuration, type CharacterFxIntensity, type CharacterFxPosition, type CharacterFxTiming, type CharacterMeta, type CharacterMotionPromptInput, type CharacterPromptInput, type ColorLook, type ColorLookCategory, type CompositionEffect, type ComputeNodePromptArgs, type CreaturePromptInput, DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, type DirectionFields, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, type Era, type EraCategory, type ExposureCategory, type ExposureSettings, type ExposureValue, FACTORY_PRESETS, FACTORY_SNIPPETS, FILM_STILL_PREFIX, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type FacePromptInput, type FactoryPreset, type FactoryPresetGroup, type FactorySnippet, type Framing, type FramingCategory, type FramingValue, GAPS_SCHEMA, type GeminiOmniI2vInputsArgs, type GeminiOmniI2vInputsResult, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, type HeldProp, type HeldPropCategory, IMAGE_WIZARD_CATEGORIES, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type IdentityLockMode, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LlmChatFieldArgs, type LocationMotionPromptInput, type LocationPromptInput, type LocationRefinePromptInput, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, type Material, type MaterialCategory, type ModelChange, type Mood, type MoodCategory, type MoodValue, type MultiDimPickerWiring, type MultiPickerAnalyzerSpec, type MusicEra, type MusicGenre, type MusicGenreCategory, type MusicMoodEntry, type MusicSubgenre, NODE_PROMPT_CANDIDATE_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, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, type Person, type PersonDimension, type PersonDimensionSection, type PersonValue, type PhotoGenre, type PhotoGenreCategory, type Photographer, type PhotographerCategory, type PickerAnalyzer, type PickerAnalyzerDescriptor, type PickerAnalyzerSpec, type PickerApplyMode, type PickerCatalog, type PickerCatalogDetail, type PickerCatalogSummary, type PickerDimension, type PickerDimensionSpec, type PickerGaps, type PickerOption, type PickerType, type PickerWiring, type PickerWiringEntry, type Pose, type PoseCategory, type PoseValue, type PostProcessEffect, type ProjectPickerCatalogOptions, type ProjectedPickerCatalog, type ProjectedPickerDimension, type ProjectedPickerOption, type PromptSegment, type PromptSegmentOrigin, type ProviderPromptDoctrine, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, type RecommendedModel, type ReferenceCounts, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, type Seedance2InputsArgs, type Seedance2InputsResult, type Seedance2Mode, type Setting, type SettingCategory, type SingleDimPickerWiring, type SnippetMedia, type SnippetTarget, type SoundComposition, type SoundCompositionFields, type SoundConsumerType, type StructuredPromptFields, type Style, type StylePreset, type Styling, type StylingDimension, type StylingValue, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_IDS, type Temporal, type TemporalCategory, type TemporalValue, type Transition, type TransitionCategory, type TransitionDuration, type TransitionIntensity, type TransitionPosition, type TransitionTiming, VIDEO_WIZARD_CATEGORIES, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, type VeoI2vInputsArgs, type VeoI2vInputsResult, type VideoExtraRef, type VoiceCharacterEntry, type VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, type WardrobeDimension, type WardrobeEntry, type WardrobeValue, type WizardCategory, type WizardNodeContext, type WizardOption, type WizardQuestion, type WizardSelection, appendField, appendMusicMeta, applyPickerJson, applyReferenceOrderToVideo, applyTemplate, assembleImageInput, assembleSunoInput, buildActionFxHints, buildAestheticHints, buildAgeHint, buildAtmosphereHints, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildFaceTemplateInputs, buildFramingHints, buildHeldPropHints, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildInstrumentationHints, buildLightingHints, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMoodHints, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicMoodHints, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPhotographerHints, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPostProcessHints, buildReferenceBlocks, buildScenePrompt, buildStylingHints, buildTemporalHints, buildVoiceCharacterHints, buildVoiceDeliveryHints, buildWardrobeHints, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCharacterFxHintFromConnections, composeNegative, composeSoundHintFromConnections, composeTransitionHintFromConnections, computeLlmChatFields, computeNodePrompt, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, getActionFx, getActionFxLabel, getActionFxPromptHint, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getBackdrop, getBackdropLabel, getBackdropPromptHint, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getColorLook, getColorLookLabel, getColorLookPromptHint, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getExposure, getExposureLabel, getExposurePromptHint, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getIdentityLockClause, getInstrument, getLens, getLensLabel, getLensPromptHint, getLighting, getLightingLabel, getLightingPromptHint, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getMaterial, getMaterialLabel, getMaterialPromptHint, getMood, getMoodLabel, getMoodPromptHint, getMusicEmotion, getMusicEnergy, getMusicEra, getMusicGenre, getMusicGenreLabel, getMusicSubgenre, getMusicVibe, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getProductionStyle, getPromptDoctrine, getPromptTips, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getSetting, getSettingLabel, getSettingPromptHint, getSingingStyle, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getTemporal, getTemporalLabel, getTemporalPromptHint, getTransition, getTransitionLabel, getTransitionPromptHint, getVocalPresence, getVoiceAccent, getVoiceAge, getVoiceArchetype, getVoiceEmotion, getVoiceGender, getVoiceLanguage, getVoicePace, getVoiceTimbre, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasUpstreamCharacter, identityRefsSentence, isAnalyzablePicker, isInstrumentalVocal, isVantageFraming, isWizardSupported, listPickerCatalogs, migratePersonValue, pickerFanoutTargets, projectPickerCatalog, promptBindsFirstFrame, referenceRulesBlock, renderStructuredFields, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveVeoI2vInputs, resolveVideoReferenceCore, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };