@nodaro/shared 2.3.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -729,6 +729,44 @@ var IMAGE_MODELS = {
729
729
  useCases: ["upscale"],
730
730
  pricing: [{ identifier: "grok-upscale", credits: 25 }]
731
731
  },
732
+ // Grok Imagine Image 2.0 — t2i plus task-chained region editing. The edit
733
+ // and segment-map endpoints take a PRIOR grok-2 generation's task id (the
734
+ // job's `kieTaskId` output), not an image URL — same contract as
735
+ // grok-upscale (see TASK_CHAINED_EDIT_PROVIDERS in model-constants).
736
+ "grok-2": {
737
+ id: "grok-2",
738
+ kind: "image",
739
+ modes: ["t2i"],
740
+ family: "xAI",
741
+ label: "Grok Imagine 2",
742
+ series: "Grok",
743
+ description: "Grok Imagine Image 2.0 \u2014 expressive, high-contrast t2i. Generations chain into grok-2-segment (free named region masks) and grok-2-edit (region-targeted edits).",
744
+ useCases: ["stylized", "expressive", "general"],
745
+ aspectRatios: GROK_RATIOS,
746
+ pricing: [{ identifier: "grok-2", credits: 10 }]
747
+ },
748
+ "grok-2-edit": {
749
+ id: "grok-2-edit",
750
+ kind: "image",
751
+ modes: ["edit"],
752
+ family: "xAI",
753
+ label: "Grok Imagine 2 Edit",
754
+ series: "Grok",
755
+ description: "Prompt-edit a prior grok-2 generation by task id. Optional mask indexes (from grok-2-segment) restrict the edit to named regions.",
756
+ useCases: ["edit", "region-edit"],
757
+ pricing: [{ identifier: "grok-2-edit", credits: 10 }]
758
+ },
759
+ "grok-2-segment": {
760
+ id: "grok-2-segment",
761
+ kind: "image",
762
+ modes: ["edit"],
763
+ family: "xAI",
764
+ label: "Grok Imagine 2 Segment Map",
765
+ series: "Grok",
766
+ description: "FREE semantic segment map of a prior grok-2 generation \u2014 named region masks whose indexes feed grok-2-edit's region targeting.",
767
+ useCases: ["segmentation", "region-edit"],
768
+ pricing: [{ identifier: "grok-2-segment", credits: 0, note: "free" }]
769
+ },
732
770
  // ── Utilities ──
733
771
  "recraft-remove-bg": {
734
772
  id: "recraft-remove-bg",
@@ -1203,7 +1241,8 @@ var VIDEO_MODELS = {
1203
1241
  },
1204
1242
  // Seedance 2.5 — the next Seedance generation, not a tier of the 2.0 ladder.
1205
1243
  // Two levers differ from every 2.0 SKU and drive its own entries throughout:
1206
- // durations run to 30s (2.0 caps at 15s) and there is NO 1080p/4K tier.
1244
+ // durations run to 30s (2.0 caps at 15s) and there is NO 4K tier (1080p
1245
+ // arrived on KIE 2026-08-17 — probe-verified; 4k/2k/1440p still rejected).
1207
1246
  // Reference caps are also wider (30 images / 10 videos / 10 audio) — see
1208
1247
  // SEEDANCE_2_5_REF_LIMITS in model-constants.
1209
1248
  "seedance-2-5": {
@@ -1213,20 +1252,23 @@ var VIDEO_MODELS = {
1213
1252
  family: "Bytedance",
1214
1253
  label: "Seedance 2.5",
1215
1254
  series: "Seedance",
1216
- description: "Seedance 2.5 \u2014 up to 30s in one shot, native audio, wide multimodal references. 480p/720p.",
1255
+ description: "Seedance 2.5 \u2014 up to 30s in one shot, native audio, wide multimodal references. 480p/720p/1080p.",
1217
1256
  useCases: ["premium", "narrative", "long-form"],
1218
1257
  features: ["end-frame", "audio", "reference-image", "video-reference"],
1219
1258
  aspectRatios: VIDEO_RATIOS_SEEDANCE_2,
1220
1259
  durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
1221
- resolutions: ["480p", "720p"],
1260
+ resolutions: ["480p", "720p", "1080p"],
1222
1261
  pricing: [
1223
1262
  { identifier: "seedance-2-5", credits: 1260, note: "default 8s 720p \u2014 see :Ns:res variants for exact" },
1224
1263
  { identifier: "seedance-2-5:8s:480p", credits: 560, note: "8s 480p" },
1225
1264
  { identifier: "seedance-2-5:8s:720p", credits: 1260, note: "8s 720p" },
1265
+ { identifier: "seedance-2-5:8s:1080p", credits: 2280, note: "8s 1080p" },
1226
1266
  { identifier: "seedance-2-5:8s:480p-ref", credits: 340, note: "8s 480p with reference video" },
1227
1267
  { identifier: "seedance-2-5:8s:720p-ref", credits: 760, note: "8s 720p with reference video" },
1268
+ { identifier: "seedance-2-5:8s:1080p-ref", credits: 1370, note: "8s 1080p with reference video" },
1228
1269
  { identifier: "seedance-2-5:30s:480p", credits: 2100, note: "30s 480p (max)" },
1229
- { identifier: "seedance-2-5:30s:720p", credits: 4730, note: "30s 720p (max)" }
1270
+ { identifier: "seedance-2-5:30s:720p", credits: 4730, note: "30s 720p (max)" },
1271
+ { identifier: "seedance-2-5:30s:1080p", credits: 8550, note: "30s 1080p (max)" }
1230
1272
  ]
1231
1273
  },
1232
1274
  // ── Wan ──
@@ -2688,6 +2730,7 @@ var IMAGE_GEN_PROVIDERS = [
2688
2730
  "nano-banana-2",
2689
2731
  "nano-banana-2-lite",
2690
2732
  "grok",
2733
+ "grok-2",
2691
2734
  "gpt-image",
2692
2735
  "gpt-image-2",
2693
2736
  "imagen4",
@@ -2733,8 +2776,13 @@ var IMAGE_I2I_PROVIDERS = [
2733
2776
  "kontext-multi",
2734
2777
  // BFL Flux 2 Pro — runs through Replicate with safety_tolerance=5 (max for Pro)
2735
2778
  "flux-2-pro",
2779
+ // BFL FLUX Fill Pro — dedicated masked inpainting via Replicate (white = edit area)
2780
+ "flux-fill",
2736
2781
  // BFL Flux 2 Max — runs through Replicate with safety_tolerance=5, up to 8 refs
2737
- "flux-2-max"
2782
+ "flux-2-max",
2783
+ // BFL FLUX Fill Pro — dedicated inpainting via Replicate (image + mask + prompt,
2784
+ // white = edit area). Second mask-capable i2i provider alongside ideogram-edit.
2785
+ "flux-fill"
2738
2786
  ];
2739
2787
  var IMAGE_EDIT_PROVIDERS = [
2740
2788
  "recraft-upscale",
@@ -2743,8 +2791,19 @@ var IMAGE_EDIT_PROVIDERS = [
2743
2791
  "topaz-image-upscale",
2744
2792
  // grok-upscale takes a prior Grok generation's task_id (NOT an image URL) —
2745
2793
  // see edit-image route for the taskId-vs-imageUrl branching.
2746
- "grok-upscale"
2794
+ "grok-upscale",
2795
+ // Grok Imagine 2 task-chained ops — same task_id contract as grok-upscale.
2796
+ // grok-2-edit: prompt edit of a prior grok-2 generation, optionally region-
2797
+ // targeted via mask indexes from grok-2-segment. grok-2-segment: FREE named
2798
+ // segment-mask map of a prior grok-2 generation.
2799
+ "grok-2-edit",
2800
+ "grok-2-segment"
2747
2801
  ];
2802
+ var TASK_CHAINED_EDIT_PROVIDERS = /* @__PURE__ */ new Set([
2803
+ "grok-upscale",
2804
+ "grok-2-edit",
2805
+ "grok-2-segment"
2806
+ ]);
2748
2807
  var MODIFY_IMAGE_PROVIDERS = [
2749
2808
  ...IMAGE_I2I_PROVIDERS,
2750
2809
  "nano-banana-edit"
@@ -3026,7 +3085,7 @@ var VOICE_DESIGN_MODELS = [
3026
3085
  "eleven_multilingual_ttv_v2"
3027
3086
  ];
3028
3087
  var DEFAULT_VOICE_DESIGN_MODEL = "eleven_ttv_v3";
3029
- var I2I_MASK_SUPPORT = /* @__PURE__ */ new Set(["ideogram-edit"]);
3088
+ var I2I_MASK_SUPPORT = /* @__PURE__ */ new Set(["ideogram-edit", "flux-fill"]);
3030
3089
  var IMAGE_MASK_MODE = {
3031
3090
  "nano-banana": "prompt",
3032
3091
  "nano-banana-pro": "prompt",
@@ -3043,6 +3102,7 @@ var IMAGE_MASK_MODE = {
3043
3102
  "flux": "composite",
3044
3103
  "flux-flex": "composite",
3045
3104
  "grok": "composite",
3105
+ "grok-2": "composite",
3046
3106
  "imagen4": "composite",
3047
3107
  "imagen4-fast": "composite",
3048
3108
  "imagen4-ultra": "composite",
@@ -4693,6 +4753,16 @@ function buildChildrenByParent(nodes) {
4693
4753
  function isCollectInEdge(e) {
4694
4754
  return (e.targetHandle ?? COLLECT_IN_HANDLE) === COLLECT_IN_HANDLE;
4695
4755
  }
4756
+ function computeAggregateLanes(nodeId, wiredTypes, buckets, edges) {
4757
+ const present = new Set(wiredTypes);
4758
+ for (const t2 of presentTypes(buckets)) present.add(t2);
4759
+ for (const e of edges) {
4760
+ if (e.source !== nodeId) continue;
4761
+ const lane = parseGroupHandle(e.sourceHandle);
4762
+ if (lane) present.add(lane);
4763
+ }
4764
+ return AGGREGATEABLE_TYPES.filter((t2) => present.has(t2));
4765
+ }
4696
4766
 
4697
4767
  // src/llm-models.ts
4698
4768
  var LLM_REASONING_EFFORTS = ["none", "low", "medium", "high", "xhigh", "max"];
@@ -5004,7 +5074,8 @@ var LLM_FEATURE_DEFAULTS = {
5004
5074
  "qa-check": "gemini-3.6-flash",
5005
5075
  "generate-script": "gemini-3.6-flash",
5006
5076
  "translate": "gemini-3.6-flash",
5007
- "image-critic": "claude-sonnet-4.6"
5077
+ "image-critic": "claude-sonnet-4.6",
5078
+ "pick-best-llm": "claude-sonnet-4.6"
5008
5079
  };
5009
5080
  var LLM_MODALITY_CAPS = {
5010
5081
  "gemini-3-flash": { image: true, video: true, audio: true },
@@ -7634,6 +7705,29 @@ var SOCIAL_POST_NODE_TYPES = /* @__PURE__ */ new Set([
7634
7705
  var INSTAGRAM_CAROUSEL_MIN_ITEMS = 2;
7635
7706
  var INSTAGRAM_CAROUSEL_MAX_ITEMS = 10;
7636
7707
 
7708
+ // src/effective-tier.ts
7709
+ function resolveStoredTier(p) {
7710
+ return p.tier ?? p.subscription_tier ?? "free";
7711
+ }
7712
+ function resolveEffectiveTier(p) {
7713
+ const stored = resolveStoredTier(p);
7714
+ if (stored === "free" && p.lifetime_topup_credits > 0) return "payg";
7715
+ return stored;
7716
+ }
7717
+ var PAYG_RETENTION_DAYS = 90;
7718
+ function isPaygRetentionActive(p, now) {
7719
+ if (p.lifetimeTopupCredits <= 0) return false;
7720
+ const cutoff = now.getTime() - PAYG_RETENTION_DAYS * 24 * 60 * 60 * 1e3;
7721
+ const at = (v) => {
7722
+ if (v === null) return null;
7723
+ const t2 = v instanceof Date ? v.getTime() : new Date(v).getTime();
7724
+ return Number.isFinite(t2) ? t2 : null;
7725
+ };
7726
+ const topup = at(p.lastTopupAt);
7727
+ const spend = at(p.lastSpendAt);
7728
+ return topup !== null && topup >= cutoff || spend !== null && spend >= cutoff;
7729
+ }
7730
+
7637
7731
  // src/node-default-mappings.ts
7638
7732
  var NODE_DEFAULT_TYPES = [
7639
7733
  // Image
@@ -7725,8 +7819,9 @@ var QUALITY_MAP = {
7725
7819
  "seedance-2": { field: "resolution", values: { low: "720p", mid: "1080p", high: "1080p" } },
7726
7820
  "seedance-2-fast": { field: "resolution", values: { low: "480p", mid: "720p", high: "720p" } },
7727
7821
  "seedance-2-mini": { field: "resolution", values: { low: "480p", mid: "720p", high: "720p" } },
7728
- // Seedance 2.5 tops out at 720p on KIE (1080p/4k probe-rejected 2026-08-08).
7729
- "seedance-2-5": { field: "resolution", values: { low: "480p", mid: "720p", high: "720p" } },
7822
+ // Seedance 2.5 spans 480p/720p/1080p on KIE (1080p accepted since the
7823
+ // 2026-08-17 re-probe; 4k still rejected), so each quality rung gets its own tier.
7824
+ "seedance-2-5": { field: "resolution", values: { low: "480p", mid: "720p", high: "1080p" } },
7730
7825
  "wan-2.7-i2v": { field: "resolution", values: { low: "720p", mid: "1080p", high: "1080p" } },
7731
7826
  "wan-2.7-t2v": { field: "resolution", values: { low: "720p", mid: "1080p", high: "1080p" } },
7732
7827
  "happyhorse": { field: "resolution", values: { low: "720p", mid: "1080p", high: "1080p" } },
@@ -9867,6 +9962,8 @@ function validateModeActivation(mode, activation) {
9867
9962
  }
9868
9963
  var TIER_PIPELINE_PARALLELISM = {
9869
9964
  free: 0,
9965
+ payg: 1,
9966
+ // derived tier — pipeline entitlements copy basic's
9870
9967
  basic: 1,
9871
9968
  standard: 2,
9872
9969
  pro: 3,
@@ -9874,6 +9971,8 @@ var TIER_PIPELINE_PARALLELISM = {
9874
9971
  };
9875
9972
  var TIER_MAX_PIPELINE_COST_CREDITS = {
9876
9973
  free: 0,
9974
+ payg: 3e3,
9975
+ // derived tier — copies basic
9877
9976
  basic: 3e3,
9878
9977
  standard: 8e3,
9879
9978
  pro: 2e4,
@@ -11190,24 +11289,31 @@ function selectLoraRoutingForMentions(refs) {
11190
11289
  }
11191
11290
  var PICK_BEST_LLM_STRATEGY = {
11192
11291
  id: "pick-best-llm",
11193
- label: "Pick best (LLM judge)",
11194
- description: "Sonnet picks the best item against your criteria.",
11292
+ label: "AI picks the best",
11293
+ description: "AI compares every candidate against your criteria and picks one.",
11195
11294
  configSchema: zod.z.object({
11196
11295
  // Default to the sensible "best quality" criteria when omitted (matches
11197
11296
  // defaultConfig) so a reduce({strategyId:"pick-best-llm"}) call with no
11198
11297
  // criteria degrades gracefully instead of erroring. An explicit "" still
11199
11298
  // rejects via min(1).
11200
11299
  criteria: zod.z.string().min(1, "criteria cannot be empty").default("Pick the highest-quality result."),
11201
- inputKind: zod.z.enum(["text", "image-url"]).default("text")
11300
+ inputKind: zod.z.enum(["text", "image-url"]).default("text"),
11301
+ // The judge model, like every other LLM node (llmModel + LlmModelSelect).
11302
+ // Optional: omitted → LLM_FEATURE_DEFAULTS["pick-best-llm"]. Validated
11303
+ // against LLM_MODEL_IDS at the route (the registry can't import the model
11304
+ // list without a cycle), and its tier drives the credit price via
11305
+ // buildLlmCreditIdentifier — economy / standard / premium.
11306
+ llmModel: zod.z.string().optional()
11202
11307
  }),
11203
11308
  defaultConfig: { criteria: "Pick the highest-quality result.", inputKind: "text" },
11204
11309
  outputType: "text",
11205
- creditCostKey: "reduce:pick-best-llm"
11310
+ creditCostKey: "reduce:pick-best-llm",
11311
+ usesLlm: true
11206
11312
  };
11207
11313
  var CONCAT_STRATEGY = {
11208
11314
  id: "concat",
11209
- label: "Concatenate",
11210
- description: "Join all survivors with a separator.",
11315
+ label: "Join into one text",
11316
+ description: "Puts every candidate into a single text, one after another, with a separator between them.",
11211
11317
  configSchema: zod.z.object({ separator: zod.z.string().default("\n\n") }),
11212
11318
  defaultConfig: { separator: "\n\n" },
11213
11319
  outputType: "text",
@@ -11215,8 +11321,8 @@ var CONCAT_STRATEGY = {
11215
11321
  };
11216
11322
  var FIRST_NON_EMPTY_STRATEGY = {
11217
11323
  id: "first-non-empty",
11218
- label: "First non-empty",
11219
- description: "Return the first survivor (empty strings filtered).",
11324
+ label: "First that has content",
11325
+ description: "Takes the first candidate that is not empty and ignores the rest.",
11220
11326
  configSchema: zod.z.object({}),
11221
11327
  defaultConfig: {},
11222
11328
  outputType: "text",
@@ -11224,8 +11330,8 @@ var FIRST_NON_EMPTY_STRATEGY = {
11224
11330
  };
11225
11331
  var COUNT_STRATEGY = {
11226
11332
  id: "count",
11227
- label: "Count",
11228
- description: "Return how many survivors came through.",
11333
+ label: "Count them",
11334
+ description: "Outputs how many candidates arrived.",
11229
11335
  configSchema: zod.z.object({}),
11230
11336
  defaultConfig: {},
11231
11337
  outputType: "data",
@@ -11233,8 +11339,8 @@ var COUNT_STRATEGY = {
11233
11339
  };
11234
11340
  var VOTE_STRATEGY = {
11235
11341
  id: "vote",
11236
- label: "Majority vote",
11237
- description: "Return the most common survivor (ties \u2192 first).",
11342
+ label: "Most common answer",
11343
+ description: "Picks the candidate that appears most often (ties go to the first).",
11238
11344
  configSchema: zod.z.object({ caseSensitive: zod.z.boolean().default(false) }),
11239
11345
  defaultConfig: { caseSensitive: false },
11240
11346
  outputType: "text",
@@ -11242,8 +11348,8 @@ var VOTE_STRATEGY = {
11242
11348
  };
11243
11349
  var MERGE_JSON_STRATEGY = {
11244
11350
  id: "merge-json",
11245
- label: "Merge JSON",
11246
- description: "Parse each survivor as JSON and merge into one object.",
11351
+ label: "Merge JSON objects",
11352
+ description: "Reads every candidate as JSON and merges them into one object.",
11247
11353
  configSchema: zod.z.object({ strategy: zod.z.enum(["deep", "shallow"]).default("deep") }),
11248
11354
  defaultConfig: { strategy: "deep" },
11249
11355
  outputType: "data",
@@ -12668,10 +12774,21 @@ var ENTITY_IMAGE_HANDLE_TYPES = /* @__PURE__ */ new Set([
12668
12774
  "object",
12669
12775
  "creature"
12670
12776
  ]);
12777
+ var AGGREGATE_LANE_SOURCE_TYPES = /* @__PURE__ */ new Set(["group", "collect"]);
12778
+ var AGGREGATE_LANE_EFFECTIVE_TYPE = {
12779
+ "out-image": "upload-image",
12780
+ "out-video": "upload-video",
12781
+ "out-audio": "upload-audio",
12782
+ "out-text": "list"
12783
+ };
12671
12784
  function resolveEffectiveSourceType(rawSourceType, sourceHandleId) {
12672
12785
  if (sourceHandleId === "image" && ENTITY_IMAGE_HANDLE_TYPES.has(rawSourceType ?? "")) {
12673
12786
  return "upload-image";
12674
12787
  }
12788
+ if (AGGREGATE_LANE_SOURCE_TYPES.has(rawSourceType ?? "")) {
12789
+ const effective = AGGREGATE_LANE_EFFECTIVE_TYPE[sourceHandleId ?? ""];
12790
+ if (effective) return effective;
12791
+ }
12675
12792
  return rawSourceType ?? "";
12676
12793
  }
12677
12794
  function sourceRefKey(nodeId, sourceHandleId, rawSourceType) {
@@ -12756,6 +12873,8 @@ var VIDEO_ANALYSIS_VISUAL_EFFECTS = [
12756
12873
  ];
12757
12874
  var VIDEO_ANALYSIS_TRANSITIONS = ["cut", "fade", "dissolve", "wipe", "whip"];
12758
12875
  var VIDEO_ANALYSIS_SPEED_EFFECTS = ["slow-motion", "ramp-in", "ramp-out", "timelapse", "freeze", "reverse"];
12876
+ var VIDEO_ANALYSIS_TIMES_OF_DAY = ["dawn", "day", "dusk", "night", "ambiguous"];
12877
+ var VIDEO_ANALYSIS_STORY_JUMPS = ["continuous", "same-day", "another-day", "years-later", "unclear"];
12759
12878
  var clipLookSchema = zod.z.object({
12760
12879
  /**
12761
12880
  * The rendering MEDIUM — "live-action photoreal", "2D anime", "stop-motion
@@ -12880,6 +12999,12 @@ var windowSceneBase = zod.z.object({
12880
12999
  angle: zod.z.enum(VIDEO_ANALYSIS_SHOT_ANGLES).optional(),
12881
13000
  /** Time manipulation. Absent ⇒ normal speed. */
12882
13001
  speed: zod.z.enum(VIDEO_ANALYSIS_SPEED_EFFECTS).optional(),
13002
+ /** CHRONICLE TIME (2026-08-17) — see the consts' docstrings. Both optional:
13003
+ * absent on every pre-2.6.0 analysis, and legitimately absent when the
13004
+ * analyser cannot read the clock. Enum + optional keeps the window decode
13005
+ * grammar congruence-safe (no ints, no maxItems). */
13006
+ timeOfDay: zod.z.enum(VIDEO_ANALYSIS_TIMES_OF_DAY).optional(),
13007
+ storyJump: zod.z.enum(VIDEO_ANALYSIS_STORY_JUMPS).optional(),
12883
13008
  visual: zod.z.string().min(1),
12884
13009
  /**
12885
13010
  * Text burned into the PICTURE of this shot — titles, captions, lower-thirds,
@@ -13047,6 +13172,23 @@ function aspectRatioFromDims(w, h) {
13047
13172
  const g = gcd(Math.round(w), Math.round(h));
13048
13173
  return `${Math.round(w) / g}:${Math.round(h) / g}`;
13049
13174
  }
13175
+ var MUSIC_VOCAL_RE = /\b(?:lyrics?|sung|sings?|singing|vocals?|chorus|verse|rap(?:ping|ped)?|a cappella)\b/i;
13176
+ var MUSIC_VOCAL_QUOTE_RE = /["\u201c][^"\u201d]{6,}["\u201d]/;
13177
+ var MUSIC_NO_VOCAL_RE = /\b(?:no|without|non)[- ](?:vocals?|lyrics?|singing)\b|\binstrumental\b|\bwordless\b/i;
13178
+ function inferMusicVideo(analysis) {
13179
+ const scenes = analysis?.scenes ?? [];
13180
+ if (scenes.length < 4) return false;
13181
+ const musicLayers = (sc) => (sc.audio ?? []).filter((a) => a?.mode === "music");
13182
+ const withMusic = scenes.filter((sc) => musicLayers(sc).length > 0).length;
13183
+ if (withMusic / scenes.length < 0.8) return false;
13184
+ return scenes.some(
13185
+ (sc) => musicLayers(sc).some((a) => {
13186
+ const content = typeof a.content === "string" ? a.content : "";
13187
+ if (MUSIC_NO_VOCAL_RE.test(content)) return false;
13188
+ return MUSIC_VOCAL_RE.test(content) || MUSIC_VOCAL_QUOTE_RE.test(content);
13189
+ })
13190
+ );
13191
+ }
13050
13192
 
13051
13193
  // src/video-analysis-pricing.ts
13052
13194
  var VIDEO_ANALYSIS_DURATION_BUCKETS = [60, 180, 360, 600];
@@ -13149,6 +13291,7 @@ function clampSmartCutWindow(value) {
13149
13291
  exports.ACTIVE_SCENE_HELPERS = ACTIVE_SCENE_HELPERS;
13150
13292
  exports.ADVANCED_MODE_UNAVAILABLE_REASON = ADVANCED_MODE_UNAVAILABLE_REASON;
13151
13293
  exports.AGGREGATEABLE_TYPES = AGGREGATEABLE_TYPES;
13294
+ exports.AGGREGATE_LANE_SOURCE_TYPES = AGGREGATE_LANE_SOURCE_TYPES;
13152
13295
  exports.AI_AVATAR_DURATION_BUCKETS = AI_AVATAR_DURATION_BUCKETS;
13153
13296
  exports.AI_AVATAR_MAX_AUDIO_SEC = AI_AVATAR_MAX_AUDIO_SEC;
13154
13297
  exports.AI_AVATAR_MAX_DURATION_SEC = AI_AVATAR_MAX_DURATION_SEC;
@@ -13396,6 +13539,7 @@ exports.OptimizeForModelInputSchema = OptimizeForModelInputSchema;
13396
13539
  exports.OptimizeForModelResultSchema = OptimizeForModelResultSchema;
13397
13540
  exports.PARAMETER_NODE_TYPES = PARAMETER_NODE_TYPES;
13398
13541
  exports.PASSTHROUGH_TYPES = PASSTHROUGH_TYPES;
13542
+ exports.PAYG_RETENTION_DAYS = PAYG_RETENTION_DAYS;
13399
13543
  exports.PER_FORMAT_DURATION_BOUNDS = PER_FORMAT_DURATION_BOUNDS;
13400
13544
  exports.PIPELINE_ACTIVATION_MODES = PIPELINE_ACTIVATION_MODES;
13401
13545
  exports.PIPELINE_FORMATS = PIPELINE_FORMATS;
@@ -13503,6 +13647,7 @@ exports.StoryboardCohesionCriticVerdictSchema = StoryboardCohesionCriticVerdictS
13503
13647
  exports.StyleDirectivesSchema = StyleDirectivesSchema;
13504
13648
  exports.SubGateNameSchema = SubGateNameSchema;
13505
13649
  exports.T2I_TO_I2I_VARIANT = T2I_TO_I2I_VARIANT;
13650
+ exports.TASK_CHAINED_EDIT_PROVIDERS = TASK_CHAINED_EDIT_PROVIDERS;
13506
13651
  exports.TEXT_TO_AUDIO_PROVIDERS = TEXT_TO_AUDIO_PROVIDERS;
13507
13652
  exports.TEXT_TO_VIDEO_PROVIDERS = TEXT_TO_VIDEO_PROVIDERS;
13508
13653
  exports.TIER_MAX_PIPELINE_COST_CREDITS = TIER_MAX_PIPELINE_COST_CREDITS;
@@ -13536,9 +13681,11 @@ exports.VIDEO_ANALYSIS_MAX_VARIATIONS = VIDEO_ANALYSIS_MAX_VARIATIONS;
13536
13681
  exports.VIDEO_ANALYSIS_MIXED_TIERS = VIDEO_ANALYSIS_MIXED_TIERS;
13537
13682
  exports.VIDEO_ANALYSIS_SHOT_ANGLES = VIDEO_ANALYSIS_SHOT_ANGLES;
13538
13683
  exports.VIDEO_ANALYSIS_SPEED_EFFECTS = VIDEO_ANALYSIS_SPEED_EFFECTS;
13684
+ exports.VIDEO_ANALYSIS_STORY_JUMPS = VIDEO_ANALYSIS_STORY_JUMPS;
13539
13685
  exports.VIDEO_ANALYSIS_TIERS = VIDEO_ANALYSIS_TIERS;
13540
13686
  exports.VIDEO_ANALYSIS_TIER_LABELS = VIDEO_ANALYSIS_TIER_LABELS;
13541
13687
  exports.VIDEO_ANALYSIS_TIER_ORDER = VIDEO_ANALYSIS_TIER_ORDER;
13688
+ exports.VIDEO_ANALYSIS_TIMES_OF_DAY = VIDEO_ANALYSIS_TIMES_OF_DAY;
13542
13689
  exports.VIDEO_ANALYSIS_TRANSITIONS = VIDEO_ANALYSIS_TRANSITIONS;
13543
13690
  exports.VIDEO_ANALYSIS_VARIATION_SLUGS = VIDEO_ANALYSIS_VARIATION_SLUGS;
13544
13691
  exports.VIDEO_ANALYSIS_VISUAL_EFFECTS = VIDEO_ANALYSIS_VISUAL_EFFECTS;
@@ -13633,6 +13780,7 @@ exports.clearVideoCriticMetadata = clearVideoCriticMetadata;
13633
13780
  exports.clipLookSchema = clipLookSchema;
13634
13781
  exports.collectAncestorRefs = collectAncestorRefs;
13635
13782
  exports.combineSameLabelRefs = combineSameLabelRefs;
13783
+ exports.computeAggregateLanes = computeAggregateLanes;
13636
13784
  exports.countRefModalityEdges = countRefModalityEdges;
13637
13785
  exports.creditRangesAll = creditRangesAll;
13638
13786
  exports.creditsToUsd = creditsToUsd;
@@ -13732,6 +13880,7 @@ exports.hasFeature = hasFeature;
13732
13880
  exports.hexToRgbaArray = hexToRgbaArray;
13733
13881
  exports.humanizeSlotSid = humanizeSlotSid;
13734
13882
  exports.imageReferenceLimit = imageReferenceLimit;
13883
+ exports.inferMusicVideo = inferMusicVideo;
13735
13884
  exports.isAggregateableType = isAggregateableType;
13736
13885
  exports.isCharacterAspectRatio = isCharacterAspectRatio;
13737
13886
  exports.isCollectInEdge = isCollectInEdge;
@@ -13745,6 +13894,7 @@ exports.isLocationUsageMode = isLocationUsageMode;
13745
13894
  exports.isMinimaxH3Provider = isMinimaxH3Provider;
13746
13895
  exports.isObjectAspectRatio = isObjectAspectRatio;
13747
13896
  exports.isOversizedScene = isOversizedScene;
13897
+ exports.isPaygRetentionActive = isPaygRetentionActive;
13748
13898
  exports.isPerSecondLipSyncProvider = isPerSecondLipSyncProvider;
13749
13899
  exports.isScraperActor = isScraperActor;
13750
13900
  exports.isSeedance2Provider = isSeedance2Provider;
@@ -13818,6 +13968,7 @@ exports.resolveDefaultRole = resolveDefaultRole;
13818
13968
  exports.resolveDescription = resolveDescription;
13819
13969
  exports.resolveDialogueVoices = resolveDialogueVoices;
13820
13970
  exports.resolveEffectiveSourceType = resolveEffectiveSourceType;
13971
+ exports.resolveEffectiveTier = resolveEffectiveTier;
13821
13972
  exports.resolveEntityAspect = resolveEntityAspect;
13822
13973
  exports.resolveFieldMappings = resolveFieldMappings;
13823
13974
  exports.resolveGvpAnchorWire = resolveGvpAnchorWire;
@@ -13838,6 +13989,7 @@ exports.resolveSelectorRefs = resolveSelectorRefs;
13838
13989
  exports.resolveSeparator = resolveSeparator;
13839
13990
  exports.resolveSheetSections = resolveSheetSections;
13840
13991
  exports.resolveSourceThroughConnectedList = resolveSourceThroughConnectedList;
13992
+ exports.resolveStoredTier = resolveStoredTier;
13841
13993
  exports.resolveSwitchXCreditId = resolveSwitchXCreditId;
13842
13994
  exports.resolveVideoAnalysisModel = resolveVideoAnalysisModel;
13843
13995
  exports.resolveVideoProviderForMode = resolveVideoProviderForMode;