@nodaro/shared 2.20.0 → 2.21.1

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