@nodaro/prompts 1.14.0 → 1.15.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 (63) hide show
  1. package/dist/index.cjs +633 -248
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +379 -1
  4. package/dist/index.d.ts +379 -1
  5. package/dist/index.js +603 -250
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/__tests__/adult-only-ratchet.test.ts +110 -0
  9. package/src/__tests__/age-floor.test.ts +347 -0
  10. package/src/__tests__/catalog-id-guard.test.ts +146 -0
  11. package/src/__tests__/catalog-overlay.test.ts +163 -0
  12. package/src/__tests__/dod-replace-pack-acceptance.test.ts +17 -0
  13. package/src/__tests__/fixtures/parameter-hint-golden.json +2 -2
  14. package/src/__tests__/minor-age-floor.test.ts +136 -0
  15. package/src/__tests__/person-pack-adult-only.test.ts +45 -0
  16. package/src/__tests__/picker-analyzer-registry.test.ts +14 -0
  17. package/src/action-fx.ts +2 -1
  18. package/src/aesthetic.ts +2 -1
  19. package/src/age-floor.ts +296 -0
  20. package/src/age-signal.ts +36 -0
  21. package/src/atmosphere.ts +2 -1
  22. package/src/backdrop.ts +2 -1
  23. package/src/camera-format.ts +2 -1
  24. package/src/camera-motions.ts +2 -1
  25. package/src/catalog-id-guard.ts +189 -0
  26. package/src/catalog-overlay.ts +148 -0
  27. package/src/catalog-packs.ts +27 -2
  28. package/src/character-fx.ts +2 -1
  29. package/src/color-look.ts +2 -1
  30. package/src/composition-effects.ts +2 -1
  31. package/src/era.ts +2 -1
  32. package/src/exposure-settings.ts +2 -1
  33. package/src/framing.ts +2 -1
  34. package/src/held-prop.ts +2 -1
  35. package/src/index.ts +4 -0
  36. package/src/instrumentation.ts +5 -4
  37. package/src/lens.ts +2 -1
  38. package/src/lighting.ts +2 -1
  39. package/src/loop-subject.ts +3 -1
  40. package/src/materials.ts +2 -1
  41. package/src/mood.ts +16 -5
  42. package/src/music-genre.ts +5 -4
  43. package/src/music-mood.ts +4 -3
  44. package/src/parameter-prompt-hint.ts +13 -57
  45. package/src/person-packs.ts +14 -2
  46. package/src/person.ts +71 -38
  47. package/src/photo-genre.ts +14 -3
  48. package/src/photographer.ts +2 -1
  49. package/src/picker-analyzer-registry.ts +9 -0
  50. package/src/picker-catalogs.ts +11 -0
  51. package/src/pose.ts +17 -6
  52. package/src/post-process-effects.ts +2 -1
  53. package/src/prompt-builder.ts +3 -3
  54. package/src/render-quality.ts +2 -1
  55. package/src/setting.ts +2 -1
  56. package/src/shared-catalog-overlay.ts +83 -0
  57. package/src/style.ts +16 -1
  58. package/src/styling.ts +57 -29
  59. package/src/subject-registry.ts +2 -2
  60. package/src/temporal.ts +2 -1
  61. package/src/transitions.ts +2 -1
  62. package/src/voice-character.ts +6 -5
  63. package/src/voice-delivery.ts +4 -3
