@nodaro/shared 2.20.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.js CHANGED
@@ -53,7 +53,7 @@ var MODEL_RECOMMENDATIONS = [
53
53
  { intent: "cheapest realistic image", modelIds: ["z-image", "qwen", "imagen4-fast"], note: "Z-Image is the cheapest. Qwen / Imagen4 Fast for slightly higher quality." },
54
54
  { intent: "highest fidelity image", modelIds: ["nano-banana-pro", "imagen4-ultra", "flux-flex"], note: "Pick by family preference; all three are premium tiers." },
55
55
  { intent: "image edit / restyle", modelIds: ["flux-kontext", "ideogram-remix", "seedream-5-pro-i2i"], note: "Flux Kontext preserves identity; Ideogram Remix is character-aware; Seedream 5 Pro for instruction-based edits (5 Lite is the budget option)." },
56
- { intent: "highest-resolution image (4K / 8K)", modelIds: ["topaz-image-upscale", "nano-banana-pro", "gpt-image-2"], note: "Generate at native then Topaz upscale for 8K." },
56
+ { intent: "highest-resolution image", modelIds: ["topaz-image-upscale", "nano-banana-pro", "gpt-image-2"], note: "Generate at the model's top tier, then Topaz upscale 4x (Topaz's only lever is the 1x/2x/4x factor)." },
57
57
  { intent: "background removal / cutout", modelIds: ["recraft-remove-bg"], note: "Cheap, no prompt needed." },
58
58
  // video
59
59
  { intent: "best cinematic video", modelIds: ["veo3", "kling-3.0", "seedance-2"], note: "VEO 3.1 Quality for premium narrative; Kling 3.0 for music-synced motion; Seedance 2 for reference-driven consistency." },
@@ -396,7 +396,8 @@ var IMAGE_MODELS = {
396
396
  { identifier: "gpt-image-2", credits: 15, note: "1K default" },
397
397
  { identifier: "gpt-image-2:2K", credits: 30, note: "2K" },
398
398
  { identifier: "gpt-image-2:4K", credits: 60, note: "4K" }
399
- ]
399
+ ],
400
+ safetyFilter: { stochastic: true, fallback: "nano-banana-pro" }
400
401
  },
401
402
  "gpt-image-2-i2i": {
402
403
  id: "gpt-image-2-i2i",
@@ -816,14 +817,15 @@ var IMAGE_MODELS = {
816
817
  family: "Topaz",
817
818
  label: "Topaz Image Upscale",
818
819
  series: "Topaz",
819
- description: "High-quality image upscale up to 8K. Best for production-ready output.",
820
+ description: "High-quality image upscale at 1x (enhance only), 2x or 4x. Best for production-ready output.",
820
821
  useCases: ["upscale", "high-res", "premium"],
821
822
  features: ["reference-image"],
822
- resolutions: ["2K", "4K", "8K"],
823
+ // No `resolutions`: the provider's only quality lever is `upscale_factor`
824
+ // (1/2/4) — see resolveTopazUpscale. The 2K/4K/8K menu this used to
825
+ // advertise had no provider parameter behind it.
823
826
  pricing: [
824
- { identifier: "topaz-image-upscale", credits: 25, note: "2K default" },
825
- { identifier: "topaz-image-upscale:4K", credits: 50, note: "4K" },
826
- { identifier: "topaz-image-upscale:8K", credits: 100, note: "8K" }
827
+ { identifier: "topaz-image-upscale", credits: 25, note: "1x / 2x" },
828
+ { identifier: "topaz-image-upscale:4K", credits: 50, note: "4x (legacy identifier)" }
827
829
  ]
828
830
  }
829
831
  };
