@nodaro/prompts 1.8.1 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +263 -81
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +298 -34
- package/dist/index.d.ts +298 -34
- package/dist/index.js +249 -83
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/factory-presets.test.ts +62 -12
- package/src/__tests__/node-prompt-fields.test.ts +81 -0
- package/src/__tests__/parameter-registry-sync.test.ts +4 -1
- package/src/__tests__/prompt-affixes.test.ts +83 -0
- package/src/__tests__/transition-timing-catalogs.test.ts +151 -0
- package/src/composition-effects.ts +6 -1
- package/src/factory-presets/generate-image.ts +37 -24
- package/src/factory-presets/shared-image.ts +10 -10
- package/src/factory-presets/switchx.ts +6 -6
- package/src/factory-presets/video-edit.ts +6 -6
- package/src/index.ts +1 -0
- package/src/node-prompt-fields.ts +206 -0
- package/src/picker-catalogs.ts +48 -16
- package/src/picker-wiring.ts +2 -1
- package/src/resolve-prompt.ts +60 -5
- package/src/transitions.ts +79 -19
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, ProjectedCatalog, ProjectedCatalogDimension, ProjectedCatalogOption, LocaleId, LocaleCatalogMap, StyleDirectives, I18nCatalogId, SurroundDirection } from '@nodaro/shared';
|
|
1
|
+
import { ConnectedReference, GenericNode, GenericEdge, HintNodeLike, HintGraphContext, EntityStyle, SupportedFontName, CharacterDef, IdentityMeta, SceneData, CharacterMentionTokenInfo, LocationMentionTokenInfo, UsageMode, ProjectedCatalog, ProjectedCatalogDimension, ProjectedCatalogOption, LocaleId, LocaleCatalogMap, PromptAffixes, StyleDirectives, I18nCatalogId, SurroundDirection } from '@nodaro/shared';
|
|
2
2
|
export { HintEdgeLike, HintGraphContext, HintNodeLike } from '@nodaro/shared';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
|
|
@@ -1961,7 +1961,10 @@ interface PickerCatalog {
|
|
|
1961
1961
|
readonly options?: readonly PickerOption[];
|
|
1962
1962
|
/** multi-dim: the dimension keys (no single catalog to flatten). */
|
|
1963
1963
|
readonly fields?: readonly string[];
|
|
1964
|
-
/**
|
|
1964
|
+
/** Per-field option lists. Multi-dim catalogs always carry these, one per
|
|
1965
|
+
* `fields` entry in order; a single-dim catalog carries them when it has
|
|
1966
|
+
* secondary parameter fields beside its main picker (transition
|
|
1967
|
+
* position/duration/intensity). */
|
|
1965
1968
|
readonly dimensions?: readonly PickerDimension[];
|
|
1966
1969
|
}
|
|
1967
1970
|
/**
|
|
@@ -4802,9 +4805,23 @@ interface Transition {
|
|
|
4802
4805
|
*/
|
|
4803
4806
|
readonly term?: string;
|
|
4804
4807
|
}
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
+
/**
|
|
4809
|
+
* The three timing scales, each derived from the catalog that defines it (see
|
|
4810
|
+
* `TRANSITION_POSITIONS` and friends below).
|
|
4811
|
+
*
|
|
4812
|
+
* The direction matters. These used to be hand-written unions with the clause
|
|
4813
|
+
* tables written out separately beside them, so the two could disagree: add a
|
|
4814
|
+
* step to the union, forget the clause, and the composer indexed a missing key
|
|
4815
|
+
* — pushing `undefined` into the parts list, which `join(", ")` renders as a
|
|
4816
|
+
* dangling separator on a prompt that then ships to a provider with the user's
|
|
4817
|
+
* chosen parameter silently dropped. Deriving the union FROM the catalog makes
|
|
4818
|
+
* that unrepresentable: one array is the source of the type, the option list
|
|
4819
|
+
* the API serves, and the clause table, so a new step reaches all three or
|
|
4820
|
+
* none. The exact id sets are pinned by `transition-timing-catalogs.test.ts`.
|
|
4821
|
+
*/
|
|
4822
|
+
type TransitionPosition = (typeof TRANSITION_POSITIONS)[number]["id"];
|
|
4823
|
+
type TransitionDuration = (typeof TRANSITION_DURATIONS)[number]["id"];
|
|
4824
|
+
type TransitionIntensity = (typeof TRANSITION_INTENSITIES)[number]["id"];
|
|
4808
4825
|
interface TransitionTiming {
|
|
4809
4826
|
position?: TransitionPosition;
|
|
4810
4827
|
duration?: TransitionDuration;
|
|
@@ -4827,6 +4844,120 @@ declare function getTransitionPromptHint(id: string | undefined | null): string;
|
|
|
4827
4844
|
*/
|
|
4828
4845
|
declare function getTransitionTerm(id: string | undefined | null): string;
|
|
4829
4846
|
declare const TRANSITION_IDS: ReadonlyArray<string>;
|
|
4847
|
+
/**
|
|
4848
|
+
* The transition node's three timing parameters, as catalogs.
|
|
4849
|
+
*
|
|
4850
|
+
* These are graded scales, not free numbers — the same shape as
|
|
4851
|
+
* `exposure-settings`' aperture or `temporal`'s speed — so a consumer that can
|
|
4852
|
+
* only send ids (Studio, the SDK, MCP) can offer them without composing prompt
|
|
4853
|
+
* text of its own. `auto` is the no-op head of each scale: an empty
|
|
4854
|
+
* `promptHint`, so an unset parameter contributes nothing and the model is left
|
|
4855
|
+
* to decide, exactly as before these were enumerable.
|
|
4856
|
+
*
|
|
4857
|
+
* `POSITION_CLAUSES` / `DURATION_CLAUSES` / `INTENSITY_CLAUSES` below are
|
|
4858
|
+
* DERIVED from these arrays, so the clause the composer injects and the hint
|
|
4859
|
+
* the catalog advertises are the same string by construction and cannot drift.
|
|
4860
|
+
*/
|
|
4861
|
+
interface TransitionTimingOption {
|
|
4862
|
+
readonly id: string;
|
|
4863
|
+
readonly label: string;
|
|
4864
|
+
readonly description: string;
|
|
4865
|
+
readonly promptHint: string;
|
|
4866
|
+
readonly term?: string;
|
|
4867
|
+
}
|
|
4868
|
+
declare const TRANSITION_POSITIONS: readonly [{
|
|
4869
|
+
readonly id: "auto";
|
|
4870
|
+
readonly label: "Auto";
|
|
4871
|
+
readonly description: "Let the model place it";
|
|
4872
|
+
readonly promptHint: "";
|
|
4873
|
+
readonly term: "";
|
|
4874
|
+
}, {
|
|
4875
|
+
readonly id: "start";
|
|
4876
|
+
readonly label: "Start";
|
|
4877
|
+
readonly description: "At the opening of the clip";
|
|
4878
|
+
readonly promptHint: "the transition occurs at the opening of the clip";
|
|
4879
|
+
readonly term: "at the opening of the clip";
|
|
4880
|
+
}, {
|
|
4881
|
+
readonly id: "middle";
|
|
4882
|
+
readonly label: "Middle";
|
|
4883
|
+
readonly description: "In the middle of the clip";
|
|
4884
|
+
readonly promptHint: "the transition occurs in the middle of the clip";
|
|
4885
|
+
readonly term: "mid-clip";
|
|
4886
|
+
}, {
|
|
4887
|
+
readonly id: "end";
|
|
4888
|
+
readonly label: "End";
|
|
4889
|
+
readonly description: "At the end of the clip";
|
|
4890
|
+
readonly promptHint: "the transition occurs at the end of the clip";
|
|
4891
|
+
readonly term: "at the end of the clip";
|
|
4892
|
+
}, {
|
|
4893
|
+
readonly id: "full";
|
|
4894
|
+
readonly label: "Full";
|
|
4895
|
+
readonly description: "Spans the entire clip";
|
|
4896
|
+
readonly promptHint: "the transition spans the entire clip";
|
|
4897
|
+
readonly term: "across the whole clip";
|
|
4898
|
+
}];
|
|
4899
|
+
declare const TRANSITION_DURATIONS: readonly [{
|
|
4900
|
+
readonly id: "auto";
|
|
4901
|
+
readonly label: "Auto";
|
|
4902
|
+
readonly description: "Let the model time it";
|
|
4903
|
+
readonly promptHint: "";
|
|
4904
|
+
readonly term: "";
|
|
4905
|
+
}, {
|
|
4906
|
+
readonly id: "instant";
|
|
4907
|
+
readonly label: "Instant";
|
|
4908
|
+
readonly description: "No perceptible duration";
|
|
4909
|
+
readonly promptHint: "occurring instantaneously";
|
|
4910
|
+
readonly term: "instantaneous";
|
|
4911
|
+
}, {
|
|
4912
|
+
readonly id: "short";
|
|
4913
|
+
readonly label: "Short (~1s)";
|
|
4914
|
+
readonly description: "Approximately 1 second";
|
|
4915
|
+
readonly promptHint: "lasting approximately 1 second";
|
|
4916
|
+
readonly term: "about 1 second";
|
|
4917
|
+
}, {
|
|
4918
|
+
readonly id: "medium";
|
|
4919
|
+
readonly label: "Medium (~2s)";
|
|
4920
|
+
readonly description: "Approximately 2 seconds";
|
|
4921
|
+
readonly promptHint: "lasting approximately 2 seconds";
|
|
4922
|
+
readonly term: "about 2 seconds";
|
|
4923
|
+
}, {
|
|
4924
|
+
readonly id: "long";
|
|
4925
|
+
readonly label: "Long (~3s)";
|
|
4926
|
+
readonly description: "Approximately 3 seconds";
|
|
4927
|
+
readonly promptHint: "lasting approximately 3 seconds";
|
|
4928
|
+
readonly term: "about 3 seconds";
|
|
4929
|
+
}];
|
|
4930
|
+
declare const TRANSITION_INTENSITIES: readonly [{
|
|
4931
|
+
readonly id: "auto";
|
|
4932
|
+
readonly label: "Auto";
|
|
4933
|
+
readonly description: "Let the model judge it";
|
|
4934
|
+
readonly promptHint: "";
|
|
4935
|
+
readonly term: "";
|
|
4936
|
+
}, {
|
|
4937
|
+
readonly id: "subtle";
|
|
4938
|
+
readonly label: "Subtle";
|
|
4939
|
+
readonly description: "Restrained, minimal flourish";
|
|
4940
|
+
readonly promptHint: "with subtle restrained energy and minimal flourish";
|
|
4941
|
+
readonly term: "subtly";
|
|
4942
|
+
}, {
|
|
4943
|
+
readonly id: "natural";
|
|
4944
|
+
readonly label: "Natural";
|
|
4945
|
+
readonly description: "Unhurried, unforced timing";
|
|
4946
|
+
readonly promptHint: "with natural unhurried timing";
|
|
4947
|
+
readonly term: "at a natural pace";
|
|
4948
|
+
}, {
|
|
4949
|
+
readonly id: "dynamic";
|
|
4950
|
+
readonly label: "Dynamic";
|
|
4951
|
+
readonly description: "Assertive, energetic";
|
|
4952
|
+
readonly promptHint: "with dynamic energy and assertive flourish";
|
|
4953
|
+
readonly term: "energetically";
|
|
4954
|
+
}, {
|
|
4955
|
+
readonly id: "crazy";
|
|
4956
|
+
readonly label: "Crazy";
|
|
4957
|
+
readonly description: "Extreme, wild, distorted";
|
|
4958
|
+
readonly promptHint: "with extreme exaggerated energy, wild flourishes, and dramatic distortion";
|
|
4959
|
+
readonly term: "wildly exaggerated";
|
|
4960
|
+
}];
|
|
4830
4961
|
/**
|
|
4831
4962
|
* Compose a structural prompt-hint sentence from a transition id (or array
|
|
4832
4963
|
* of 1-2 ids for multi-pick) plus optional start-state/end-state hints
|
|
@@ -5205,13 +5336,33 @@ interface ResolvePromptArgs {
|
|
|
5205
5336
|
* Off/undefined = exact legacy precedence (override > typed > wired) for every
|
|
5206
5337
|
* other node type. */
|
|
5207
5338
|
appendWired?: boolean;
|
|
5339
|
+
/** Pre/post text wrapped around WHICHEVER core precedence produced (override,
|
|
5340
|
+
* typed, wired, or the appendWired combination). Applied last. */
|
|
5341
|
+
affixes?: PromptAffixes;
|
|
5208
5342
|
}
|
|
5343
|
+
/** The ONE join rule between two non-blank prompt parts: a single space unless
|
|
5344
|
+
* the boundary already has whitespace on either side or the right part opens
|
|
5345
|
+
* with sentence punctuation. Shared by `joinPromptParts` and the editor's
|
|
5346
|
+
* Final-view segment builder so preview and run agree byte-for-byte. */
|
|
5347
|
+
declare function promptPartSeparator(left: string, right: string): "" | " ";
|
|
5348
|
+
/** Join prompt parts with `promptPartSeparator`; blank parts are dropped,
|
|
5349
|
+
* non-blank parts are used verbatim (no trimming). */
|
|
5350
|
+
declare function joinPromptParts(parts: ReadonlyArray<string | undefined>): string;
|
|
5351
|
+
/**
|
|
5352
|
+
* Wrap `core` with the node's pre/post text. `{Label}` refs are resolved in the
|
|
5353
|
+
* AFFIXES only — the core arrives exactly as the caller's precedence produced it.
|
|
5354
|
+
* NO-OP GUARANTEE: with no non-blank affix the core is returned unchanged (same
|
|
5355
|
+
* reference) — every existing workflow stays byte-identical.
|
|
5356
|
+
* EMPTY CORE: a blank core with affixes yields the joined affixes alone.
|
|
5357
|
+
*/
|
|
5358
|
+
declare function applyPromptAffixes(core: string, affixes: PromptAffixes | undefined, refMap: ReadonlyMap<string, string>): string;
|
|
5359
|
+
declare function applyPromptAffixes(core: string | undefined, affixes: PromptAffixes | undefined, refMap: ReadonlyMap<string, string>): string | undefined;
|
|
5209
5360
|
/** SINGLE SOURCE OF TRUTH for prompt precedence across both DAG engines:
|
|
5210
5361
|
* override (list fan-out) > first present typed candidate > wired > "".
|
|
5211
5362
|
* "present" = non-empty after trim. {Label} refs are resolved on the chosen
|
|
5212
5363
|
* branch via the shared resolveNodeRefs. With `appendWired`, the chosen base
|
|
5213
|
-
* AND the wired value are both emitted (joined ". "). */
|
|
5214
|
-
declare function resolvePrompt({ override, typed, wired, refMap, appendWired }: ResolvePromptArgs): string;
|
|
5364
|
+
* AND the wired value are both emitted (joined ". "). Affixes wrap the result. */
|
|
5365
|
+
declare function resolvePrompt({ override, typed, wired, refMap, appendWired, affixes }: ResolvePromptArgs): string;
|
|
5215
5366
|
/** Compose a final NEGATIVE prompt from a TYPED base + a WIRED (connected
|
|
5216
5367
|
* negative-handle) value: both are emitted, joined ". " (mirrors `appendWired`
|
|
5217
5368
|
* for the positive prompt). Pure join — the caller resolves `{label}` refs on
|
|
@@ -5245,6 +5396,145 @@ declare function computeLlmChatFields(data: Record<string, unknown>, { override,
|
|
|
5245
5396
|
systemPrompt: string;
|
|
5246
5397
|
};
|
|
5247
5398
|
|
|
5399
|
+
/** Which prompt field a snippet belongs to. Negative-target snippets only
|
|
5400
|
+
* surface in negative-prompt fields, and are bare comma lists by convention
|
|
5401
|
+
* (per Google's Veo guidance, a negative FIELD must name the unwanted thing,
|
|
5402
|
+
* never "no X"). */
|
|
5403
|
+
type SnippetTarget = "prompt" | "negative";
|
|
5404
|
+
/** Node modality a snippet applies to. A node declares its modality once in
|
|
5405
|
+
* the frontend's NODE_PROMPT_FIELDS; the menu shows snippets whose `media`
|
|
5406
|
+
* contains it. */
|
|
5407
|
+
type SnippetMedia = "image" | "video" | "audio" | "text";
|
|
5408
|
+
declare const SNIPPET_MEDIA_VALUES: readonly SnippetMedia[];
|
|
5409
|
+
interface FactorySnippet {
|
|
5410
|
+
/** Stable kebab slug, e.g. "identity-lock". Unique across the catalog. */
|
|
5411
|
+
readonly id: string;
|
|
5412
|
+
readonly name: string;
|
|
5413
|
+
/** One-liner shown in the menu and matched by search. */
|
|
5414
|
+
readonly description?: string;
|
|
5415
|
+
/** The exact fragment inserted into the prompt. Single line; never contains
|
|
5416
|
+
* `{`, `}`, or `@` (guard-tested) so it can never form a mention/variable
|
|
5417
|
+
* token in the editor. */
|
|
5418
|
+
readonly text: string;
|
|
5419
|
+
readonly target: SnippetTarget;
|
|
5420
|
+
readonly media: readonly SnippetMedia[];
|
|
5421
|
+
/** Menu group AND the pill-swap sibling pool (swap lists same-category). */
|
|
5422
|
+
readonly category: string;
|
|
5423
|
+
}
|
|
5424
|
+
|
|
5425
|
+
/**
|
|
5426
|
+
* Single source of truth: which data field(s) hold a node's user-editable
|
|
5427
|
+
* prompt text. Drives the quick-edit Prompt modal so it can work generically
|
|
5428
|
+
* across every AI node without each call site hardcoding a field name.
|
|
5429
|
+
*
|
|
5430
|
+
* The registry LIVES HERE (`@nodaro/prompts`) so the backend orchestrator, the
|
|
5431
|
+
* `/v1/nodes` registry, the prompt-affix totality tests and the docs tooling
|
|
5432
|
+
* read the SAME list the editor does. `frontend/src/lib/prompt-fields.ts` is a
|
|
5433
|
+
* pure re-export of this module — frontend code keeps importing
|
|
5434
|
+
* `@/lib/prompt-fields` unchanged.
|
|
5435
|
+
*
|
|
5436
|
+
* Most nodes store the prompt in `data.prompt`, but several don't
|
|
5437
|
+
* (`text-prompt` → `text`, `image-to-text` → `customPrompt`, …) — this map is
|
|
5438
|
+
* where that knowledge lives, once.
|
|
5439
|
+
*
|
|
5440
|
+
* INVARIANT: every node that exposes a user-editable prompt MUST have an entry
|
|
5441
|
+
* here, or the quick-edit modal silently does nothing for it. A guard test
|
|
5442
|
+
* (`prompt-fields.test.ts`) keeps this in sync with the node set.
|
|
5443
|
+
*
|
|
5444
|
+
* This module is intentionally pure data (no React/lucide imports) so it can be
|
|
5445
|
+
* pulled into the app-runtime bundle and any test without dragging in the icon
|
|
5446
|
+
* library. The string `icon` kind is mapped to a concrete lucide component in
|
|
5447
|
+
* `prompt-edit-button.tsx` (`getPromptIcon`), the only place that renders it.
|
|
5448
|
+
*/
|
|
5449
|
+
|
|
5450
|
+
/** Which lucide glyph a node's prompt affordance uses. Kept as a string so this
|
|
5451
|
+
* module stays icon-library-free; mapped to a component in the strip button. */
|
|
5452
|
+
type PromptIconKind = "pencil" | "paintbrush";
|
|
5453
|
+
interface PromptFieldSpec {
|
|
5454
|
+
/** Data key holding the primary prompt (e.g. "prompt", "text", "customPrompt"). */
|
|
5455
|
+
readonly prompt: string;
|
|
5456
|
+
/** Data key holding the negative prompt, when the node supports one. */
|
|
5457
|
+
readonly negative?: string;
|
|
5458
|
+
/** Label override for the primary field (defaults to "Prompt"). */
|
|
5459
|
+
readonly promptLabel?: string;
|
|
5460
|
+
/** Icon for the prompt affordance (strip button + modal title). Defaults to a
|
|
5461
|
+
* pencil; image-editing nodes use a paintbrush to read as "edit". */
|
|
5462
|
+
readonly icon?: PromptIconKind;
|
|
5463
|
+
/** Node modality for prompt-snippet scoping — drives which snippet pool the
|
|
5464
|
+
* "/" menu and Snippets button show for this node's prompt fields. REQUIRED
|
|
5465
|
+
* so a new node cannot forget to declare it (compile error). */
|
|
5466
|
+
readonly media: SnippetMedia;
|
|
5467
|
+
/** True when this node renders a media-result preview body and therefore
|
|
5468
|
+
* participates in inline-prompt mode (the `InlineNodePrompt` editor on the
|
|
5469
|
+
* node face, centralized in `BaseNode`). REQUIRED (like `media`) so a new
|
|
5470
|
+
* prompt node must consciously choose — compile error if omitted. The set of
|
|
5471
|
+
* `inline: true` types is guarded in `prompt-fields.test.ts`. */
|
|
5472
|
+
readonly inline: boolean;
|
|
5473
|
+
/** Some nodes only READ their prompt field when a sibling discriminator
|
|
5474
|
+
* selects it — TTS keeps `directText` but resolves it only while
|
|
5475
|
+
* `textSource === "direct"`, defaulting to `"connected"`. Writing the text
|
|
5476
|
+
* without flipping the discriminator saved the value and then failed with
|
|
5477
|
+
* "no text found" (founder hit it live, 2026-08-14). Declare the pair here
|
|
5478
|
+
* and every writer flips it automatically. */
|
|
5479
|
+
readonly promptGate?: {
|
|
5480
|
+
readonly field: string;
|
|
5481
|
+
readonly value: string;
|
|
5482
|
+
};
|
|
5483
|
+
/** Prompt pre/post text (`promptPrefix` / `promptSuffix`) support. Defaults to
|
|
5484
|
+
* ON for every prompt node; set `false` ONLY for a node whose "prompt" is not
|
|
5485
|
+
* a model prompt (the plain Text input node). Read via `nodeSupportsPromptAffixes`. */
|
|
5486
|
+
readonly affixes?: false;
|
|
5487
|
+
}
|
|
5488
|
+
declare const NODE_PROMPT_FIELDS: Readonly<Record<string, PromptFieldSpec>>;
|
|
5489
|
+
/** The prompt-field spec for a node type, or undefined if it has none. */
|
|
5490
|
+
declare function getPromptFields(nodeType: string | undefined): PromptFieldSpec | undefined;
|
|
5491
|
+
/** True when this node type has a registered, quick-editable prompt field. */
|
|
5492
|
+
declare function nodeHasPromptField(nodeType: string | undefined): boolean;
|
|
5493
|
+
/** Snippet modality for a node type (drives the snippet pool), or undefined
|
|
5494
|
+
* when the node has no prompt field. */
|
|
5495
|
+
declare function getSnippetMedia(nodeType: string | undefined): SnippetMedia | undefined;
|
|
5496
|
+
/** True when this node type renders the inline on-node prompt editor — the
|
|
5497
|
+
* media-preview nodes (image/video/audio result body). Single source for
|
|
5498
|
+
* BaseNode's centralized `InlineNodePrompt` rendering and the gold nodes'
|
|
5499
|
+
* `showInline` derivation (`useInlinePromptActive`). */
|
|
5500
|
+
declare function nodeHasInlinePrompt(nodeType: string | undefined): boolean;
|
|
5501
|
+
/** True when the node type carries `promptPrefix` / `promptSuffix` — every
|
|
5502
|
+
* registered prompt node except explicit opt-outs (`affixes: false`). The single
|
|
5503
|
+
* predicate the config panel, Final view, `/v1/nodes` registry, totality tests
|
|
5504
|
+
* and docs tooling all gate on. */
|
|
5505
|
+
declare function nodeSupportsPromptAffixes(nodeType: string | undefined): boolean;
|
|
5506
|
+
/**
|
|
5507
|
+
* Where the RUN-TIME prompt lives when it differs from the editor's prompt
|
|
5508
|
+
* field (spec §7). `generate-script`'s editable prompt is its `styleGuide`, but
|
|
5509
|
+
* the run wraps the topic `prompt` with the affixes — so previewing the style
|
|
5510
|
+
* guide must NOT show them.
|
|
5511
|
+
*/
|
|
5512
|
+
declare const PROMPT_AFFIX_CORE_FIELD_OVERRIDES: Readonly<Record<string, string>>;
|
|
5513
|
+
/** The data key whose value the run wraps with promptPrefix/promptSuffix, or
|
|
5514
|
+
* undefined when the node has no affixes. */
|
|
5515
|
+
declare function promptAffixCoreField(nodeType: string | undefined): string | undefined;
|
|
5516
|
+
/**
|
|
5517
|
+
* True when a preview of `promptField` on this node must show the affixes —
|
|
5518
|
+
* i.e. that key is what the run actually wraps. THE gate for the editor's Final
|
|
5519
|
+
* view, so a sibling field (llm-chat's `systemPrompt`, generate-script's
|
|
5520
|
+
* `styleGuide`) never renders a wrap the run doesn't perform.
|
|
5521
|
+
*
|
|
5522
|
+
* Two ways a key qualifies:
|
|
5523
|
+
* - it IS the core field ({@link promptAffixCoreField}), or
|
|
5524
|
+
* - it is a run-time FALLBACK candidate for the type
|
|
5525
|
+
* ({@link NODE_PROMPT_CANDIDATE_FIELDS}) — `computeNodePrompt` picks the
|
|
5526
|
+
* first present candidate and wraps THAT, so i2v's legacy `motionPrompt`
|
|
5527
|
+
* genuinely receives the affixes when `data.prompt` is empty.
|
|
5528
|
+
*
|
|
5529
|
+
* The two rules never collide: no override type declares candidates (guarded in
|
|
5530
|
+
* `node-prompt-fields.test.ts`).
|
|
5531
|
+
*
|
|
5532
|
+
* `undefined` means "the node's primary prompt field" — the common call.
|
|
5533
|
+
*/
|
|
5534
|
+
declare function promptFieldCarriesAffixes(nodeType: string | undefined, promptField: string | undefined): boolean;
|
|
5535
|
+
/** The affix-capable node types, derived from the registry (never hand-listed). */
|
|
5536
|
+
declare const PROMPT_AFFIX_NODE_TYPES: ReadonlySet<string>;
|
|
5537
|
+
|
|
5248
5538
|
interface FactoryPreset {
|
|
5249
5539
|
/** Stable slug "<nodeType>/<kebab-name>" — used as a React key and in exports. */
|
|
5250
5540
|
readonly id: string;
|
|
@@ -5334,32 +5624,6 @@ declare const OBJECT_ASSET_PRESETS: Record<ObjectPresetAssetType, readonly strin
|
|
|
5334
5624
|
/** Prompt-fragment maps per asset type — backend buildVariantPrompt reads this. */
|
|
5335
5625
|
declare const OBJECT_ASSET_PROMPTS: Record<ObjectPresetAssetType, Record<string, string>>;
|
|
5336
5626
|
|
|
5337
|
-
/** Which prompt field a snippet belongs to. Negative-target snippets only
|
|
5338
|
-
* surface in negative-prompt fields, and are bare comma lists by convention
|
|
5339
|
-
* (per Google's Veo guidance, a negative FIELD must name the unwanted thing,
|
|
5340
|
-
* never "no X"). */
|
|
5341
|
-
type SnippetTarget = "prompt" | "negative";
|
|
5342
|
-
/** Node modality a snippet applies to. A node declares its modality once in
|
|
5343
|
-
* the frontend's NODE_PROMPT_FIELDS; the menu shows snippets whose `media`
|
|
5344
|
-
* contains it. */
|
|
5345
|
-
type SnippetMedia = "image" | "video" | "audio" | "text";
|
|
5346
|
-
declare const SNIPPET_MEDIA_VALUES: readonly SnippetMedia[];
|
|
5347
|
-
interface FactorySnippet {
|
|
5348
|
-
/** Stable kebab slug, e.g. "identity-lock". Unique across the catalog. */
|
|
5349
|
-
readonly id: string;
|
|
5350
|
-
readonly name: string;
|
|
5351
|
-
/** One-liner shown in the menu and matched by search. */
|
|
5352
|
-
readonly description?: string;
|
|
5353
|
-
/** The exact fragment inserted into the prompt. Single line; never contains
|
|
5354
|
-
* `{`, `}`, or `@` (guard-tested) so it can never form a mention/variable
|
|
5355
|
-
* token in the editor. */
|
|
5356
|
-
readonly text: string;
|
|
5357
|
-
readonly target: SnippetTarget;
|
|
5358
|
-
readonly media: readonly SnippetMedia[];
|
|
5359
|
-
/** Menu group AND the pill-swap sibling pool (swap lists same-category). */
|
|
5360
|
-
readonly category: string;
|
|
5361
|
-
}
|
|
5362
|
-
|
|
5363
5627
|
/** Factory snippet catalog (v1: image + video; audio/text follow later).
|
|
5364
5628
|
* Order within a category = menu order = pill quick-cycle order. */
|
|
5365
5629
|
|
|
@@ -5450,4 +5714,4 @@ declare function getPickerWiring(nodeType: string | undefined | null): PickerWir
|
|
|
5450
5714
|
*/
|
|
5451
5715
|
declare function buildSurroundFillPrompt(direction: SurroundDirection, userPrompt?: string): string;
|
|
5452
5716
|
|
|
5453
|
-
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 CatalogPack, type CatalogPackMode, 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_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type IdentityLockMode, type ImageReferenceDoctrine, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LlmChatFieldArgs, type LocationMotionPromptInput, type LocationPromptInput, type LocationRefinePromptInput, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, type Material, type MaterialCategory, type ModelChange, type Mood, type MoodCategory, type MoodValue, type MultiDimPickerWiring, type MultiPickerAnalyzerSpec, type MusicEra, type MusicGenre, type MusicGenreCategory, type MusicMoodData, type MusicMoodEntry, type MusicSubgenre, NODE_PROMPT_CANDIDATE_FIELDS, 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 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 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 RegisteredPersonEntry, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, type Seedance2InputsArgs, type Seedance2InputsResult, type Seedance2Mode, type Setting, type SettingCategory, type SidecarCoverageReport, type SingleDimPickerWiring, type SnippetMedia, type SnippetTarget, type SoundComposition, type SoundCompositionFields, type SoundConsumerType, type StructuredPromptFields, type Style, type StylePreset, type Styling, type StylingDimension, type StylingValue, type SuspiciousTermOptions, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TERM_MAX_CHARS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_IDS, type Temporal, type TemporalCategory, type TemporalValue, type TermCarrier, 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, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScenePrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeNegative, composePickerCatalogs, composeSoundHintFromConnections, composeTransitionHintFromConnections, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, deriveTerm, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasUpstreamCharacter, identityRefsSentence, isAnalyzablePicker, isInstrumentalVocal, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, listPickerCatalogs, migratePersonValue, personPacksVersion, pickerFanoutTargets, projectAllCatalogs, projectPickerCatalog, promptBindsFirstFrame, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderStructuredFields, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
|
|
5717
|
+
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 CatalogPack, type CatalogPackMode, 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_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type IdentityLockMode, type ImageReferenceDoctrine, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LlmChatFieldArgs, type LocationMotionPromptInput, type LocationPromptInput, type LocationRefinePromptInput, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, type Material, type MaterialCategory, type ModelChange, type Mood, type MoodCategory, type MoodValue, type MultiDimPickerWiring, type MultiPickerAnalyzerSpec, type MusicEra, type MusicGenre, type MusicGenreCategory, type MusicMoodData, type MusicMoodEntry, type MusicSubgenre, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, type ObjectMotionPromptInput, type ObjectPresetAssetType, type ObjectPromptInput, PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PERSON_DIMENSION_SECTIONS, PERSON_FIELD_BY_DIMENSION, PERSON_IDS, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, type Person, type PersonDimension, type PersonDimensionSection, type PersonPack, type PersonValue, type PhotoGenre, type PhotoGenreCategory, type Photographer, type PhotographerCategory, type PickerAnalyzer, type PickerAnalyzerDescriptor, type PickerAnalyzerSpec, type PickerApplyMode, type PickerCatalog, type PickerCatalogDetail, type PickerCatalogInput, type PickerCatalogSummary, type PickerDimension, type PickerDimensionInput, type PickerDimensionSpec, type PickerGaps, type PickerHintMode, type PickerOption, type PickerOptionInput, type PickerType, type PickerWiring, type PickerWiringEntry, type Pose, type PoseCategory, type PoseValue, type PostProcessEffect, type ProjectPickerCatalogOptions, type ProjectedPickerCatalog, type ProjectedPickerDimension, type ProjectedPickerOption, type PromptFieldSpec, type PromptIconKind, type PromptSegment, type PromptSegmentOrigin, type ProviderPromptDoctrine, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, type RecommendedModel, type ReferenceCounts, type RegisteredPersonEntry, type RenderQuality, type ResolveCharacterMentionsResult, type ResolveLocationMentionsResult, type ResolvePromptArgs, type ResolveVideoReferenceCoreArgs, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, type Seedance2InputsArgs, type Seedance2InputsResult, type Seedance2Mode, type Setting, type SettingCategory, type SidecarCoverageReport, type SingleDimPickerWiring, type SnippetMedia, type SnippetTarget, type SoundComposition, type SoundCompositionFields, type SoundConsumerType, type StructuredPromptFields, type Style, type StylePreset, type Styling, type StylingDimension, type StylingValue, type SuspiciousTermOptions, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TERM_MAX_CHARS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_POSITIONS, type Temporal, type TemporalCategory, type TemporalValue, type TermCarrier, type Transition, type TransitionCategory, type TransitionDuration, type TransitionIntensity, type TransitionPosition, type TransitionTiming, type TransitionTimingOption, VIDEO_WIZARD_CATEGORIES, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, type VeoI2vInputsArgs, type VeoI2vInputsResult, type VideoExtraRef, type VoiceCharacterEntry, type VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, type WardrobeDimension, type WardrobeEntry, type WardrobeValue, type WizardCategory, type WizardNodeContext, type WizardOption, type WizardQuestion, type WizardSelection, appendField, appendMusicMeta, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, assembleImageInput, assembleSunoInput, buildActionFxHints, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScenePrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeNegative, composePickerCatalogs, composeSoundHintFromConnections, composeTransitionHintFromConnections, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, deriveTerm, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptFields, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getSnippetMedia, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasUpstreamCharacter, identityRefsSentence, isAnalyzablePicker, isInstrumentalVocal, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinPromptParts, listPickerCatalogs, migratePersonValue, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, personPacksVersion, pickerFanoutTargets, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderStructuredFields, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
|