package/dist/index.d.cts CHANGED
@@ -3015,6 +3015,16 @@ interface Person {
3015
3015
  readonly dimension: PersonDimension;
3016
3016
  readonly description: string;
3017
3017
  readonly promptHint: string;
3018
+ /**
3019
+ * W1-a minor-age floor (spec 2026-09-01 §3.3). `true` marks an entry whose
3020
+ * hint describes body exposure, sheer/wet clothing, swimwear/lingerie, a
3021
+ * seductive expression or gaze, or a body-placed tattoo. The fragment
3022
+ * collectors DROP flagged entries for a minor subject (`isMinorAge`), the
3023
+ * picker hides their tiles, the analyzer never emits them, and the backend
3024
+ * policy strips their wording from free text. Hand-curated; the
3025
+ * `adult-only-ratchet` test only ratchets. Never set on neutral defaults.
3026
+ */
3027
+ readonly adultOnly?: true;
3018
3028
  /** Optional sub-grouping within a dimension. Used by the picker to render
3019
3029
  * two-level selection (e.g. ethnicity grouped by region → specific). */
3020
3030
  readonly group?: string;
@@ -3262,6 +3272,8 @@ interface PickerOption {
3262
3272
  /** The group id (matches `categoryOrder` / `categoryLabels`). */
3263
3273
  readonly category?: string;
3264
3274
  readonly promptHint: string;
3275
+ /** W1-a: see Person.adultOnly. Carried verbatim through packs. */
3276
+ readonly adultOnly?: true;
3265
3277
  /**
3266
3278
  * The short professional term this id injects in COMPACT hint mode ("whip
3267
3279
  * pan left" where `promptHint` is the full mechanism sentence). Always
@@ -3423,8 +3435,185 @@ declare function registerCatalogPack(pack: CatalogPack): void;
3423
3435
  declare function getRegisteredCatalogPacks(): readonly CatalogPack[];
3424
3436
  declare function resetCatalogPacks(): void;
3425
3437
  declare function catalogPacksVersion(): number;
3438
+ /** True when at least one pack targets this catalog — i.e. this deployment
3439
+ * CURATES it and the base constants are no longer the truth for it. */
3440
+ declare function hasCatalogPacksFor(catalogId: string): boolean;
3441
+ /** Subscribe to registrations/resets. Returns the unsubscribe. */
3442
+ declare function subscribeCatalogPacks(listener: () => void): () => void;
3426
3443
  declare function composePickerCatalogs(base: readonly PickerCatalog[], activePacks: readonly CatalogPack[]): readonly PickerCatalog[];
3427
3444
 
3445
+ /**
3446
+ * THE RESOLVER-SIDE HALF OF CATALOG CURATION.
3447
+ *
3448
+ * Every per-catalog module builds an index from its own base constant at load
3449
+ * (`settingById = new Map(SETTINGS…)`) and its `getSetting(id)` reads that. A
3450
+ * deployment's catalog packs compose a DIFFERENT catalog — entries removed,
3451
+ * some rewritten at the same id — and until this module existed nothing on
3452
+ * the resolve path read it. So on a curated deployment a denied id still
3453
+ * turned into its full stock prompt text at run time, and a rewritten entry
3454
+ * injected the stock wording instead of the curated one. The curation was
3455
+ * real in `/v1/catalogs` and invisible in every generated prompt.
3456
+ *
3457
+ * `overlayEntry` sits inside each getter, between the base lookup and the
3458
+ * return:
3459
+ * - no pack targets the catalog → the base entry, untouched. This is the
3460
+ * mainline path and it is byte-identical by construction; a deployment
3461
+ * that curates nothing pays one Set probe per lookup.
3462
+ * - a pack targets it, id absent → undefined. Denied means denied on the
3463
+ * prompt path too, not only in the picker.
3464
+ * - a pack targets it, id present → the base entry with the composed
3465
+ * option's label / description / promptHint / term / category on top,
3466
+ * so a rewrite reaches the prompt. Fields the composed option does not
3467
+ * carry (typed extras a specific builder reads) survive from the base.
3468
+ * - pack-ADDED id (no base entry) → the composed option itself.
3469
+ *
3470
+ * LATE-BOUND RESOLVER, ON PURPOSE. The catalog modules cannot import
3471
+ * `getPickerCatalog`: picker-catalogs.ts imports every one of them to build
3472
+ * `PICKER_CATALOGS` at module scope, and a module-scope cycle is a TDZ error
3473
+ * under some load orders. picker-catalogs.ts instead installs its resolver
3474
+ * here when IT loads (`setComposedCatalogResolver`), and this module imports
3475
+ * only the pack registry, which imports nothing of the catalogs.
3476
+ *
3477
+ * FAIL CLOSED. If a pack targets a catalog and the resolver is somehow not
3478
+ * installed, every lookup on that catalog throws rather than silently
3479
+ * returning the base entry — a curated deployment answering with stock text
3480
+ * is the failure this whole module exists to prevent.
3481
+ *
3482
+ * SCOPE BOUNDARY, on purpose: the transition / character-fx TIMING dimensions
3483
+ * (position start/middle/end, duration, intensity) are structural knobs the
3484
+ * catalogs expose for thin clients, not content — no curation removes "end".
3485
+ * Their composers index total clause records by construction, and threading
3486
+ * the overlay through that would trade a guaranteed-total prompt for a hole
3487
+ * nothing needs. They stay uncurated; the wall still checks their ids.
3488
+ */
3489
+ type Resolver = (catalogIdOrNodeType: string) => PickerCatalog | undefined;
3490
+ /** Installed by picker-catalogs.ts at load. */
3491
+ declare function setComposedCatalogResolver(fn: Resolver): void;
3492
+ /** id → composed option for one catalog, memoized on the pack version. */
3493
+ declare function composedOptionIndex(catalogId: string): ReadonlyMap<string, PickerOption>;
3494
+ /**
3495
+ * Overlay the composed catalog on a base lookup. See the module doc for the
3496
+ * four outcomes. `T` is the module's own entry type; the composed option's
3497
+ * common fields are spread over it, so callers keep their typed result.
3498
+ */
3499
+ declare function overlayEntry<T extends {
3500
+ readonly id: string;
3501
+ }>(catalogId: string, id: string, base: T | undefined): T | undefined;
3502
+ /**
3503
+ * Membership only — for id-carrying fields whose entries live outside this
3504
+ * package (the animal / vehicle / weapon / furniture catalogs resolve through
3505
+ * `@nodaro/shared`, which cannot depend on this package). The dispatcher asks
3506
+ * this before calling those getters.
3507
+ */
3508
+ declare function composedHas(catalogId: string, id: string): boolean;
3509
+ /** The composed option, or undefined — for callers that render from it directly. */
3510
+ declare function composedOption(catalogId: string, id: string): PickerOption | undefined;
3511
+ /**
3512
+ * A base entry LIST filtered to ids the composed catalog offers and relabelled
3513
+ * where a pack rewrote an entry — the list-shaped twin of `overlayEntry`, for
3514
+ * anything that renders a whole catalog (pickers, dropdowns, studio browsers).
3515
+ * Returns the base array BY IDENTITY when no pack targets the catalog, so
3516
+ * memo deps and equality checks on mainline are unchanged. Pack-ADDED entries
3517
+ * are not surfaced here: the caller's typed entry shape may carry fields a
3518
+ * PickerOption cannot supply.
3519
+ */
3520
+ declare function curateEntries<T extends {
3521
+ readonly id: string;
3522
+ readonly label: string;
3523
+ }>(catalogId: string, base: readonly T[]): readonly T[];
3524
+
3525
+ /**
3526
+ * The four object-entity catalogs — animals, vehicles, weapons, furniture —
3527
+ * are OWNED by `@nodaro/shared`, which cannot depend on this package, so
3528
+ * their getters cannot carry the `overlayEntry` the other 34 catalogs do.
3529
+ * These wrappers are the overlay for them, and EVERY prompt-text read of
3530
+ * those catalogs goes through here: the parameter-node dispatcher and the
3531
+ * subject fold both. Two call sites resolving the same id to different text
3532
+ * — one curated, one stock — is exactly what a second, un-overlaid path
3533
+ * produced during review.
3534
+ *
3535
+ * Precedence per id, same four outcomes as catalog-overlay.ts:
3536
+ * - no pack on the catalog → the stock getter, untouched
3537
+ * - denied / not in the pack → "" (nothing reaches the prompt)
3538
+ * - composed option present → ITS promptHint / term. A pack author
3539
+ * who rewrote an entry wrote the hint they want injected; rebuilding it
3540
+ * from label + description would discard that
3541
+ * - pack-added id (no stock row) → the composed option (covered by the
3542
+ * branch above — the stock getter is never consulted when a pack exists)
3543
+ */
3544
+ declare function curatedAnimalPromptHint(id: string): string;
3545
+ declare function curatedAnimalTerm(id: string): string;
3546
+ declare function curatedVehicleText(id: string): {
3547
+ readonly hint: string;
3548
+ readonly term: string;
3549
+ };
3550
+ declare function curatedWeaponText(id: string): {
3551
+ readonly hint: string;
3552
+ readonly term: string;
3553
+ };
3554
+ declare function curatedFurnitureText(id: string): {
3555
+ readonly hint: string;
3556
+ readonly term: string;
3557
+ };
3558
+
3559
+ /**
3560
+ * THE WALL: refuse work that names a catalog id this deployment does not
3561
+ * offer.
3562
+ *
3563
+ * A curated deployment composes its picker catalogs from packs — entries
3564
+ * removed, some rewritten. The browser is supposed to show only the composed
3565
+ * catalogs and the resolvers are supposed to honor them, but neither of those
3566
+ * is a SAFETY property: a stale tab, an imported workflow, a hand-made request
3567
+ * or a bug in either layer can still hand the run path an id the deployment
3568
+ * never offered. This module is what makes curation hold regardless — it is
3569
+ * consulted at the one place every run passes (the orchestrator, after input
3570
+ * overrides are merged), inside nested sub-workflows, and on the single-node
3571
+ * routes that carry ids on the wire.
3572
+ *
3573
+ * INERT WITHOUT PACKS. A deployment that registers no catalog packs offers
3574
+ * every base id, so there is nothing to refuse; the guard returns [] without
3575
+ * walking. Mainline behavior is unchanged by construction.
3576
+ *
3577
+ * WHAT COUNTS AS AN ID FIELD. Every field a picker catalog declares — a
3578
+ * single-dim catalog's `valueField`, a multi-dim catalog's `dimensions[].field`
3579
+ * — plus the few resolver side-fields the catalogs do not declare (the pose
3580
+ * sub-picks, the legacy direction keys). A field NOT in that table is never
3581
+ * validated: `preText`, `customText`, `customAge`, free-text notes and the
3582
+ * like are not ids and must not be refused. The table is derived from the
3583
+ * BASE catalogs, so a field a `replace` pack dropped is still recognised as an
3584
+ * id field and any value in it fails membership — which is the point.
3585
+ */
3586
+ interface ForeignCatalogId {
3587
+ /** The node carrying the id (undefined for a request body). */
3588
+ readonly nodeId?: string;
3589
+ readonly nodeType: string;
3590
+ readonly field: string;
3591
+ readonly id: string;
3592
+ readonly catalogId: string;
3593
+ }
3594
+ /** The guard is only meaningful once something curates. */
3595
+ declare function catalogGuardActive(): boolean;
3596
+ /**
3597
+ * Walk a graph. Parameter nodes are checked against their own catalog's
3598
+ * fields; consumer nodes (generate-image, image-to-video, …) carry folded
3599
+ * `direction` / `subject` records whose keys are the same field names, so
3600
+ * those are checked against the global field table.
3601
+ */
3602
+ declare function findForeignCatalogIds(nodes: ReadonlyArray<{
3603
+ id?: unknown;
3604
+ type?: unknown;
3605
+ data?: unknown;
3606
+ }> | undefined): ForeignCatalogId[];
3607
+ /** A request body's `direction` / `subject` records (the single-node routes). */
3608
+ declare function findForeignCatalogIdsInBody(nodeType: string, body: {
3609
+ direction?: unknown;
3610
+ subject?: unknown;
3611
+ } | undefined): ForeignCatalogId[];
3612
+ /** One line, naming every offender — the audit trail and the user message. */
3613
+ declare function foreignCatalogIdMessage(found: readonly ForeignCatalogId[]): string;
3614
+ /** Test hook. */
3615
+ declare function __resetCatalogIdGuardForTests(): void;
3616
+
3428
3617
  /**
3429
3618
  * Sidecar-localization coverage for a curation pack's added option ids. For
3430
3619
  * every pack-added id, each non-English locale must either have a sidecar entry
@@ -3466,6 +3655,15 @@ interface PersonPack {
3466
3655
  }
3467
3656
  declare function registerPersonPack(pack: PersonPack): void;
3468
3657
  declare function resetPersonPacks(): void;
3658
+ /**
3659
+ * The version every person memo keys on. It moves when a PERSON pack registers
3660
+ * AND when a CATALOG pack for `person` does: `getRegisteredPeople()` folds
3661
+ * both, so a memo keyed on the person-pack counter alone kept serving a
3662
+ * denied id after a `deny` catalog pack for person landed — correct on the
3663
+ * server only because the Haredi person pack happened to register afterwards
3664
+ * and bump this, and wrong in the browser, where only catalog packs arrive.
3665
+ * Folding the catalog version in makes the memo honest regardless of order.
3666
+ */
3469
3667
  declare function personPacksVersion(): number;
3470
3668
  /**
3471
3669
  * The registered/composed person taxonomy: base `PEOPLE` folded with every
@@ -3481,6 +3679,136 @@ declare function getRegisteredPersonDimensionOrder(): readonly string[];
3481
3679
  declare function getRegisteredPersonFieldByDimension(): Readonly<Record<string, string>>;
3482
3680
  declare function getRegisteredPersonDimensionLabels(): Readonly<Record<string, string>>;
3483
3681
 
3682
+ /**
3683
+ * LEAF MODULE — no runtime imports. person.ts and styling.ts import this;
3684
+ * any catalog import here reopens the person → age-floor → picker-catalogs
3685
+ * load-time cycle.
3686
+ *
3687
+ * `isMinorAge` is an ADULT ALLOW-LIST on purpose: a new age id added to the
3688
+ * catalog is inside the floor until someone lists it here as adult. Custom
3689
+ * numeric ages use the same boundary as `buildAgeFragment` in person.ts
3690
+ * ("in their teens" below 20).
3691
+ */
3692
+ declare const ADULT_ONLY_FLAG: "adultOnly";
3693
+ /** Catalog age ids that describe an ADULT. Everything else is floored. */
3694
+ declare const ADULT_AGE_IDS: ReadonlySet<string>;
3695
+ /** Type entries whose hint reads as a child even with no age selected. */
3696
+ declare const MINOR_IMPLYING_TYPE_IDS: ReadonlySet<string>;
3697
+ /** True when the picker value describes someone under 20, or a child-typed
3698
+ * subject with no age. An explicit adult age always wins. */
3699
+ declare function isMinorAge(value: {
3700
+ readonly age?: string;
3701
+ readonly customAge?: number;
3702
+ readonly type?: string;
3703
+ } | null | undefined): boolean;
3704
+
3705
+ /**
3706
+ * The minor-age floor — Layer 1 of spec 2026-09-01-app-reports-triage-design.md
3707
+ * §3.3 (W1-a). Content-free: this module decides WHICH catalog entries a minor
3708
+ * subject may not carry; the clause a deployment appends lives in its
3709
+ * registered PromptPolicy (backend/src/lib/prompt-policies/), never here.
3710
+ *
3711
+ * `ADULT_ONLY_FLAG`, `ADULT_AGE_IDS`, `MINOR_IMPLYING_TYPE_IDS` and
3712
+ * `isMinorAge` live in the import-free leaf `age-signal.ts` and are
3713
+ * re-exported here unchanged — this module's own catalog-funnel imports
3714
+ * (`person-packs.js`, `picker-catalogs.js`) are exactly what `person.ts` /
3715
+ * `styling.ts` must NOT reach through, on pain of reopening the
3716
+ * person → age-floor → picker-catalogs load-time cycle (see `age-signal.ts`'s
3717
+ * header). `person.ts` / `styling.ts` import `isMinorAge` from
3718
+ * `age-signal.ts` directly instead of from here.
3719
+ */
3720
+
3721
+ /** Shape shared by every catalog entry the floor reads. */
3722
+ interface AdultOnlyEntry {
3723
+ readonly id: string;
3724
+ readonly promptHint: string;
3725
+ readonly term?: string;
3726
+ readonly adultOnly?: true;
3727
+ }
3728
+ /** The picker catalogs (by `catalogId`) this floor sweeps beside person.
3729
+ * Exported because it is the SINGLE source of truth for two things that used
3730
+ * to be maintained by hand and drifted: which catalogs `getAdultOnlyEntries`
3731
+ * sweeps for the flag, and which analyzer keys `FLOORED_PICKER_KEYS` strips
3732
+ * flagged ids out of (a `photo-genre` swept for the flag but absent from the
3733
+ * strip list let `glamour-portrait` survive on a minor). */
3734
+ declare const ADULT_SWEPT_CATALOG_IDS: readonly ["styling", "mood", "pose", "photo-genre"];
3735
+ /** Every entry, across the swept catalogs, that carries the flag. Reads every
3736
+ * catalog through the pack-composed funnel — `getRegisteredPeople()` for
3737
+ * person, `getRegisteredPickerCatalogs()` for styling/mood/pose/photo-genre —
3738
+ * so a pack-added or pack-replaced entry is included. */
3739
+ declare function getAdultOnlyEntries(): ReadonlyArray<AdultOnlyEntry>;
3740
+ /** The set of flagged ids (fast membership for the collectors). */
3741
+ declare function getAdultOnlyIds(): ReadonlySet<string>;
3742
+ /** Every full prompt-hint string a flagged entry can inject, lower-cased,
3743
+ * longest first — the backend policy strips text that contains any of them
3744
+ * (Layer 2), which is how flagged wording arriving inside free text (a
3745
+ * client-assembled seedPrompt) is caught.
3746
+ *
3747
+ * `promptHint` ONLY, deliberately — `term` is analyzer/UI vocabulary
3748
+ * (compact-mode display), and `picker-catalogs.ts`'s composed-catalog
3749
+ * projection back-fills a `term` for EVERY option via `deriveTerm(label)`
3750
+ * when no explicit term was authored (e.g. "lounging", "cropped top",
3751
+ * "school uniform", "lying down"). Those short, generic derived terms are
3752
+ * exactly the kind of everyday word that collides with unrelated, benign
3753
+ * text and over-strips it. Assembled prompts and client seedPrompts are
3754
+ * built from HINTS, never from terms, so hints are the only strings that
3755
+ * can actually arrive verbatim in free text — terms don't need to be (and
3756
+ * must not be) swept here. */
3757
+ declare function getAdultOnlyHintStrings(): ReadonlyArray<string>;
3758
+ declare function getMinorAgeHintStrings(): ReadonlyArray<string>;
3759
+ /**
3760
+ * The word-bounded alternation SOURCE for a needle list — the one place both
3761
+ * layers of the floor build their matcher, so they can never disagree about
3762
+ * what "the same phrase" means.
3763
+ *
3764
+ * Two properties, both load-bearing:
3765
+ * - **Separator tolerance.** A catalog hint is authored with single spaces
3766
+ * ("very full bust"), but the free text that carries it is written by a
3767
+ * human or an LLM and arrives as "very-full bust" or "very full bust".
3768
+ * A literal alternation misses those, and a miss is a flagged phrase
3769
+ * reaching the provider on a minor's prompt. Each needle's tokens are
3770
+ * joined by `[\s-]+`, which requires AT LEAST one separator — so
3771
+ * "very fullbust" (no separator at all) is still not a match, and the
3772
+ * phrase can't silently widen into a substring rule.
3773
+ * - **Word boundaries.** `(?<![\w-])` / `(?![\w-])` keep a needle from
3774
+ * gluing onto an adjacent word's characters ("mesh tops" must survive a
3775
+ * "mesh top" needle).
3776
+ *
3777
+ * Ordering is the CALLER's: pass needles longest-first so the alternation
3778
+ * consumes the longest match at a given position instead of leaving debris.
3779
+ * Returns `null` when there is nothing to match (an empty list would otherwise
3780
+ * compile to `(?:)`, which matches everywhere). Flags are the caller's too —
3781
+ * `"i"` for a `.test()` instance, `"gi"` for one used with `String.replace`.
3782
+ */
3783
+ declare function buildNeedleAlternationSource(needles: ReadonlyArray<string>): string | null;
3784
+ /**
3785
+ * True when free text describes a MINOR subject. Three rules, in order:
3786
+ * 1. any minor-age / minor-implying-type prompt hint, word-bounded;
3787
+ * 2. a numeric age below 20 in any shape `buildAgeFragment` emits;
3788
+ * 3. the literal "in their teens".
3789
+ *
3790
+ * Deliberately NOT a bare-word check: "child", "teen", "kid" alone must never
3791
+ * fire, or an adult prompt that merely MENTIONS a child ("a mother holding her
3792
+ * child") would be floored — the spec's "adults are byte-identical" is a hard
3793
+ * requirement, so every rule here is a full phrase or a bounded number.
3794
+ *
3795
+ * Pairs with `isMinorAge`, never replaces it: the structured picker value is
3796
+ * the primary signal; this catches the same subject when only the assembled
3797
+ * text survives.
3798
+ */
3799
+ declare function containsMinorAgeHint(text: string | null | undefined): boolean;
3800
+ /** The analyzer/import value keys the floor strips flagged ids out of:
3801
+ * `person` plus EVERY catalog the flag sweep reads. DERIVED, never
3802
+ * hand-listed — the hand-written version omitted `photo-genre` while the
3803
+ * sweep included it, so a minor kept `glamour-portrait`. The analyzer JSON is
3804
+ * keyed by picker type id (`describe-to-picker.ts`), which is the same string
3805
+ * as the catalog id, so this list IS the set of keys to visit. */
3806
+ declare const FLOORED_PICKER_KEYS: readonly ["person", "styling", "mood", "pose", "photo-genre"];
3807
+ /** Analyzer / import post-filter: when the person value describes a minor,
3808
+ * remove every flagged id from the person, styling, pose and mood values.
3809
+ * Identity (same reference) for an adult. */
3810
+ declare function applyMinorAgeFloorToPickerValues<T extends Record<string, unknown>>(values: T): T;
3811
+
3484
3812
  /** A catalog entry as the analyzer consumes it. Flat catalogs lack
3485
3813
  * dimension/category; discriminated catalogs carry exactly one. */
3486
3814
  interface AnalyzerEntry {
@@ -5347,6 +5675,16 @@ interface Mood {
5347
5675
  readonly category: MoodCategory;
5348
5676
  readonly description: string;
5349
5677
  readonly promptHint: string;
5678
+ /**
5679
+ * W1-a minor-age floor (spec 2026-09-01 §3.3). `true` marks an entry whose
5680
+ * hint describes body exposure, sheer/wet clothing, swimwear/lingerie, a
5681
+ * seductive expression or gaze, or a body-placed tattoo. The fragment
5682
+ * collectors DROP flagged entries for a minor subject (`isMinorAge`), the
5683
+ * picker hides their tiles, the analyzer never emits them, and the backend
5684
+ * policy strips their wording from free text. Hand-curated; the
5685
+ * `adult-only-ratchet` test only ratchets. Never set on neutral defaults.
5686
+ */
5687
+ readonly adultOnly?: true;
5350
5688
  /**
5351
5689
  * Compact professional term injected in compact hint mode (see `term.ts`).
5352
5690
  *
@@ -5610,6 +5948,16 @@ interface PhotoGenre {
5610
5948
  readonly category: PhotoGenreCategory;
5611
5949
  readonly description: string;
5612
5950
  readonly promptHint: string;
5951
+ /**
5952
+ * W1-a minor-age floor (spec 2026-09-01 §3.3). `true` marks an entry whose
5953
+ * hint describes body exposure, sheer/wet clothing, swimwear/lingerie, a
5954
+ * seductive expression or gaze, or a body-placed tattoo. The fragment
5955
+ * collectors DROP flagged entries for a minor subject (`isMinorAge`), the
5956
+ * picker hides their tiles, the analyzer never emits them, and the backend
5957
+ * policy strips their wording from free text. Hand-curated; the
5958
+ * `adult-only-ratchet` test only ratchets. Never set on neutral defaults.
5959
+ */
5960
+ readonly adultOnly?: true;
5613
5961
  /**
5614
5962
  * Compact professional term (see `term.ts`). Authored only where the
5615
5963
  * lowercased label is not what a photographer would write in a prompt —
@@ -5739,6 +6087,16 @@ interface Pose {
5739
6087
  readonly category: PoseCategory;
5740
6088
  readonly description: string;
5741
6089
  readonly promptHint: string;
6090
+ /**
6091
+ * W1-a minor-age floor (spec 2026-09-01 §3.3). `true` marks an entry whose
6092
+ * hint describes body exposure, sheer/wet clothing, swimwear/lingerie, a
6093
+ * seductive expression or gaze, or a body-placed tattoo. The fragment
6094
+ * collectors DROP flagged entries for a minor subject (`isMinorAge`), the
6095
+ * picker hides their tiles, the analyzer never emits them, and the backend
6096
+ * policy strips their wording from free text. Hand-curated; the
6097
+ * `adult-only-ratchet` test only ratchets. Never set on neutral defaults.
6098
+ */
6099
+ readonly adultOnly?: true;
5742
6100
  /**
5743
6101
  * Compact professional term injected instead of `promptHint` in compact hint
5744
6102
  * mode. Authored only where the lowercased label is not what a photographer
@@ -5997,6 +6355,16 @@ interface Style {
5997
6355
  }
5998
6356
  declare const STYLES: ReadonlyArray<Style>;
5999
6357
  declare function getStyle(id: string | undefined | null): Style | undefined;
6358
+ /**
6359
+ * The inline `style` field on an image node is id-OR-free-text: a catalog id
6360
+ * resolves to its hint, anything else is the user's own words and is folded
6361
+ * verbatim. That fallback has a hole on a curated deployment — a style id the
6362
+ * pack REMOVED resolves to nothing, so the fold would treat it as prose and
6363
+ * ship the raw id. This tells the fold apart: true for an id the stock
6364
+ * catalog knows but this deployment does not offer. Such a value is neither
6365
+ * a hint nor prose; it is dropped.
6366
+ */
6367
+ declare function isDeniedStyleId(value: string | undefined | null): boolean;
6000
6368
  declare function getStyleLabel(id: string | undefined | null, fallback?: string): string;
6001
6369
  declare function getStylePromptHint(id: string | undefined | null): string;
6002
6370
  /** Compact counterpart of `getStylePromptHint` — see `term.ts`. */
@@ -6058,6 +6426,16 @@ interface Styling {
6058
6426
  readonly dimension: StylingDimension;
6059
6427
  readonly description: string;
6060
6428
  readonly promptHint: string;
6429
+ /**
6430
+ * W1-a minor-age floor (spec 2026-09-01 §3.3). `true` marks an entry whose
6431
+ * hint describes body exposure, sheer/wet clothing, swimwear/lingerie, a
6432
+ * seductive expression or gaze, or a body-placed tattoo. The fragment
6433
+ * collectors DROP flagged entries for a minor subject (`isMinorAge`), the
6434
+ * picker hides their tiles, the analyzer never emits them, and the backend
6435
+ * policy strips their wording from free text. Hand-curated; the
6436
+ * `adult-only-ratchet` test only ratchets. Never set on neutral defaults.
6437
+ */
6438
+ readonly adultOnly?: true;
6061
6439
  /**
6062
6440
  * Compact professional term for hint-compact mode (see `term.ts`).
6063
6441
  *
@@ -7196,4 +7574,4 @@ declare function getPickerWiring(nodeType: string | undefined | null): PickerWir
7196
7574
  */
7197
7575
  declare function buildSurroundFillPrompt(direction: SurroundDirection, userPrompt?: string): string;
7198
7576
 
7199
- 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 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, CINEMATIC_LOOK_TAIL, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, type CameraFormat, type CameraMotion, type CameraMotionCategory, type CatalogPack, type CatalogPackMode, type CategorizedInstrument, type CharacterFx, type CharacterFxCategory, type CharacterFxDuration, type CharacterFxIntensity, type CharacterFxPosition, type CharacterFxTiming, type CharacterFxTimingOption, type CharacterMeta, type CharacterMotionPromptInput, type CharacterPromptInput, type ColorLook, type ColorLookCategory, type CompositionEffect, type ComputeNodePromptArgs, type CreaturePromptInput, DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, DIRECTION_ARRAY_CEILING, DIRECTION_FIELDS, DIRECTION_ID_MAX_CHARS, DIRECTION_KEYS, type DirectionFamily, type DirectionFieldRow, type DirectionFieldSpec, type DirectionFields, type 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, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type FacePromptInput, type FactoryPreset, type FactoryPresetGroup, type FactorySnippet, type Framing, type FramingCategory, type FramingValue, GAPS_SCHEMA, type GeminiOmniI2vInputsArgs, type GeminiOmniI2vInputsResult, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, type HeldProp, type HeldPropCategory, IMAGE_HINT_MODE_DEFAULT, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type IdentityLockMode, type ImageDirectionKey, type ImageReferenceDoctrine, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LlmChatFieldArgs, type LocationMotionPromptInput, type LocationPromptInput, type LocationRefinePromptInput, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MAX_SUBJECT_KEYS, 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, type RecommendedModel, type RefIdTokenContext, type ReferenceCounts, type RegisteredPersonEntry, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, 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 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, appendField, appendMusicMeta, 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, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScenePrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, deriveTerm, directionFieldsForSurface, endsInsideStyleSection, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptFields, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, 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, hasUpstreamCharacter, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isInstrumentalVocal, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinPromptHints, joinPromptParts, keepableDirectionHints, listPickerCatalogs, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDirectionHintClauses, renderDirectionHints, renderStructuredFields, renderStyleSection, renderSubjectHints, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, sectionedClauseCosts, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
7577
+ 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, CINEMATIC_LOOK_TAIL, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, type CameraFormat, type CameraMotion, type CameraMotionCategory, type CatalogPack, type CatalogPackMode, type CategorizedInstrument, type CharacterFx, type CharacterFxCategory, type CharacterFxDuration, type CharacterFxIntensity, type CharacterFxPosition, type CharacterFxTiming, type CharacterFxTimingOption, type CharacterMeta, type CharacterMotionPromptInput, type CharacterPromptInput, type ColorLook, type ColorLookCategory, type CompositionEffect, type ComputeNodePromptArgs, type CreaturePromptInput, DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, DIRECTION_ARRAY_CEILING, DIRECTION_FIELDS, DIRECTION_ID_MAX_CHARS, DIRECTION_KEYS, type DirectionFamily, type DirectionFieldRow, type DirectionFieldSpec, type DirectionFields, type 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, type RecommendedModel, type RefIdTokenContext, type ReferenceCounts, type RegisteredPersonEntry, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, 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 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, 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, buildScenePrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogGuardActive, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, 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, 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, hasUpstreamCharacter, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isDeniedStyleId, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinPromptHints, joinPromptParts, keepableDirectionHints, listPickerCatalogs, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDirectionHintClauses, renderDirectionHints, renderStructuredFields, renderStyleSection, renderSubjectHints, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, sectionedClauseCosts, setComposedCatalogResolver, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };