@nodaro/shared 2.19.0 → 2.21.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 +548 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1043 -386
- package/dist/index.d.ts +1043 -386
- package/dist/index.js +529 -32
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/credit-identifiers.test.ts +133 -0
- package/src/__tests__/image-pricing-catalog-coverage.test.ts +139 -0
- package/src/__tests__/normalize-node-params.test.ts +36 -0
- package/src/__tests__/organizations-types.test.ts +29 -1
- package/src/__tests__/prompt-length-limits.test.ts +36 -0
- package/src/__tests__/safety-retry-policy.test.ts +47 -0
- package/src/__tests__/suno-credit-type.test.ts +54 -0
- package/src/__tests__/topaz-upscale.test.ts +132 -0
- package/src/__tests__/unresolved-ref-tokens.test.ts +66 -0
- package/src/__tests__/video-analysis-brief.test.ts +61 -0
- package/src/__tests__/video-analysis.test.ts +83 -0
- package/src/__tests__/video-audio-capability.test.ts +38 -4
- package/src/__tests__/video-catalog-totality.test.ts +85 -0
- package/src/__tests__/video-collapse-parity.test.ts +76 -0
- package/src/__tests__/video-ref-video-duration-limits.test.ts +69 -0
- package/src/__tests__/video-request-normalize.test.ts +239 -0
- package/src/credit-identifiers.ts +264 -20
- package/src/index.ts +30 -2
- package/src/model-catalog.ts +287 -6
- package/src/model-constants.ts +185 -13
- package/src/node-refs.ts +82 -0
- package/src/node-runtime-keys.ts +5 -0
- package/src/normalize-node-params.ts +8 -0
- package/src/organizations/types.ts +12 -0
- package/src/organizations/views.ts +114 -0
- package/src/safety-retry-policy.ts +37 -0
- package/src/topaz-upscale.ts +163 -0
- package/src/video-analysis.ts +115 -5
package/dist/index.d.cts
CHANGED
|
@@ -524,6 +524,33 @@ declare const CREDIT_BASE_USD = 0.002;
|
|
|
524
524
|
* (generate-image, image-to-image, edit-image). Single source of truth — the route Zod
|
|
525
525
|
* schemas and the factory-preset guard test all read this. Prompt cap ONLY (not negativePrompt). */
|
|
526
526
|
declare const IMAGE_PROMPT_MAX = 5000;
|
|
527
|
+
/**
|
|
528
|
+
* The ONE aspect-ratio vocabulary the image routes' Zod enums are built from —
|
|
529
|
+
* `/v1/generate-image`, `/v1/image-to-image` and `/v1/edit-image` all declare
|
|
530
|
+
* `z.enum(IMAGE_ASPECT_RATIO_VALUES)` instead of keeping three literal lists
|
|
531
|
+
* that drift.
|
|
532
|
+
*
|
|
533
|
+
* It is the UNION of every ratio any `kind: "image"` catalog entry declares, so
|
|
534
|
+
* a value the picker offers can never 400 at the route. That gap has shipped
|
|
535
|
+
* twice — Wan 2.7's ultra-wide `8:1`/`1:8` (fixed on generate-image only) and
|
|
536
|
+
* Nano Banana 2 Lite's banner `4:1`/`1:4` (still open until this tuple landed).
|
|
537
|
+
* `packages/shared/src/__tests__/image-pricing-catalog-coverage.test.ts` fails
|
|
538
|
+
* the build if a new model declares a ratio this tuple is missing.
|
|
539
|
+
*
|
|
540
|
+
* This enum is a VOCABULARY BOUND, not a per-model gate: it only stops a
|
|
541
|
+
* free-form string from reaching a provider as `image_size`. The per-model gate
|
|
542
|
+
* is the catalog snap (`resolveNormalizedImageGen` → `normalizeModelInput`),
|
|
543
|
+
* which CORRECTS an unsupported ratio and discloses it in the response's
|
|
544
|
+
* `adjustments` — never rejects. So widening this tuple is always safe: it
|
|
545
|
+
* defers a rejection to the correcting snap, which is the desired behaviour.
|
|
546
|
+
*
|
|
547
|
+
* `auto` is model-specific (GPT Image 2 / Nano Banana 2 Lite treat it as
|
|
548
|
+
* "native"); it lives here for the same reason as the rest — the snap drops or
|
|
549
|
+
* replaces it for models that do not declare it.
|
|
550
|
+
*/
|
|
551
|
+
declare const IMAGE_ASPECT_RATIO_VALUES: readonly ["auto", "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "21:9", "4:1", "1:4", "8:1", "1:8"];
|
|
552
|
+
/** A ratio string the image routes accept (pre-snap vocabulary, not a per-model guarantee). */
|
|
553
|
+
type ImageAspectRatio = typeof IMAGE_ASPECT_RATIO_VALUES[number];
|
|
527
554
|
/**
|
|
528
555
|
* Per-provider maximum ASSEMBLED image-prompt length (chars), VERIFIED against
|
|
529
556
|
* each model's official docs.kie.ai schema (2026-06). Providers absent here use
|
|
@@ -560,14 +587,35 @@ declare function getMaxImagePromptChars(provider: string | undefined): number;
|
|
|
560
587
|
declare const VIDEO_PROMPT_MAX = 8000;
|
|
561
588
|
/**
|
|
562
589
|
* Suno prompt / lyrics / content ceiling — the LARGEST any Suno version accepts
|
|
563
|
-
* in custom mode (V4.5 / V4.5PLUS / V4.5ALL / V5 / V5.5 = 5000).
|
|
564
|
-
*
|
|
565
|
-
* {@link getMaxSunoPromptChars} (
|
|
566
|
-
*
|
|
567
|
-
*
|
|
568
|
-
*
|
|
590
|
+
* in custom mode (V4.5 / V4.5PLUS / V4.5ALL / V5 / V5.5 = 5000). NOT the route
|
|
591
|
+
* Zod bound — the routes bind at {@link SUNO_HARD_CEILING} and clamp to the
|
|
592
|
+
* per-version cap via {@link getMaxSunoPromptChars} (3000 non-custom for every
|
|
593
|
+
* version; in custom mode 3000 for V4/V3.5, 5000 for V4.5+/V5) before the job
|
|
594
|
+
* is built. This constant is shared with the editor `maxLength` / counter
|
|
595
|
+
* (warn-don't-block at the per-version cap). `style` and `title` have their
|
|
596
|
+
* own caps ({@link getMaxSunoStyleChars} / {@link SUNO_TITLE_MAX}).
|
|
569
597
|
*/
|
|
570
598
|
declare const SUNO_TEXT_MAX = 5000;
|
|
599
|
+
/**
|
|
600
|
+
* Absolute ceiling for every Suno text field on the route Zod schemas
|
|
601
|
+
* (`prompt`, `lyrics`, `fullLyrics`, `content`, `userPrompt`).
|
|
602
|
+
*
|
|
603
|
+
* WARN-DON'T-BLOCK. The per-version caps ({@link getMaxSunoPromptChars} /
|
|
604
|
+
* {@link getMaxSunoStyleChars}) do the real work — the routes CLAMP to them
|
|
605
|
+
* before building the job. The Zod bound only exists to stop abuse, so it must
|
|
606
|
+
* stay generous: until 2026-09 the routes bounded these fields at
|
|
607
|
+
* {@link SUNO_TEXT_MAX} (5000), which meant a programmatically-set prompt (an
|
|
608
|
+
* agent, an app run, a FieldMapping) was hard-REJECTED with a 400 before the
|
|
609
|
+
* clamp could trim it — three app-report rows on 2026-08-19..31.
|
|
610
|
+
*
|
|
611
|
+
* DISTINCT FROM {@link PROMPT_HARD_CEILING} on purpose: that one is an
|
|
612
|
+
* image/video budget pinned to MAX_IMAGE/VIDEO_PROMPT_CHARS_BY_PROVIDER by its
|
|
613
|
+
* own drift guard. Coupling them would let one modality's limits move the
|
|
614
|
+
* other's. This one has a single invariant, enforced in
|
|
615
|
+
* `__tests__/prompt-length-limits.test.ts`: it MUST stay >= every value
|
|
616
|
+
* getMaxSunoPromptChars / getMaxSunoStyleChars can return.
|
|
617
|
+
*/
|
|
618
|
+
declare const SUNO_HARD_CEILING = 30000;
|
|
571
619
|
/**
|
|
572
620
|
* Absolute ceiling for the `prompt` / `negativePrompt` fields on the image and
|
|
573
621
|
* video routes' Zod schemas. The PER-MODEL limits below (and the editor warning)
|
|
@@ -639,9 +687,11 @@ declare const MAX_TTS_CHARS_BY_PROVIDER: Record<string, number>;
|
|
|
639
687
|
/** Max TTS text length (chars) for a provider: verified override, else {@link TTS_TEXT_MAX}. */
|
|
640
688
|
declare function getMaxTtsChars(provider: string | undefined): number;
|
|
641
689
|
/**
|
|
642
|
-
* Suno per-version field caps (from docs.kie.ai/suno-api/generate-music). The
|
|
643
|
-
* flat
|
|
644
|
-
*
|
|
690
|
+
* Suno per-version field caps (from docs.kie.ai/suno-api/generate-music). The
|
|
691
|
+
* original flat 3000 cap was simultaneously too low for V4.5+/V5 prompts
|
|
692
|
+
* (5000) and too high for `style` (1000) and `title` (80). ({@link
|
|
693
|
+
* SUNO_TEXT_MAX} is 5000 today — the largest per-version prompt cap; the
|
|
694
|
+
* route Zod bound is {@link SUNO_HARD_CEILING}.)
|
|
645
695
|
* - prompt / lyrics: 3000 in non-custom mode (all versions); in custom mode
|
|
646
696
|
* 3000 for V4/V3.5 and 5000 for V4.5 / V4.5PLUS / V4.5ALL / V5 / V5.5.
|
|
647
697
|
* - style: 200 for V4/V3.5, 1000 for V4.5+.
|
|
@@ -794,7 +844,7 @@ type ImageToVideoProvider = typeof IMAGE_TO_VIDEO_PROVIDERS[number];
|
|
|
794
844
|
declare const TEXT_TO_VIDEO_PROVIDERS: readonly ["minimax", "veo3", "veo3.1", "veo3_lite", "kling", "kling-turbo", "kling-3.0", "grok", "seedance", "seedance-2", "seedance-2-fast", "seedance-2-mini", "seedance-2-5", "minimax-h3", "wan", "hailuo-standard", "bytedance-lite", "bytedance-pro", "wan-turbo", "wan-2.7-t2v", "happyhorse", "runway-kie", "gemini-omni-video", "gemini-omni-flash", "wan-3", "wan-3-prime", "ltx-2.3-pro", "ltx-2.3-fast", "grok-imagine-video-1.5", "kling-3-omni", "kling-master", "hailuo-2.3", "hailuo-2.3-pro", "bytedance-pro-fast", "happyhorse-ref2v"];
|
|
795
845
|
type TextToVideoProvider = typeof TEXT_TO_VIDEO_PROVIDERS[number];
|
|
796
846
|
/** Unified video-generation providers (image-to-video ∪ text-to-video) for the generate-video node. */
|
|
797
|
-
declare const VIDEO_GEN_PROVIDERS: readonly ["minimax", "veo3", "veo3.1", "veo3_lite", "kling", "kling-turbo", "kling-3.0", "kling-master", "seedance", "seedance-2", "seedance-2-fast", "seedance-2-mini", "seedance-2-5", "minimax-h3", "hailuo-2.3-pro", "hailuo-2.3", "hailuo-standard", "wan-i2v", "wan-turbo", "bytedance-lite", "bytedance-pro", "bytedance-pro-fast", "grok-i2v", "wan-2.7-i2v", "happyhorse-i2v", "happyhorse-ref2v", "runway-kie", "kling-3-omni", "gemini-omni-video", "gemini-omni-flash", "wan-3", "wan-3-prime", "ltx-2.3-pro", "ltx-2.3-fast", "grok-imagine-video-1.5", ...("veo3" | "kling-3.0" | "seedance-2" | "veo3.1" | "wan-turbo" | "bytedance-lite" | "kling-turbo" | "minimax" | "hailuo-standard" | "grok" | "minimax-h3" | "hailuo-2.3-pro" | "hailuo-2.3" | "veo3_lite" | "gemini-omni-video" | "gemini-omni-flash" | "kling" | "kling-master" | "kling-3-omni" | "grok-imagine-video-1.5" | "seedance" | "seedance-2-fast" | "seedance-2-mini" | "seedance-2-5" | "wan-3" | "wan-3-prime" | "wan" | "wan-2.7-t2v" | "
|
|
847
|
+
declare const VIDEO_GEN_PROVIDERS: readonly ["minimax", "veo3", "veo3.1", "veo3_lite", "kling", "kling-turbo", "kling-3.0", "kling-master", "seedance", "seedance-2", "seedance-2-fast", "seedance-2-mini", "seedance-2-5", "minimax-h3", "hailuo-2.3-pro", "hailuo-2.3", "hailuo-standard", "wan-i2v", "wan-turbo", "bytedance-lite", "bytedance-pro", "bytedance-pro-fast", "grok-i2v", "wan-2.7-i2v", "happyhorse-i2v", "happyhorse-ref2v", "runway-kie", "kling-3-omni", "gemini-omni-video", "gemini-omni-flash", "wan-3", "wan-3-prime", "ltx-2.3-pro", "ltx-2.3-fast", "grok-imagine-video-1.5", ...("veo3" | "kling-3.0" | "seedance-2" | "veo3.1" | "wan-turbo" | "bytedance-lite" | "kling-turbo" | "minimax" | "hailuo-standard" | "grok" | "minimax-h3" | "hailuo-2.3-pro" | "hailuo-2.3" | "veo3_lite" | "gemini-omni-video" | "gemini-omni-flash" | "kling" | "kling-master" | "kling-3-omni" | "grok-imagine-video-1.5" | "seedance" | "seedance-2-fast" | "seedance-2-mini" | "seedance-2-5" | "wan-3" | "wan-3-prime" | "wan" | "wan-2.7-t2v" | "ltx-2.3-pro" | "ltx-2.3-fast" | "happyhorse" | "happyhorse-ref2v" | "bytedance-pro" | "bytedance-pro-fast" | "runway-kie")[]];
|
|
798
848
|
type VideoGenProvider = typeof VIDEO_GEN_PROVIDERS[number];
|
|
799
849
|
/**
|
|
800
850
|
* Video models that expose DISTINCT provider ids per mode (text-to-video vs
|
|
@@ -1270,6 +1320,53 @@ declare const VIDEO_REF_LIMITS_BY_PROVIDER: Record<string, {
|
|
|
1270
1320
|
videos?: number;
|
|
1271
1321
|
audio?: number;
|
|
1272
1322
|
} | undefined>;
|
|
1323
|
+
/** Per-reference-video duration bounds, in seconds. */
|
|
1324
|
+
interface RefVideoDurationLimit {
|
|
1325
|
+
minSec: number;
|
|
1326
|
+
maxSec: number;
|
|
1327
|
+
/** Cap on the SUM of all reference-video durations, when the provider has one. */
|
|
1328
|
+
maxTotalSec?: number;
|
|
1329
|
+
}
|
|
1330
|
+
/**
|
|
1331
|
+
* Reference-video duration limits, provider-declared.
|
|
1332
|
+
*
|
|
1333
|
+
* `VIDEO_REF_LIMITS_BY_PROVIDER` above caps the reference COUNT; these cap the
|
|
1334
|
+
* duration of each clip. Both routes already ffprobe every reference video to
|
|
1335
|
+
* price the run (ee/billing/seedance2-ref-video-credits.ts and
|
|
1336
|
+
* minimax-h3-credits.ts), so the numbers are in hand before the job exists —
|
|
1337
|
+
* and until 2026-09-02 they were discarded, which is why "Each reference video
|
|
1338
|
+
* must be between 2 and 30 seconds" and "video duration 52838 ms, expected
|
|
1339
|
+
* [2000, 15000] ms" were reaching users as post-payment provider rejects
|
|
1340
|
+
* (app-reports §11.3).
|
|
1341
|
+
*
|
|
1342
|
+
* Data-driven, exactly like SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER above:
|
|
1343
|
+
* only providers with a VERIFIED documented limit are listed, so an unknown
|
|
1344
|
+
* provider is never false-rejected.
|
|
1345
|
+
*
|
|
1346
|
+
* Sources: docs.kie.ai/market/bytedance/seedance-2-5 ("Single video duration:
|
|
1347
|
+
* [2, 30] seconds"; "Total duration of reference videos must not exceed 30
|
|
1348
|
+
* seconds") and docs.kie.ai/market/minimax-h3/reference-to-video (reference
|
|
1349
|
+
* videos are "2 to 15 seconds" each and "the total duration of all reference
|
|
1350
|
+
* videos cannot exceed 15 seconds", up to 3 videos) — both fetched 2026-09-02.
|
|
1351
|
+
*/
|
|
1352
|
+
declare const VIDEO_REF_VIDEO_DURATION_LIMITS: Record<string, RefVideoDurationLimit | undefined>;
|
|
1353
|
+
/**
|
|
1354
|
+
* Validate probed reference-video durations against the provider's limits.
|
|
1355
|
+
*
|
|
1356
|
+
* Non-finite / non-positive entries are IGNORED, never rejected: the probe
|
|
1357
|
+
* helpers treat an unreadable clip as a worst-case duration for pricing, and
|
|
1358
|
+
* turning a failed ffprobe into a user-facing 400 would block legitimate runs
|
|
1359
|
+
* on a transient probe failure. Callers therefore pass the RAW per-URL probe
|
|
1360
|
+
* outcomes (a rejected ffprobe arrives here as NaN) — an ignored entry also
|
|
1361
|
+
* contributes nothing to the `maxTotalSec` sum, so a probe blip can never push
|
|
1362
|
+
* an otherwise-legal set over the total cap either.
|
|
1363
|
+
*/
|
|
1364
|
+
declare function checkRefVideoDurations(provider: string, durationsSec: readonly number[]): {
|
|
1365
|
+
ok: true;
|
|
1366
|
+
} | {
|
|
1367
|
+
ok: false;
|
|
1368
|
+
message: string;
|
|
1369
|
+
};
|
|
1273
1370
|
/**
|
|
1274
1371
|
* Video generation models whose provider API natively accepts a "match the
|
|
1275
1372
|
* visual input's aspect" token, mapped to that provider's EXACT token.
|
|
@@ -1379,8 +1476,8 @@ interface VideoAudioCapability {
|
|
|
1379
1476
|
/**
|
|
1380
1477
|
* Per-model audio capability. Only models that produce SOME audio are listed;
|
|
1381
1478
|
* anything absent defaults to `{ mode: "none" }` via `getVideoAudioCapability`,
|
|
1382
|
-
* so silent models (minimax, hailuo, wan, grok-i2v,
|
|
1383
|
-
*
|
|
1479
|
+
* so silent models (minimax, hailuo, wan-i2v, grok-i2v, runway, pika, …) need
|
|
1480
|
+
* no entry. New audio-capable models MUST be added here — the
|
|
1384
1481
|
* `video-audio-capability` guard test cross-checks this map against the model
|
|
1385
1482
|
* configs' `extraParams.sound` / `generate_audio` + VEO/Seedance-2 sets so a
|
|
1386
1483
|
* forgotten entry fails CI rather than silently disabling audio.
|
|
@@ -1841,10 +1938,402 @@ interface ExtraRefCharacterContext {
|
|
|
1841
1938
|
*/
|
|
1842
1939
|
declare function expandExtraRefsToConnectedReferences(extras: ReadonlyArray<ExtraRefInput> | undefined, lookupCharacterContext?: (slug: string) => ExtraRefCharacterContext | undefined): ConnectedReference[];
|
|
1843
1940
|
|
|
1941
|
+
/**
|
|
1942
|
+
* Model catalog — single source of truth for what each Nodaro-exposed model
|
|
1943
|
+
* is, who made it, what it's good for, and which knobs it accepts.
|
|
1944
|
+
*
|
|
1945
|
+
* Consumed by:
|
|
1946
|
+
* - Backend MCP `list_models` tool (renders the nested per-kind / per-family
|
|
1947
|
+
* response so Claude can pick the right model for a user's intent)
|
|
1948
|
+
* - (future) Frontend config panels — today they read parallel registries
|
|
1949
|
+
* in `frontend/src/components/editor/config-panels/model-options.ts`; a
|
|
1950
|
+
* follow-up will migrate them to import from here.
|
|
1951
|
+
*
|
|
1952
|
+
* Authoring rules:
|
|
1953
|
+
* - Keep `description` to one line (≤120 chars). It's what Claude reads to
|
|
1954
|
+
* decide which model to use.
|
|
1955
|
+
* - `useCases` is a small set of short tags (1-3 words) — verbs/nouns Claude
|
|
1956
|
+
* can match against user intent ("typography", "character", "fast",
|
|
1957
|
+
* "cinematic"). Stay consistent across entries: don't write "text" in one
|
|
1958
|
+
* and "typography" in another.
|
|
1959
|
+
* - `aspectRatios` / `resolutions` / `qualities` only appear when the model
|
|
1960
|
+
* actually exposes that lever (e.g., Nano Banana base has no `resolution`).
|
|
1961
|
+
* - `durations` is in seconds.
|
|
1962
|
+
* - `pricing[0]` is ALWAYS the default variant (the bare id without a
|
|
1963
|
+
* composite suffix like `:4K` or `:high`).
|
|
1964
|
+
* - Costs are sourced from `STATIC_CREDIT_COSTS` (see backend
|
|
1965
|
+
* `src/billing/credits.ts`). Keep them in sync if the table changes.
|
|
1966
|
+
* - After editing `MODEL_CATALOG` or `MODEL_RECOMMENDATIONS`, run
|
|
1967
|
+
* `npm run gen:skills` (from `backend/`) to refresh the public
|
|
1968
|
+
* `docs/choosing-models.md` guide. CI (`gen:skills:check`) fails on drift.
|
|
1969
|
+
*/
|
|
1970
|
+
type ModelKind = "image" | "video" | "audio";
|
|
1971
|
+
type ModelMode = "t2i" | "i2i" | "edit" | "upscale" | "remove-bg" | "i2v" | "t2v" | "v2v" | "extend" | "motion-transfer" | "lip-sync" | "video-upscale" | "tts" | "music" | "sfx" | "stt" | "voice-clone" | "voice-design" | "voice-changer" | "isolation" | "dubbing" | "forced-alignment" | "dialogue" | "video-analysis" | "video-audit";
|
|
1972
|
+
interface PriceVariant {
|
|
1973
|
+
/** Composite identifier as it appears in `STATIC_CREDIT_COSTS`. */
|
|
1974
|
+
identifier: string;
|
|
1975
|
+
/** Credits charged at reservation. */
|
|
1976
|
+
credits: number;
|
|
1977
|
+
/** Short human-readable note describing this variant ("1K default", "4K", "with audio"). */
|
|
1978
|
+
note?: string;
|
|
1979
|
+
}
|
|
1980
|
+
interface ModelCatalogEntry {
|
|
1981
|
+
id: string;
|
|
1982
|
+
kind: ModelKind;
|
|
1983
|
+
/**
|
|
1984
|
+
* Operations this model supports. Many video models (minimax, veo3,
|
|
1985
|
+
* seedance) support BOTH i2v AND t2v under the same id — the route handler
|
|
1986
|
+
* picks which KIE endpoint to hit based on whether an image was supplied.
|
|
1987
|
+
* For those, list both modes here so MCP filters and frontend pickers see
|
|
1988
|
+
* the model in either context.
|
|
1989
|
+
*/
|
|
1990
|
+
modes: readonly ModelMode[];
|
|
1991
|
+
/** Vendor / lab that produced the model. Used for UI grouping. */
|
|
1992
|
+
family: string;
|
|
1993
|
+
/** Display name (NOT the id — the id is the API enum value). */
|
|
1994
|
+
label: string;
|
|
1995
|
+
/**
|
|
1996
|
+
* Model LINE for the add-node Models tab — the brand-agnostic product line a
|
|
1997
|
+
* user thinks in ("Nano Banana", "Flux", "VEO", "Kling", "ElevenLabs").
|
|
1998
|
+
* Distinct from `family` (the lab: Google covers Nano Banana + Imagen + VEO).
|
|
1999
|
+
* REQUIRED for every node-creatable model; a completeness guard in
|
|
2000
|
+
* `@nodaro/shared` (model-tree.test.ts) fails if one is missing.
|
|
2001
|
+
*/
|
|
2002
|
+
series?: string;
|
|
2003
|
+
/**
|
|
2004
|
+
* The value written into the creating node's data field when this model is
|
|
2005
|
+
* picked from the Models tab, for models whose catalog id differs from the
|
|
2006
|
+
* stored value. Only `suno-generate` diverges today (id `suno-v5` → `data.model`
|
|
2007
|
+
* "V5"). Omit when the id IS the stored value (the common case).
|
|
2008
|
+
*/
|
|
2009
|
+
dataValue?: string;
|
|
2010
|
+
/** One-liner. Visible to Claude in MCP `list_models` output. */
|
|
2011
|
+
description: string;
|
|
2012
|
+
/** Short tags Claude matches against user intent. */
|
|
2013
|
+
useCases: readonly string[];
|
|
2014
|
+
/**
|
|
2015
|
+
* Capabilities flags: "reference-image", "end-frame", "audio", etc.
|
|
2016
|
+
*
|
|
2017
|
+
* `"video-reference"` (video models only) means the model accepts a
|
|
2018
|
+
* reference VIDEO as a CONDITIONING clip — the r2v transport that
|
|
2019
|
+
* `resolveSeedance2Inputs` builds and that KIE receives as
|
|
2020
|
+
* `reference_video_urls`. It is what generate-video-pro's `extend` render
|
|
2021
|
+
* method needs (a continuation tail off the previous segment), and
|
|
2022
|
+
* `GVP_EXTEND_PROVIDERS` derives from it.
|
|
2023
|
+
*
|
|
2024
|
+
* It is deliberately NOT set on `gemini-omni-video`: that model's
|
|
2025
|
+
* `video_list` input is a V2V SOURCE clip with a trim window, an
|
|
2026
|
+
* auto-determined duration and flat per-generation pricing (see
|
|
2027
|
+
* `runGeminiOmni` in `backend/src/providers/kie/video.ts`) — a different
|
|
2028
|
+
* transport, not a continuation reference.
|
|
2029
|
+
*/
|
|
2030
|
+
features?: readonly string[];
|
|
2031
|
+
aspectRatios?: readonly string[];
|
|
2032
|
+
resolutions?: readonly string[];
|
|
2033
|
+
/**
|
|
2034
|
+
* What this model actually RENDERS for a resolution outside `resolutions`.
|
|
2035
|
+
*
|
|
2036
|
+
* Most providers honour whatever band they are sent, so an off-list value is
|
|
2037
|
+
* best snapped to the NEAREST supported one — a 4k request on a 1080p-max
|
|
2038
|
+
* model renders 1080p. A few instead COLLAPSE anything unrecognised to a
|
|
2039
|
+
* fixed default (MiniMax H3 → 2K, Wan 3.0 → 720p), and for those the nearest
|
|
2040
|
+
* band is the wrong answer in the most expensive direction: snapping a stale
|
|
2041
|
+
* "720p" to H3's cheap 768P would send a value the provider ignores, so we
|
|
2042
|
+
* would bill the 768P tier against a 2K render, and `commit_credits` never
|
|
2043
|
+
* collects the shortfall.
|
|
2044
|
+
*
|
|
2045
|
+
* Declare it in the catalog's own spelling. `normalizeVideoRequestParams`
|
|
2046
|
+
* uses it in place of the nearest-band snap; `video-collapse-parity.test.ts`
|
|
2047
|
+
* pins each declaration to what the provider normalizer actually returns, so
|
|
2048
|
+
* the two cannot drift.
|
|
2049
|
+
*/
|
|
2050
|
+
unlistedResolutionRendersAs?: string;
|
|
2051
|
+
qualities?: readonly string[];
|
|
2052
|
+
durations?: readonly number[];
|
|
2053
|
+
pricing: readonly PriceVariant[];
|
|
2054
|
+
/** Editorial highlight — "best in tier". Surfaces in MCP output as a ⭐. */
|
|
2055
|
+
featured?: boolean;
|
|
2056
|
+
/**
|
|
2057
|
+
* Per-model overrides for the global value label decorations (e.g. Hailuo
|
|
2058
|
+
* 2.3 Pro labels its 1080P resolution as "1080P (6s max)" because the
|
|
2059
|
+
* model caps long durations at lower resolution). Falls back to
|
|
2060
|
+
* `MODEL_VALUE_LABELS` for values not listed here.
|
|
2061
|
+
*/
|
|
2062
|
+
valueLabels?: Record<string, string>;
|
|
2063
|
+
/**
|
|
2064
|
+
* Hide from MCP `list_models` output and tool model enums. Used for legacy
|
|
2065
|
+
* model versions superseded by newer entries — they remain in the catalog
|
|
2066
|
+
* (and accessible via direct API / frontend pickers for back-compat) but
|
|
2067
|
+
* stop showing up in Claude.ai's model picker, which keeps the surface
|
|
2068
|
+
* tight and steers the agent to the current generation.
|
|
2069
|
+
*
|
|
2070
|
+
* Frontend pickers ignore this flag.
|
|
2071
|
+
*/
|
|
2072
|
+
mcpHidden?: boolean;
|
|
2073
|
+
/**
|
|
2074
|
+
* The provider's safety filter is known to be non-deterministic on this
|
|
2075
|
+
* model — the platform retries a blocked request once; `fallback` names
|
|
2076
|
+
* the catalog model to offer when it blocks again.
|
|
2077
|
+
*/
|
|
2078
|
+
safetyFilter?: {
|
|
2079
|
+
stochastic: true;
|
|
2080
|
+
fallback?: string;
|
|
2081
|
+
};
|
|
2082
|
+
}
|
|
2083
|
+
/**
|
|
2084
|
+
* Editorial recommendations — short "best for X" picks Claude can echo back
|
|
2085
|
+
* to the user when they don't know which model to use. Surfaces as a "Quick
|
|
2086
|
+
* recommendations" footer in MCP `list_models` output.
|
|
2087
|
+
*/
|
|
2088
|
+
interface ModelRecommendation {
|
|
2089
|
+
intent: string;
|
|
2090
|
+
modelIds: readonly string[];
|
|
2091
|
+
note: string;
|
|
2092
|
+
}
|
|
2093
|
+
declare const MODEL_RECOMMENDATIONS: readonly ModelRecommendation[];
|
|
2094
|
+
declare const MODEL_CATALOG: Record<string, ModelCatalogEntry>;
|
|
2095
|
+
/**
|
|
2096
|
+
* Lookup helpers for MCP and the future frontend migration.
|
|
2097
|
+
*/
|
|
2098
|
+
declare function listModels(filter?: {
|
|
2099
|
+
kind?: ModelKind;
|
|
2100
|
+
mode?: ModelMode;
|
|
2101
|
+
family?: string;
|
|
2102
|
+
}): ModelCatalogEntry[];
|
|
2103
|
+
/**
|
|
2104
|
+
* Group entries by family, returning a stable order.
|
|
2105
|
+
* Returns Array<{ family: string; models: ModelCatalogEntry[] }>.
|
|
2106
|
+
*/
|
|
2107
|
+
declare function groupByFamily(entries: ModelCatalogEntry[]): Array<{
|
|
2108
|
+
family: string;
|
|
2109
|
+
models: ModelCatalogEntry[];
|
|
2110
|
+
}>;
|
|
2111
|
+
declare function getModel(id: string): ModelCatalogEntry | undefined;
|
|
2112
|
+
type ValidationField = "aspectRatio" | "resolution" | "quality" | "duration";
|
|
2113
|
+
interface ModelValidationIssue {
|
|
2114
|
+
field: ValidationField;
|
|
2115
|
+
message: string;
|
|
2116
|
+
allowed: readonly (string | number)[] | null;
|
|
2117
|
+
}
|
|
2118
|
+
/**
|
|
2119
|
+
* Validate that the user's lever values are supported by the chosen model.
|
|
2120
|
+
*
|
|
2121
|
+
* Returns null on success or the FIRST issue found. We surface a single issue
|
|
2122
|
+
* rather than collecting all so the agent doesn't get a wall of complaints —
|
|
2123
|
+
* fix one thing, retry. Order: aspectRatio → resolution → quality → duration.
|
|
2124
|
+
*
|
|
2125
|
+
* Semantics:
|
|
2126
|
+
* - If the field is undefined, it's never an issue.
|
|
2127
|
+
* - If the catalog entry doesn't list a corresponding lever (e.g. base
|
|
2128
|
+
* nano-banana has no `resolutions`), passing that field IS an issue —
|
|
2129
|
+
* silently dropping it has caused two bugs already.
|
|
2130
|
+
* - If the value is in the allow list, it's valid.
|
|
2131
|
+
*
|
|
2132
|
+
* Unknown model ids are NOT flagged here — the route handler / Zod model
|
|
2133
|
+
* enum is the right gate for that. We just skip validation.
|
|
2134
|
+
*/
|
|
2135
|
+
declare function validateModelInput(modelId: string, input: {
|
|
2136
|
+
aspectRatio?: string;
|
|
2137
|
+
resolution?: string;
|
|
2138
|
+
quality?: string;
|
|
2139
|
+
duration?: number;
|
|
2140
|
+
}): ModelValidationIssue | null;
|
|
2141
|
+
/**
|
|
2142
|
+
* The resolution a Flux 2 model should land on when its stored value is absent
|
|
2143
|
+
* or invalid. Flux 2 exposes ascending megapixel options ("0.5 MP"…"4 MP"), so
|
|
2144
|
+
* snapping to `options[0]` would silently downgrade every node to the cheapest
|
|
2145
|
+
* tier; each variant has a sensible mid default instead. Returns undefined for
|
|
2146
|
+
* every non-Flux-2 model (they snap to `options[0]` normally).
|
|
2147
|
+
*/
|
|
2148
|
+
declare function defaultResolutionFor(modelId: string): string | undefined;
|
|
2149
|
+
/** One correction `normalizeModelInput` made, for disclosure to the user. */
|
|
2150
|
+
interface ModelInputAdjustment {
|
|
2151
|
+
field: "aspectRatio" | "resolution" | "quality" | "duration";
|
|
2152
|
+
/** The value that was asked for. */
|
|
2153
|
+
from: string | number;
|
|
2154
|
+
/** What it became — `undefined` means the lever was dropped entirely. */
|
|
2155
|
+
to: string | number | undefined;
|
|
2156
|
+
reason: string;
|
|
2157
|
+
}
|
|
2158
|
+
interface NormalizedModelInput {
|
|
2159
|
+
aspectRatio?: string;
|
|
2160
|
+
resolution?: string;
|
|
2161
|
+
quality?: string;
|
|
2162
|
+
duration?: number;
|
|
2163
|
+
/** Empty when the input was already valid. */
|
|
2164
|
+
adjustments: ModelInputAdjustment[];
|
|
2165
|
+
}
|
|
2166
|
+
/**
|
|
2167
|
+
* Coerce a model's parameters into a combination the model actually accepts.
|
|
2168
|
+
*
|
|
2169
|
+
* The correcting twin of `validateModelInput`. Validation is right when a
|
|
2170
|
+
* human/agent is composing a single call and can retry (MCP verbs do this).
|
|
2171
|
+
* It is the WRONG answer at a persistence or execution boundary: rejecting
|
|
2172
|
+
* there turns a fixable typo into a failed run — and a failed run takes every
|
|
2173
|
+
* already-generated, already-billed sibling node down with it. Incident
|
|
2174
|
+
* 2026-08-09: one node carrying `gpt-image` + `16:9` (a pair the config panel
|
|
2175
|
+
* cannot produce, written straight into workflow JSON by a non-UI author)
|
|
2176
|
+
* aborted a run whose five other nodes had already produced images.
|
|
2177
|
+
*
|
|
2178
|
+
* Rules, mirroring the config panels' provider-change snap:
|
|
2179
|
+
* - Model has no such lever → drop the value (sending it 400s upstream).
|
|
2180
|
+
* - Value outside the model's allow-list → snap to the model's default
|
|
2181
|
+
* (`defaultResolutionFor`) or the first valid option.
|
|
2182
|
+
* - Then apply cross-field constraints that only hold for certain models.
|
|
2183
|
+
*
|
|
2184
|
+
* Unknown model ids pass through untouched — the route's Zod model enum is the
|
|
2185
|
+
* right gate for those, exactly as in `validateModelInput`.
|
|
2186
|
+
*
|
|
2187
|
+
* Every correction is reported in `adjustments` so callers can disclose what
|
|
2188
|
+
* changed rather than silently handing back something else.
|
|
2189
|
+
*/
|
|
2190
|
+
declare function normalizeModelInput(modelId: string, input: {
|
|
2191
|
+
aspectRatio?: string;
|
|
2192
|
+
resolution?: string;
|
|
2193
|
+
quality?: string;
|
|
2194
|
+
duration?: number;
|
|
2195
|
+
}): NormalizedModelInput;
|
|
2196
|
+
interface NormalizedVideoRequest {
|
|
2197
|
+
aspectRatio?: string;
|
|
2198
|
+
resolution?: string;
|
|
2199
|
+
adjustments: ModelInputAdjustment[];
|
|
2200
|
+
}
|
|
2201
|
+
/**
|
|
2202
|
+
* The video lane's LIMITED normalizer: `aspectRatio` + `resolution` only, and
|
|
2203
|
+
* only when the catalog actually declares the option list.
|
|
2204
|
+
*
|
|
2205
|
+
* Three deliberate differences from `normalizeModelInput`:
|
|
2206
|
+
* 1. It never DROPS a lever. `normalizeModelInput` removes a value whose list
|
|
2207
|
+
* the catalog doesn't declare; on the video lane `resolution` is a pricing
|
|
2208
|
+
* input, so dropping it would lower the reserved tier and `commit_credits`
|
|
2209
|
+
* never collects an upward delta — a params fix would become a money bug.
|
|
2210
|
+
* 2. "Auto" / "adaptive" pass through (see PASSTHROUGH_ASPECT_TOKENS).
|
|
2211
|
+
* 3. It snaps to the NEAREST option, not to `allowed[0]`. `normalizeModelInput`
|
|
2212
|
+
* would turn a portrait 9:21 into landscape 16:9 and a 4k request into the
|
|
2213
|
+
* cheapest 480p; nearest matches what the provider adapters and the MCP
|
|
2214
|
+
* normalizer already do, so all three give ONE answer. Its snap policy is
|
|
2215
|
+
* deliberately left alone — it is shared with the image lane and the
|
|
2216
|
+
* copilot, and PR 4 defers changing it.
|
|
2217
|
+
*
|
|
2218
|
+
* `duration` is deliberately NOT normalized here: the LTX bands make duration
|
|
2219
|
+
* legality resolution-dependent, which a flat catalog list can't express, and
|
|
2220
|
+
* `buildVideoCreditModelIdentifier` already snaps duration onto a seeded tier.
|
|
2221
|
+
* Carrying THAT tier to the wire is `pricedVideoSelection`'s job
|
|
2222
|
+
* (`credit-identifiers.ts`), which runs after this one, once resolution is known.
|
|
2223
|
+
*
|
|
2224
|
+
* An OMITTED lever stays omitted here — filling it is a pricing decision, not a
|
|
2225
|
+
* catalog one, and likewise belongs to `pricedVideoSelection`.
|
|
2226
|
+
*
|
|
2227
|
+
* Case is canonicalised to the catalog's own spelling — the credit identifiers
|
|
2228
|
+
* key their tables case-SENSITIVELY (LTX_DURATION_TIERS), so this is the single
|
|
2229
|
+
* place a "4K" becomes "4k", and it runs before every identifier site.
|
|
2230
|
+
*
|
|
2231
|
+
* Pure — so the credit-identifier preHandler, `computeCredits`, the reservation
|
|
2232
|
+
* site and the payload build can all call it and cannot disagree (spec §4).
|
|
2233
|
+
*/
|
|
2234
|
+
declare function normalizeVideoRequestParams(modelId: string, input: {
|
|
2235
|
+
aspectRatio?: string;
|
|
2236
|
+
resolution?: string;
|
|
2237
|
+
}): NormalizedVideoRequest;
|
|
2238
|
+
interface LabeledOption {
|
|
2239
|
+
value: string;
|
|
2240
|
+
label: string;
|
|
2241
|
+
}
|
|
2242
|
+
/** Return `{value, label}[]` for the model's aspect ratios, or `null` if none. */
|
|
2243
|
+
declare function getAspectRatioOptions(modelId: string): LabeledOption[] | null;
|
|
2244
|
+
/** Return `{value, label}[]` for the model's resolution lever, or `null` if none. */
|
|
2245
|
+
declare function getResolutionOptions(modelId: string): LabeledOption[] | null;
|
|
2246
|
+
/** Return `{value, label}[]` for the model's quality lever, or `null` if none. */
|
|
2247
|
+
declare function getQualityOptions(modelId: string): LabeledOption[] | null;
|
|
2248
|
+
/** Return the model's allowed durations (in seconds), or `null` if none. */
|
|
2249
|
+
declare function getDurationsForModel(modelId: string): number[] | null;
|
|
2250
|
+
/**
|
|
2251
|
+
* Min/max credits across all pricing variants — used by the frontend's
|
|
2252
|
+
* "5–8 cr" range badge in the model dropdown. `null` for models with a
|
|
2253
|
+
* single price point.
|
|
2254
|
+
*/
|
|
2255
|
+
declare function getCreditRange(modelId: string): {
|
|
2256
|
+
min: number;
|
|
2257
|
+
max: number;
|
|
2258
|
+
} | null;
|
|
2259
|
+
/** Whether the model declares a given capability flag in its `features` array. */
|
|
2260
|
+
declare function hasFeature(modelId: string, feature: string): boolean;
|
|
2261
|
+
/**
|
|
2262
|
+
* All ids in the catalog whose `features` includes the given flag. Used by
|
|
2263
|
+
* frontend to build PROVIDERS_WITH_END_FRAME / PROVIDERS_WITH_REFERENCES
|
|
2264
|
+
* lists derived from the catalog.
|
|
2265
|
+
*/
|
|
2266
|
+
declare function modelsWithFeature(feature: string): string[];
|
|
2267
|
+
/**
|
|
2268
|
+
* Map of `{modelId: durations[]}` for every catalog entry whose `modes`
|
|
2269
|
+
* includes the given mode. Used to derive KIE_VIDEO_DURATIONS (mode i2v)
|
|
2270
|
+
* and KIE_T2V_DURATIONS (mode t2v) on the frontend.
|
|
2271
|
+
*/
|
|
2272
|
+
declare function durationsByMode(mode: ModelMode): Record<string, number[]>;
|
|
2273
|
+
/**
|
|
2274
|
+
* Map of `{modelId: LabeledOption[]}` for every catalog entry of the given
|
|
2275
|
+
* kind that exposes a resolution lever. Used to derive
|
|
2276
|
+
* IMAGE_RESOLUTION_OPTIONS / VIDEO_RESOLUTION_OPTIONS on the frontend.
|
|
2277
|
+
*/
|
|
2278
|
+
declare function resolutionOptionsByKind(kind: ModelKind): Record<string, LabeledOption[]>;
|
|
2279
|
+
/**
|
|
2280
|
+
* Map of `{modelId: LabeledOption[]}` for every catalog entry of the given
|
|
2281
|
+
* kind that exposes an aspect_ratio lever.
|
|
2282
|
+
*/
|
|
2283
|
+
declare function aspectRatioOptionsByKind(kind: ModelKind): Record<string, LabeledOption[]>;
|
|
2284
|
+
/** Same shape as `aspectRatioOptionsByKind` but for `qualities`. */
|
|
2285
|
+
declare function qualityOptionsByKind(kind: ModelKind): Record<string, LabeledOption[]>;
|
|
2286
|
+
/** One shaped model row for a picker — capabilities derived from the catalog. */
|
|
2287
|
+
interface ModelMenuOption {
|
|
2288
|
+
/** Catalog id (the API enum value). */
|
|
2289
|
+
id: string;
|
|
2290
|
+
/** Human-readable display name from the catalog. */
|
|
2291
|
+
label: string;
|
|
2292
|
+
/** Resolution levers, `[]` when the model exposes none. */
|
|
2293
|
+
resolutions: LabeledOption[];
|
|
2294
|
+
/** Aspect-ratio levers, `[]` when the model exposes none. */
|
|
2295
|
+
aspectRatios: LabeledOption[];
|
|
2296
|
+
/** Duration levers in seconds (union of i2v+t2v modes); `[]` for image / fixed-duration models. */
|
|
2297
|
+
durations: {
|
|
2298
|
+
value: number;
|
|
2299
|
+
label: string;
|
|
2300
|
+
}[];
|
|
2301
|
+
}
|
|
2302
|
+
/**
|
|
2303
|
+
* Build shaped picker rows for one catalog `kind` from a caller-supplied id
|
|
2304
|
+
* allowlist (the curation — which ids, in what order, stays the caller's). Every
|
|
2305
|
+
* CAPABILITY is derived from the catalog accessors, never hardcoded, so the menu
|
|
2306
|
+
* can't drift as the catalog evolves. Ids absent from the catalog or of the
|
|
2307
|
+
* wrong kind are skipped (so a stale allowlist entry drops out cleanly). Pure;
|
|
2308
|
+
* returns fresh arrays (never aliases the accessor maps).
|
|
2309
|
+
*/
|
|
2310
|
+
declare function buildModelMenu(kind: ModelKind, allowlist: readonly string[]): ModelMenuOption[];
|
|
2311
|
+
/** All `{modelId: {min, max}}` entries that have variable pricing (>1 variant). */
|
|
2312
|
+
declare function creditRangesAll(): Record<string, {
|
|
2313
|
+
min: number;
|
|
2314
|
+
max: number;
|
|
2315
|
+
}>;
|
|
2316
|
+
/**
|
|
2317
|
+
* Tuple of model ids for a given kind + one or more modes. Built for use as
|
|
2318
|
+
* a Zod `z.enum()` argument so MCP tool input schemas stay in sync with the
|
|
2319
|
+
* catalog without manual maintenance.
|
|
2320
|
+
*
|
|
2321
|
+
* Filters out `mcpHidden: true` entries by default — pass `includeHidden`
|
|
2322
|
+
* to surface legacy versions (used internally by validators that still need
|
|
2323
|
+
* to recognize older ids forwarded by direct API callers).
|
|
2324
|
+
*
|
|
2325
|
+
* Pass `kind: null` to skip the kind filter — useful for cross-kind ids
|
|
2326
|
+
* like "grok" (catalog kind=image, modes include both t2i and t2v).
|
|
2327
|
+
*/
|
|
2328
|
+
declare function modelIdsByKindMode(kind: ModelKind | null, modes: readonly ModelMode[], opts?: {
|
|
2329
|
+
includeHidden?: boolean;
|
|
2330
|
+
}): [string, ...string[]];
|
|
2331
|
+
|
|
1844
2332
|
/**
|
|
1845
2333
|
* Build composite credit model identifiers for variable pricing.
|
|
1846
2334
|
* Shared between frontend and backend.
|
|
1847
2335
|
*/
|
|
2336
|
+
|
|
1848
2337
|
/**
|
|
1849
2338
|
* Compute composite model identifier for variable credit pricing.
|
|
1850
2339
|
* Examples: "gpt-image:high", "flux:2K", "nano-banana-pro:4K", "ideogram:TURBO",
|
|
@@ -1854,7 +2343,57 @@ declare function expandExtraRefsToConnectedReferences(extras: ReadonlyArray<Extr
|
|
|
1854
2343
|
* megapixel count plus (Flux 2 Max) the number of reference images attached at request time.
|
|
1855
2344
|
* For video models, uses duration/sound params when the model has variable pricing.
|
|
1856
2345
|
*/
|
|
1857
|
-
declare function buildCreditModelIdentifier(provider: string, quality?: string, resolution?: string, renderingSpeed?: string, targetResolution?: string, referenceImageCount?: number): string;
|
|
2346
|
+
declare function buildCreditModelIdentifier(provider: string, quality?: string, resolution?: string, renderingSpeed?: string, targetResolution?: string, referenceImageCount?: number): string;
|
|
2347
|
+
/**
|
|
2348
|
+
* An image request's catalog-snapped parameters PLUS the credit identifier
|
|
2349
|
+
* priced off them.
|
|
2350
|
+
*
|
|
2351
|
+
* `adjustments` is the disclosure channel: every lever this changed, why, and
|
|
2352
|
+
* to what. Routes return it in the 200 body so a caller learns their value was
|
|
2353
|
+
* corrected instead of silently getting something else.
|
|
2354
|
+
*/
|
|
2355
|
+
interface NormalizedImageGen {
|
|
2356
|
+
/** Credit identifier, priced off the SNAPPED `resolution` / `quality`. */
|
|
2357
|
+
identifier: string;
|
|
2358
|
+
/** The catalog model id the params were snapped against (post T2I→I2I swap). */
|
|
2359
|
+
modelId: string;
|
|
2360
|
+
aspectRatio?: string;
|
|
2361
|
+
resolution?: string;
|
|
2362
|
+
quality?: string;
|
|
2363
|
+
/** Empty when the caller's values were already valid for `modelId`. */
|
|
2364
|
+
adjustments: ModelInputAdjustment[];
|
|
2365
|
+
}
|
|
2366
|
+
/**
|
|
2367
|
+
* Snap an image request's catalog-governed levers to a combination the model
|
|
2368
|
+
* actually accepts, and price the credit identifier off the SNAPPED values.
|
|
2369
|
+
*
|
|
2370
|
+
* WHY THE SNAP LIVES HERE and not at the call site. Both image routes compute
|
|
2371
|
+
* their credit identifier TWICE — once in the `creditGuard` preHandler (the
|
|
2372
|
+
* CHECK) and once at the handler's `reserveCreditsForJob` (the DEBIT) — and a
|
|
2373
|
+
* dedicated test asserts the two stay byte-identical (see
|
|
2374
|
+
* `backend/src/routes/__tests__/generate-image.test.ts`, "CHECK === DEBIT").
|
|
2375
|
+
* `resolution` and `quality` are pricing dimensions, so a snap applied at only
|
|
2376
|
+
* one of those sites breaks that invariant, and `commit_credits` never collects
|
|
2377
|
+
* an upward delta — the reserve IS the charge. Putting the snap inside the
|
|
2378
|
+
* primitive makes CHECK, DEBIT and the workflow orchestrator agree by
|
|
2379
|
+
* construction rather than by everyone remembering to call a normalizer.
|
|
2380
|
+
*
|
|
2381
|
+
* Inputs are typed `unknown` on purpose: the preHandler runs BEFORE Zod, so a
|
|
2382
|
+
* caller can put a number or an object in `resolution`. Non-strings become
|
|
2383
|
+
* `undefined` rather than reaching `normalizeModelInput` as a lie.
|
|
2384
|
+
*
|
|
2385
|
+
* Unknown model ids pass through untouched (same contract as
|
|
2386
|
+
* `normalizeModelInput`) — the route's provider enum is the gate for those.
|
|
2387
|
+
*/
|
|
2388
|
+
declare function resolveNormalizedImageGen(opts: {
|
|
2389
|
+
provider: string | undefined;
|
|
2390
|
+
aspectRatio?: unknown;
|
|
2391
|
+
quality?: unknown;
|
|
2392
|
+
resolution?: unknown;
|
|
2393
|
+
renderingSpeed?: unknown;
|
|
2394
|
+
refCount: number;
|
|
2395
|
+
swapToI2i?: boolean;
|
|
2396
|
+
}): NormalizedImageGen;
|
|
1858
2397
|
/**
|
|
1859
2398
|
* Reference-aware image-generation credit identifier — the SINGLE source of
|
|
1860
2399
|
* truth shared by the single-node routes (`/v1/generate-image`,
|
|
@@ -1883,6 +2422,69 @@ declare function resolveImageGenCreditIdentifier(opts: {
|
|
|
1883
2422
|
swapToI2i?: boolean;
|
|
1884
2423
|
}): string;
|
|
1885
2424
|
declare function buildVideoCreditModelIdentifier(provider: string, duration?: number | string, sound?: boolean, nodeType?: "image-to-video" | "text-to-video", mode?: string, resolution?: string, hasVideoRef?: boolean): string;
|
|
2425
|
+
/** What the video credit identifier PRICES for a request, for the levers whose
|
|
2426
|
+
* priced value must also be the value we SEND. */
|
|
2427
|
+
interface PricedVideoSelection {
|
|
2428
|
+
/** The resolution band the reservation is priced at when the request omitted
|
|
2429
|
+
* one — and only where the platform DECLARES that band as the provider's own
|
|
2430
|
+
* default. `undefined` means "leave `resolution` exactly as the request had
|
|
2431
|
+
* it": either the caller supplied one, or the provider's real default is not
|
|
2432
|
+
* known to be the band the identifier assumes. */
|
|
2433
|
+
resolution?: string;
|
|
2434
|
+
/** The seeded duration tier the reservation is priced at (LTX only — the one
|
|
2435
|
+
* family whose duration ladder is per-band and case-sensitively seeded).
|
|
2436
|
+
* `undefined` for every other provider: their duration passes through. */
|
|
2437
|
+
duration?: number;
|
|
2438
|
+
/** Non-empty only for a lever the caller ASKED for and did not get (an LTX
|
|
2439
|
+
* 7s snapped to the 6s tier). Filling an omitted lever is a disclosure of
|
|
2440
|
+
* the price already being charged, not a correction, so it reports nothing. */
|
|
2441
|
+
adjustments: ModelInputAdjustment[];
|
|
2442
|
+
}
|
|
2443
|
+
/**
|
|
2444
|
+
* The other half of the video money path: `normalizeVideoRequestParams` snaps a
|
|
2445
|
+
* value the CATALOG governs; this returns the value the PRICE ladder governs.
|
|
2446
|
+
*
|
|
2447
|
+
* Two defects it closes, both of the same shape — the identifier prices one
|
|
2448
|
+
* thing and the wire carries another, and `commit_credits` (migration 176) only
|
|
2449
|
+
* ever refunds a surplus, so the reservation is the final charge:
|
|
2450
|
+
*
|
|
2451
|
+
* 1. **Absent resolution.** `buildVideoCreditModelIdentifier` prices an omitted
|
|
2452
|
+
* `resolution` as a concrete band (LTX → 1080p; a
|
|
2453
|
+
* {@link PRICING_DEFAULT_RESOLUTION} member → its declared default). Leaving
|
|
2454
|
+
* the key unset then lets the provider pick — documented for the KIE members
|
|
2455
|
+
* (their `extraParams` pin the same band) but UNDOCUMENTED for LTX on
|
|
2456
|
+
* Replicate. Sending the band we priced makes the two agree by construction.
|
|
2457
|
+
*
|
|
2458
|
+
* The fill is deliberately limited to providers with a DECLARED default.
|
|
2459
|
+
* `buildVideoCreditModelIdentifier` also has un-declared fallbacks — the
|
|
2460
|
+
* cheapest tier for a resolution-priced provider with no
|
|
2461
|
+
* `PRICING_DEFAULT_RESOLUTION` row — and those are a HEDGE, not a verified
|
|
2462
|
+
* provider default: seedance-2 / -fast / -mini pin `resolution: "720p"`
|
|
2463
|
+
* KIE-side while the identifier prices 480p, so filling 480p would downgrade
|
|
2464
|
+
* the render to match a price we already know is wrong. That mismatch is a
|
|
2465
|
+
* pre-existing identifier bug and is fixed by seeding the row, not here.
|
|
2466
|
+
*
|
|
2467
|
+
* 2. **LTX duration.** The LTX ladder is seeded per (band × seconds), so the
|
|
2468
|
+
* identifier snaps 7s onto the 6s tier. Sending 7s bills six and renders
|
|
2469
|
+
* seven. Most other providers' durations pass through untouched: their
|
|
2470
|
+
* legality is a flat catalog list the caller already sees, and their tiers
|
|
2471
|
+
* are ranges (`durationSec <= maxSeconds`), not seeded points. Gemini Omni
|
|
2472
|
+
* is the one other seeded ladder — `GEMINI_OMNI_DURATIONS` ([4, 6, 8, 10])
|
|
2473
|
+
* is nearest-snapped by `buildVideoCreditModelIdentifier`, the same shape
|
|
2474
|
+
* as LTX — but this function does not carry it yet: a 7s request prices
|
|
2475
|
+
* `:6` while 7s is still what gets sent. Pre-existing, out of scope here,
|
|
2476
|
+
* and ticketed as a follow-up (`geminiOmniPricedTier`, mirroring
|
|
2477
|
+
* `ltxPricedTier`).
|
|
2478
|
+
*
|
|
2479
|
+
* Pure, and IDEMPOTENT against the identifier: feeding its output back in
|
|
2480
|
+
* cannot move the reserved tier. `video-request-normalize.test.ts` proves that
|
|
2481
|
+
* over every provider × resolution × duration.
|
|
2482
|
+
*/
|
|
2483
|
+
declare function pricedVideoSelection(opts: {
|
|
2484
|
+
provider: string;
|
|
2485
|
+
resolution?: string;
|
|
2486
|
+
duration?: number | string;
|
|
2487
|
+
}): PricedVideoSelection;
|
|
1886
2488
|
/**
|
|
1887
2489
|
* Compute composite model identifier for motion control with duration-tiered pricing.
|
|
1888
2490
|
* Examples: "kling-3.0-motion:10s", "kling-3.0-motion:1080p:15s", "motion-transfer:5s"
|
|
@@ -1895,6 +2497,47 @@ declare function buildVideoCreditModelIdentifier(provider: string, duration?: nu
|
|
|
1895
2497
|
* @param videoDuration - Reference video duration in seconds (defaults to 10s, unused for Wan Animate)
|
|
1896
2498
|
*/
|
|
1897
2499
|
declare function buildMotionCreditModelIdentifier(provider: string, resolution: string, videoDuration?: number): string;
|
|
2500
|
+
/**
|
|
2501
|
+
* The Suno operations whose credit key depends on the model VERSION.
|
|
2502
|
+
*
|
|
2503
|
+
* `/v1/suno/generate`, `/cover` and `/extend` resolve their creditGuard
|
|
2504
|
+
* identifier through `sunoCreditType(model, <operation>)` (routes/suno.ts
|
|
2505
|
+
* :247-249, :335-337, :407-409). EVERY other Suno route charges a flat
|
|
2506
|
+
* per-operation key and ignores the version the node carries — mashup (:648),
|
|
2507
|
+
* add-instrumental (:852), add-vocals (:907), upload-extend (:1016),
|
|
2508
|
+
* replace-section (:710), style-boost (:771), convert-wav (:962),
|
|
2509
|
+
* lyrics (:482), music-video (:594), voice (:1218).
|
|
2510
|
+
*
|
|
2511
|
+
* Anything that QUOTES a Suno price — a dropdown row, a node badge, the
|
|
2512
|
+
* workflow-credit estimator — must follow the same split, or it displays a
|
|
2513
|
+
* credit key the route never charges.
|
|
2514
|
+
*/
|
|
2515
|
+
declare const SUNO_VERSION_PRICED_OPERATIONS: readonly ["suno-generate", "suno-cover", "suno-extend"];
|
|
2516
|
+
/**
|
|
2517
|
+
* The seven Suno operations that appear behind a select/dropdown UI (model
|
|
2518
|
+
* pickers, node badges, the credit estimator) — the three version-priced
|
|
2519
|
+
* operations above, plus the four flat-key operations exercised by
|
|
2520
|
+
* `sunoCreditType`'s own test suite. A readonly tuple so later tasks (the
|
|
2521
|
+
* model dropdowns, node badges) can iterate or count it without redeclaring
|
|
2522
|
+
* the list and drifting from this one.
|
|
2523
|
+
*/
|
|
2524
|
+
declare const SUNO_SELECT_OPERATIONS: readonly ["suno-generate", "suno-cover", "suno-extend", "suno-mashup", "suno-add-instrumental", "suno-add-vocals", "suno-upload-extend"];
|
|
2525
|
+
/**
|
|
2526
|
+
* OUR Nodaro credit key for a Suno operation, given the model version and the
|
|
2527
|
+
* operation (which is also the node type and the BullMQ job name).
|
|
2528
|
+
*
|
|
2529
|
+
* This is the single source of truth for the Suno pricing contract, shared by
|
|
2530
|
+
* the reservation path (routes/suno.ts creditGuard), the egress seam
|
|
2531
|
+
* (workers/handlers/suno.ts `modelKey`, which must match what was reserved),
|
|
2532
|
+
* both workflow-credit estimators (ee/billing/credits.ts and the frontend
|
|
2533
|
+
* config-panels/helpers.ts), the seven Suno model dropdowns and the three Suno
|
|
2534
|
+
* node badges. It is a billing key — NEVER a KIE provider id — which is what
|
|
2535
|
+
* satisfies the B3 egress invariant.
|
|
2536
|
+
*
|
|
2537
|
+
* V5_5 → "suno-v5_5", V5 → "suno-v5", any other version → the operation key.
|
|
2538
|
+
* A non-version-priced operation is returned unchanged.
|
|
2539
|
+
*/
|
|
2540
|
+
declare function sunoCreditType(model: string | undefined, operation: string): string;
|
|
1898
2541
|
|
|
1899
2542
|
/**
|
|
1900
2543
|
* Pure credit estimators for video-utility nodes (loop-video, trim-video,
|
|
@@ -1970,6 +2613,79 @@ declare function assembleNarratedVideoCredits(blockCount: number): number;
|
|
|
1970
2613
|
* (orchestrator input-resolver) can use one source of truth. */
|
|
1971
2614
|
declare function extractVideoDurationFromNode(data: Record<string, unknown> | undefined): number | undefined;
|
|
1972
2615
|
|
|
2616
|
+
/**
|
|
2617
|
+
* Topaz image upscale — the single authority for "which lever did the user
|
|
2618
|
+
* pull, what do we send, and what do we charge".
|
|
2619
|
+
*
|
|
2620
|
+
* KIE's `topaz/image-upscale` takes exactly ONE quality lever:
|
|
2621
|
+
* upscale_factor: "1" | "2" | "4" (default "2")
|
|
2622
|
+
* There is no target-resolution parameter (docs.kie.ai/market/topaz/image-upscale,
|
|
2623
|
+
* verified 2026-09-02). The editor nevertheless shipped TWO controls — an
|
|
2624
|
+
* `upscaleFactor` select AND a `targetResolution` select (2K/4K/8K) — and billed
|
|
2625
|
+
* on the second one, which never reached the worker. Everyone who bought 4K or
|
|
2626
|
+
* 8K got a 2x render at 2x/4x the price (app-reports triage 2026-09-01 §4.3).
|
|
2627
|
+
*
|
|
2628
|
+
* So: the FACTOR is the lever. `targetResolution` survives only as a legacy
|
|
2629
|
+
* input (stored node data, old API/MCP callers) and is mapped forward here.
|
|
2630
|
+
* The credit tier is derived from the SAME resolution, which is why callers
|
|
2631
|
+
* must pass `creditTier` into `buildCreditModelIdentifier` rather than the raw
|
|
2632
|
+
* request value — that is what makes CHECK = DEBIT = SENT.
|
|
2633
|
+
*
|
|
2634
|
+
* The composite `topaz-image-upscale:4K` is retained as the id of the 4x tier
|
|
2635
|
+
* (migration 288 wrote that row; renaming it would need a pricing migration for
|
|
2636
|
+
* zero user-visible gain). Read it as "the top Topaz tier", not as a promise of
|
|
2637
|
+
* 4096 pixels. `topaz-image-upscale:8K` stays priced in STATIC_CREDIT_COSTS so
|
|
2638
|
+
* historical usage_logs still resolve, but nothing can reserve it any more.
|
|
2639
|
+
*
|
|
2640
|
+
* Resolution order (fix round 1, 2026-09-02 review):
|
|
2641
|
+
* 1. Resolve the WINNING factor first — a valid `upscaleFactor` always wins;
|
|
2642
|
+
* an invalid one falls through to `targetResolution` exactly as if it had
|
|
2643
|
+
* never been sent, rather than freezing the default before the legacy
|
|
2644
|
+
* tier gets a chance to raise it (an invalid factor + a stored 4K/8K tier
|
|
2645
|
+
* must still resolve — and bill — at the tier's factor, not the default).
|
|
2646
|
+
* 2. Only THEN build `adjustments`, so every `to` reflects the resolved
|
|
2647
|
+
* factor rather than an intermediate guess, and every `from` is the raw,
|
|
2648
|
+
* untransformed input string (never the trimmed/uppercased copy used
|
|
2649
|
+
* internally to match).
|
|
2650
|
+
* 3. A valid `upscaleFactor` alongside a `targetResolution` it disagrees
|
|
2651
|
+
* with emits an informational (not corrective) adjustment — the stored
|
|
2652
|
+
* legacy choice is being overridden, not silently dropped — with
|
|
2653
|
+
* `to: undefined` because nothing was actually sent for that field.
|
|
2654
|
+
* Agreement (they resolve to the same factor) is reported as nothing:
|
|
2655
|
+
* there is no override to disclose.
|
|
2656
|
+
*/
|
|
2657
|
+
type TopazUpscaleFactor = "1" | "2" | "4";
|
|
2658
|
+
declare const TOPAZ_UPSCALE_FACTORS: readonly TopazUpscaleFactor[];
|
|
2659
|
+
/** KIE's own default when `upscale_factor` is omitted (providers/kie/models.ts). */
|
|
2660
|
+
declare const TOPAZ_DEFAULT_UPSCALE_FACTOR: TopazUpscaleFactor;
|
|
2661
|
+
interface TopazUpscaleAdjustment {
|
|
2662
|
+
field: "upscaleFactor" | "targetResolution";
|
|
2663
|
+
/** The raw, untransformed value as received — never trimmed or case-normalized. */
|
|
2664
|
+
from: string;
|
|
2665
|
+
/**
|
|
2666
|
+
* The resolved factor this adjustment corresponds to, or `undefined` for the
|
|
2667
|
+
* informational "your stored targetResolution was overridden" notice, which
|
|
2668
|
+
* names nothing to switch TO — `upscaleFactor` already won.
|
|
2669
|
+
*/
|
|
2670
|
+
to: string | undefined;
|
|
2671
|
+
reason: string;
|
|
2672
|
+
}
|
|
2673
|
+
interface TopazUpscaleResolution {
|
|
2674
|
+
/** Sent to KIE as `upscale_factor`. Always set — never rely on the model default. */
|
|
2675
|
+
upscaleFactor: TopazUpscaleFactor;
|
|
2676
|
+
/**
|
|
2677
|
+
* Passed VERBATIM as `buildCreditModelIdentifier`'s `targetResolution` arg.
|
|
2678
|
+
* `undefined` = the bare id (1x / 2x); `"4K"` = the 4x tier.
|
|
2679
|
+
*/
|
|
2680
|
+
creditTier: "4K" | undefined;
|
|
2681
|
+
/** Non-empty when a legacy or out-of-enum value was coerced or overridden. */
|
|
2682
|
+
adjustments: TopazUpscaleAdjustment[];
|
|
2683
|
+
}
|
|
2684
|
+
declare function resolveTopazUpscale(input: {
|
|
2685
|
+
upscaleFactor?: string | null;
|
|
2686
|
+
targetResolution?: string | null;
|
|
2687
|
+
}): TopazUpscaleResolution;
|
|
2688
|
+
|
|
1973
2689
|
interface ExposableField {
|
|
1974
2690
|
readonly key: string;
|
|
1975
2691
|
readonly label: string;
|
|
@@ -4093,6 +4809,10 @@ declare function canonicalVarName(label: string): string;
|
|
|
4093
4809
|
* SUPPRESS auto-injection of a connected node the author already placed
|
|
4094
4810
|
* explicitly via `{label}` (so it isn't injected twice). `matchAll` over the
|
|
4095
4811
|
* global pattern does not mutate its lastIndex, so sharing the constant is safe.
|
|
4812
|
+
*
|
|
4813
|
+
* Deliberately NOT `REF_TOKEN_NAMESPACE_PREFIXES`: widening this changes
|
|
4814
|
+
* run-time auto-injection on BOTH engines (follow-up ticket), not just the
|
|
4815
|
+
* editor.
|
|
4096
4816
|
*/
|
|
4097
4817
|
declare function extractReferencedLabels(...texts: ReadonlyArray<string | undefined | null>): Set<string>;
|
|
4098
4818
|
/** Handle → combine-order category for same-label `{label}` merging. Lower wins
|
|
@@ -4194,6 +4914,55 @@ declare function combineSameLabelRefs(candidates: ReadonlyArray<RefCandidate>):
|
|
|
4194
4914
|
* Iterates until stable to handle nested refs (e.g. {List} → {Animal1} → "dog").
|
|
4195
4915
|
*/
|
|
4196
4916
|
declare function resolveNodeRefs(text: string, labelToOutput: ReadonlyMap<string, string>): string;
|
|
4917
|
+
/**
|
|
4918
|
+
* Token namespaces that are NOT node-label references. `{image:1:face}` is the
|
|
4919
|
+
* unified-reference grammar, `{slot:x}` is recast's, `{video:N}`/`{audio:N}`
|
|
4920
|
+
* are reference handles, and `{ref:<id>}` is the id-addressed reference form —
|
|
4921
|
+
* all five are substituted by their own resolvers (`resolveReferenceTokens`,
|
|
4922
|
+
* `resolveRefIdTokens`, the recast slot pass), not by resolveNodeRefs. Before
|
|
4923
|
+
* this list existed, only `image:` was excluded, so `{video:1}` classified as a
|
|
4924
|
+
* MISSING node ref.
|
|
4925
|
+
*
|
|
4926
|
+
* Compared against the LOWERCASED token name: `REFERENCE_TOKEN_RE` is `/gi` and
|
|
4927
|
+
* `REF_ID_TOKEN_RE` spells `[rR][eE][fF]`, so `{Image:1}` / `{Ref:x}` really do
|
|
4928
|
+
* resolve downstream and must never read as a missing node ref.
|
|
4929
|
+
*/
|
|
4930
|
+
declare const REF_TOKEN_NAMESPACE_PREFIXES: readonly string[];
|
|
4931
|
+
type RefTokenKind = "wired" | "reserved" | "missing" | "skip" | "unknown";
|
|
4932
|
+
/**
|
|
4933
|
+
* Classify a parsed `{...}` token name against the resolvable label set.
|
|
4934
|
+
* `resolvable === null` means the caller has no ref data at all — such tokens
|
|
4935
|
+
* classify `unknown` and must render like wired, so "no data" never
|
|
4936
|
+
* masquerades as "nothing wired".
|
|
4937
|
+
*
|
|
4938
|
+
* Single source of truth for the editor decoration, the missing-refs chip
|
|
4939
|
+
* (frontend/src/lib/prompt-ref-scan.ts delegates here) and the execution
|
|
4940
|
+
* engine's dispatch guard.
|
|
4941
|
+
*/
|
|
4942
|
+
declare function classifyRefToken(name: string, resolvable: ReadonlySet<string> | null): RefTokenKind;
|
|
4943
|
+
/**
|
|
4944
|
+
* The `{Label}` tokens in `text` that `resolveNodeRefs` would leave LITERAL and
|
|
4945
|
+
* that no upstream node can explain — i.e. exactly what would reach a provider
|
|
4946
|
+
* as the characters `{Label}`. Evidence for why this matters: `{Describe Image}`
|
|
4947
|
+
* ×2 (gpt-image-2) and `{gravity flip}` / `{rewind}` (seedance-2-5) in the
|
|
4948
|
+
* 2026-09-01 app-reports export.
|
|
4949
|
+
*
|
|
4950
|
+
* `resolvable` — labels with a value in the ref map (canonical/lowercase).
|
|
4951
|
+
* `known` — canonical labels of the nodes the caller considers to EXIST
|
|
4952
|
+
* (no state requirement; the backend passes every node in the
|
|
4953
|
+
* run's graph).
|
|
4954
|
+
*
|
|
4955
|
+
* A token whose label is in `known` but not `resolvable` PASSES: the node
|
|
4956
|
+
* exists and simply produced nothing, which is the caller's to substitute (the
|
|
4957
|
+
* backend resolves it to empty text), not this function's to refuse. A token
|
|
4958
|
+
* with an explicit `|| fallback` passes too — the fallback is substituted.
|
|
4959
|
+
* Returns original-cased names, de-duplicated by canonical form, for the
|
|
4960
|
+
* user-facing message.
|
|
4961
|
+
*/
|
|
4962
|
+
declare function unresolvedRefTokens(text: string, opts: {
|
|
4963
|
+
resolvable: ReadonlySet<string>;
|
|
4964
|
+
known: ReadonlySet<string>;
|
|
4965
|
+
}): string[];
|
|
4197
4966
|
|
|
4198
4967
|
/**
|
|
4199
4968
|
* Follow a list node's `in` edge chain to its effective upstream source.
|
|
@@ -4404,392 +5173,95 @@ interface Vehicle {
|
|
|
4404
5173
|
* once ("Airship / Dirigible" -> "airship", "Plasma Sword / Lightsaber" ->
|
|
4405
5174
|
* "plasma sword"). Everywhere else the lowercased label IS the term for a
|
|
4406
5175
|
* concrete object ("golden retriever", "katana"), so nothing is authored.
|
|
4407
|
-
*/
|
|
4408
|
-
readonly term?: string;
|
|
4409
|
-
}
|
|
4410
|
-
declare const VEHICLES: ReadonlyArray<Vehicle>;
|
|
4411
|
-
declare function getVehicle(id: string | undefined | null): Vehicle | undefined;
|
|
4412
|
-
declare function getVehicleLabel(id: string | undefined | null, fallback?: string): string;
|
|
4413
|
-
declare const VEHICLE_SUBCATEGORY_LABELS: Readonly<Record<VehicleSubcategory, string>>;
|
|
4414
|
-
declare const VEHICLE_SUBCATEGORY_ORDER: ReadonlyArray<VehicleSubcategory>;
|
|
4415
|
-
|
|
4416
|
-
/**
|
|
4417
|
-
* Canonical catalog of weapon presets for the Object entity node.
|
|
4418
|
-
*
|
|
4419
|
-
* When the Object category is "weapon", users pick a specific weapon from
|
|
4420
|
-
* this catalog. The picker auto-fills the object's `objectName` and
|
|
4421
|
-
* `description` so the existing `buildObjectPrompt` pipeline just works —
|
|
4422
|
-
* no backend prompt changes needed.
|
|
4423
|
-
*
|
|
4424
|
-
* Organized by weapon family: swords, daggers, axes, polearms, bows,
|
|
4425
|
-
* blunt/impact, throwing, modern firearms, historical firearms, explosives
|
|
4426
|
-
* & siege, sci-fi, and fantasy.
|
|
4427
|
-
*/
|
|
4428
|
-
type WeaponSubcategory = "swords" | "daggers" | "axes" | "polearms" | "bows" | "blunt" | "throwing" | "firearms-modern" | "firearms-historical" | "explosives-siege" | "sci-fi" | "fantasy";
|
|
4429
|
-
interface Weapon {
|
|
4430
|
-
readonly id: string;
|
|
4431
|
-
readonly label: string;
|
|
4432
|
-
readonly subcategory: WeaponSubcategory;
|
|
4433
|
-
readonly description: string;
|
|
4434
|
-
/**
|
|
4435
|
-
* Optional authored compact term — the short phrase a professional would
|
|
4436
|
-
* write in a prompt, as opposed to the user-facing `label` (see the `term`
|
|
4437
|
-
* convention in `@nodaro/prompts`'s `term.ts`). Authored ONLY where the
|
|
4438
|
-
* lowercased label is not that phrase — a UI compound naming two things at
|
|
4439
|
-
* once ("Airship / Dirigible" -> "airship", "Plasma Sword / Lightsaber" ->
|
|
4440
|
-
* "plasma sword"). Everywhere else the lowercased label IS the term for a
|
|
4441
|
-
* concrete object ("golden retriever", "katana"), so nothing is authored.
|
|
4442
|
-
*/
|
|
4443
|
-
readonly term?: string;
|
|
4444
|
-
}
|
|
4445
|
-
declare const WEAPONS: ReadonlyArray<Weapon>;
|
|
4446
|
-
declare function getWeapon(id: string | undefined | null): Weapon | undefined;
|
|
4447
|
-
declare function getWeaponLabel(id: string | undefined | null, fallback?: string): string;
|
|
4448
|
-
declare const WEAPON_SUBCATEGORY_LABELS: Readonly<Record<WeaponSubcategory, string>>;
|
|
4449
|
-
declare const WEAPON_SUBCATEGORY_ORDER: ReadonlyArray<WeaponSubcategory>;
|
|
4450
|
-
|
|
4451
|
-
/**
|
|
4452
|
-
* Multi-select helpers for parameter dimensions that allow up to N picks.
|
|
4453
|
-
*
|
|
4454
|
-
* A dimension's stored value can be:
|
|
4455
|
-
* - undefined / "" / [] → no pick
|
|
4456
|
-
* - string → single pick (back-compat with single-select fields)
|
|
4457
|
-
* - string[] → multi pick (1..N entries)
|
|
4458
|
-
*
|
|
4459
|
-
* `pickIds` normalizes any of those into a clean string[] (deduped, falsy
|
|
4460
|
-
* entries dropped). Pickers cap the array at `maxSelected` (FIFO replacement
|
|
4461
|
-
* is the picker's responsibility, not this helper's).
|
|
4462
|
-
*
|
|
4463
|
-
* Multi-select dimensions today: Person.ethnicity, Mood.mood, Aesthetic.aesthetic.
|
|
4464
|
-
*/
|
|
4465
|
-
declare function pickIds(value: unknown): string[];
|
|
4466
|
-
/**
|
|
4467
|
-
* Cap a multi-pick array at `maxSelected`, FIFO-replacing the oldest entry
|
|
4468
|
-
* when the array is full and a new id is added. Returns a fresh array.
|
|
4469
|
-
*/
|
|
4470
|
-
declare function togglePick(current: ReadonlyArray<string>, id: string, maxSelected: number): string[];
|
|
4471
|
-
|
|
4472
|
-
/**
|
|
4473
|
-
* Model catalog — single source of truth for what each Nodaro-exposed model
|
|
4474
|
-
* is, who made it, what it's good for, and which knobs it accepts.
|
|
4475
|
-
*
|
|
4476
|
-
* Consumed by:
|
|
4477
|
-
* - Backend MCP `list_models` tool (renders the nested per-kind / per-family
|
|
4478
|
-
* response so Claude can pick the right model for a user's intent)
|
|
4479
|
-
* - (future) Frontend config panels — today they read parallel registries
|
|
4480
|
-
* in `frontend/src/components/editor/config-panels/model-options.ts`; a
|
|
4481
|
-
* follow-up will migrate them to import from here.
|
|
4482
|
-
*
|
|
4483
|
-
* Authoring rules:
|
|
4484
|
-
* - Keep `description` to one line (≤120 chars). It's what Claude reads to
|
|
4485
|
-
* decide which model to use.
|
|
4486
|
-
* - `useCases` is a small set of short tags (1-3 words) — verbs/nouns Claude
|
|
4487
|
-
* can match against user intent ("typography", "character", "fast",
|
|
4488
|
-
* "cinematic"). Stay consistent across entries: don't write "text" in one
|
|
4489
|
-
* and "typography" in another.
|
|
4490
|
-
* - `aspectRatios` / `resolutions` / `qualities` only appear when the model
|
|
4491
|
-
* actually exposes that lever (e.g., Nano Banana base has no `resolution`).
|
|
4492
|
-
* - `durations` is in seconds.
|
|
4493
|
-
* - `pricing[0]` is ALWAYS the default variant (the bare id without a
|
|
4494
|
-
* composite suffix like `:4K` or `:high`).
|
|
4495
|
-
* - Costs are sourced from `STATIC_CREDIT_COSTS` (see backend
|
|
4496
|
-
* `src/billing/credits.ts`). Keep them in sync if the table changes.
|
|
4497
|
-
* - After editing `MODEL_CATALOG` or `MODEL_RECOMMENDATIONS`, run
|
|
4498
|
-
* `npm run gen:skills` (from `backend/`) to refresh the public
|
|
4499
|
-
* `docs/choosing-models.md` guide. CI (`gen:skills:check`) fails on drift.
|
|
4500
|
-
*/
|
|
4501
|
-
type ModelKind = "image" | "video" | "audio";
|
|
4502
|
-
type ModelMode = "t2i" | "i2i" | "edit" | "upscale" | "remove-bg" | "i2v" | "t2v" | "v2v" | "extend" | "motion-transfer" | "lip-sync" | "video-upscale" | "tts" | "music" | "sfx" | "stt" | "voice-clone" | "voice-design" | "voice-changer" | "isolation" | "dubbing" | "forced-alignment" | "dialogue" | "video-analysis" | "video-audit";
|
|
4503
|
-
interface PriceVariant {
|
|
4504
|
-
/** Composite identifier as it appears in `STATIC_CREDIT_COSTS`. */
|
|
4505
|
-
identifier: string;
|
|
4506
|
-
/** Credits charged at reservation. */
|
|
4507
|
-
credits: number;
|
|
4508
|
-
/** Short human-readable note describing this variant ("1K default", "4K", "with audio"). */
|
|
4509
|
-
note?: string;
|
|
4510
|
-
}
|
|
4511
|
-
interface ModelCatalogEntry {
|
|
4512
|
-
id: string;
|
|
4513
|
-
kind: ModelKind;
|
|
4514
|
-
/**
|
|
4515
|
-
* Operations this model supports. Many video models (minimax, veo3,
|
|
4516
|
-
* seedance) support BOTH i2v AND t2v under the same id — the route handler
|
|
4517
|
-
* picks which KIE endpoint to hit based on whether an image was supplied.
|
|
4518
|
-
* For those, list both modes here so MCP filters and frontend pickers see
|
|
4519
|
-
* the model in either context.
|
|
4520
|
-
*/
|
|
4521
|
-
modes: readonly ModelMode[];
|
|
4522
|
-
/** Vendor / lab that produced the model. Used for UI grouping. */
|
|
4523
|
-
family: string;
|
|
4524
|
-
/** Display name (NOT the id — the id is the API enum value). */
|
|
4525
|
-
label: string;
|
|
4526
|
-
/**
|
|
4527
|
-
* Model LINE for the add-node Models tab — the brand-agnostic product line a
|
|
4528
|
-
* user thinks in ("Nano Banana", "Flux", "VEO", "Kling", "ElevenLabs").
|
|
4529
|
-
* Distinct from `family` (the lab: Google covers Nano Banana + Imagen + VEO).
|
|
4530
|
-
* REQUIRED for every node-creatable model; a completeness guard in
|
|
4531
|
-
* `@nodaro/shared` (model-tree.test.ts) fails if one is missing.
|
|
4532
|
-
*/
|
|
4533
|
-
series?: string;
|
|
4534
|
-
/**
|
|
4535
|
-
* The value written into the creating node's data field when this model is
|
|
4536
|
-
* picked from the Models tab, for models whose catalog id differs from the
|
|
4537
|
-
* stored value. Only `suno-generate` diverges today (id `suno-v5` → `data.model`
|
|
4538
|
-
* "V5"). Omit when the id IS the stored value (the common case).
|
|
4539
|
-
*/
|
|
4540
|
-
dataValue?: string;
|
|
4541
|
-
/** One-liner. Visible to Claude in MCP `list_models` output. */
|
|
4542
|
-
description: string;
|
|
4543
|
-
/** Short tags Claude matches against user intent. */
|
|
4544
|
-
useCases: readonly string[];
|
|
4545
|
-
/**
|
|
4546
|
-
* Capabilities flags: "reference-image", "end-frame", "audio", etc.
|
|
4547
|
-
*
|
|
4548
|
-
* `"video-reference"` (video models only) means the model accepts a
|
|
4549
|
-
* reference VIDEO as a CONDITIONING clip — the r2v transport that
|
|
4550
|
-
* `resolveSeedance2Inputs` builds and that KIE receives as
|
|
4551
|
-
* `reference_video_urls`. It is what generate-video-pro's `extend` render
|
|
4552
|
-
* method needs (a continuation tail off the previous segment), and
|
|
4553
|
-
* `GVP_EXTEND_PROVIDERS` derives from it.
|
|
4554
|
-
*
|
|
4555
|
-
* It is deliberately NOT set on `gemini-omni-video`: that model's
|
|
4556
|
-
* `video_list` input is a V2V SOURCE clip with a trim window, an
|
|
4557
|
-
* auto-determined duration and flat per-generation pricing (see
|
|
4558
|
-
* `runGeminiOmni` in `backend/src/providers/kie/video.ts`) — a different
|
|
4559
|
-
* transport, not a continuation reference.
|
|
4560
|
-
*/
|
|
4561
|
-
features?: readonly string[];
|
|
4562
|
-
aspectRatios?: readonly string[];
|
|
4563
|
-
resolutions?: readonly string[];
|
|
4564
|
-
qualities?: readonly string[];
|
|
4565
|
-
durations?: readonly number[];
|
|
4566
|
-
pricing: readonly PriceVariant[];
|
|
4567
|
-
/** Editorial highlight — "best in tier". Surfaces in MCP output as a ⭐. */
|
|
4568
|
-
featured?: boolean;
|
|
4569
|
-
/**
|
|
4570
|
-
* Per-model overrides for the global value label decorations (e.g. Hailuo
|
|
4571
|
-
* 2.3 Pro labels its 1080P resolution as "1080P (6s max)" because the
|
|
4572
|
-
* model caps long durations at lower resolution). Falls back to
|
|
4573
|
-
* `MODEL_VALUE_LABELS` for values not listed here.
|
|
4574
|
-
*/
|
|
4575
|
-
valueLabels?: Record<string, string>;
|
|
4576
|
-
/**
|
|
4577
|
-
* Hide from MCP `list_models` output and tool model enums. Used for legacy
|
|
4578
|
-
* model versions superseded by newer entries — they remain in the catalog
|
|
4579
|
-
* (and accessible via direct API / frontend pickers for back-compat) but
|
|
4580
|
-
* stop showing up in Claude.ai's model picker, which keeps the surface
|
|
4581
|
-
* tight and steers the agent to the current generation.
|
|
4582
|
-
*
|
|
4583
|
-
* Frontend pickers ignore this flag.
|
|
4584
|
-
*/
|
|
4585
|
-
mcpHidden?: boolean;
|
|
4586
|
-
}
|
|
4587
|
-
/**
|
|
4588
|
-
* Editorial recommendations — short "best for X" picks Claude can echo back
|
|
4589
|
-
* to the user when they don't know which model to use. Surfaces as a "Quick
|
|
4590
|
-
* recommendations" footer in MCP `list_models` output.
|
|
4591
|
-
*/
|
|
4592
|
-
interface ModelRecommendation {
|
|
4593
|
-
intent: string;
|
|
4594
|
-
modelIds: readonly string[];
|
|
4595
|
-
note: string;
|
|
4596
|
-
}
|
|
4597
|
-
declare const MODEL_RECOMMENDATIONS: readonly ModelRecommendation[];
|
|
4598
|
-
declare const MODEL_CATALOG: Record<string, ModelCatalogEntry>;
|
|
4599
|
-
/**
|
|
4600
|
-
* Lookup helpers for MCP and the future frontend migration.
|
|
4601
|
-
*/
|
|
4602
|
-
declare function listModels(filter?: {
|
|
4603
|
-
kind?: ModelKind;
|
|
4604
|
-
mode?: ModelMode;
|
|
4605
|
-
family?: string;
|
|
4606
|
-
}): ModelCatalogEntry[];
|
|
4607
|
-
/**
|
|
4608
|
-
* Group entries by family, returning a stable order.
|
|
4609
|
-
* Returns Array<{ family: string; models: ModelCatalogEntry[] }>.
|
|
4610
|
-
*/
|
|
4611
|
-
declare function groupByFamily(entries: ModelCatalogEntry[]): Array<{
|
|
4612
|
-
family: string;
|
|
4613
|
-
models: ModelCatalogEntry[];
|
|
4614
|
-
}>;
|
|
4615
|
-
declare function getModel(id: string): ModelCatalogEntry | undefined;
|
|
4616
|
-
type ValidationField = "aspectRatio" | "resolution" | "quality" | "duration";
|
|
4617
|
-
interface ModelValidationIssue {
|
|
4618
|
-
field: ValidationField;
|
|
4619
|
-
message: string;
|
|
4620
|
-
allowed: readonly (string | number)[] | null;
|
|
5176
|
+
*/
|
|
5177
|
+
readonly term?: string;
|
|
4621
5178
|
}
|
|
5179
|
+
declare const VEHICLES: ReadonlyArray<Vehicle>;
|
|
5180
|
+
declare function getVehicle(id: string | undefined | null): Vehicle | undefined;
|
|
5181
|
+
declare function getVehicleLabel(id: string | undefined | null, fallback?: string): string;
|
|
5182
|
+
declare const VEHICLE_SUBCATEGORY_LABELS: Readonly<Record<VehicleSubcategory, string>>;
|
|
5183
|
+
declare const VEHICLE_SUBCATEGORY_ORDER: ReadonlyArray<VehicleSubcategory>;
|
|
5184
|
+
|
|
4622
5185
|
/**
|
|
4623
|
-
*
|
|
4624
|
-
*
|
|
4625
|
-
* Returns null on success or the FIRST issue found. We surface a single issue
|
|
4626
|
-
* rather than collecting all so the agent doesn't get a wall of complaints —
|
|
4627
|
-
* fix one thing, retry. Order: aspectRatio → resolution → quality → duration.
|
|
5186
|
+
* Canonical catalog of weapon presets for the Object entity node.
|
|
4628
5187
|
*
|
|
4629
|
-
*
|
|
4630
|
-
*
|
|
4631
|
-
*
|
|
4632
|
-
*
|
|
4633
|
-
* silently dropping it has caused two bugs already.
|
|
4634
|
-
* - If the value is in the allow list, it's valid.
|
|
5188
|
+
* When the Object category is "weapon", users pick a specific weapon from
|
|
5189
|
+
* this catalog. The picker auto-fills the object's `objectName` and
|
|
5190
|
+
* `description` so the existing `buildObjectPrompt` pipeline just works —
|
|
5191
|
+
* no backend prompt changes needed.
|
|
4635
5192
|
*
|
|
4636
|
-
*
|
|
4637
|
-
*
|
|
4638
|
-
|
|
4639
|
-
declare function validateModelInput(modelId: string, input: {
|
|
4640
|
-
aspectRatio?: string;
|
|
4641
|
-
resolution?: string;
|
|
4642
|
-
quality?: string;
|
|
4643
|
-
duration?: number;
|
|
4644
|
-
}): ModelValidationIssue | null;
|
|
4645
|
-
/**
|
|
4646
|
-
* The resolution a Flux 2 model should land on when its stored value is absent
|
|
4647
|
-
* or invalid. Flux 2 exposes ascending megapixel options ("0.5 MP"…"4 MP"), so
|
|
4648
|
-
* snapping to `options[0]` would silently downgrade every node to the cheapest
|
|
4649
|
-
* tier; each variant has a sensible mid default instead. Returns undefined for
|
|
4650
|
-
* every non-Flux-2 model (they snap to `options[0]` normally).
|
|
5193
|
+
* Organized by weapon family: swords, daggers, axes, polearms, bows,
|
|
5194
|
+
* blunt/impact, throwing, modern firearms, historical firearms, explosives
|
|
5195
|
+
* & siege, sci-fi, and fantasy.
|
|
4651
5196
|
*/
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
/**
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
adjustments: ModelInputAdjustment[];
|
|
5197
|
+
type WeaponSubcategory = "swords" | "daggers" | "axes" | "polearms" | "bows" | "blunt" | "throwing" | "firearms-modern" | "firearms-historical" | "explosives-siege" | "sci-fi" | "fantasy";
|
|
5198
|
+
interface Weapon {
|
|
5199
|
+
readonly id: string;
|
|
5200
|
+
readonly label: string;
|
|
5201
|
+
readonly subcategory: WeaponSubcategory;
|
|
5202
|
+
readonly description: string;
|
|
5203
|
+
/**
|
|
5204
|
+
* Optional authored compact term — the short phrase a professional would
|
|
5205
|
+
* write in a prompt, as opposed to the user-facing `label` (see the `term`
|
|
5206
|
+
* convention in `@nodaro/prompts`'s `term.ts`). Authored ONLY where the
|
|
5207
|
+
* lowercased label is not that phrase — a UI compound naming two things at
|
|
5208
|
+
* once ("Airship / Dirigible" -> "airship", "Plasma Sword / Lightsaber" ->
|
|
5209
|
+
* "plasma sword"). Everywhere else the lowercased label IS the term for a
|
|
5210
|
+
* concrete object ("golden retriever", "katana"), so nothing is authored.
|
|
5211
|
+
*/
|
|
5212
|
+
readonly term?: string;
|
|
4669
5213
|
}
|
|
5214
|
+
declare const WEAPONS: ReadonlyArray<Weapon>;
|
|
5215
|
+
declare function getWeapon(id: string | undefined | null): Weapon | undefined;
|
|
5216
|
+
declare function getWeaponLabel(id: string | undefined | null, fallback?: string): string;
|
|
5217
|
+
declare const WEAPON_SUBCATEGORY_LABELS: Readonly<Record<WeaponSubcategory, string>>;
|
|
5218
|
+
declare const WEAPON_SUBCATEGORY_ORDER: ReadonlyArray<WeaponSubcategory>;
|
|
5219
|
+
|
|
4670
5220
|
/**
|
|
4671
|
-
*
|
|
4672
|
-
*
|
|
4673
|
-
* The correcting twin of `validateModelInput`. Validation is right when a
|
|
4674
|
-
* human/agent is composing a single call and can retry (MCP verbs do this).
|
|
4675
|
-
* It is the WRONG answer at a persistence or execution boundary: rejecting
|
|
4676
|
-
* there turns a fixable typo into a failed run — and a failed run takes every
|
|
4677
|
-
* already-generated, already-billed sibling node down with it. Incident
|
|
4678
|
-
* 2026-08-09: one node carrying `gpt-image` + `16:9` (a pair the config panel
|
|
4679
|
-
* cannot produce, written straight into workflow JSON by a non-UI author)
|
|
4680
|
-
* aborted a run whose five other nodes had already produced images.
|
|
5221
|
+
* Multi-select helpers for parameter dimensions that allow up to N picks.
|
|
4681
5222
|
*
|
|
4682
|
-
*
|
|
4683
|
-
*
|
|
4684
|
-
*
|
|
4685
|
-
*
|
|
4686
|
-
* - Then apply cross-field constraints that only hold for certain models.
|
|
5223
|
+
* A dimension's stored value can be:
|
|
5224
|
+
* - undefined / "" / [] → no pick
|
|
5225
|
+
* - string → single pick (back-compat with single-select fields)
|
|
5226
|
+
* - string[] → multi pick (1..N entries)
|
|
4687
5227
|
*
|
|
4688
|
-
*
|
|
4689
|
-
*
|
|
5228
|
+
* `pickIds` normalizes any of those into a clean string[] (deduped, falsy
|
|
5229
|
+
* entries dropped). Pickers cap the array at `maxSelected` (FIFO replacement
|
|
5230
|
+
* is the picker's responsibility, not this helper's).
|
|
4690
5231
|
*
|
|
4691
|
-
*
|
|
4692
|
-
* changed rather than silently handing back something else.
|
|
4693
|
-
*/
|
|
4694
|
-
declare function normalizeModelInput(modelId: string, input: {
|
|
4695
|
-
aspectRatio?: string;
|
|
4696
|
-
resolution?: string;
|
|
4697
|
-
quality?: string;
|
|
4698
|
-
duration?: number;
|
|
4699
|
-
}): NormalizedModelInput;
|
|
4700
|
-
interface LabeledOption {
|
|
4701
|
-
value: string;
|
|
4702
|
-
label: string;
|
|
4703
|
-
}
|
|
4704
|
-
/** Return `{value, label}[]` for the model's aspect ratios, or `null` if none. */
|
|
4705
|
-
declare function getAspectRatioOptions(modelId: string): LabeledOption[] | null;
|
|
4706
|
-
/** Return `{value, label}[]` for the model's resolution lever, or `null` if none. */
|
|
4707
|
-
declare function getResolutionOptions(modelId: string): LabeledOption[] | null;
|
|
4708
|
-
/** Return `{value, label}[]` for the model's quality lever, or `null` if none. */
|
|
4709
|
-
declare function getQualityOptions(modelId: string): LabeledOption[] | null;
|
|
4710
|
-
/** Return the model's allowed durations (in seconds), or `null` if none. */
|
|
4711
|
-
declare function getDurationsForModel(modelId: string): number[] | null;
|
|
4712
|
-
/**
|
|
4713
|
-
* Min/max credits across all pricing variants — used by the frontend's
|
|
4714
|
-
* "5–8 cr" range badge in the model dropdown. `null` for models with a
|
|
4715
|
-
* single price point.
|
|
4716
|
-
*/
|
|
4717
|
-
declare function getCreditRange(modelId: string): {
|
|
4718
|
-
min: number;
|
|
4719
|
-
max: number;
|
|
4720
|
-
} | null;
|
|
4721
|
-
/** Whether the model declares a given capability flag in its `features` array. */
|
|
4722
|
-
declare function hasFeature(modelId: string, feature: string): boolean;
|
|
4723
|
-
/**
|
|
4724
|
-
* All ids in the catalog whose `features` includes the given flag. Used by
|
|
4725
|
-
* frontend to build PROVIDERS_WITH_END_FRAME / PROVIDERS_WITH_REFERENCES
|
|
4726
|
-
* lists derived from the catalog.
|
|
4727
|
-
*/
|
|
4728
|
-
declare function modelsWithFeature(feature: string): string[];
|
|
4729
|
-
/**
|
|
4730
|
-
* Map of `{modelId: durations[]}` for every catalog entry whose `modes`
|
|
4731
|
-
* includes the given mode. Used to derive KIE_VIDEO_DURATIONS (mode i2v)
|
|
4732
|
-
* and KIE_T2V_DURATIONS (mode t2v) on the frontend.
|
|
5232
|
+
* Multi-select dimensions today: Person.ethnicity, Mood.mood, Aesthetic.aesthetic.
|
|
4733
5233
|
*/
|
|
4734
|
-
declare function
|
|
5234
|
+
declare function pickIds(value: unknown): string[];
|
|
4735
5235
|
/**
|
|
4736
|
-
*
|
|
4737
|
-
*
|
|
4738
|
-
* IMAGE_RESOLUTION_OPTIONS / VIDEO_RESOLUTION_OPTIONS on the frontend.
|
|
5236
|
+
* Cap a multi-pick array at `maxSelected`, FIFO-replacing the oldest entry
|
|
5237
|
+
* when the array is full and a new id is added. Returns a fresh array.
|
|
4739
5238
|
*/
|
|
4740
|
-
declare function
|
|
5239
|
+
declare function togglePick(current: ReadonlyArray<string>, id: string, maxSelected: number): string[];
|
|
5240
|
+
|
|
4741
5241
|
/**
|
|
4742
|
-
*
|
|
4743
|
-
*
|
|
5242
|
+
* Retry/fallback behavior derived from a catalog entry's `safetyFilter`
|
|
5243
|
+
* flag (see `ModelCatalogEntry.safetyFilter` in `model-catalog.ts`).
|
|
4744
5244
|
*/
|
|
4745
|
-
|
|
4746
|
-
/**
|
|
4747
|
-
|
|
4748
|
-
/**
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
|
|
4752
|
-
|
|
4753
|
-
label: string;
|
|
4754
|
-
/** Resolution levers, `[]` when the model exposes none. */
|
|
4755
|
-
resolutions: LabeledOption[];
|
|
4756
|
-
/** Aspect-ratio levers, `[]` when the model exposes none. */
|
|
4757
|
-
aspectRatios: LabeledOption[];
|
|
4758
|
-
/** Duration levers in seconds (union of i2v+t2v modes); `[]` for image / fixed-duration models. */
|
|
4759
|
-
durations: {
|
|
4760
|
-
value: number;
|
|
4761
|
-
label: string;
|
|
4762
|
-
}[];
|
|
5245
|
+
interface SafetyRetryPolicy {
|
|
5246
|
+
/** 2 when the model declares `safetyFilter.stochastic`, else 1. */
|
|
5247
|
+
maxAttempts: 1 | 2;
|
|
5248
|
+
/**
|
|
5249
|
+
* Catalog model id to offer when the retry also blocks. Only present
|
|
5250
|
+
* when the entry declares one AND it resolves to a real catalog entry.
|
|
5251
|
+
*/
|
|
5252
|
+
fallback?: string;
|
|
4763
5253
|
}
|
|
4764
5254
|
/**
|
|
4765
|
-
*
|
|
4766
|
-
*
|
|
4767
|
-
*
|
|
4768
|
-
*
|
|
4769
|
-
*
|
|
4770
|
-
* returns fresh arrays (never aliases the accessor maps).
|
|
4771
|
-
*/
|
|
4772
|
-
declare function buildModelMenu(kind: ModelKind, allowlist: readonly string[]): ModelMenuOption[];
|
|
4773
|
-
/** All `{modelId: {min, max}}` entries that have variable pricing (>1 variant). */
|
|
4774
|
-
declare function creditRangesAll(): Record<string, {
|
|
4775
|
-
min: number;
|
|
4776
|
-
max: number;
|
|
4777
|
-
}>;
|
|
4778
|
-
/**
|
|
4779
|
-
* Tuple of model ids for a given kind + one or more modes. Built for use as
|
|
4780
|
-
* a Zod `z.enum()` argument so MCP tool input schemas stay in sync with the
|
|
4781
|
-
* catalog without manual maintenance.
|
|
4782
|
-
*
|
|
4783
|
-
* Filters out `mcpHidden: true` entries by default — pass `includeHidden`
|
|
4784
|
-
* to surface legacy versions (used internally by validators that still need
|
|
4785
|
-
* to recognize older ids forwarded by direct API callers).
|
|
5255
|
+
* The provider's safety filter is known to be non-deterministic on some
|
|
5256
|
+
* catalog models — a benign prompt can trip it once and pass on an
|
|
5257
|
+
* identical retry. For those models the platform retries a blocked
|
|
5258
|
+
* request once (`maxAttempts: 2`) before giving up; `fallback` names the
|
|
5259
|
+
* catalog model to offer the user when the retry also blocks.
|
|
4786
5260
|
*
|
|
4787
|
-
*
|
|
4788
|
-
*
|
|
5261
|
+
* Every model not flagged this way — including an unrecognized id —
|
|
5262
|
+
* gets a single attempt and no fallback.
|
|
4789
5263
|
*/
|
|
4790
|
-
declare function
|
|
4791
|
-
includeHidden?: boolean;
|
|
4792
|
-
}): [string, ...string[]];
|
|
5264
|
+
declare function safetyRetryPolicy(modelId: string): SafetyRetryPolicy;
|
|
4793
5265
|
|
|
4794
5266
|
/**
|
|
4795
5267
|
* Caption styles for the add-captions node. Static path uses FFmpeg drawtext;
|
|
@@ -8974,6 +9446,12 @@ declare function stripTransientRuntimeData<T extends {
|
|
|
8974
9446
|
* through mode-dependent defaults (`"adaptive"` for Seedance/Hailuo, duration
|
|
8975
9447
|
* composites tied to pricing) that this flat normalizer would flatten wrongly;
|
|
8976
9448
|
* they get their own pass once those defaults are catalog-derived too.
|
|
9449
|
+
*
|
|
9450
|
+
* `modify-image` carries the same provider/aspectRatio/resolution/quality trio
|
|
9451
|
+
* as `image-to-image` (it routes through the same worker), and `edit-image`
|
|
9452
|
+
* carries provider + aspectRatio. `edit-image`'s `targetResolution` is an
|
|
9453
|
+
* UPSCALE target, a different field this module never reads — so listing the
|
|
9454
|
+
* type here heals its ratio without touching what it is priced on.
|
|
8977
9455
|
*/
|
|
8978
9456
|
declare const MODEL_PARAM_NODE_TYPES: ReadonlySet<string>;
|
|
8979
9457
|
interface NodeParamAdjustment extends ModelInputAdjustment {
|
|
@@ -9808,6 +10286,7 @@ type VideoAnalysisSpeedEffect = (typeof VIDEO_ANALYSIS_SPEED_EFFECTS)[number];
|
|
|
9808
10286
|
*/
|
|
9809
10287
|
declare const clipLookSchema: z.ZodObject<{
|
|
9810
10288
|
style: z.ZodOptional<z.ZodString>;
|
|
10289
|
+
styleId: z.ZodOptional<z.ZodString>;
|
|
9811
10290
|
grade: z.ZodOptional<z.ZodString>;
|
|
9812
10291
|
format: z.ZodOptional<z.ZodString>;
|
|
9813
10292
|
lens: z.ZodOptional<z.ZodString>;
|
|
@@ -9861,21 +10340,40 @@ declare const entitySlotSchema: z.ZodObject<{
|
|
|
9861
10340
|
}, z.core.$strip>>>;
|
|
9862
10341
|
}, z.core.$strip>;
|
|
9863
10342
|
type EntitySlot = z.infer<typeof entitySlotSchema>;
|
|
10343
|
+
/**
|
|
10344
|
+
* The sound LAYER vocabulary — what kind of thing this layer is.
|
|
10345
|
+
*
|
|
10346
|
+
* `ambience` is deliberately its own member rather than a flavour of `sfx`:
|
|
10347
|
+
* they are different layers of a real mix and they are recreated by different
|
|
10348
|
+
* means — ambience is the continuous bed a scene sits in (room tone, distant
|
|
10349
|
+
* traffic, wind), an sfx is a discrete hit (a door slam, a gunshot). Folded
|
|
10350
|
+
* together, a scene's bed and its one-off noises arrive indistinguishable and
|
|
10351
|
+
* anything recreating the mix has to guess which it was told.
|
|
10352
|
+
*
|
|
10353
|
+
* Exported so a consumer keying its own document by these modes imports the
|
|
10354
|
+
* vocabulary instead of restating it — the same reason every other closed
|
|
10355
|
+
* vocabulary in this file is a const.
|
|
10356
|
+
*/
|
|
10357
|
+
declare const VIDEO_ANALYSIS_AUDIO_MODES: readonly ["speech", "music", "sfx", "ambience"];
|
|
10358
|
+
type VideoAnalysisAudioMode = (typeof VIDEO_ANALYSIS_AUDIO_MODES)[number];
|
|
9864
10359
|
/**
|
|
9865
10360
|
* One concurrent sound layer in a scene. Real footage stacks sound (music bed
|
|
9866
|
-
* under dialogue over ambient
|
|
9867
|
-
* empty array means genuine silence. `content`: speech = verbatim words;
|
|
9868
|
-
* music/sfx = gen-ready description. `voice` is speech-only
|
|
10361
|
+
* under dialogue over ambient room tone), so a scene carries an ARRAY of these
|
|
10362
|
+
* — an empty array means genuine silence. `content`: speech = verbatim words;
|
|
10363
|
+
* music/sfx/ambience = gen-ready description. `voice` is speech-only
|
|
10364
|
+
* voice-casting.
|
|
9869
10365
|
*/
|
|
9870
10366
|
declare const audioLayerSchema: z.ZodObject<{
|
|
9871
10367
|
mode: z.ZodEnum<{
|
|
9872
10368
|
music: "music";
|
|
9873
10369
|
sfx: "sfx";
|
|
9874
10370
|
speech: "speech";
|
|
10371
|
+
ambience: "ambience";
|
|
9875
10372
|
}>;
|
|
9876
10373
|
content: z.ZodString;
|
|
9877
10374
|
voice: z.ZodOptional<z.ZodString>;
|
|
9878
10375
|
speakerSlot: z.ZodOptional<z.ZodString>;
|
|
10376
|
+
speaker: z.ZodOptional<z.ZodString>;
|
|
9879
10377
|
}, z.core.$strip>;
|
|
9880
10378
|
type AudioLayer = z.infer<typeof audioLayerSchema>;
|
|
9881
10379
|
declare const windowSceneSchema: z.ZodObject<{
|
|
@@ -9958,10 +10456,12 @@ declare const windowSceneSchema: z.ZodObject<{
|
|
|
9958
10456
|
music: "music";
|
|
9959
10457
|
sfx: "sfx";
|
|
9960
10458
|
speech: "speech";
|
|
10459
|
+
ambience: "ambience";
|
|
9961
10460
|
}>;
|
|
9962
10461
|
content: z.ZodString;
|
|
9963
10462
|
voice: z.ZodOptional<z.ZodString>;
|
|
9964
10463
|
speakerSlot: z.ZodOptional<z.ZodString>;
|
|
10464
|
+
speaker: z.ZodOptional<z.ZodString>;
|
|
9965
10465
|
}, z.core.$strip>>;
|
|
9966
10466
|
slotVariations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
9967
10467
|
}, z.core.$strip>;
|
|
@@ -9971,6 +10471,7 @@ declare const windowAnalysisSchema: z.ZodObject<{
|
|
|
9971
10471
|
language: z.ZodOptional<z.ZodString>;
|
|
9972
10472
|
look: z.ZodOptional<z.ZodObject<{
|
|
9973
10473
|
style: z.ZodOptional<z.ZodString>;
|
|
10474
|
+
styleId: z.ZodOptional<z.ZodString>;
|
|
9974
10475
|
grade: z.ZodOptional<z.ZodString>;
|
|
9975
10476
|
format: z.ZodOptional<z.ZodString>;
|
|
9976
10477
|
lens: z.ZodOptional<z.ZodString>;
|
|
@@ -10081,10 +10582,12 @@ declare const windowAnalysisSchema: z.ZodObject<{
|
|
|
10081
10582
|
music: "music";
|
|
10082
10583
|
sfx: "sfx";
|
|
10083
10584
|
speech: "speech";
|
|
10585
|
+
ambience: "ambience";
|
|
10084
10586
|
}>;
|
|
10085
10587
|
content: z.ZodString;
|
|
10086
10588
|
voice: z.ZodOptional<z.ZodString>;
|
|
10087
10589
|
speakerSlot: z.ZodOptional<z.ZodString>;
|
|
10590
|
+
speaker: z.ZodOptional<z.ZodString>;
|
|
10088
10591
|
}, z.core.$strip>>;
|
|
10089
10592
|
slotVariations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
10090
10593
|
}, z.core.$strip>>;
|
|
@@ -10170,10 +10673,12 @@ declare const analyzedSceneSchema: z.ZodObject<{
|
|
|
10170
10673
|
music: "music";
|
|
10171
10674
|
sfx: "sfx";
|
|
10172
10675
|
speech: "speech";
|
|
10676
|
+
ambience: "ambience";
|
|
10173
10677
|
}>;
|
|
10174
10678
|
content: z.ZodString;
|
|
10175
10679
|
voice: z.ZodOptional<z.ZodString>;
|
|
10176
10680
|
speakerSlot: z.ZodOptional<z.ZodString>;
|
|
10681
|
+
speaker: z.ZodOptional<z.ZodString>;
|
|
10177
10682
|
}, z.core.$strip>>;
|
|
10178
10683
|
slotVariations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
10179
10684
|
sceneNumber: z.ZodNumber;
|
|
@@ -10193,6 +10698,7 @@ declare const videoAnalysisResultSchema: z.ZodObject<{
|
|
|
10193
10698
|
}, z.core.$strip>;
|
|
10194
10699
|
look: z.ZodOptional<z.ZodObject<{
|
|
10195
10700
|
style: z.ZodOptional<z.ZodString>;
|
|
10701
|
+
styleId: z.ZodOptional<z.ZodString>;
|
|
10196
10702
|
grade: z.ZodOptional<z.ZodString>;
|
|
10197
10703
|
format: z.ZodOptional<z.ZodString>;
|
|
10198
10704
|
lens: z.ZodOptional<z.ZodString>;
|
|
@@ -10303,10 +10809,12 @@ declare const videoAnalysisResultSchema: z.ZodObject<{
|
|
|
10303
10809
|
music: "music";
|
|
10304
10810
|
sfx: "sfx";
|
|
10305
10811
|
speech: "speech";
|
|
10812
|
+
ambience: "ambience";
|
|
10306
10813
|
}>;
|
|
10307
10814
|
content: z.ZodString;
|
|
10308
10815
|
voice: z.ZodOptional<z.ZodString>;
|
|
10309
10816
|
speakerSlot: z.ZodOptional<z.ZodString>;
|
|
10817
|
+
speaker: z.ZodOptional<z.ZodString>;
|
|
10310
10818
|
}, z.core.$strip>>;
|
|
10311
10819
|
slotVariations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
10312
10820
|
sceneNumber: z.ZodNumber;
|
|
@@ -10361,7 +10869,7 @@ declare function rewriteSpeakerSlots(audio: AudioLayer[], slotRenames: Record<st
|
|
|
10361
10869
|
* Strip attribution that no scene can honour — the `dropUnknownBindings` mirror
|
|
10362
10870
|
* for the `audio` channel. Two cases, both model sloppiness rather than errors
|
|
10363
10871
|
* worth failing a roll over:
|
|
10364
|
-
* - a `speakerSlot` on
|
|
10872
|
+
* - a `speakerSlot` on any non-`speech` layer (nobody is speaking)
|
|
10365
10873
|
* - a `speakerSlot` naming a slot that is not in the final list
|
|
10366
10874
|
*
|
|
10367
10875
|
* MUST run AFTER the orphan-slot sweep, and attribution must NEVER count as a
|
|
@@ -10423,6 +10931,19 @@ declare function inferMusicVideo(analysis: {
|
|
|
10423
10931
|
}>;
|
|
10424
10932
|
}>;
|
|
10425
10933
|
} | undefined | null): boolean;
|
|
10934
|
+
/**
|
|
10935
|
+
* The analysis with its server-derived fields removed — the form an LLM is
|
|
10936
|
+
* handed when the analysis IS the brief (Nodaro Studio's Director and its
|
|
10937
|
+
* job-id loader). Drops `warnings` and `variationFolds` at the top and
|
|
10938
|
+
* `visualResolved`, `slotRefs`, `oversized` on every scene; keeps
|
|
10939
|
+
* `refImageUrl` (a downstream cast image) and everything else. Never mutates;
|
|
10940
|
+
* a non-object input comes back as-is.
|
|
10941
|
+
*
|
|
10942
|
+
* ONE strip list, shared by the worker that composes the brief server-side
|
|
10943
|
+
* (`llm-structured` jobs with a `videoUrl`) and the client that loads a
|
|
10944
|
+
* finished analysis into a textarea, so the two can never drift.
|
|
10945
|
+
*/
|
|
10946
|
+
declare function stripDerivedAnalysisFields(json: unknown): unknown;
|
|
10426
10947
|
|
|
10427
10948
|
/**
|
|
10428
10949
|
* Video-analysis pricing — shared duration-bucket credit model.
|
|
@@ -10745,12 +11266,21 @@ declare const GRANTED_ACCESS: readonly ["view", "edit"];
|
|
|
10745
11266
|
type GrantedAccess = (typeof GRANTED_ACCESS)[number];
|
|
10746
11267
|
declare const SUBMISSION_STATUSES: readonly ["submitted", "in_review", "returned", "approved"];
|
|
10747
11268
|
type SubmissionStatus = (typeof SUBMISSION_STATUSES)[number];
|
|
11269
|
+
/**
|
|
11270
|
+
* How a usage report is bucketed. `workspace` is org-scope only; `none`
|
|
11271
|
+
* = flat rows. A runtime list, like `ORG_ROLES`, so the plugin route's Zod is
|
|
11272
|
+
* `z.enum(USAGE_GROUP_BYS)` and the migration guard asserts the SQL
|
|
11273
|
+
* `NOT IN (...)` list equals this minus `none` — one vocabulary, never three
|
|
11274
|
+
* hand-copies that drift.
|
|
11275
|
+
*/
|
|
11276
|
+
declare const USAGE_GROUP_BYS: readonly ["workspace", "member", "model", "day", "none"];
|
|
11277
|
+
type UsageGroupBy = (typeof USAGE_GROUP_BYS)[number];
|
|
10748
11278
|
/**
|
|
10749
11279
|
* Error codes the organization endpoints add to the standard envelope
|
|
10750
11280
|
* (`{ error: { code, message } }`). Clients dispatch on the code, never on
|
|
10751
11281
|
* the message text.
|
|
10752
11282
|
*/
|
|
10753
|
-
declare const ORG_ERROR_CODES: readonly ["not_a_member", "insufficient_role", "org_not_active", "member_suspended", "workspace_archived", "personal_space_disabled", "token_workspace_mismatch", "run_requires_authenticated_member", "budget_exceeded", "member_cap_exceeded", "model_not_allowed", "invitation_expired", "invitation_revoked", "email_mismatch", "join_code_invalid", "domain_not_allowed", "already_started", "collab_unavailable", "terms_required", "not_org_member", "already_a_member", "owner_cannot_leave", "has_active_workspaces", "invitation_not_found", "invitation_accepted", "bulk_invite_cap_exceeded"];
|
|
11283
|
+
declare const ORG_ERROR_CODES: readonly ["not_a_member", "insufficient_role", "org_not_active", "member_suspended", "workspace_archived", "personal_space_disabled", "token_workspace_mismatch", "run_requires_authenticated_member", "budget_exceeded", "member_cap_exceeded", "model_not_allowed", "invitation_expired", "invitation_revoked", "email_mismatch", "join_code_invalid", "domain_not_allowed", "already_started", "collab_unavailable", "audit_unavailable", "terms_required", "not_org_member", "already_a_member", "owner_cannot_leave", "has_active_workspaces", "invitation_not_found", "invitation_accepted", "bulk_invite_cap_exceeded"];
|
|
10754
11284
|
type OrgErrorCode = (typeof ORG_ERROR_CODES)[number];
|
|
10755
11285
|
/**
|
|
10756
11286
|
* The settings every organization kind has a default for. `organizations.
|
|
@@ -11027,6 +11557,133 @@ interface OrgPage<T> {
|
|
|
11027
11557
|
data: T[];
|
|
11028
11558
|
nextCursor: string | null;
|
|
11029
11559
|
}
|
|
11560
|
+
/**
|
|
11561
|
+
* Usage reporting. What `GET /v1/orgs/:id/usage` and
|
|
11562
|
+
* `GET /v1/workspaces/:id/usage` return. No cost/USD field appears anywhere —
|
|
11563
|
+
* a report shows CREDITS a class or team spent, never the platform's own rates
|
|
11564
|
+
* (pricing-leak class, guarded by organizations-types.test.ts and the
|
|
11565
|
+
* migration guard).
|
|
11566
|
+
*/
|
|
11567
|
+
/** One bucket of a usage report. Exactly one of workspace/member/model/day is set. */
|
|
11568
|
+
interface UsageReportRow {
|
|
11569
|
+
key: string;
|
|
11570
|
+
workspace: {
|
|
11571
|
+
id: string;
|
|
11572
|
+
name: string | null;
|
|
11573
|
+
slug: string | null;
|
|
11574
|
+
archived: boolean;
|
|
11575
|
+
} | null;
|
|
11576
|
+
member: {
|
|
11577
|
+
userId: string;
|
|
11578
|
+
displayName: string | null;
|
|
11579
|
+
email: string | null;
|
|
11580
|
+
} | null;
|
|
11581
|
+
model: string | null;
|
|
11582
|
+
/** `YYYY-MM-DD` in the report's `tz`. */
|
|
11583
|
+
day: string | null;
|
|
11584
|
+
runCount: number;
|
|
11585
|
+
appRunCount: number;
|
|
11586
|
+
/** Settled where known, the held reservation otherwise. = settledCredits + inFlightCredits. */
|
|
11587
|
+
credits: number;
|
|
11588
|
+
settledCredits: number;
|
|
11589
|
+
inFlightCredits: number;
|
|
11590
|
+
inFlightRuns: number;
|
|
11591
|
+
}
|
|
11592
|
+
/**
|
|
11593
|
+
* A platform-absorbed line for one workspace, split by ORIGIN (never attributed
|
|
11594
|
+
* to a member). Two ledgers share the `org_usage_variance` source: a
|
|
11595
|
+
* `metered_overrun` (a metered run's overrun beyond the budget — it HAS a
|
|
11596
|
+
* settled usage_logs counterpart) and an `app_markup` shortfall (an
|
|
11597
|
+
* approved-app markup the budget could not cover — it has NO usage_logs row).
|
|
11598
|
+
* `other` is a future/unrecognised origin.
|
|
11599
|
+
*/
|
|
11600
|
+
interface UsageVarianceRow {
|
|
11601
|
+
workspace: {
|
|
11602
|
+
id: string;
|
|
11603
|
+
name: string | null;
|
|
11604
|
+
slug: string | null;
|
|
11605
|
+
} | null;
|
|
11606
|
+
kind: "metered_overrun" | "app_markup" | "other";
|
|
11607
|
+
credits: number;
|
|
11608
|
+
rowCount: number;
|
|
11609
|
+
}
|
|
11610
|
+
/**
|
|
11611
|
+
* Totals over the WHOLE window — every usage_logs row in [from, to] after the
|
|
11612
|
+
* scope / userId / workspaceId narrowing — never over the returned `rows`.
|
|
11613
|
+
* Unaffected by `truncated`; equals a `groupBy=day` report's column-wise sum.
|
|
11614
|
+
*/
|
|
11615
|
+
interface UsageReportTotals {
|
|
11616
|
+
runCount: number;
|
|
11617
|
+
credits: number;
|
|
11618
|
+
settledCredits: number;
|
|
11619
|
+
inFlightCredits: number;
|
|
11620
|
+
/** Metered-overrun variance in the window — a run's overrun the platform absorbed. */
|
|
11621
|
+
platformAbsorbedCredits: number;
|
|
11622
|
+
/** Approved-app markup shortfall the platform absorbed. It has NO usage_logs run, so it is not in the figures above. */
|
|
11623
|
+
appMarkupAbsorbedCredits: number;
|
|
11624
|
+
/**
|
|
11625
|
+
* settledCredits − platformAbsorbedCredits: the METERED settlement that
|
|
11626
|
+
* reached the workspace budget(s). App markup charged to a budget (migration
|
|
11627
|
+
* 352) is not a usage_logs row and is not included here; when a markup
|
|
11628
|
+
* shortfall is absorbed this figure under-reports and may go negative — it is
|
|
11629
|
+
* NOT `workspace_budgets.spent_credits`.
|
|
11630
|
+
*/
|
|
11631
|
+
chargedToBudget: number;
|
|
11632
|
+
}
|
|
11633
|
+
interface UsageReport {
|
|
11634
|
+
scope: "org" | "workspace";
|
|
11635
|
+
scopeId: string;
|
|
11636
|
+
from: string;
|
|
11637
|
+
to: string;
|
|
11638
|
+
tz: string;
|
|
11639
|
+
groupBy: Exclude<UsageGroupBy, "none">;
|
|
11640
|
+
/** Present when a member's self-view or an admin's `?userId=` narrowed the report. */
|
|
11641
|
+
userId: string | null;
|
|
11642
|
+
/** Present when an org report was narrowed to one workspace. */
|
|
11643
|
+
workspaceId: string | null;
|
|
11644
|
+
rows: UsageReportRow[];
|
|
11645
|
+
variance: UsageVarianceRow[];
|
|
11646
|
+
totals: UsageReportTotals;
|
|
11647
|
+
/**
|
|
11648
|
+
* True when more than 5000 buckets existed and the tail of `rows` was dropped
|
|
11649
|
+
* — narrow the window. Only `rows` is incomplete; `totals` and `variance`
|
|
11650
|
+
* cover the whole window regardless.
|
|
11651
|
+
*/
|
|
11652
|
+
truncated: boolean;
|
|
11653
|
+
}
|
|
11654
|
+
/** One usage_logs row as an organization sees it. No cost fields, ever. */
|
|
11655
|
+
interface UsageLogEntry {
|
|
11656
|
+
id: string;
|
|
11657
|
+
createdAt: string;
|
|
11658
|
+
workspace: {
|
|
11659
|
+
id: string;
|
|
11660
|
+
name: string | null;
|
|
11661
|
+
slug: string | null;
|
|
11662
|
+
} | null;
|
|
11663
|
+
member: {
|
|
11664
|
+
userId: string;
|
|
11665
|
+
displayName: string | null;
|
|
11666
|
+
email: string | null;
|
|
11667
|
+
} | null;
|
|
11668
|
+
jobId: string | null;
|
|
11669
|
+
model: string;
|
|
11670
|
+
status: "reserved" | "committed";
|
|
11671
|
+
creditsReserved: number;
|
|
11672
|
+
creditsSettled: number | null;
|
|
11673
|
+
credits: number;
|
|
11674
|
+
isAppRun: boolean;
|
|
11675
|
+
}
|
|
11676
|
+
/** Query parameters shared by both usage routes (dates inclusive, IANA tz). */
|
|
11677
|
+
interface UsageQuery {
|
|
11678
|
+
from?: string;
|
|
11679
|
+
to?: string;
|
|
11680
|
+
tz?: string;
|
|
11681
|
+
groupBy?: UsageGroupBy;
|
|
11682
|
+
workspaceId?: string;
|
|
11683
|
+
userId?: string;
|
|
11684
|
+
cursor?: string;
|
|
11685
|
+
limit?: number;
|
|
11686
|
+
}
|
|
11030
11687
|
|
|
11031
11688
|
/**
|
|
11032
11689
|
* Which DB columns of a saved entity land on its canvas node, per kind.
|
|
@@ -11095,4 +11752,4 @@ declare function entityHydrationColumns(kind: EntityNodeKind): string[];
|
|
|
11095
11752
|
/** Every scalar `kind` actually has, shared plus its own. */
|
|
11096
11753
|
declare function entityScalarFields(kind: EntityNodeKind): ReadonlyArray<readonly [string, string]>;
|
|
11097
11754
|
|
|
11098
|
-
export { ACCESS_LEVELS, ACTIVE_SCENE_HELPERS, ADVANCED_MODE_UNAVAILABLE_REASON, AGGREGATEABLE_TYPES, AGGREGATE_LANE_SOURCE_TYPES, AI_AVATAR_DURATION_BUCKETS, AI_AVATAR_MAX_AUDIO_SEC, AI_AVATAR_MAX_DURATION_SEC, AI_AVATAR_RESERVE_IDS, AI_WRITER_PROVIDERS, ALA_CARTE_BOARDS, ALL_CAPTION_STYLES, ANIMALS, ANIMAL_SUBCATEGORY_LABELS, ANIMAL_SUBCATEGORY_ORDER, ASPECT_RATIO_DIMENSIONS, AUDIO_ADDON_PROVIDERS, AUDIO_CROSSFADE_CURVES, AUDIO_CROSSFADE_CURVE_IDS, AUDIO_FX_PRESETS, AUDIO_FX_PRESET_LABELS, AUDIO_FX_PRESET_SET, AUDIO_FX_REVERB_PRESETS, AUDIO_PRODUCER_TYPES, type AccessLevel, type AddBRollResult, AddBRollResultSchema, type AggregateableType, type AggregationBuckets, type AiAvatarDurationBucket, type AiAvatarEngine, type AiAvatarResolution, type AiWriterProvider, type AlaCarteBoard, type AnalyzedScene, type AnchorSceneStyleResult, AnchorSceneStyleResultSchema, type Animal, type AnimalSubcategory, type AssetRef, AssetRefSchema, type AudioCrossfadeCurve, type AudioFxPreset, type AudioLayer, type AuditImagesResult, AuditImagesResultSchema, type AuditImagesShotEntry, AuditImagesShotEntrySchema, AuditPromptIssueSchema, type AuditPromptResult, AuditPromptResultSchema, AvatarPayloadError, BOARD_TO_ASSET_TYPE, BOARD_TO_COLUMN, BOARD_VARIANTS, type BoardEntityKind, type BoardPromptContext, type BoardTemplate, BridgeToNextSceneInputSchema, type BridgeToNextSceneResult, BridgeToNextSceneResultSchema, type BrowseCommunityParams, type BrowseCommunityResult, CATEGORY_DURATION_DEFAULTS, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_ASSET_TYPES, CHARACTER_ASSET_VARIANTS, CHARACTER_ATTACH_COLUMNS, CHARACTER_FACETS, CHARACTER_FACET_IDS, CHARACTER_LORA_TRAINING_JOB_TYPE, CHARACTER_MOTION_PROVIDERS, CHARACTER_PICKER_DISPLAY_ORDER, CHARACTER_REFERENCE_PHOTO_KINDS, CHARACTER_STYLES, CHARACTER_VARIANT_ASSET_BUCKETS, CHAT_ENABLED_STAGES, CHAT_STAGES, CHAT_TURN_CAPS, CHAT_WIRED_STAGES, CINEMATIC_DEFAULT_DURATION_SEC, CINEMATIC_DEFAULT_RESOLUTION, CINEMATIC_MAX_DURATION_SEC, CINEMATIC_MAX_LOOKS, CINEMATIC_MAX_REFERENCE_IMAGES, CINEMATIC_MAX_REFERENCE_VIDEOS, CINEMATIC_MIN_DURATION_SEC, CINEMATIC_MIN_LOOKS, CINEMATIC_PROMPT_MAX, CINEMATIC_RESERVE_IDS, COLLABORATOR_ROLES, COLLECT_IN_HANDLE, COMBINE_TRANSITIONS, COMBINE_TRANSITION_GROUP_LABELS, COMBINE_TRANSITION_GROUP_ORDER, COMBINE_TRANSITION_IDS, COMPOSER_PLAN_FIELDS, COMPOSER_PLAN_MAP, CONTENT_TYPES_BY_PLATFORM, CREATURE_ATTACH_COLUMNS, CREDIT_BASE_USD, CREDIT_ROUNDING_RESOLUTION, type CaptionStyle, type CastCoverageCriticVerdict, CastCoverageCriticVerdictSchema, type CharacterAspectRatio, type CharacterAssetType, type CharacterAssetTypeForAspect, type CharacterAttachColumn, type CharacterDef, type CharacterFacet, type CharacterImageCriticVerdict, CharacterImageCriticVerdictSchema, type CharacterLoraFields, type CharacterMentionTokenInfo, CharacterMetadataSchema, type CharacterMotionProvider, type CharacterReferencePhoto, type CharacterReferencePhotoKind, type CharacterVariantAssetBucket, type CharacterVariantAssetItem, type CharacterVoiceSpec, type ChatEnabledStage, type ChatTurnResponse, ChatTurnResponseSchema, type CinematicResolution, type ClipLook, type CloneListingResult, type CollaboratorRole, type CombineTransition, type CombineTransitionGroup, type CombineVideosEstimatorInput, type CommunityCard, type CommunityEntityType, type CommunityFullDetail, type CommunityReportReason, type CommunitySort, type ComponentHandle, type ComponentMetadata, type ConnectedReference, type CreatureAttachColumn, CriticIssueSchema, type CustomEntry, DEFAULT_AUDIO_CROSSFADE_CURVE_ID, DEFAULT_CARRIED_FRACTION, DEFAULT_CHARACTER_ANGLE_COUNT, DEFAULT_CHARACTER_EXPRESSION_COUNT, DEFAULT_CHARACTER_FACET, DEFAULT_LABEL_BY_SOURCE, DEFAULT_LOCATION_USAGE_MODE, DEFAULT_PANEL_COUNT, DEFAULT_REF_IMAGE_MAX, DEFAULT_SECTIONS, DEFAULT_USAGE_MODE, DEFAULT_VIDEO_ANALYSIS_MODEL, DEFAULT_VIDEO_ANALYSIS_TIER, DEFAULT_VIDEO_CLIP_COST, DEFAULT_VIDEO_DURATION_SEC, DEFAULT_VIDEO_PROVIDER, DEFAULT_VOICE_CHANGER_MODEL, DEFAULT_VOICE_DESIGN_MODEL, DETAIL_VARIANTS, DURATION_PRICED_PROVIDERS, DYNAMIC_PRODUCER_TYPES, type DetectionResult, DetectionResultSchema, type DialogueLine, EFFORT_TIER_BUMP, EMOTIONAL_BEAT, ENTITY_ASPECT_DEFAULTS, ENTITY_BUCKET_FIELDS, ENTITY_DB_ID_FIELD, ENTITY_IMAGE_HANDLE_TYPES, ENTITY_KIND_SCALAR_FIELDS, ENTITY_NAME_FIELD, ENTITY_NODE_KINDS, ENTITY_SCALAR_FIELDS, ENTITY_SECTIONS, ENTITY_STATUSES, ENTITY_TABLE, ENTITY_TOOL_RETRY_CAP, ENTITY_TYPES, EXECUTION_DATA_KEYS, EXTEND_VIDEO_PROVIDERS, type EntityKind, type EntityMentionTokenInfo, type EntityMetadata, EntityMetadataSchema, type EntityNodeKind, type EntityReferenceInput, type EntityRejectInput, EntityRejectInputSchema, type EntitySlot, type EntityStaleEvent, EntityStaleEventSchema, type EntityStateChangeEvent, EntityStateChangeEventSchema, type EntityStatus, type EntityStudioKind, type EntityStyle, type EntityType, type EvaluateConditionOptions, type ExportedPreset, type ExposableField, type ExposableOutput, type ExposedSetting, type ExtendVideoProvider, type ExtraRefCharacterContext, type ExtraRefInput, FACE_SWAP_PROVIDERS, FAL_LIP_SYNC_PROVIDERS, FAN_OUT_EACH_TYPES, FEATURED_ENTITIES, FILM_BASE_CREDITS, FLEXIBLE_INPUT_LIP_SYNC_PROVIDERS, FLUX2_RES_MP, FLUX_LORA_CHARACTER_MODEL_ID, FRAME_MODE_ADAPTIVE_ONLY_ASPECT, FRAME_TARGET_HANDLES, FREECUT_EXPORT_COMPLETE, FREECUT_EXPORT_PROGRESS, FREECUT_READY, FREECUT_REQUEST_IMPORT, FURNITURE, FURNITURE_SUBCATEGORY_LABELS, FURNITURE_SUBCATEGORY_ORDER, type FaceSwapProvider, type FavoriteListingResult, type FeaturedEntity, type FilmCreditEstimate, type FilterListCondition, type FilterListOperator, type FilterOperator, type FixContinuityInput, FixContinuityInputSchema, type FixContinuityResult, FixContinuityResultSchema, type Flux2Model, type FreecutExportCompletePayload, type FreecutExportProgressPayload, type FreecutImportFile, type FreecutRequestImportPayload, type FullSelectorMode, type Furniture, type FurnitureSubcategory, GEMINI_OMNI_PROVIDERS, GENERATE_TEXT_DELIMITER, GLOBAL_MAX_DURATION_SECONDS, GRANTED_ACCESS, GROUP_HANDLE_PREFIX, GUIDANCE_SCALE_SUPPORT, GVP_ANCHOR_CHOICES, GVP_DEFAULT_PROVIDER, GVP_END_FRAME_PROVIDERS, GVP_EXTEND_PROVIDERS, GVP_SUPPORTED_PROVIDERS, GenerateMotionInputSchema, type GenerateMotionResult, GenerateMotionResultSchema, type GenericEdge, type GenericNode, type GrantedAccess, type GvpAnchorChoice, type GvpAnchorWireMode, HANDLE_PORT_SEPARATOR, HELPERS_SHIPPED_IN_1B3, HIGH_QUALITY_PROVIDERS, HINT_EXEMPT_PARAMETER_TYPES, type HintEdgeLike, type HintGraphContext, type HintNodeLike, type I18nCatalogId, I2I_MASK_SUPPORT, I2I_STRENGTH_SUPPORT, IDEOGRAM_PROVIDERS, IMAGE_CRITIC_LEAF_MODES, IMAGE_CRITIC_MAX_RETRIES, IMAGE_CRITIC_METADATA_KEYS, IMAGE_CRITIC_MIN_ADHERENCE_SCORE, IMAGE_CRITIC_MODES, IMAGE_CRITIC_UNRESOLVABLE, IMAGE_EDIT_PROVIDERS, IMAGE_GEN_PROVIDERS, IMAGE_I2I_PROVIDERS, IMAGE_MASK_MODE, IMAGE_PROMPT_MAX, IMAGE_REF_TYPES, IMAGE_TO_VIDEO_PROVIDERS, INPUT_FIELD_MAP, INPUT_NODE_TYPES, INSTAGRAM_CAROUSEL_MAX_ITEMS, INSTAGRAM_CAROUSEL_MIN_ITEMS, ITER_CLONE_PATTERN, type IdentityFidelity, type IdentityMeta, type ImageCriticIssue, ImageCriticIssueSchema, type ImageCriticLeafMode, type ImageCriticMetadataKey, type ImageCriticMode, type ImageCriticNodeIssue, type ImageCriticResult, ImageCriticResultSchema, type ImageCriticVerdict, ImageCriticVerdictSchema, type ImageEditProvider, type ImageGenProvider, type ImageI2IProvider, type ImageMaskMode, type ImageMentionTokenInfo, type ImageToVideoProvider, type ImprovePromptInput, ImprovePromptInputSchema, type ImprovePromptResult, ImprovePromptResultSchema, type InputFieldSchema, type InvitationDelivery, type InvitationPreview, type InvitationState, type InvitationView, type JoinCodeView, type JsonEvalResult, type JsonFilter, type JsonPatch, KEYFRAME_CREDITS_PER_SHOT, KINETIC_CAPTION_STYLES, type KieApiFormat, type KineticCaptionStyle, LANGUAGES, LEGACY_LOTTIE_HOST_REMAP, LIP_SYNC_DURATION_BUCKETS, LIP_SYNC_MAX_AUDIO_SECONDS, LIP_SYNC_PROVIDERS, LLM_FEATURE_DEFAULTS, LLM_MODALITY_CAPS, LLM_MODELS, LLM_MODEL_IDS, LLM_REASONING_EFFORTS, LLM_ROUTE_DEFAULTS, LLM_TEXT_INPUT_MAX, LLM_VENDOR_LABELS, LLM_VENDOR_ORDER, LOCATION_ASSET_TYPES, LOCATION_ASSET_VARIANTS, LOCATION_ATMOSPHERE_PROVIDERS, LOCATION_ATTACH_COLUMNS, LOCATION_BUCKET_TO_CATALOG_ID, LOCATION_PRESET_TO_CATALOG, LOCATION_REFERENCE_PHOTO_KINDS, LOCATION_REFERENCE_PHOTO_KIND_LABELS, LOCATION_USAGE_MODES, LOTTIE_OVERLAY_CATALOG, LOTTIE_SLOT_FIELD_PREFIX, type LabeledOption, type LipSyncDurationBucket, type LipSyncProvider, type LlmFeature, type LlmModelDef, type LlmModelGroup, type LlmReasoningEffort, type LlmRouteDefaults, type LlmTier, type LlmVendor, type LocaleCatalogMap, type LocaleDirection, type LocaleId, type LocationAssetType, type LocationAtmosphereProvider, type LocationAttachColumn, type LocationCatalogRef, type LocationImageCriticVerdict, LocationImageCriticVerdictSchema, type LocationMentionTokenInfo, LocationMetadataSchema, type LocationReferencePhotoKind, type LocationUsageMode, LocationsCoverageCriticIssueSchema, type LocationsCoverageCriticVerdict, LocationsCoverageCriticVerdictSchema, type LoopTrimEstimatorInput, type LoopVideoEstimatorInput, type LoraEligibleRef, type LoraRouting, type LottieOverlayCatalogEntry, type LottieSlotField, MAX_CUSTOM_ENTRIES_PER_BOARD, MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER, MAX_LOCATION_VARIANTS, MAX_NEGATIVE_PROMPT_CHARS_BY_PROVIDER, MAX_PANELS_PER_SHEET, MAX_TTS_CHARS_BY_PROVIDER, MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER, MEMBER_STATUSES, MINIMAX_H3_DEFAULT_RESOLUTION, MINIMAX_H3_PROVIDERS, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, MODEL_CATALOG, MODEL_PARAM_NODE_TYPES, MODEL_RECOMMENDATIONS, MODIFY_IMAGE_PROVIDERS, MOTION_COLUMN, MOTION_TRANSFER_PROVIDERS, MUSIC_PROVIDERS, type MaskRegionDescriptor, type MatchCutVerdict, MatchCutVerdictSchema, type MeOrganizations, type Member, type MemberStatus, type MinimalEdge, type MinimalNode, type ModelCatalogEntry, type ModelInputAdjustment, type ModelKind, type ModelMenuOption, type ModelMode, type ModelNodeTarget, type ModelPromptingStyle, type ModelRecommendation, type ModelTreeLine, type ModelTreeVariant, type ModelValidationIssue, type ModifyImageProvider, type MotionTransferProviderType, type MusicProvider, NATIVE_ADAPTIVE_ASPECT, NATIVE_NEGATIVE_PROMPT_MODELS, NATIVE_NEGATIVE_VIDEO_PROVIDERS, NEGATIVE_PROMPT_MAX, NODARO_IMPORT_FILES, NODARO_LOAD_TIMELINE, NODARO_LOAD_VIDEO, NODARO_RESET_PROJECT, NODE_DEFAULT_TYPES, NODE_MAPPABLE_FIELDS, NODE_PRESET_EXPORT_KIND, NODE_REF_PATTERN, NON_EN_LOCALE_IDS, NO_SPLIT_DELIMITER, type NodaroLoadTimelinePayload, type NodaroLoadVideoPayload, type NodeDefaultType, type NodeParamAdjustment, type NodePresetExport, type NormalizedModelInput, type NormalizedNodes, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ASSET_VARIANTS, OBJECT_ATTACH_COLUMNS, OBJECT_MOTION_PROVIDERS, OBJECT_PICKER_NODE_TYPES, ORG_ERROR_CODES, ORG_KINDS, ORG_ROLES, ORG_STATUSES, OUTPUT_FIELD_MAP, OUTPUT_FORMATS, type ObjectAspectRatio, type ObjectAssetType, type ObjectAssetTypeForAspect, type ObjectAttachColumn, ObjectMetadataSchema, type ObjectMotionProvider, type ObjectsValidationIssue, type ObjectsValidationResult, OptimizeForModelInputSchema, type OptimizeForModelResult, OptimizeForModelResultSchema, type OrgAuditEntry, type OrgErrorCode, type OrgKind, type OrgMemberView, type OrgPage, type OrgRole, type OrgSettings, OrgSettingsSchema, type OrgStatus, type OrganizationSummary, type OrganizationView, type OutputFormat, type OutputMode, type OutputType, PARAMETER_NODE_TYPES, PASSTHROUGH_TYPES, PAYG_RETENTION_DAYS, PER_FORMAT_DURATION_BOUNDS, PICKER_TO_COMBINE_TRANSITION, PIPELINE_ACTIVATION_MODES, PIPELINE_FORMATS, PIPELINE_HARD_TIMEOUT_MS, PIPELINE_MODEL_STAGES, PIPELINE_MODES, PIPELINE_OUTPUT_RESOLUTIONS, PIPELINE_PINNABLE_IMAGE_MODELS, PIPELINE_PINNABLE_SCRIPT_LLMS, PIPELINE_PINNABLE_VIDEO_MODELS, PIPELINE_STAGE_NAMES, PIPELINE_STAGE_TIMEOUT_MS, PIPELINE_TYPES, PLACEHOLDER_CHARACTER_NAME, PLATFORM_LABELS, PLATFORM_SPECS, PRESET_APPLY_CLEAR_KEYS, PRESET_EXCLUDED_KEYS, PRESET_LABELS, PRESET_SETTING_KEYS, PRICING_DEFAULT_DURATION_SEC, PRICING_DEFAULT_RESOLUTION, PROMPT_HARD_CEILING, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PROVIDER_DIRECTIVE_DEFAULTS, PROVIDER_PLACEHOLDER_PREFIX, type PanelGenRequest, type PanelRequest, type PanelSource, type PipelineActivationMode, type PipelineCompletedEvent, PipelineCompletedEventSchema, type PipelineConfig, PipelineConfigSchema, type PipelineDriftSummary, PipelineDriftSummarySchema, type PipelineEditorDecisionsReadyEvent, PipelineEditorDecisionsReadyEventSchema, type PipelineEvent, type PipelineForkedEvent, PipelineForkedEventSchema, type PipelineFormat, type PipelineInput, PipelineInputSchema, type PipelineLifecycleEvent, type PipelineMode, type PipelineModelStage, type PipelineMusicReadyEvent, PipelineMusicReadyEventSchema, type PipelineOutputResolution, type PipelinePinnableImageModel, type PipelinePinnableScriptLlm, type PipelinePinnableVideoModel, type PipelineStageName, PipelineStageNameSchema, type PipelineStageStatus, PipelineStageStatusSchema, type PipelineState, PipelineStateSchema, type PipelineStatus, PipelineStatusSchema, type PipelineType, type PixelBox, type PresentationItem, type PresetEntry, type PresetSettingKey, type PresetSettings, PresetSettingsSchema, type PriceVariant, type ProgressSegment, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, type PromptAffixFields, type PromptAffixes, type ProposedChange, type PublishListingParams, type PublishListingResult, QA_CHECK_PROVIDERS, type QaCheckProvider, type QualityLevel, REDUCE_STRATEGIES, REDUCE_STRATEGY_IDS, REFERENCE_BOARD_PROVIDERS, REFERENCE_BOARD_TEMPLATES, REFERENCE_HANDLE_MAP, REFERENCE_ROLE_PRESETS, REF_HANDLE_CATEGORY, REF_IMAGE_MAX_LIMITS, RENDERING_SPEED_SUPPORT, REPEATABLE_NODE_TYPES, REPEAT_PLACEHOLDER, REPLICATE_LIP_SYNC_PROVIDERS, RESERVED_TEMPLATE_VARS, type ReduceMeta, type ReduceStrategy, type ReduceStrategyId, type RefCandidate, type RefModalityEdge, type ReferenceBoardProvider, type ReferenceModality, type ReferenceSheet, type ReferenceSource, type ReportListingResult, type ResolveCharacterAspectOptions, type ResolveObjectAspectOptions, type ResolveSeparatorOptions, type ResolvedDialogueVoiceLine, type RouterConditionGroup, SCENE_HELPER_NAMES, SCRAPER_ACTOR_LABELS, SCRAPER_CREDIT_COSTS, SCRAPER_OUTPUT_FIELDS, SCRIPT_PROVIDERS, SEASONS, SECTION_BOARD, SECTION_KINDS, SEEDANCE_2_5_REF_LIMITS, SEEDANCE_2_CONTINUATION_REF_SEC, SEEDANCE_2_EXTEND_STITCH, SEEDANCE_2_PROVIDERS, SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER, SEEDANCE_2_R2V_MIN_REF_VIDEO_SEC, SEEDANCE_2_REF_LIMITS, SEEDANCE_LIP_SYNC_PROVIDERS, SEED_SUPPORT, SEPARATOR_DISPLAY, SEPARATOR_PRESETS, SHEET_ASPECTS, SHEET_BACKGROUNDS, SHEET_PRESETS, SHEET_SKINS, SHEET_TYPES, SHORT_FILM_ANGLE_COUNT, SHORT_FILM_EXPRESSION_COUNT, SHORT_FILM_VARIANT_THRESHOLD_SEC, SLOT_TOKEN_RE, SMART_CUT_WINDOW_DEFAULT, SMART_CUT_WINDOW_MAX, SMART_CUT_WINDOW_MIN, SOCIAL_POST_NODE_TYPES, STAGE_PATCH_SCHEMA, STATIC_CAPTION_STYLES, STRUCTURAL_SECTIONS, STRUCTURED_VISION_MODELS, SUBMISSION_STATUSES, SUNO_ADD_TRACK_MODELS, SUNO_FIELD_HANDLE_FIELDS, SUNO_MODELS, SUNO_TEXT_MAX, SUNO_TITLE_MAX, SUNO_TRACK_SOURCE_TYPES, SUPPORTED_FONT_NAMES, SURROUND_DIRECTIONS, SWITCHX_BLOCK_FRAMES, SWITCHX_FRAME_TIERS, type SceneData, type SceneHelperName, SceneHelperNameSchema, type SceneInputMode, SceneInputModeSchema, type SceneMetadata, SceneMetadataSchema, type SceneNodeData, SceneNodeDataSchema, SceneSpecSchema, type ScraperActorId, type ScriptCriticVerdict, ScriptCriticVerdictSchema, type ScriptProvider, type Season, type SectionKind, type SelectorConfig, type SelectorFields, type SelectorMode, type SelectorPredicateOp, type SelectorResult, type SemanticAspectRatio, type SeparatorPreset, type SharedListing, type SharedVoice, type SheetAspect, type SheetBackground, type SheetCostEstimate, type SheetEntry, type SheetFlavour, type SheetGenerationPlan, type SheetPreset, type SheetPresetId, type SheetSection, type SheetSkin, type SheetTextData, type SheetType, type ShotElement, type ShotImageElement, type ShotShapeElement, type ShotSpec, ShotSpecSchema, type ShotTextElement, type ShowrunnerPlan, ShowrunnerPlanSchema, type SidecarLoader, type SlotControlDescriptor, type SlotControlKind, type SlotVariation, type SocialMediaContentType, type SocialMediaPlatform, type SocialMediaSpec, type SortDirection, type SortListOptions, type SortType, type StageAwaitingSubGateEvent, StageAwaitingSubGateEventSchema, type StaticCaptionStyle, type StoryboardCohesionCriticVerdict, StoryboardCohesionCriticVerdictSchema, type StyleDirectives, StyleDirectivesSchema, type SubGateName, SubGateNameSchema, type SubmissionStatus, type SunoAddTrackModel, type SunoModel, type SupportedFontName, type SurroundDirection, type Swatch, T2I_TO_I2I_VARIANT, TASK_CHAINED_EDIT_PROVIDERS, TEXT_TO_AUDIO_PROVIDERS, TEXT_TO_VIDEO_PROVIDERS, TIER_MAX_PIPELINE_COST_CREDITS, TIER_PIPELINE_PARALLELISM, TILT_CARRIED_FRACTION, TRANSCRIBE_PROVIDERS, TRANSIENT_RUNTIME_KEYS, TTS_PROVIDERS, TTS_TEXT_MAX, TWO_K_RESOLUTION_PROVIDERS, type TextToAudioProvider, type TextToVideoProvider, type TranscribeProvider, type TransitionType, TransitionTypeSchema, type TrimVideoEstimatorInput, type TtsProvider, UPSCALE_IMAGE_PROVIDERS, USAGE_MODES, type UpscaleImageProvider, type UsageMode, VARIABLES_HANDLE_ID, VARIABLE_PRICING_MODELS, VEHICLES, VEHICLE_SUBCATEGORY_LABELS, VEHICLE_SUBCATEGORY_ORDER, VEO_PROVIDERS, VIDEO_ANALYSIS_BUCKET_CREDITS, VIDEO_ANALYSIS_CLIP_TRANSITIONS_IN, VIDEO_ANALYSIS_DEFAULT_VARIATION, VIDEO_ANALYSIS_DURATION_BUCKETS, VIDEO_ANALYSIS_DURATION_TOLERANCE_SEC, VIDEO_ANALYSIS_ENTITY_SOURCES, VIDEO_ANALYSIS_FACELESS_ANGLES, VIDEO_ANALYSIS_LEGACY_MODELS, VIDEO_ANALYSIS_LLM_MODELS, VIDEO_ANALYSIS_MAX_DURATION_SEC, VIDEO_ANALYSIS_MAX_SCENE_SEC, VIDEO_ANALYSIS_MAX_VARIATIONS, VIDEO_ANALYSIS_MIXED_TIERS, VIDEO_ANALYSIS_SHOT_ANGLES, VIDEO_ANALYSIS_SPEED_EFFECTS, VIDEO_ANALYSIS_STORY_JUMPS, VIDEO_ANALYSIS_TEXT_KINDS, VIDEO_ANALYSIS_TIERS, VIDEO_ANALYSIS_TIER_LABELS, VIDEO_ANALYSIS_TIER_ORDER, VIDEO_ANALYSIS_TIMES_OF_DAY, VIDEO_ANALYSIS_TRANSITIONS, VIDEO_ANALYSIS_VARIATION_SLUGS, VIDEO_ANALYSIS_VISUAL_EFFECTS, VIDEO_ANALYSIS_WINDOW, VIDEO_AUDIO_CAPABILITY, VIDEO_AUDIT_BUCKET_CREDITS, VIDEO_CLIP_CREDITS, VIDEO_CRITIC_CREDITS_PER_SHOT, VIDEO_CRITIC_FRAME_MODES, VIDEO_CRITIC_MAX_RETRIES, VIDEO_CRITIC_METADATA_KEYS, VIDEO_CRITIC_MIN_ADHERENCE_SCORE, VIDEO_DURATION_TIERS, VIDEO_GEN_COLLAPSED_T2V_IDS, VIDEO_GEN_PROVIDERS, VIDEO_INPUT_LIP_SYNC_PROVIDERS, VIDEO_MODEL_CAPS, VIDEO_MODE_ALIASES, VIDEO_PRODUCER_TYPES, VIDEO_PROMPT_MAX, VIDEO_PROVIDERS_REQUIRING_IMAGE, VIDEO_PROVIDERS_WITHOUT_DISPATCH, VIDEO_REF_LIMITS_BY_PROVIDER, VIDEO_TO_VIDEO_PROVIDERS, VIDEO_UPSCALE_PROVIDERS, VIDEO_UTIL_PRICING, VIDEO_VARIABLE_PRICING, VOICE_CHANGER_MODELS, VOICE_CHANGER_MODEL_IDS, VOICE_DESIGN_MODELS, type ValidateMatchCutInput, ValidateMatchCutInputSchema, type ValidateMatchCutResult, ValidateMatchCutResultSchema, type ValidationField, type Vehicle, type VehicleSubcategory, type VideoAnalysisClipTransitionIn, type VideoAnalysisEntitySource, type VideoAnalysisMixedTier, type VideoAnalysisModelTier, type VideoAnalysisResult, type VideoAnalysisShotAngle, type VideoAnalysisSpeedEffect, type VideoAnalysisTextKind, type VideoAnalysisTier, type VideoAnalysisTransition, type VideoAnalysisVisualEffect, type VideoAudioCapability, type VideoAudioMode, type VideoClipCost, type VideoCriticFrameMode, type VideoCriticMetadataKey, type VideoCriticShotFields, type VideoCriticVerdict, VideoCriticVerdictSchema, type VideoGenProvider, type VideoModeAlias, type VideoModelCapabilities, type VideoToVideoProvider, type VideoUpscaleProvider, type Voice, type VoiceChangerModel, type VoiceClone, type VoiceDesignModel, type VoiceLibraryParams, type VoiceLibraryResponse, type VoiceMatch, VoiceMatchSchema, type VoiceType, WAN_3_DEFAULT_RESOLUTION, WAN_3_PROVIDERS, WARDROBE_VARIANTS, WEAPONS, WEAPON_SUBCATEGORY_LABELS, WEAPON_SUBCATEGORY_ORDER, WORKFLOW_VISIBILITIES, WORKSPACE_HEADER, WORKSPACE_HEADER_LOWER, WORKSPACE_ROLES, type Weapon, type WeaponSubcategory, type WindowAnalysis, type WindowScene, type WorkflowAssetKind, type WorkflowExport, type WorkflowExportCharacter, type WorkflowExportCreature, type WorkflowExportLocation, type WorkflowExportObject, type WorkflowImportReport, type WorkflowImportSkippedAsset, type WorkflowMediaRef, type WorkflowPortability, type WorkflowVisibility, type WorkspaceMemberView, type WorkspaceRole, type WorkspaceSettings, WorkspaceSettingsSchema, type WorkspaceSummary, type WorkspaceView, aggregateByType, aiAvatarReserveCreditId, analyzedSceneSchema, applyDefaultVideoSelection, applyHandleInputOverride, applyRange, applyRangeIndices, applySlots, applyVideoAudioToggle, applyVideoNegativePrompt, aspectRatioFromDims, aspectRatioOptionsByKind, aspectRatioToNumber, assembleNarratedVideoCredits, availableReasoningEfforts, bucketSecondsFromAuditCreditId, bucketSecondsFromCreditId, buildBoardPrompt, buildChildrenByParent, buildConditionVariables, buildCreditModelIdentifier, buildExpressionFromVisual, buildLipSyncCreditId, buildLlmCreditIdentifier, buildModelMenu, buildModelTree, buildMotionCreditModelIdentifier, buildNodePresetExport, buildPanelPrompt, buildProgressSegments, buildRangeLabel, buildScraperCreditId, buildVideoAnalysisCreditId, buildVideoAuditCreditId, buildVideoCreditModelIdentifier, calculateCombinedProgress, calculateMonetizationMarkup, calculateMonetizedCost, calculateProgress, canonicalVarName, characterBoardItems, characterBucketDisplayRank, characterMentionSlug, characterMentionableAssetArrays, characterSheetRefItems, characterVariantAssetArrays, cinematicCreditId, clampCinematicDuration, clampSmartCutWindow, cleanOrphanedItems, clearImageCriticMetadata, clearVideoCriticMetadata, clipLookSchema, collectAncestorRefs, combineSameLabelRefs, computeAggregateLanes, countRefModalityEdges, creditRangesAll, creditsToUsd, decodeProviderItem, defaultCarriedFraction, defaultResolutionFor, defaultRoleForSource, defaultVideoAspectRatio, deriveLinkedFields, deriveLottieSlotFields, deriveSlotRefs, describeEdgeBehavior, describeMaskRegion, describeNodeAdjustments, describeSlotControl, dropUnknownBindings, dropUnknownSpeakers, durationsByMode, effectiveReasoningEffort, encodeProviderItem, ensureLocaleCatalogLoaded, entityHydrationColumns, entityMentionSlug, entityMentionSlugForRef, entityScalarFields, entitySlotSchema, entryMatchesQuery, estimateCombineVideosCredits, estimateFilmCredits, estimateLoopTrimAddonCredits, estimateLoopVideoCredits, estimateScriptDurationSec, estimateSheetCost, estimateTrimVideoCredits, evaluateCondition, evaluateConditionGroup, evaluateJsonExpression, evaluateJsonPath, expandExtraRefsToConnectedReferences, expandItemsWithRepeat, extractAllGeneratedResults, extractCharacterLoraFields, extractGeneratedJsonAsList, extractPresetData, extractReferencedLabels, extractVideoDurationFromNode, fieldKeyFromHandle, filterCloneNodes, findCharacterMentionTokens, findEntityMentionTokens, findImageMentionTokens, findLocationMentionTokens, findSeedance2AudioOverLimit, firstSightExtraRole, flattenItems, getAnimal, getAnimalLabel, getAnimalPromptHint, getAnimalTerm, getAspectRatioOptions, getAudioCrossfadeCurve, getCharacterFacet, getCombineTransition, getCreditRange, getDurationsForModel, getEffectiveRepeatCount, getFeaturedEntities, getFurniture, getFurnitureLabel, getInputFieldSchema, getInputNodes, getItemSortId, getLipSyncMaxAudioSeconds, getLlmModalityCaps, getLlmModel, getLlmTier, getLocaleDirection, getMaxImagePromptChars, getMaxNegativePromptChars, getMaxSunoPromptChars, getMaxSunoStyleChars, getMaxTtsChars, getMaxVideoPromptChars, getModel, getNodeLabel, getNodeResult, getOutputNodes, getOutputType, getParameterValue, getQualityOptions, getResolutionOptions, getRouteReachableNodeIds, getStrategy, getTargetField, getValidValues, getVehicle, getVehicleLabel, getVideoAudioCapability, getWeapon, getWeaponLabel, groupByFamily, groupHandleId, groupLlmModelsByVendor, hasContiguousSegmentDurations, hasFeature, hexToRgbaArray, humanizeSlotSid, imageMentionSlug, imageMentionSlugForRef, imageReferenceLimit, inferMusicVideo, isAggregateableType, isCharacterAspectRatio, isCollectInEdge, isDefaultSelectorConfig, isExpandedClone, isFlux2Model, isGeminiOmniProvider, isGvpSupportedProvider, isHandleInputWired, isKineticCaptionStyle, isLocationUsageMode, isMinimaxH3Provider, isObjectAspectRatio, isOversizedScene, isPaygRetentionActive, isPerSecondLipSyncProvider, isScraperActor, isSeedance2Provider, isTiltDirection, isUsageMode, isVeoProvider, isVideoAnalysisMixedTier, isVideoAnalysisTier, isWan3Provider, jsonResultToList, knownEntitySlugsFromRefs, knownImageSlugsFromRefs, listBoardTemplates, listModels, listSlotSids, llmRouteDefaults, locationMentionSlug, locationReferencePhotoKindLabel, locationUsageModeLabel, mapAspectRatio, mapQuality, mapShotIntentToProviderDirectives, matchVariant, maxSegmentSecFor, maxSegmentsFor, mergeClipLook, mergeExposedSettings, migrateEdgeOutputMode, migrateToItems, minSegmentSecFor, modelIdsByKindMode, modelToNodeTarget, modelsForInputMode, modelsWithFeature, motionGraphicsFeature, normalizeLottieLayers, normalizeMinimaxH3Resolution, normalizeModelInput, normalizeNodeModelParams, normalizePinterestUrl, normalizeRoleSlug, normalizeWan3Resolution, orderedLlmModels, parseAttributedDialogue, parseCharacterMentionToken, parseEntityMentionToken, parseGroupHandle, parseHandleId, parseImageMentionToken, parseListExpression, parseLocationMentionToken, parseNodePresetExport, parseNodeRef, pickAiAvatarBucket, pickIds, pickLipSyncBucket, pickSwitchXFrameTier, pickVideoAnalysisBucket, planSheetGeneration, planSheetPanels, preferredInputModeForModel, presentTypes, presetApplyClearKeys, presetDataMatches, presetEntries, qualityOptionsByKind, readPromptAffixes, refHandleCategory, referenceModalityForHandle, referenceSheetCreditId, registerCatalogSidecars, registerSidecarLoaders, renderAnalyzedScene, resetCatalogSidecars, resolutionOptionsByKind, resolveAiAvatarCreditId, resolveAudioCrossfadeCurve, resolveCharacterAspectRatio, resolveCinematicCreditId, resolveConditionValue, resolveDefaultRole, resolveDescription, resolveDialogueVoices, resolveEffectiveSourceType, resolveEffectiveTier, resolveEntityAspect, resolveFieldMappings, resolveGvpAnchorWire, resolveImageGenCreditIdentifier, resolveIndex, resolveLabel, resolveListExpression, resolveLlmCreditId, resolveLocationFields, resolveLocationPresetCatalog, resolveLottieOverlaySrc, resolveNodeRefs, resolveObjectAspectRatio, resolvePipelineModel, resolveRelativeWindowToken, resolveScraperCreditId, resolveSelectorRefs, resolveSeparator, resolveSheetSections, resolveSlideshowTransition, resolveSourceThroughConnectedList, resolveStoredTier, resolveSwitchXCreditId, resolveVideoAnalysisModel, resolveVideoModeForInputs, resolveVideoProviderForMode, resolveXfadeName, rewriteSceneBindings, rewriteSlotTokens, rewriteSpeakerSlots, rgbaArrayToHex, roleToPhrase, runSelector, sanitizeRole, searchModelVariants, seedance2AudioLimitSec, segmentDurationsFor, selectByModulo, selectByNamedKey, selectByPredicate, selectListItems, selectLoraRoutingForMentions, selectRandom, setRegisteredPersonPackFields, settledWithLimit, slotVariationSchema, sortCharacterEntriesForDisplay, sortListItems, sourceRefKey, spliceDelimitedRows, splitByLoopDelimiter, splitGeneratedItems, spreadJsonArrayIfSingleton, stringifyPathResults, stripExportContent, stripTransientRuntimeData, supportedDefaultDimensions, supportsAdvancedMode, supportsEndAnchor, supportsExtendRender, toConnectedReference, toConnectedReferences, togglePick, tryParseJson, uiAspectRatioFill, uiDurationFill, uiResolutionFill, unwrapUnresolvedTokens, usageModeDirective, usageModeIncludesName, usageModeLabel, usdToCredits, validateAiAvatarPayload, validateCinematicAvatarPayload, validateDurationForFormat, validateModeActivation, validateModelInput, validateNoNestedGroups, validateObjects, validateProviderForNodeType, validateSubWorkflowRoutes, variantJobId, videoAnalysisCreditSegment, videoAnalysisNumWindows, videoAnalysisResultSchema, videoAuditCreditsForBucket, videoModelCanSpeakDialogue, videoModelSupportsAudio, videoNegativeSuffix, videoProviderRequiresImage, windowAnalysisSchema, zipMergeLists };
|
|
11755
|
+
export { ACCESS_LEVELS, ACTIVE_SCENE_HELPERS, ADVANCED_MODE_UNAVAILABLE_REASON, AGGREGATEABLE_TYPES, AGGREGATE_LANE_SOURCE_TYPES, AI_AVATAR_DURATION_BUCKETS, AI_AVATAR_MAX_AUDIO_SEC, AI_AVATAR_MAX_DURATION_SEC, AI_AVATAR_RESERVE_IDS, AI_WRITER_PROVIDERS, ALA_CARTE_BOARDS, ALL_CAPTION_STYLES, ANIMALS, ANIMAL_SUBCATEGORY_LABELS, ANIMAL_SUBCATEGORY_ORDER, ASPECT_RATIO_DIMENSIONS, AUDIO_ADDON_PROVIDERS, AUDIO_CROSSFADE_CURVES, AUDIO_CROSSFADE_CURVE_IDS, AUDIO_FX_PRESETS, AUDIO_FX_PRESET_LABELS, AUDIO_FX_PRESET_SET, AUDIO_FX_REVERB_PRESETS, AUDIO_PRODUCER_TYPES, type AccessLevel, type AddBRollResult, AddBRollResultSchema, type AggregateableType, type AggregationBuckets, type AiAvatarDurationBucket, type AiAvatarEngine, type AiAvatarResolution, type AiWriterProvider, type AlaCarteBoard, type AnalyzedScene, type AnchorSceneStyleResult, AnchorSceneStyleResultSchema, type Animal, type AnimalSubcategory, type AssetRef, AssetRefSchema, type AudioCrossfadeCurve, type AudioFxPreset, type AudioLayer, type AuditImagesResult, AuditImagesResultSchema, type AuditImagesShotEntry, AuditImagesShotEntrySchema, AuditPromptIssueSchema, type AuditPromptResult, AuditPromptResultSchema, AvatarPayloadError, BOARD_TO_ASSET_TYPE, BOARD_TO_COLUMN, BOARD_VARIANTS, type BoardEntityKind, type BoardPromptContext, type BoardTemplate, BridgeToNextSceneInputSchema, type BridgeToNextSceneResult, BridgeToNextSceneResultSchema, type BrowseCommunityParams, type BrowseCommunityResult, CATEGORY_DURATION_DEFAULTS, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_ASSET_TYPES, CHARACTER_ASSET_VARIANTS, CHARACTER_ATTACH_COLUMNS, CHARACTER_FACETS, CHARACTER_FACET_IDS, CHARACTER_LORA_TRAINING_JOB_TYPE, CHARACTER_MOTION_PROVIDERS, CHARACTER_PICKER_DISPLAY_ORDER, CHARACTER_REFERENCE_PHOTO_KINDS, CHARACTER_STYLES, CHARACTER_VARIANT_ASSET_BUCKETS, CHAT_ENABLED_STAGES, CHAT_STAGES, CHAT_TURN_CAPS, CHAT_WIRED_STAGES, CINEMATIC_DEFAULT_DURATION_SEC, CINEMATIC_DEFAULT_RESOLUTION, CINEMATIC_MAX_DURATION_SEC, CINEMATIC_MAX_LOOKS, CINEMATIC_MAX_REFERENCE_IMAGES, CINEMATIC_MAX_REFERENCE_VIDEOS, CINEMATIC_MIN_DURATION_SEC, CINEMATIC_MIN_LOOKS, CINEMATIC_PROMPT_MAX, CINEMATIC_RESERVE_IDS, COLLABORATOR_ROLES, COLLECT_IN_HANDLE, COMBINE_TRANSITIONS, COMBINE_TRANSITION_GROUP_LABELS, COMBINE_TRANSITION_GROUP_ORDER, COMBINE_TRANSITION_IDS, COMPOSER_PLAN_FIELDS, COMPOSER_PLAN_MAP, CONTENT_TYPES_BY_PLATFORM, CREATURE_ATTACH_COLUMNS, CREDIT_BASE_USD, CREDIT_ROUNDING_RESOLUTION, type CaptionStyle, type CastCoverageCriticVerdict, CastCoverageCriticVerdictSchema, type CharacterAspectRatio, type CharacterAssetType, type CharacterAssetTypeForAspect, type CharacterAttachColumn, type CharacterDef, type CharacterFacet, type CharacterImageCriticVerdict, CharacterImageCriticVerdictSchema, type CharacterLoraFields, type CharacterMentionTokenInfo, CharacterMetadataSchema, type CharacterMotionProvider, type CharacterReferencePhoto, type CharacterReferencePhotoKind, type CharacterVariantAssetBucket, type CharacterVariantAssetItem, type CharacterVoiceSpec, type ChatEnabledStage, type ChatTurnResponse, ChatTurnResponseSchema, type CinematicResolution, type ClipLook, type CloneListingResult, type CollaboratorRole, type CombineTransition, type CombineTransitionGroup, type CombineVideosEstimatorInput, type CommunityCard, type CommunityEntityType, type CommunityFullDetail, type CommunityReportReason, type CommunitySort, type ComponentHandle, type ComponentMetadata, type ConnectedReference, type CreatureAttachColumn, CriticIssueSchema, type CustomEntry, DEFAULT_AUDIO_CROSSFADE_CURVE_ID, DEFAULT_CARRIED_FRACTION, DEFAULT_CHARACTER_ANGLE_COUNT, DEFAULT_CHARACTER_EXPRESSION_COUNT, DEFAULT_CHARACTER_FACET, DEFAULT_LABEL_BY_SOURCE, DEFAULT_LOCATION_USAGE_MODE, DEFAULT_PANEL_COUNT, DEFAULT_REF_IMAGE_MAX, DEFAULT_SECTIONS, DEFAULT_USAGE_MODE, DEFAULT_VIDEO_ANALYSIS_MODEL, DEFAULT_VIDEO_ANALYSIS_TIER, DEFAULT_VIDEO_CLIP_COST, DEFAULT_VIDEO_DURATION_SEC, DEFAULT_VIDEO_PROVIDER, DEFAULT_VOICE_CHANGER_MODEL, DEFAULT_VOICE_DESIGN_MODEL, DETAIL_VARIANTS, DURATION_PRICED_PROVIDERS, DYNAMIC_PRODUCER_TYPES, type DetectionResult, DetectionResultSchema, type DialogueLine, EFFORT_TIER_BUMP, EMOTIONAL_BEAT, ENTITY_ASPECT_DEFAULTS, ENTITY_BUCKET_FIELDS, ENTITY_DB_ID_FIELD, ENTITY_IMAGE_HANDLE_TYPES, ENTITY_KIND_SCALAR_FIELDS, ENTITY_NAME_FIELD, ENTITY_NODE_KINDS, ENTITY_SCALAR_FIELDS, ENTITY_SECTIONS, ENTITY_STATUSES, ENTITY_TABLE, ENTITY_TOOL_RETRY_CAP, ENTITY_TYPES, EXECUTION_DATA_KEYS, EXTEND_VIDEO_PROVIDERS, type EntityKind, type EntityMentionTokenInfo, type EntityMetadata, EntityMetadataSchema, type EntityNodeKind, type EntityReferenceInput, type EntityRejectInput, EntityRejectInputSchema, type EntitySlot, type EntityStaleEvent, EntityStaleEventSchema, type EntityStateChangeEvent, EntityStateChangeEventSchema, type EntityStatus, type EntityStudioKind, type EntityStyle, type EntityType, type EvaluateConditionOptions, type ExportedPreset, type ExposableField, type ExposableOutput, type ExposedSetting, type ExtendVideoProvider, type ExtraRefCharacterContext, type ExtraRefInput, FACE_SWAP_PROVIDERS, FAL_LIP_SYNC_PROVIDERS, FAN_OUT_EACH_TYPES, FEATURED_ENTITIES, FILM_BASE_CREDITS, FLEXIBLE_INPUT_LIP_SYNC_PROVIDERS, FLUX2_RES_MP, FLUX_LORA_CHARACTER_MODEL_ID, FRAME_MODE_ADAPTIVE_ONLY_ASPECT, FRAME_TARGET_HANDLES, FREECUT_EXPORT_COMPLETE, FREECUT_EXPORT_PROGRESS, FREECUT_READY, FREECUT_REQUEST_IMPORT, FURNITURE, FURNITURE_SUBCATEGORY_LABELS, FURNITURE_SUBCATEGORY_ORDER, type FaceSwapProvider, type FavoriteListingResult, type FeaturedEntity, type FilmCreditEstimate, type FilterListCondition, type FilterListOperator, type FilterOperator, type FixContinuityInput, FixContinuityInputSchema, type FixContinuityResult, FixContinuityResultSchema, type Flux2Model, type FreecutExportCompletePayload, type FreecutExportProgressPayload, type FreecutImportFile, type FreecutRequestImportPayload, type FullSelectorMode, type Furniture, type FurnitureSubcategory, GEMINI_OMNI_PROVIDERS, GENERATE_TEXT_DELIMITER, GLOBAL_MAX_DURATION_SECONDS, GRANTED_ACCESS, GROUP_HANDLE_PREFIX, GUIDANCE_SCALE_SUPPORT, GVP_ANCHOR_CHOICES, GVP_DEFAULT_PROVIDER, GVP_END_FRAME_PROVIDERS, GVP_EXTEND_PROVIDERS, GVP_SUPPORTED_PROVIDERS, GenerateMotionInputSchema, type GenerateMotionResult, GenerateMotionResultSchema, type GenericEdge, type GenericNode, type GrantedAccess, type GvpAnchorChoice, type GvpAnchorWireMode, HANDLE_PORT_SEPARATOR, HELPERS_SHIPPED_IN_1B3, HIGH_QUALITY_PROVIDERS, HINT_EXEMPT_PARAMETER_TYPES, type HintEdgeLike, type HintGraphContext, type HintNodeLike, type I18nCatalogId, I2I_MASK_SUPPORT, I2I_STRENGTH_SUPPORT, IDEOGRAM_PROVIDERS, IMAGE_ASPECT_RATIO_VALUES, IMAGE_CRITIC_LEAF_MODES, IMAGE_CRITIC_MAX_RETRIES, IMAGE_CRITIC_METADATA_KEYS, IMAGE_CRITIC_MIN_ADHERENCE_SCORE, IMAGE_CRITIC_MODES, IMAGE_CRITIC_UNRESOLVABLE, IMAGE_EDIT_PROVIDERS, IMAGE_GEN_PROVIDERS, IMAGE_I2I_PROVIDERS, IMAGE_MASK_MODE, IMAGE_PROMPT_MAX, IMAGE_REF_TYPES, IMAGE_TO_VIDEO_PROVIDERS, INPUT_FIELD_MAP, INPUT_NODE_TYPES, INSTAGRAM_CAROUSEL_MAX_ITEMS, INSTAGRAM_CAROUSEL_MIN_ITEMS, ITER_CLONE_PATTERN, type IdentityFidelity, type IdentityMeta, type ImageAspectRatio, type ImageCriticIssue, ImageCriticIssueSchema, type ImageCriticLeafMode, type ImageCriticMetadataKey, type ImageCriticMode, type ImageCriticNodeIssue, type ImageCriticResult, ImageCriticResultSchema, type ImageCriticVerdict, ImageCriticVerdictSchema, type ImageEditProvider, type ImageGenProvider, type ImageI2IProvider, type ImageMaskMode, type ImageMentionTokenInfo, type ImageToVideoProvider, type ImprovePromptInput, ImprovePromptInputSchema, type ImprovePromptResult, ImprovePromptResultSchema, type InputFieldSchema, type InvitationDelivery, type InvitationPreview, type InvitationState, type InvitationView, type JoinCodeView, type JsonEvalResult, type JsonFilter, type JsonPatch, KEYFRAME_CREDITS_PER_SHOT, KINETIC_CAPTION_STYLES, type KieApiFormat, type KineticCaptionStyle, LANGUAGES, LEGACY_LOTTIE_HOST_REMAP, LIP_SYNC_DURATION_BUCKETS, LIP_SYNC_MAX_AUDIO_SECONDS, LIP_SYNC_PROVIDERS, LLM_FEATURE_DEFAULTS, LLM_MODALITY_CAPS, LLM_MODELS, LLM_MODEL_IDS, LLM_REASONING_EFFORTS, LLM_ROUTE_DEFAULTS, LLM_TEXT_INPUT_MAX, LLM_VENDOR_LABELS, LLM_VENDOR_ORDER, LOCATION_ASSET_TYPES, LOCATION_ASSET_VARIANTS, LOCATION_ATMOSPHERE_PROVIDERS, LOCATION_ATTACH_COLUMNS, LOCATION_BUCKET_TO_CATALOG_ID, LOCATION_PRESET_TO_CATALOG, LOCATION_REFERENCE_PHOTO_KINDS, LOCATION_REFERENCE_PHOTO_KIND_LABELS, LOCATION_USAGE_MODES, LOTTIE_OVERLAY_CATALOG, LOTTIE_SLOT_FIELD_PREFIX, type LabeledOption, type LipSyncDurationBucket, type LipSyncProvider, type LlmFeature, type LlmModelDef, type LlmModelGroup, type LlmReasoningEffort, type LlmRouteDefaults, type LlmTier, type LlmVendor, type LocaleCatalogMap, type LocaleDirection, type LocaleId, type LocationAssetType, type LocationAtmosphereProvider, type LocationAttachColumn, type LocationCatalogRef, type LocationImageCriticVerdict, LocationImageCriticVerdictSchema, type LocationMentionTokenInfo, LocationMetadataSchema, type LocationReferencePhotoKind, type LocationUsageMode, LocationsCoverageCriticIssueSchema, type LocationsCoverageCriticVerdict, LocationsCoverageCriticVerdictSchema, type LoopTrimEstimatorInput, type LoopVideoEstimatorInput, type LoraEligibleRef, type LoraRouting, type LottieOverlayCatalogEntry, type LottieSlotField, MAX_CUSTOM_ENTRIES_PER_BOARD, MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER, MAX_LOCATION_VARIANTS, MAX_NEGATIVE_PROMPT_CHARS_BY_PROVIDER, MAX_PANELS_PER_SHEET, MAX_TTS_CHARS_BY_PROVIDER, MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER, MEMBER_STATUSES, MINIMAX_H3_DEFAULT_RESOLUTION, MINIMAX_H3_PROVIDERS, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, MODEL_CATALOG, MODEL_PARAM_NODE_TYPES, MODEL_RECOMMENDATIONS, MODIFY_IMAGE_PROVIDERS, MOTION_COLUMN, MOTION_TRANSFER_PROVIDERS, MUSIC_PROVIDERS, type MaskRegionDescriptor, type MatchCutVerdict, MatchCutVerdictSchema, type MeOrganizations, type Member, type MemberStatus, type MinimalEdge, type MinimalNode, type ModelCatalogEntry, type ModelInputAdjustment, type ModelKind, type ModelMenuOption, type ModelMode, type ModelNodeTarget, type ModelPromptingStyle, type ModelRecommendation, type ModelTreeLine, type ModelTreeVariant, type ModelValidationIssue, type ModifyImageProvider, type MotionTransferProviderType, type MusicProvider, NATIVE_ADAPTIVE_ASPECT, NATIVE_NEGATIVE_PROMPT_MODELS, NATIVE_NEGATIVE_VIDEO_PROVIDERS, NEGATIVE_PROMPT_MAX, NODARO_IMPORT_FILES, NODARO_LOAD_TIMELINE, NODARO_LOAD_VIDEO, NODARO_RESET_PROJECT, NODE_DEFAULT_TYPES, NODE_MAPPABLE_FIELDS, NODE_PRESET_EXPORT_KIND, NODE_REF_PATTERN, NON_EN_LOCALE_IDS, NO_SPLIT_DELIMITER, type NodaroLoadTimelinePayload, type NodaroLoadVideoPayload, type NodeDefaultType, type NodeParamAdjustment, type NodePresetExport, type NormalizedImageGen, type NormalizedModelInput, type NormalizedNodes, type NormalizedVideoRequest, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ASSET_VARIANTS, OBJECT_ATTACH_COLUMNS, OBJECT_MOTION_PROVIDERS, OBJECT_PICKER_NODE_TYPES, ORG_ERROR_CODES, ORG_KINDS, ORG_ROLES, ORG_STATUSES, OUTPUT_FIELD_MAP, OUTPUT_FORMATS, type ObjectAspectRatio, type ObjectAssetType, type ObjectAssetTypeForAspect, type ObjectAttachColumn, ObjectMetadataSchema, type ObjectMotionProvider, type ObjectsValidationIssue, type ObjectsValidationResult, OptimizeForModelInputSchema, type OptimizeForModelResult, OptimizeForModelResultSchema, type OrgAuditEntry, type OrgErrorCode, type OrgKind, type OrgMemberView, type OrgPage, type OrgRole, type OrgSettings, OrgSettingsSchema, type OrgStatus, type OrganizationSummary, type OrganizationView, type OutputFormat, type OutputMode, type OutputType, PARAMETER_NODE_TYPES, PASSTHROUGH_TYPES, PAYG_RETENTION_DAYS, PER_FORMAT_DURATION_BOUNDS, PICKER_TO_COMBINE_TRANSITION, PIPELINE_ACTIVATION_MODES, PIPELINE_FORMATS, PIPELINE_HARD_TIMEOUT_MS, PIPELINE_MODEL_STAGES, PIPELINE_MODES, PIPELINE_OUTPUT_RESOLUTIONS, PIPELINE_PINNABLE_IMAGE_MODELS, PIPELINE_PINNABLE_SCRIPT_LLMS, PIPELINE_PINNABLE_VIDEO_MODELS, PIPELINE_STAGE_NAMES, PIPELINE_STAGE_TIMEOUT_MS, PIPELINE_TYPES, PLACEHOLDER_CHARACTER_NAME, PLATFORM_LABELS, PLATFORM_SPECS, PRESET_APPLY_CLEAR_KEYS, PRESET_EXCLUDED_KEYS, PRESET_LABELS, PRESET_SETTING_KEYS, PRICING_DEFAULT_DURATION_SEC, PRICING_DEFAULT_RESOLUTION, PROMPT_HARD_CEILING, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PROVIDER_DIRECTIVE_DEFAULTS, PROVIDER_PLACEHOLDER_PREFIX, type PanelGenRequest, type PanelRequest, type PanelSource, type PipelineActivationMode, type PipelineCompletedEvent, PipelineCompletedEventSchema, type PipelineConfig, PipelineConfigSchema, type PipelineDriftSummary, PipelineDriftSummarySchema, type PipelineEditorDecisionsReadyEvent, PipelineEditorDecisionsReadyEventSchema, type PipelineEvent, type PipelineForkedEvent, PipelineForkedEventSchema, type PipelineFormat, type PipelineInput, PipelineInputSchema, type PipelineLifecycleEvent, type PipelineMode, type PipelineModelStage, type PipelineMusicReadyEvent, PipelineMusicReadyEventSchema, type PipelineOutputResolution, type PipelinePinnableImageModel, type PipelinePinnableScriptLlm, type PipelinePinnableVideoModel, type PipelineStageName, PipelineStageNameSchema, type PipelineStageStatus, PipelineStageStatusSchema, type PipelineState, PipelineStateSchema, type PipelineStatus, PipelineStatusSchema, type PipelineType, type PixelBox, type PresentationItem, type PresetEntry, type PresetSettingKey, type PresetSettings, PresetSettingsSchema, type PriceVariant, type PricedVideoSelection, type ProgressSegment, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, type PromptAffixFields, type PromptAffixes, type ProposedChange, type PublishListingParams, type PublishListingResult, QA_CHECK_PROVIDERS, type QaCheckProvider, type QualityLevel, REDUCE_STRATEGIES, REDUCE_STRATEGY_IDS, REFERENCE_BOARD_PROVIDERS, REFERENCE_BOARD_TEMPLATES, REFERENCE_HANDLE_MAP, REFERENCE_ROLE_PRESETS, REF_HANDLE_CATEGORY, REF_IMAGE_MAX_LIMITS, REF_TOKEN_NAMESPACE_PREFIXES, RENDERING_SPEED_SUPPORT, REPEATABLE_NODE_TYPES, REPEAT_PLACEHOLDER, REPLICATE_LIP_SYNC_PROVIDERS, RESERVED_TEMPLATE_VARS, type ReduceMeta, type ReduceStrategy, type ReduceStrategyId, type RefCandidate, type RefModalityEdge, type RefTokenKind, type RefVideoDurationLimit, type ReferenceBoardProvider, type ReferenceModality, type ReferenceSheet, type ReferenceSource, type ReportListingResult, type ResolveCharacterAspectOptions, type ResolveObjectAspectOptions, type ResolveSeparatorOptions, type ResolvedDialogueVoiceLine, type RouterConditionGroup, SCENE_HELPER_NAMES, SCRAPER_ACTOR_LABELS, SCRAPER_CREDIT_COSTS, SCRAPER_OUTPUT_FIELDS, SCRIPT_PROVIDERS, SEASONS, SECTION_BOARD, SECTION_KINDS, SEEDANCE_2_5_REF_LIMITS, SEEDANCE_2_CONTINUATION_REF_SEC, SEEDANCE_2_EXTEND_STITCH, SEEDANCE_2_PROVIDERS, SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER, SEEDANCE_2_R2V_MIN_REF_VIDEO_SEC, SEEDANCE_2_REF_LIMITS, SEEDANCE_LIP_SYNC_PROVIDERS, SEED_SUPPORT, SEPARATOR_DISPLAY, SEPARATOR_PRESETS, SHEET_ASPECTS, SHEET_BACKGROUNDS, SHEET_PRESETS, SHEET_SKINS, SHEET_TYPES, SHORT_FILM_ANGLE_COUNT, SHORT_FILM_EXPRESSION_COUNT, SHORT_FILM_VARIANT_THRESHOLD_SEC, SLOT_TOKEN_RE, SMART_CUT_WINDOW_DEFAULT, SMART_CUT_WINDOW_MAX, SMART_CUT_WINDOW_MIN, SOCIAL_POST_NODE_TYPES, STAGE_PATCH_SCHEMA, STATIC_CAPTION_STYLES, STRUCTURAL_SECTIONS, STRUCTURED_VISION_MODELS, SUBMISSION_STATUSES, SUNO_ADD_TRACK_MODELS, SUNO_FIELD_HANDLE_FIELDS, SUNO_HARD_CEILING, SUNO_MODELS, SUNO_SELECT_OPERATIONS, SUNO_TEXT_MAX, SUNO_TITLE_MAX, SUNO_TRACK_SOURCE_TYPES, SUNO_VERSION_PRICED_OPERATIONS, SUPPORTED_FONT_NAMES, SURROUND_DIRECTIONS, SWITCHX_BLOCK_FRAMES, SWITCHX_FRAME_TIERS, type SafetyRetryPolicy, type SceneData, type SceneHelperName, SceneHelperNameSchema, type SceneInputMode, SceneInputModeSchema, type SceneMetadata, SceneMetadataSchema, type SceneNodeData, SceneNodeDataSchema, SceneSpecSchema, type ScraperActorId, type ScriptCriticVerdict, ScriptCriticVerdictSchema, type ScriptProvider, type Season, type SectionKind, type SelectorConfig, type SelectorFields, type SelectorMode, type SelectorPredicateOp, type SelectorResult, type SemanticAspectRatio, type SeparatorPreset, type SharedListing, type SharedVoice, type SheetAspect, type SheetBackground, type SheetCostEstimate, type SheetEntry, type SheetFlavour, type SheetGenerationPlan, type SheetPreset, type SheetPresetId, type SheetSection, type SheetSkin, type SheetTextData, type SheetType, type ShotElement, type ShotImageElement, type ShotShapeElement, type ShotSpec, ShotSpecSchema, type ShotTextElement, type ShowrunnerPlan, ShowrunnerPlanSchema, type SidecarLoader, type SlotControlDescriptor, type SlotControlKind, type SlotVariation, type SocialMediaContentType, type SocialMediaPlatform, type SocialMediaSpec, type SortDirection, type SortListOptions, type SortType, type StageAwaitingSubGateEvent, StageAwaitingSubGateEventSchema, type StaticCaptionStyle, type StoryboardCohesionCriticVerdict, StoryboardCohesionCriticVerdictSchema, type StyleDirectives, StyleDirectivesSchema, type SubGateName, SubGateNameSchema, type SubmissionStatus, type SunoAddTrackModel, type SunoModel, type SupportedFontName, type SurroundDirection, type Swatch, T2I_TO_I2I_VARIANT, TASK_CHAINED_EDIT_PROVIDERS, TEXT_TO_AUDIO_PROVIDERS, TEXT_TO_VIDEO_PROVIDERS, TIER_MAX_PIPELINE_COST_CREDITS, TIER_PIPELINE_PARALLELISM, TILT_CARRIED_FRACTION, TOPAZ_DEFAULT_UPSCALE_FACTOR, TOPAZ_UPSCALE_FACTORS, TRANSCRIBE_PROVIDERS, TRANSIENT_RUNTIME_KEYS, TTS_PROVIDERS, TTS_TEXT_MAX, TWO_K_RESOLUTION_PROVIDERS, type TextToAudioProvider, type TextToVideoProvider, type TopazUpscaleAdjustment, type TopazUpscaleFactor, type TopazUpscaleResolution, type TranscribeProvider, type TransitionType, TransitionTypeSchema, type TrimVideoEstimatorInput, type TtsProvider, UPSCALE_IMAGE_PROVIDERS, USAGE_GROUP_BYS, USAGE_MODES, type UpscaleImageProvider, type UsageGroupBy, type UsageLogEntry, type UsageMode, type UsageQuery, type UsageReport, type UsageReportRow, type UsageReportTotals, type UsageVarianceRow, VARIABLES_HANDLE_ID, VARIABLE_PRICING_MODELS, VEHICLES, VEHICLE_SUBCATEGORY_LABELS, VEHICLE_SUBCATEGORY_ORDER, VEO_PROVIDERS, VIDEO_ANALYSIS_AUDIO_MODES, VIDEO_ANALYSIS_BUCKET_CREDITS, VIDEO_ANALYSIS_CLIP_TRANSITIONS_IN, VIDEO_ANALYSIS_DEFAULT_VARIATION, VIDEO_ANALYSIS_DURATION_BUCKETS, VIDEO_ANALYSIS_DURATION_TOLERANCE_SEC, VIDEO_ANALYSIS_ENTITY_SOURCES, VIDEO_ANALYSIS_FACELESS_ANGLES, VIDEO_ANALYSIS_LEGACY_MODELS, VIDEO_ANALYSIS_LLM_MODELS, VIDEO_ANALYSIS_MAX_DURATION_SEC, VIDEO_ANALYSIS_MAX_SCENE_SEC, VIDEO_ANALYSIS_MAX_VARIATIONS, VIDEO_ANALYSIS_MIXED_TIERS, VIDEO_ANALYSIS_SHOT_ANGLES, VIDEO_ANALYSIS_SPEED_EFFECTS, VIDEO_ANALYSIS_STORY_JUMPS, VIDEO_ANALYSIS_TEXT_KINDS, VIDEO_ANALYSIS_TIERS, VIDEO_ANALYSIS_TIER_LABELS, VIDEO_ANALYSIS_TIER_ORDER, VIDEO_ANALYSIS_TIMES_OF_DAY, VIDEO_ANALYSIS_TRANSITIONS, VIDEO_ANALYSIS_VARIATION_SLUGS, VIDEO_ANALYSIS_VISUAL_EFFECTS, VIDEO_ANALYSIS_WINDOW, VIDEO_AUDIO_CAPABILITY, VIDEO_AUDIT_BUCKET_CREDITS, VIDEO_CLIP_CREDITS, VIDEO_CRITIC_CREDITS_PER_SHOT, VIDEO_CRITIC_FRAME_MODES, VIDEO_CRITIC_MAX_RETRIES, VIDEO_CRITIC_METADATA_KEYS, VIDEO_CRITIC_MIN_ADHERENCE_SCORE, VIDEO_DURATION_TIERS, VIDEO_GEN_COLLAPSED_T2V_IDS, VIDEO_GEN_PROVIDERS, VIDEO_INPUT_LIP_SYNC_PROVIDERS, VIDEO_MODEL_CAPS, VIDEO_MODE_ALIASES, VIDEO_PRODUCER_TYPES, VIDEO_PROMPT_MAX, VIDEO_PROVIDERS_REQUIRING_IMAGE, VIDEO_PROVIDERS_WITHOUT_DISPATCH, VIDEO_REF_LIMITS_BY_PROVIDER, VIDEO_REF_VIDEO_DURATION_LIMITS, VIDEO_TO_VIDEO_PROVIDERS, VIDEO_UPSCALE_PROVIDERS, VIDEO_UTIL_PRICING, VIDEO_VARIABLE_PRICING, VOICE_CHANGER_MODELS, VOICE_CHANGER_MODEL_IDS, VOICE_DESIGN_MODELS, type ValidateMatchCutInput, ValidateMatchCutInputSchema, type ValidateMatchCutResult, ValidateMatchCutResultSchema, type ValidationField, type Vehicle, type VehicleSubcategory, type VideoAnalysisAudioMode, type VideoAnalysisClipTransitionIn, type VideoAnalysisEntitySource, type VideoAnalysisMixedTier, type VideoAnalysisModelTier, type VideoAnalysisResult, type VideoAnalysisShotAngle, type VideoAnalysisSpeedEffect, type VideoAnalysisTextKind, type VideoAnalysisTier, type VideoAnalysisTransition, type VideoAnalysisVisualEffect, type VideoAudioCapability, type VideoAudioMode, type VideoClipCost, type VideoCriticFrameMode, type VideoCriticMetadataKey, type VideoCriticShotFields, type VideoCriticVerdict, VideoCriticVerdictSchema, type VideoGenProvider, type VideoModeAlias, type VideoModelCapabilities, type VideoToVideoProvider, type VideoUpscaleProvider, type Voice, type VoiceChangerModel, type VoiceClone, type VoiceDesignModel, type VoiceLibraryParams, type VoiceLibraryResponse, type VoiceMatch, VoiceMatchSchema, type VoiceType, WAN_3_DEFAULT_RESOLUTION, WAN_3_PROVIDERS, WARDROBE_VARIANTS, WEAPONS, WEAPON_SUBCATEGORY_LABELS, WEAPON_SUBCATEGORY_ORDER, WORKFLOW_VISIBILITIES, WORKSPACE_HEADER, WORKSPACE_HEADER_LOWER, WORKSPACE_ROLES, type Weapon, type WeaponSubcategory, type WindowAnalysis, type WindowScene, type WorkflowAssetKind, type WorkflowExport, type WorkflowExportCharacter, type WorkflowExportCreature, type WorkflowExportLocation, type WorkflowExportObject, type WorkflowImportReport, type WorkflowImportSkippedAsset, type WorkflowMediaRef, type WorkflowPortability, type WorkflowVisibility, type WorkspaceMemberView, type WorkspaceRole, type WorkspaceSettings, WorkspaceSettingsSchema, type WorkspaceSummary, type WorkspaceView, aggregateByType, aiAvatarReserveCreditId, analyzedSceneSchema, applyDefaultVideoSelection, applyHandleInputOverride, applyRange, applyRangeIndices, applySlots, applyVideoAudioToggle, applyVideoNegativePrompt, aspectRatioFromDims, aspectRatioOptionsByKind, aspectRatioToNumber, assembleNarratedVideoCredits, availableReasoningEfforts, bucketSecondsFromAuditCreditId, bucketSecondsFromCreditId, buildBoardPrompt, buildChildrenByParent, buildConditionVariables, buildCreditModelIdentifier, buildExpressionFromVisual, buildLipSyncCreditId, buildLlmCreditIdentifier, buildModelMenu, buildModelTree, buildMotionCreditModelIdentifier, buildNodePresetExport, buildPanelPrompt, buildProgressSegments, buildRangeLabel, buildScraperCreditId, buildVideoAnalysisCreditId, buildVideoAuditCreditId, buildVideoCreditModelIdentifier, calculateCombinedProgress, calculateMonetizationMarkup, calculateMonetizedCost, calculateProgress, canonicalVarName, characterBoardItems, characterBucketDisplayRank, characterMentionSlug, characterMentionableAssetArrays, characterSheetRefItems, characterVariantAssetArrays, checkRefVideoDurations, cinematicCreditId, clampCinematicDuration, clampSmartCutWindow, classifyRefToken, cleanOrphanedItems, clearImageCriticMetadata, clearVideoCriticMetadata, clipLookSchema, collectAncestorRefs, combineSameLabelRefs, computeAggregateLanes, countRefModalityEdges, creditRangesAll, creditsToUsd, decodeProviderItem, defaultCarriedFraction, defaultResolutionFor, defaultRoleForSource, defaultVideoAspectRatio, deriveLinkedFields, deriveLottieSlotFields, deriveSlotRefs, describeEdgeBehavior, describeMaskRegion, describeNodeAdjustments, describeSlotControl, dropUnknownBindings, dropUnknownSpeakers, durationsByMode, effectiveReasoningEffort, encodeProviderItem, ensureLocaleCatalogLoaded, entityHydrationColumns, entityMentionSlug, entityMentionSlugForRef, entityScalarFields, entitySlotSchema, entryMatchesQuery, estimateCombineVideosCredits, estimateFilmCredits, estimateLoopTrimAddonCredits, estimateLoopVideoCredits, estimateScriptDurationSec, estimateSheetCost, estimateTrimVideoCredits, evaluateCondition, evaluateConditionGroup, evaluateJsonExpression, evaluateJsonPath, expandExtraRefsToConnectedReferences, expandItemsWithRepeat, extractAllGeneratedResults, extractCharacterLoraFields, extractGeneratedJsonAsList, extractPresetData, extractReferencedLabels, extractVideoDurationFromNode, fieldKeyFromHandle, filterCloneNodes, findCharacterMentionTokens, findEntityMentionTokens, findImageMentionTokens, findLocationMentionTokens, findSeedance2AudioOverLimit, firstSightExtraRole, flattenItems, getAnimal, getAnimalLabel, getAnimalPromptHint, getAnimalTerm, getAspectRatioOptions, getAudioCrossfadeCurve, getCharacterFacet, getCombineTransition, getCreditRange, getDurationsForModel, getEffectiveRepeatCount, getFeaturedEntities, getFurniture, getFurnitureLabel, getInputFieldSchema, getInputNodes, getItemSortId, getLipSyncMaxAudioSeconds, getLlmModalityCaps, getLlmModel, getLlmTier, getLocaleDirection, getMaxImagePromptChars, getMaxNegativePromptChars, getMaxSunoPromptChars, getMaxSunoStyleChars, getMaxTtsChars, getMaxVideoPromptChars, getModel, getNodeLabel, getNodeResult, getOutputNodes, getOutputType, getParameterValue, getQualityOptions, getResolutionOptions, getRouteReachableNodeIds, getStrategy, getTargetField, getValidValues, getVehicle, getVehicleLabel, getVideoAudioCapability, getWeapon, getWeaponLabel, groupByFamily, groupHandleId, groupLlmModelsByVendor, hasContiguousSegmentDurations, hasFeature, hexToRgbaArray, humanizeSlotSid, imageMentionSlug, imageMentionSlugForRef, imageReferenceLimit, inferMusicVideo, isAggregateableType, isCharacterAspectRatio, isCollectInEdge, isDefaultSelectorConfig, isExpandedClone, isFlux2Model, isGeminiOmniProvider, isGvpSupportedProvider, isHandleInputWired, isKineticCaptionStyle, isLocationUsageMode, isMinimaxH3Provider, isObjectAspectRatio, isOversizedScene, isPaygRetentionActive, isPerSecondLipSyncProvider, isScraperActor, isSeedance2Provider, isTiltDirection, isUsageMode, isVeoProvider, isVideoAnalysisMixedTier, isVideoAnalysisTier, isWan3Provider, jsonResultToList, knownEntitySlugsFromRefs, knownImageSlugsFromRefs, listBoardTemplates, listModels, listSlotSids, llmRouteDefaults, locationMentionSlug, locationReferencePhotoKindLabel, locationUsageModeLabel, mapAspectRatio, mapQuality, mapShotIntentToProviderDirectives, matchVariant, maxSegmentSecFor, maxSegmentsFor, mergeClipLook, mergeExposedSettings, migrateEdgeOutputMode, migrateToItems, minSegmentSecFor, modelIdsByKindMode, modelToNodeTarget, modelsForInputMode, modelsWithFeature, motionGraphicsFeature, normalizeLottieLayers, normalizeMinimaxH3Resolution, normalizeModelInput, normalizeNodeModelParams, normalizePinterestUrl, normalizeRoleSlug, normalizeVideoRequestParams, normalizeWan3Resolution, orderedLlmModels, parseAttributedDialogue, parseCharacterMentionToken, parseEntityMentionToken, parseGroupHandle, parseHandleId, parseImageMentionToken, parseListExpression, parseLocationMentionToken, parseNodePresetExport, parseNodeRef, pickAiAvatarBucket, pickIds, pickLipSyncBucket, pickSwitchXFrameTier, pickVideoAnalysisBucket, planSheetGeneration, planSheetPanels, preferredInputModeForModel, presentTypes, presetApplyClearKeys, presetDataMatches, presetEntries, pricedVideoSelection, qualityOptionsByKind, readPromptAffixes, refHandleCategory, referenceModalityForHandle, referenceSheetCreditId, registerCatalogSidecars, registerSidecarLoaders, renderAnalyzedScene, resetCatalogSidecars, resolutionOptionsByKind, resolveAiAvatarCreditId, resolveAudioCrossfadeCurve, resolveCharacterAspectRatio, resolveCinematicCreditId, resolveConditionValue, resolveDefaultRole, resolveDescription, resolveDialogueVoices, resolveEffectiveSourceType, resolveEffectiveTier, resolveEntityAspect, resolveFieldMappings, resolveGvpAnchorWire, resolveImageGenCreditIdentifier, resolveIndex, resolveLabel, resolveListExpression, resolveLlmCreditId, resolveLocationFields, resolveLocationPresetCatalog, resolveLottieOverlaySrc, resolveNodeRefs, resolveNormalizedImageGen, resolveObjectAspectRatio, resolvePipelineModel, resolveRelativeWindowToken, resolveScraperCreditId, resolveSelectorRefs, resolveSeparator, resolveSheetSections, resolveSlideshowTransition, resolveSourceThroughConnectedList, resolveStoredTier, resolveSwitchXCreditId, resolveTopazUpscale, resolveVideoAnalysisModel, resolveVideoModeForInputs, resolveVideoProviderForMode, resolveXfadeName, rewriteSceneBindings, rewriteSlotTokens, rewriteSpeakerSlots, rgbaArrayToHex, roleToPhrase, runSelector, safetyRetryPolicy, sanitizeRole, searchModelVariants, seedance2AudioLimitSec, segmentDurationsFor, selectByModulo, selectByNamedKey, selectByPredicate, selectListItems, selectLoraRoutingForMentions, selectRandom, setRegisteredPersonPackFields, settledWithLimit, slotVariationSchema, sortCharacterEntriesForDisplay, sortListItems, sourceRefKey, spliceDelimitedRows, splitByLoopDelimiter, splitGeneratedItems, spreadJsonArrayIfSingleton, stringifyPathResults, stripDerivedAnalysisFields, stripExportContent, stripTransientRuntimeData, sunoCreditType, supportedDefaultDimensions, supportsAdvancedMode, supportsEndAnchor, supportsExtendRender, toConnectedReference, toConnectedReferences, togglePick, tryParseJson, uiAspectRatioFill, uiDurationFill, uiResolutionFill, unresolvedRefTokens, unwrapUnresolvedTokens, usageModeDirective, usageModeIncludesName, usageModeLabel, usdToCredits, validateAiAvatarPayload, validateCinematicAvatarPayload, validateDurationForFormat, validateModeActivation, validateModelInput, validateNoNestedGroups, validateObjects, validateProviderForNodeType, validateSubWorkflowRoutes, variantJobId, videoAnalysisCreditSegment, videoAnalysisNumWindows, videoAnalysisResultSchema, videoAuditCreditsForBucket, videoModelCanSpeakDialogue, videoModelSupportsAudio, videoNegativeSuffix, videoProviderRequiresImage, windowAnalysisSchema, zipMergeLists };
|