@@ -854,6 +856,7 @@ var VIDEO_MODELS = {
854
856
  // docs.kie.ai/market/minimax-h3/{text,image,reference}-to-video.
855
857
  "minimax-h3": {
856
858
  id: "minimax-h3",
859
+ unlistedResolutionRendersAs: "2K",
857
860
  kind: "video",
858
861
  modes: ["i2v", "t2v"],
859
862
  family: "MiniMax",
@@ -1339,6 +1342,7 @@ var VIDEO_MODELS = {
1339
1342
  // declared explicitly in PRICING_DEFAULT_RESOLUTION, never by array position.
1340
1343
  "wan-3": {
1341
1344
  id: "wan-3",
1345
+ unlistedResolutionRendersAs: "720p",
1342
1346
  kind: "video",
1343
1347
  modes: ["i2v", "t2v"],
1344
1348
  family: "Alibaba",
@@ -1363,6 +1367,7 @@ var VIDEO_MODELS = {
1363
1367
  },
1364
1368
  "wan-3-prime": {
1365
1369
  id: "wan-3-prime",
1370
+ unlistedResolutionRendersAs: "720p",
1366
1371
  kind: "video",
1367
1372
  modes: ["i2v", "t2v"],
1368
1373
  family: "Alibaba",
@@ -1531,6 +1536,76 @@ var VIDEO_MODELS = {
1531
1536
  { identifier: "wan-2.7-t2v", credits: 188, note: "5s 720p default" }
1532
1537
  ]
1533
1538
  },
1539
+ // Lightricks LTX 2.3 (Replicate, not KIE). Both variants run one endpoint per
1540
+ // variant and switch behaviour with a `task` discriminator, so t2v and i2v are
1541
+ // the SAME id — no VIDEO_MODE_ALIASES row. `extend` / `retake` are separate
1542
+ // priced ops on the same model (ids below) but are NOT listed in `modes`:
1543
+ // they are driven by the Extend Video / Video Retake nodes' own pickers, and
1544
+ // adding the mode here would duplicate LTX in those menus.
1545
+ // Bands are lowercase to match LTX_DURATION_TIERS' keys in credit-identifiers.ts
1546
+ // and QUALITY_MAP in node-default-mappings.ts.
1547
+ "ltx-2.3-pro": {
1548
+ id: "ltx-2.3-pro",
1549
+ kind: "video",
1550
+ modes: ["i2v", "t2v"],
1551
+ family: "Lightricks",
1552
+ label: "LTX 2.3 Pro",
1553
+ series: "LTX",
1554
+ description: "Lightricks LTX 2.3 Pro \u2014 text/image/audio\u2192video up to 4K, 6/8/10s, end-frame interpolation.",
1555
+ useCases: ["premium", "high-res", "narrative"],
1556
+ features: ["end-frame"],
1557
+ aspectRatios: ["16:9", "9:16"],
1558
+ resolutions: ["1080p", "2k", "4k"],
1559
+ durations: [6, 8, 10],
1560
+ pricing: [
1561
+ { identifier: "ltx-2.3-pro", credits: 240, note: "default 1080p 6s" },
1562
+ { identifier: "ltx-2.3-pro:1080p:6s", credits: 240 },
1563
+ { identifier: "ltx-2.3-pro:1080p:8s", credits: 320 },
1564
+ { identifier: "ltx-2.3-pro:1080p:10s", credits: 400 },
1565
+ { identifier: "ltx-2.3-pro:2k:6s", credits: 480 },
1566
+ { identifier: "ltx-2.3-pro:2k:8s", credits: 640 },
1567
+ { identifier: "ltx-2.3-pro:2k:10s", credits: 800 },
1568
+ { identifier: "ltx-2.3-pro:4k:6s", credits: 960 },
1569
+ { identifier: "ltx-2.3-pro:4k:8s", credits: 1280 },
1570
+ { identifier: "ltx-2.3-pro:4k:10s", credits: 1600 },
1571
+ { identifier: "ltx-2.3-pro-extend:per-second", credits: 40, note: "extend, per second of new footage" },
1572
+ { identifier: "ltx-2.3-pro-retake:per-second", credits: 40, note: "retake, per second re-rendered" }
1573
+ ]
1574
+ },
1575
+ "ltx-2.3-fast": {
1576
+ id: "ltx-2.3-fast",
1577
+ kind: "video",
1578
+ modes: ["i2v", "t2v"],
1579
+ family: "Lightricks",
1580
+ label: "LTX 2.3 Fast",
1581
+ series: "LTX",
1582
+ description: "Lightricks LTX 2.3 Fast \u2014 text/image\u2192video up to 20s at 1080p (6/8/10s at 2K and 4K). No audio input, no extend.",
1583
+ useCases: ["long-form", "fast", "narrative"],
1584
+ features: ["end-frame"],
1585
+ aspectRatios: ["16:9", "9:16"],
1586
+ resolutions: ["1080p", "2k", "4k"],
1587
+ // Flat union across bands — 12–20s exist only at 1080p (LTX_DURATION_TIERS
1588
+ // in credit-identifiers.ts is the per-band authority and snaps a 2k/4k
1589
+ // request back onto 6/8/10s, so the reservation is always a real tier).
1590
+ durations: [6, 8, 10, 12, 14, 16, 18, 20],
1591
+ pricing: [
1592
+ { identifier: "ltx-2.3-fast", credits: 180, note: "default 1080p 6s" },
1593
+ { identifier: "ltx-2.3-fast:1080p:6s", credits: 180 },
1594
+ { identifier: "ltx-2.3-fast:1080p:8s", credits: 240 },
1595
+ { identifier: "ltx-2.3-fast:1080p:10s", credits: 300 },
1596
+ { identifier: "ltx-2.3-fast:1080p:12s", credits: 360 },
1597
+ { identifier: "ltx-2.3-fast:1080p:14s", credits: 420 },
1598
+ { identifier: "ltx-2.3-fast:1080p:16s", credits: 480 },
1599
+ { identifier: "ltx-2.3-fast:1080p:18s", credits: 540 },
1600
+ { identifier: "ltx-2.3-fast:1080p:20s", credits: 600 },
1601
+ { identifier: "ltx-2.3-fast:2k:6s", credits: 360 },
1602
+ { identifier: "ltx-2.3-fast:2k:8s", credits: 480 },
1603
+ { identifier: "ltx-2.3-fast:2k:10s", credits: 600 },
1604
+ { identifier: "ltx-2.3-fast:4k:6s", credits: 720 },
1605
+ { identifier: "ltx-2.3-fast:4k:8s", credits: 960 },
1606
+ { identifier: "ltx-2.3-fast:4k:10s", credits: 1200 }
1607
+ ]
1608
+ },
1534
1609
  // ── HappyHorse (1.1 — ids kept version-less; repointed in place when KIE
1535
1610
  // delisted 1.0, same param surface, so saved workflows keep working) ──
1536
1611
  "happyhorse": {
@@ -2382,6 +2457,105 @@ function normalizeModelInput(modelId, input) {
2382
2457
  }
2383
2458
  return out;
2384
2459
  }
2460
+ var PASSTHROUGH_ASPECT_TOKENS = /* @__PURE__ */ new Set(["auto", "adaptive"]);
2461
+ var RESOLUTION_BAND_PIXELS = {
2462
+ "2k": 1440,
2463
+ "4k": 2160,
2464
+ "8k": 4320
2465
+ };
2466
+ function bandPixels(token) {
2467
+ const t2 = token.trim().toLowerCase();
2468
+ if (RESOLUTION_BAND_PIXELS[t2] !== void 0) return RESOLUTION_BAND_PIXELS[t2];
2469
+ const m = /^(\d+)p$/.exec(t2);
2470
+ return m ? Number(m[1]) : void 0;
2471
+ }
2472
+ function nearestResolutionBand(token, allowed) {
2473
+ let highest = allowed[allowed.length - 1];
2474
+ let highestPx = -Infinity;
2475
+ for (const a of allowed) {
2476
+ const px = bandPixels(a);
2477
+ if (px !== void 0 && px > highestPx) {
2478
+ highestPx = px;
2479
+ highest = a;
2480
+ }
2481
+ }
2482
+ const want = bandPixels(token);
2483
+ if (want === void 0) return highest;
2484
+ let best = highest;
2485
+ let bestDist = Infinity;
2486
+ for (const a of allowed) {
2487
+ const px = bandPixels(a);
2488
+ if (px === void 0) continue;
2489
+ const d = Math.abs(px - want);
2490
+ if (d < bestDist) {
2491
+ bestDist = d;
2492
+ best = a;
2493
+ }
2494
+ }
2495
+ return best;
2496
+ }
2497
+ function nearestAspectRatio(token, allowed) {
2498
+ const [w, h] = token.split(":").map(Number);
2499
+ if (!w || !h) return void 0;
2500
+ const target = Math.log(w / h);
2501
+ let best;
2502
+ let bestDist = Infinity;
2503
+ for (const c of allowed) {
2504
+ const [cw, ch] = c.split(":").map(Number);
2505
+ if (!cw || !ch) continue;
2506
+ const d = Math.abs(Math.log(cw / ch) - target);
2507
+ if (d < bestDist) {
2508
+ bestDist = d;
2509
+ best = c;
2510
+ }
2511
+ }
2512
+ return best;
2513
+ }
2514
+ function readOptionToken(value) {
2515
+ if (value === void 0 || value === null) return void 0;
2516
+ const s = (typeof value === "string" ? value : String(value)).trim();
2517
+ return s === "" ? void 0 : s;
2518
+ }
2519
+ function normalizeVideoRequestParams(modelId, input) {
2520
+ const m = MODEL_CATALOG[modelId];
2521
+ const aspect = readOptionToken(input.aspectRatio);
2522
+ const res = readOptionToken(input.resolution);
2523
+ const out = { aspectRatio: aspect, resolution: res, adjustments: [] };
2524
+ if (!m) return out;
2525
+ if (m.aspectRatios?.length && aspect && !PASSTHROUGH_ASPECT_TOKENS.has(aspect.toLowerCase())) {
2526
+ const allowed = m.aspectRatios;
2527
+ const exact = allowed.find((a) => a === aspect) ?? allowed.find((a) => a.toLowerCase() === aspect.toLowerCase());
2528
+ if (exact !== void 0) {
2529
+ out.aspectRatio = exact;
2530
+ } else {
2531
+ const next = nearestAspectRatio(aspect, allowed.filter((a) => !PASSTHROUGH_ASPECT_TOKENS.has(a.toLowerCase()))) ?? allowed[0];
2532
+ out.adjustments.push({
2533
+ field: "aspectRatio",
2534
+ from: aspect,
2535
+ to: next,
2536
+ reason: `${m.label} does not support aspect ratio "${aspect}" \u2014 using "${next}" instead. Supported: ${allowed.join(", ")}.`
2537
+ });
2538
+ out.aspectRatio = next;
2539
+ }
2540
+ }
2541
+ if (m.resolutions?.length && res) {
2542
+ const allowed = m.resolutions;
2543
+ const exact = allowed.find((a) => a === res) ?? allowed.find((a) => a.toLowerCase() === res.toLowerCase());
2544
+ if (exact !== void 0) {
2545
+ out.resolution = exact;
2546
+ } else {
2547
+ const next = m.unlistedResolutionRendersAs ?? nearestResolutionBand(res, allowed);
2548
+ out.adjustments.push({
2549
+ field: "resolution",
2550
+ from: res,
2551
+ to: next,
2552
+ reason: `${m.label} does not support resolution "${res}" \u2014 using "${next}" instead. Supported: ${allowed.join(", ")}.`
2553
+ });
2554
+ out.resolution = next;
2555
+ }
2556
+ }
2557
+ return out;
2558
+ }
2385
2559
  var MODEL_VALUE_LABELS = {
2386
2560
  // aspect ratios
2387
2561
  "1:1": "1:1 (Square)",
@@ -2396,6 +2570,7 @@ var MODEL_VALUE_LABELS = {
2396
2570
  "2K": "2K (High)",
2397
2571
  "4K": "4K (Ultra)",
2398
2572
  "4k": "4K",
2573
+ "2k": "2K",
2399
2574
  "8K": "8K (Ultra)",
2400
2575
  // qualities
2401
2576
  "medium": "Medium (Balanced)",
@@ -3581,6 +3756,39 @@ var VIDEO_REF_LIMITS_BY_PROVIDER = {
3581
3756
  // the user's references (the grok-imagine-video-1.5 bug). Add only with a
3582
3757
  // verified provider path + the catalog `reference-image` feature.
3583
3758
  };
3759
+ var VIDEO_REF_VIDEO_DURATION_LIMITS = {
3760
+ "seedance-2-5": { minSec: 2, maxSec: 30, maxTotalSec: 30 },
3761
+ // MiniMax Hailuo 3 — the provider states the per-clip bound in its own reject
3762
+ // text: "content[1].video_url: invalid param: video duration 52838 ms,
3763
+ // expected [2000, 15000] ms" (app-reports P4, 2 rows, the same clip retried).
3764
+ // The KIE reference-to-video doc adds the COMBINED cap — the same shape the
3765
+ // audio side already declares in SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER
3766
+ // above, whose h3 row cites the same page.
3767
+ "minimax-h3": { minSec: 2, maxSec: 15, maxTotalSec: 15 }
3768
+ };
3769
+ function checkRefVideoDurations(provider, durationsSec) {
3770
+ const limit = VIDEO_REF_VIDEO_DURATION_LIMITS[provider];
3771
+ if (!limit) return { ok: true };
3772
+ const usable = durationsSec.filter((d) => Number.isFinite(d) && d > 0);
3773
+ if (usable.length === 0) return { ok: true };
3774
+ const offender = usable.find((d) => d < limit.minSec || d > limit.maxSec);
3775
+ if (offender !== void 0) {
3776
+ return {
3777
+ ok: false,
3778
+ message: `Each reference video must be between ${limit.minSec} and ${limit.maxSec} seconds \u2014 one is ${offender.toFixed(1)}s. Trim it (a Trim Video node upstream works) and run again.`
3779
+ };
3780
+ }
3781
+ if (limit.maxTotalSec !== void 0) {
3782
+ const total = usable.reduce((a, b) => a + b, 0);
3783
+ if (total > limit.maxTotalSec) {
3784
+ return {
3785
+ ok: false,
3786
+ message: `Reference videos must not exceed ${limit.maxTotalSec} seconds in total \u2014 these add up to ${total.toFixed(1)}s. Remove one or trim them and run again.`
3787
+ };
3788
+ }
3789
+ }
3790
+ return { ok: true };
3791
+ }
3584
3792
  var RESOLUTION_VIDEO_REF_PRICING = SEEDANCE_2_PROVIDERS;
3585
3793
  var RESOLUTION_DURATION_PRICING = {
3586
3794
  // KIE supports only 480p/720p here; 480p is the default.
@@ -3674,10 +3882,39 @@ var VIDEO_AUDIO_CAPABILITY = {
3674
3882
  // and skip the lip-sync pass. `defaultOn` mirrors the KIE default so an
3675
3883
  // intent-less request is described honestly; audio is priced into the uniform
3676
3884
  // per-second rate, so NOT cost-affecting (no `:audio` composite).
3677
- // gemini-omni-flash is deliberately ABSENT — gemini-omni-video is absent too
3678
- // (mode "none"), and the siblings must not disagree.
3679
3885
  "wan-3": { mode: "ambient", field: "audio", defaultOn: true },
3680
- "wan-3-prime": { mode: "ambient", field: "audio", defaultOn: true }
3886
+ "wan-3-prime": { mode: "ambient", field: "audio", defaultOn: true },
3887
+ // Gemini Omni (both SKUs — the pro `gemini-omni-video` and the faster
3888
+ // `gemini-omni-flash`; one model at two speeds, so their rows are identical
3889
+ // and a test pins that). Settled 2026-09-03 from Google's own documentation
3890
+ // at https://ai.google.dev/gemini-api/docs/omni, having been unlisted — and
3891
+ // therefore reported as SILENT — while the catalog described both as "native
3892
+ // audio".
3893
+ //
3894
+ // "ambient", and alwaysOn with no toggle field, on three sentences from that
3895
+ // page:
3896
+ // - "By default the model will try to generate an appropriate audio track
3897
+ // for a video." Audio on every render, and the KIE input schema
3898
+ // (prompt / image_urls / first+last_frame_url / audio_ids / video_list /
3899
+ // character_ids / duration / aspect_ratio / seed / resolution — see
3900
+ // docs.kie.ai/market/gemini-omni-video and
3901
+ // docs.kie.ai/market/google/gemini-omni-flash-1-1) carries no on/off
3902
+ // lever, so there is nothing for applyVideoAudioToggle to write.
3903
+ // - NOT native_speech: "Multi-turn voice extension: Generating spoken
3904
+ // dialogue or speech is supported when extending previously generated
3905
+ // videos via multi-turn (`previous_interaction_id`)" — a field KIE's
3906
+ // createTask schema does not expose, so the dialogue path is unreachable
3907
+ // on our transport. Held to the Wan 3.0 bar: no documented dialogue
3908
+ // guarantee on the path we actually drive ⇒ ambient, and upgrade only on
3909
+ // a live probe (the kling-3.0 standard). Classifying it native_speech
3910
+ // would reroute the Story→Video dialogue pipeline past the lip-sync pass.
3911
+ // - NOT audio_driven either: "Uploading audio references is unsupported in
3912
+ // the current version of the API", and "any audio in a video reference is
3913
+ // ignored" — there is no reference-audio transport to be driven by, and
3914
+ // runGeminiOmni never sends `audio_ids`.
3915
+ // Audio is priced into the per-tier rate, so NOT cost-affecting.
3916
+ "gemini-omni-video": { mode: "ambient", alwaysOn: true },
3917
+ "gemini-omni-flash": { mode: "ambient", alwaysOn: true }
3681
3918
  };
3682
3919
  var VIDEO_AUDIO_NONE = { mode: "none" };
3683
3920
  function getVideoAudioCapability(model) {
@@ -4485,6 +4722,16 @@ var LTX_DURATION_TIERS = {
4485
4722
  "ltx-2.3-pro": { "1080p": [6, 8, 10], "2k": [6, 8, 10], "4k": [6, 8, 10] },
4486
4723
  "ltx-2.3-fast": { "1080p": [6, 8, 10, 12, 14, 16, 18, 20], "2k": [6, 8, 10], "4k": [6, 8, 10] }
4487
4724
  };
4725
+ function ltxPricedTier(provider, resolution, duration) {
4726
+ const bands = LTX_DURATION_TIERS[provider];
4727
+ if (!bands) return void 0;
4728
+ const band2 = bands[String(resolution)] ? String(resolution) : "1080p";
4729
+ const allowed = bands[band2];
4730
+ const raw = typeof duration === "string" ? parseInt(duration, 10) : duration ?? allowed[0];
4731
+ const want = Number.isNaN(raw) ? allowed[0] : raw;
4732
+ const dur = allowed.reduce((b, a) => Math.abs(a - want) < Math.abs(b - want) ? a : b);
4733
+ return { band: band2, duration: dur };
4734
+ }
4488
4735
  function buildVideoCreditModelIdentifier(provider, duration, sound, nodeType, mode, resolution, hasVideoRef) {
4489
4736
  let effectiveProvider = provider;
4490
4737
  if (nodeType === "text-to-video") {
@@ -4510,14 +4757,9 @@ function buildVideoCreditModelIdentifier(provider, duration, sound, nodeType, mo
4510
4757
  const d = Number.isNaN(raw) ? 8 : GEMINI_OMNI_DURATIONS.reduce((b, a) => Math.abs(a - raw) < Math.abs(b - raw) ? a : b);
4511
4758
  return resolution === "4k" ? `${effectiveProvider}:4k:${d}` : `${effectiveProvider}:${d}`;
4512
4759
  }
4513
- if (effectiveProvider === "ltx-2.3-pro" || effectiveProvider === "ltx-2.3-fast") {
4514
- const bands = LTX_DURATION_TIERS[effectiveProvider];
4515
- const band2 = bands[String(resolution)] ? String(resolution) : "1080p";
4516
- const allowed = bands[band2];
4517
- const raw = typeof duration === "string" ? parseInt(duration, 10) : duration ?? allowed[0];
4518
- const want = Number.isNaN(raw) ? allowed[0] : raw;
4519
- const dur = allowed.reduce((b, a) => Math.abs(a - want) < Math.abs(b - want) ? a : b);
4520
- return `${effectiveProvider}:${band2}:${dur}s`;
4760
+ const ltxTier = ltxPricedTier(effectiveProvider, resolution, duration);
4761
+ if (ltxTier) {
4762
+ return `${effectiveProvider}:${ltxTier.band}:${ltxTier.duration}s`;
4521
4763
  }
4522
4764
  if (!DURATION_PRICED_PROVIDERS.has(effectiveProvider)) {
4523
4765
  return effectiveProvider;
@@ -4557,6 +4799,22 @@ function buildVideoCreditModelIdentifier(provider, duration, sound, nodeType, mo
4557
4799
  }
4558
4800
  return identifier;
4559
4801
  }
4802
+ function pricedVideoSelection(opts) {
4803
+ const adjustments = [];
4804
+ const ltx = ltxPricedTier(opts.provider, opts.resolution, opts.duration);
4805
+ const resolution = opts.resolution ?? (ltx ? ltx.band : PRICING_DEFAULT_RESOLUTION[opts.provider]);
4806
+ if (!ltx) return { resolution, adjustments };
4807
+ const requested = typeof opts.duration === "string" ? parseInt(opts.duration, 10) : opts.duration;
4808
+ if (requested !== void 0 && !Number.isNaN(requested) && requested !== ltx.duration) {
4809
+ adjustments.push({
4810
+ field: "duration",
4811
+ from: requested,
4812
+ to: ltx.duration,
4813
+ reason: `LTX renders ${ltx.band} in ${ltx.duration}s steps \u2014 using ${ltx.duration}s instead of ${requested}s.`
4814
+ });
4815
+ }
4816
+ return { resolution, duration: ltx.duration, adjustments };
4817
+ }
4560
4818
  function buildMotionCreditModelIdentifier(provider, resolution, videoDuration) {
4561
4819
  if (provider === "wan-animate-move" || provider === "wan-animate-replace") {
4562
4820
  if (resolution === "580p" || resolution === "720p") {
@@ -4682,6 +4940,71 @@ function extractVideoDurationFromNode(data) {
4682
4940
  return void 0;
4683
4941
  }
4684
4942
 
4943
+ // src/topaz-upscale.ts
4944
+ var TOPAZ_UPSCALE_FACTORS = ["1", "2", "4"];
4945
+ var TOPAZ_DEFAULT_UPSCALE_FACTOR = "2";
4946
+ var LEGACY_TIER_TO_FACTOR = {
4947
+ "2K": "2",
4948
+ "4K": "4",
4949
+ "8K": "4"
4950
+ };
4951
+ function isFactor(v) {
4952
+ return TOPAZ_UPSCALE_FACTORS.includes(v);
4953
+ }
4954
+ function resolveTopazUpscale(input) {
4955
+ const adjustments = [];
4956
+ const rawFactor = typeof input.upscaleFactor === "string" ? input.upscaleFactor : "";
4957
+ const rawTier = typeof input.targetResolution === "string" ? input.targetResolution : "";
4958
+ const trimmedFactor = rawFactor.trim();
4959
+ const normalizedTier = rawTier.trim().toUpperCase();
4960
+ const factorGiven = trimmedFactor.length > 0;
4961
+ const factorValid = factorGiven && isFactor(trimmedFactor);
4962
+ const tierGiven = normalizedTier.length > 0;
4963
+ const tierMappedFactor = tierGiven ? LEGACY_TIER_TO_FACTOR[normalizedTier] : void 0;
4964
+ const finalFactor = factorValid ? trimmedFactor : tierMappedFactor ?? TOPAZ_DEFAULT_UPSCALE_FACTOR;
4965
+ if (factorGiven && !factorValid) {
4966
+ adjustments.push({
4967
+ field: "upscaleFactor",
4968
+ from: rawFactor,
4969
+ to: finalFactor,
4970
+ reason: `Topaz upscale accepts a factor of 1, 2 or 4 \u2014 "${rawFactor}" was replaced with ${finalFactor}.`
4971
+ });
4972
+ }
4973
+ if (factorValid && tierGiven) {
4974
+ if (tierMappedFactor !== finalFactor) {
4975
+ adjustments.push({
4976
+ field: "targetResolution",
4977
+ from: rawTier,
4978
+ to: void 0,
4979
+ reason: "upscaleFactor takes precedence over the legacy targetResolution."
4980
+ });
4981
+ }
4982
+ } else if (!factorValid && tierGiven) {
4983
+ if (tierMappedFactor) {
4984
+ if (normalizedTier === "8K") {
4985
+ adjustments.push({
4986
+ field: "targetResolution",
4987
+ from: rawTier,
4988
+ to: finalFactor,
4989
+ reason: "Topaz upscale offers factors up to 4x \u2014 an 8K target renders and bills at the 4x tier."
4990
+ });
4991
+ }
4992
+ } else {
4993
+ adjustments.push({
4994
+ field: "targetResolution",
4995
+ from: rawTier,
4996
+ to: finalFactor,
4997
+ reason: `Unknown Topaz target "${rawTier}" \u2014 rendering at ${finalFactor}x.`
4998
+ });
4999
+ }
5000
+ }
5001
+ return {
5002
+ upscaleFactor: finalFactor,
5003
+ creditTier: finalFactor === "4" ? "4K" : void 0,
5004
+ adjustments
5005
+ };
5006
+ }
5007
+
4685
5008
  // src/presentation-utils.ts
4686
5009
  var INPUT_NODE_TYPES = /* @__PURE__ */ new Set([
4687
5010
  "text-prompt",
@@ -6454,6 +6777,35 @@ function resolveNodeRefs(text, labelToOutput) {
6454
6777
  }
6455
6778
  return result;
6456
6779
  }
6780
+ var REF_TOKEN_NAMESPACE_PREFIXES = [
6781
+ "image:",
6782
+ "video:",
6783
+ "audio:",
6784
+ "slot:",
6785
+ "ref:"
6786
+ ];
6787
+ function classifyRefToken(name, resolvable) {
6788
+ const lower = name.toLowerCase();
6789
+ if (name === "" || REF_TOKEN_NAMESPACE_PREFIXES.some((p) => lower.startsWith(p))) return "skip";
6790
+ if (RESERVED_TEMPLATE_VARS.has(name)) return "reserved";
6791
+ if (resolvable === null) return "unknown";
6792
+ return resolvable.has(canonicalVarName(name)) ? "wired" : "missing";
6793
+ }
6794
+ function unresolvedRefTokens(text, opts) {
6795
+ if (typeof text !== "string" || text.length === 0) return [];
6796
+ const seen = /* @__PURE__ */ new Set();
6797
+ const out = [];
6798
+ for (const m of text.matchAll(NODE_REF_PATTERN)) {
6799
+ const { name, fallback } = parseNodeRef(m[1] ?? "");
6800
+ if (fallback !== null) continue;
6801
+ if (classifyRefToken(name, opts.resolvable) !== "missing") continue;
6802
+ const canon = canonicalVarName(name);
6803
+ if (opts.known.has(canon) || seen.has(canon)) continue;
6804
+ seen.add(canon);
6805
+ out.push(name);
6806
+ }
6807
+ return out;
6808
+ }
6457
6809
 
6458
6810
  // src/filter-condition.ts
6459
6811
  function tryParseJson(item) {
@@ -9640,6 +9992,18 @@ function togglePick(current, id, maxSelected) {
9640
9992
  return [...current.slice(1), id];
9641
9993
  }
9642
9994
 
9995
+ // src/safety-retry-policy.ts
9996
+ function safetyRetryPolicy(modelId) {
9997
+ const entry = getModel(modelId);
9998
+ const safetyFilter = entry?.safetyFilter;
9999
+ if (!safetyFilter?.stochastic) return { maxAttempts: 1 };
10000
+ const fallback = safetyFilter.fallback;
10001
+ if (fallback && getModel(fallback)) {
10002
+ return { maxAttempts: 2, fallback };
10003
+ }
10004
+ return { maxAttempts: 2 };
10005
+ }
10006
+
9643
10007
  // src/caption-styles.ts
9644
10008
  var STATIC_CAPTION_STYLES = ["subtitle"];
9645
10009
  var KINETIC_CAPTION_STYLES = [
@@ -9780,6 +10144,11 @@ var EXECUTION_DATA_KEYS = /* @__PURE__ */ new Set([
9780
10144
  "currentJobId",
9781
10145
  "currentJobProgress",
9782
10146
  "errorMessage",
10147
+ // Structured detail alongside errorMessage for a safety-filter block
10148
+ // (see `JobErrorHint` in the app's frontend/src/types/nodes.ts). Same
10149
+ // lifecycle as errorMessage: a RESULT the user expects to survive reload,
10150
+ // never user-edited config.
10151
+ "errorHint",
9783
10152
  "isStreaming",
9784
10153
  "generatedImageUrl",
9785
10154
  "generatedVideoUrl",
@@ -13517,6 +13886,26 @@ var clipLookSchema = z.object({
13517
13886
  * insert) states the deviation in that scene's `visual`, as with `lighting`.
13518
13887
  */
13519
13888
  style: z.string().optional(),
13889
+ /**
13890
+ * The Style picker CATALOG ID the prose in `style` corresponds to — the
13891
+ * analyzer's PICK ("pixar-3d" beside "3D stylized animation"), not a second
13892
+ * description of it.
13893
+ *
13894
+ * Worth strictly more than the prose it accompanies: an id addresses the
13895
+ * catalog, so a recreation renders the same medium the product's own Style
13896
+ * picker would render, instead of re-interpreting a sentence. Absent when the
13897
+ * analyzer read a medium it could not place in the catalog — `style` then
13898
+ * carries the whole answer, as it always did.
13899
+ *
13900
+ * A free `string` here on purpose. The PRODUCER validates it against the
13901
+ * catalog (the analyzer plugin's wire schema is an enum generated from
13902
+ * `STYLES`, so an invented id never leaves it), while this package must not
13903
+ * carry the catalog itself. A closed enum here would only add a second copy
13904
+ * of the vocabulary to drift out of date — and, worse, would REJECT a
13905
+ * catalog entry newer than the installed `@nodaro/shared`, which is exactly
13906
+ * the analysis a consumer most wants to read.
13907
+ */
13908
+ styleId: z.string().optional(),
13520
13909
  /** Colour grade / palette — "muted teal-and-orange, crushed blacks". */
13521
13910
  grade: z.string().optional(),
13522
13911
  /** Camera or film FORMAT and stock — "anamorphic digital", "16mm film grain". */
@@ -13587,8 +13976,9 @@ var entitySlotSchema = z.object({
13587
13976
  /** NON-default looks only; present only when at least one exists. */
13588
13977
  variations: z.array(slotVariationSchema).max(VIDEO_ANALYSIS_MAX_VARIATIONS).optional()
13589
13978
  });
13979
+ var VIDEO_ANALYSIS_AUDIO_MODES = ["speech", "music", "sfx", "ambience"];
13590
13980
  var audioLayerSchema = z.object({
13591
- mode: z.enum(["speech", "music", "sfx"]),
13981
+ mode: z.enum(VIDEO_ANALYSIS_AUDIO_MODES),
13592
13982
  content: z.string().min(1),
13593
13983
  voice: z.string().optional(),
13594
13984
  /**
@@ -13611,7 +14001,34 @@ var audioLayerSchema = z.object({
13611
14001
  * (doctrine §5), so attribution here would resurrect the phantom-entity
13612
14002
  * defect that `stripOrphanSlots` exists to kill.
13613
14003
  */
13614
- speakerSlot: z.string().optional()
14004
+ speakerSlot: z.string().optional(),
14005
+ /**
14006
+ * SPEECH ONLY — WHO says these words, by NAME.
14007
+ *
14008
+ * The second of two ways to name a speaker, and the one for documents that
14009
+ * have no slots: `speakerSlot` addresses an `EntitySlot` of THIS analysis by
14010
+ * id, while `speaker` is the plain cast name a production keys its own cast
14011
+ * by ("Jack Mercer"). A layer may legitimately carry both — the id for the
14012
+ * analysis it came from, the name for the document it is going into — and a
14013
+ * consumer that understands only one reads the one it understands.
14014
+ *
14015
+ * Optional, and not refined against `mode`, for the same reason
14016
+ * `speakerSlot` is not: the window schema is the enforced decode grammar and
14017
+ * must not throw away a whole roll over one mis-tagged field.
14018
+ *
14019
+ * NOT swept by `dropUnknownSpeakers`. That function is the SLOT channel's
14020
+ * sanitizer — it judges an id against the surviving slot list, and a name has
14021
+ * no id space to be unknown in. The asymmetry is deliberate and pinned by
14022
+ * test; whoever owns the name's vocabulary sanitizes the name.
14023
+ *
14024
+ * The residual that leaves: a layer can keep a `speaker` naming someone
14025
+ * `stripOrphanSlots` already pruned as a phantom, where the same claim spelled
14026
+ * `speakerSlot` would have been dropped — the invented-narrator defect, in the
14027
+ * one spelling the sweep cannot see. LATENT today, since nothing in this
14028
+ * repo emits `speaker`; the day the analyzer does, that sweep is what has to
14029
+ * grow, not this field.
14030
+ */
14031
+ speaker: z.string().optional()
13615
14032
  });
13616
14033
  var windowSceneBase = z.object({
13617
14034
  startSec: z.number().min(0),
@@ -14130,6 +14547,6 @@ function entityScalarFields(kind) {
14130
14547
  return [...ENTITY_SCALAR_FIELDS, ...ENTITY_KIND_SCALAR_FIELDS[kind]];
14131
14548
  }
14132
14549
 
14133
- 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, AddBRollResultSchema, AnchorSceneStyleResultSchema, AssetRefSchema, AuditImagesResultSchema, AuditImagesShotEntrySchema, AuditPromptIssueSchema, AuditPromptResultSchema, AvatarPayloadError, BOARD_TO_ASSET_TYPE, BOARD_TO_COLUMN, BOARD_VARIANTS, BridgeToNextSceneInputSchema, BridgeToNextSceneResultSchema, 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, CastCoverageCriticVerdictSchema, CharacterImageCriticVerdictSchema, CharacterMetadataSchema, ChatTurnResponseSchema, CriticIssueSchema, 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, DetectionResultSchema, 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, EntityMetadataSchema, EntityRejectInputSchema, EntityStaleEventSchema, EntityStateChangeEventSchema, 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, FixContinuityInputSchema, FixContinuityResultSchema, 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, GenerateMotionResultSchema, HANDLE_PORT_SEPARATOR, HELPERS_SHIPPED_IN_1B3, HIGH_QUALITY_PROVIDERS, HINT_EXEMPT_PARAMETER_TYPES, 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_MAP2 as INPUT_FIELD_MAP, INPUT_NODE_TYPES, INSTAGRAM_CAROUSEL_MAX_ITEMS, INSTAGRAM_CAROUSEL_MIN_ITEMS, ITER_CLONE_PATTERN, ImageCriticIssueSchema, ImageCriticResultSchema, ImageCriticVerdictSchema, ImprovePromptInputSchema, ImprovePromptResultSchema, KEYFRAME_CREDITS_PER_SHOT, KINETIC_CAPTION_STYLES, 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, LocationImageCriticVerdictSchema, LocationMetadataSchema, LocationsCoverageCriticIssueSchema, LocationsCoverageCriticVerdictSchema, 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, MatchCutVerdictSchema, 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, 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, ObjectMetadataSchema, OptimizeForModelInputSchema, OptimizeForModelResultSchema, OrgSettingsSchema, 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, PipelineCompletedEventSchema, PipelineConfigSchema, PipelineDriftSummarySchema, PipelineEditorDecisionsReadyEventSchema, PipelineForkedEventSchema, PipelineInputSchema, PipelineMusicReadyEventSchema, PipelineStageNameSchema, PipelineStageStatusSchema, PipelineStateSchema, PipelineStatusSchema, PresetSettingsSchema, QA_CHECK_PROVIDERS, 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, 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, SceneHelperNameSchema, SceneInputModeSchema, SceneMetadataSchema, SceneNodeDataSchema, SceneSpecSchema, ScriptCriticVerdictSchema, ShotSpecSchema, ShowrunnerPlanSchema, StageAwaitingSubGateEventSchema, StoryboardCohesionCriticVerdictSchema, StyleDirectivesSchema, SubGateNameSchema, 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, TransitionTypeSchema, UPSCALE_IMAGE_PROVIDERS, USAGE_GROUP_BYS, USAGE_MODES, 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, ValidateMatchCutInputSchema, ValidateMatchCutResultSchema, VideoCriticVerdictSchema, VoiceMatchSchema, 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, WorkspaceSettingsSchema, 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, resolveNormalizedImageGen, 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, stripDerivedAnalysisFields, stripExportContent, stripTransientRuntimeData, sunoCreditType, 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 };
14550
+ 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, AddBRollResultSchema, AnchorSceneStyleResultSchema, AssetRefSchema, AuditImagesResultSchema, AuditImagesShotEntrySchema, AuditPromptIssueSchema, AuditPromptResultSchema, AvatarPayloadError, BOARD_TO_ASSET_TYPE, BOARD_TO_COLUMN, BOARD_VARIANTS, BridgeToNextSceneInputSchema, BridgeToNextSceneResultSchema, 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, CastCoverageCriticVerdictSchema, CharacterImageCriticVerdictSchema, CharacterMetadataSchema, ChatTurnResponseSchema, CriticIssueSchema, 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, DetectionResultSchema, 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, EntityMetadataSchema, EntityRejectInputSchema, EntityStaleEventSchema, EntityStateChangeEventSchema, 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, FixContinuityInputSchema, FixContinuityResultSchema, 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, GenerateMotionResultSchema, HANDLE_PORT_SEPARATOR, HELPERS_SHIPPED_IN_1B3, HIGH_QUALITY_PROVIDERS, HINT_EXEMPT_PARAMETER_TYPES, 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_MAP2 as INPUT_FIELD_MAP, INPUT_NODE_TYPES, INSTAGRAM_CAROUSEL_MAX_ITEMS, INSTAGRAM_CAROUSEL_MIN_ITEMS, ITER_CLONE_PATTERN, ImageCriticIssueSchema, ImageCriticResultSchema, ImageCriticVerdictSchema, ImprovePromptInputSchema, ImprovePromptResultSchema, KEYFRAME_CREDITS_PER_SHOT, KINETIC_CAPTION_STYLES, 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, LocationImageCriticVerdictSchema, LocationMetadataSchema, LocationsCoverageCriticIssueSchema, LocationsCoverageCriticVerdictSchema, 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, MatchCutVerdictSchema, 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, 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, ObjectMetadataSchema, OptimizeForModelInputSchema, OptimizeForModelResultSchema, OrgSettingsSchema, 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, PipelineCompletedEventSchema, PipelineConfigSchema, PipelineDriftSummarySchema, PipelineEditorDecisionsReadyEventSchema, PipelineForkedEventSchema, PipelineInputSchema, PipelineMusicReadyEventSchema, PipelineStageNameSchema, PipelineStageStatusSchema, PipelineStateSchema, PipelineStatusSchema, PresetSettingsSchema, QA_CHECK_PROVIDERS, 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, 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, SceneHelperNameSchema, SceneInputModeSchema, SceneMetadataSchema, SceneNodeDataSchema, SceneSpecSchema, ScriptCriticVerdictSchema, ShotSpecSchema, ShowrunnerPlanSchema, StageAwaitingSubGateEventSchema, StoryboardCohesionCriticVerdictSchema, StyleDirectivesSchema, SubGateNameSchema, 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, TransitionTypeSchema, UPSCALE_IMAGE_PROVIDERS, USAGE_GROUP_BYS, USAGE_MODES, 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, ValidateMatchCutInputSchema, ValidateMatchCutResultSchema, VideoCriticVerdictSchema, VoiceMatchSchema, 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, WorkspaceSettingsSchema, 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 };
14134
14551
  //# sourceMappingURL=index.js.map
14135
14552
  //# sourceMappingURL=index.js.map