@nodaro/shared 2.0.2 → 2.1.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
@@ -33,11 +33,14 @@ var FREECUT_REQUEST_IMPORT = "FREECUT_REQUEST_IMPORT";
33
33
  var MODEL_RECOMMENDATIONS = [
34
34
  // image
35
35
  { intent: "best for typography / logos / text-heavy", modelIds: ["nano-banana-pro", "gpt-image-2"], note: "Nano Banana Pro for diagrams / complex text; GPT Image 2 for logos and short copy." },
36
- { intent: "cheapest realistic image", modelIds: ["z-image", "qwen", "imagen4-fast"], note: "Z-Image is the cheapest at 1 credit. Qwen / Imagen4 Fast for slightly higher quality." },
36
+ // Notes name the RANKING, not the price the price sits in the generated
37
+ // table directly below them and in `pricing`, so restating it here just
38
+ // creates a copy that rots (this one said "1 credit" long after it was 2).
39
+ { intent: "cheapest realistic image", modelIds: ["z-image", "qwen", "imagen4-fast"], note: "Z-Image is the cheapest. Qwen / Imagen4 Fast for slightly higher quality." },
37
40
  { intent: "highest fidelity image", modelIds: ["nano-banana-pro", "imagen4-ultra", "flux-flex"], note: "Pick by family preference; all three are premium tiers." },
38
41
  { 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)." },
39
42
  { 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." },
40
- { intent: "background removal / cutout", modelIds: ["recraft-remove-bg"], note: "1 credit, no prompt needed." },
43
+ { intent: "background removal / cutout", modelIds: ["recraft-remove-bg"], note: "Cheap, no prompt needed." },
41
44
  // video
42
45
  { 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." },
43
46
  { intent: "cheap batch video clips", modelIds: ["veo3.1", "wan-turbo", "bytedance-lite"], note: "VEO 3.1 Fast is the best price/quality balance with native audio." },
@@ -1667,11 +1670,11 @@ var VIDEO_MODELS = {
1667
1670
  description: "Legacy fast-tier analysis model (pre-2026-07). Kept so stored raw-model configs keep running and keep pricing under their own identifier; new fast-tier runs use the current fast model.",
1668
1671
  useCases: ["video-analysis", "shot-list", "fast"],
1669
1672
  pricing: [
1670
- { identifier: "video-analysis:gemini-3-flash", credits: 136, note: "10-min ceiling (no duration given)" },
1671
- { identifier: "video-analysis:gemini-3-flash:60s", credits: 23 },
1672
- { identifier: "video-analysis:gemini-3-flash:180s", credits: 32 },
1673
- { identifier: "video-analysis:gemini-3-flash:360s", credits: 81 },
1674
- { identifier: "video-analysis:gemini-3-flash:600s", credits: 136, note: "10-min ceiling" }
1673
+ { identifier: "video-analysis:gemini-3-flash", credits: 143, note: "10-min ceiling (no duration given)" },
1674
+ { identifier: "video-analysis:gemini-3-flash:60s", credits: 24 },
1675
+ { identifier: "video-analysis:gemini-3-flash:180s", credits: 33 },
1676
+ { identifier: "video-analysis:gemini-3-flash:360s", credits: 86 },
1677
+ { identifier: "video-analysis:gemini-3-flash:600s", credits: 143, note: "10-min ceiling" }
1675
1678
  ]
1676
1679
  },
1677
1680
  "gemini-3.6-flash-video-analysis": {
@@ -1684,11 +1687,11 @@ var VIDEO_MODELS = {
1684
1687
  description: "Analyze a video into a structured shot list (scenes, camera, audio) \u2014 fast, economy tier. Billed per duration bucket.",
1685
1688
  useCases: ["video-analysis", "shot-list", "fast"],
1686
1689
  pricing: [
1687
- { identifier: "video-analysis:gemini-3.6-flash", credits: 374, note: "10-min ceiling (no duration given)" },
1688
- { identifier: "video-analysis:gemini-3.6-flash:60s", credits: 61 },
1689
- { identifier: "video-analysis:gemini-3.6-flash:180s", credits: 88 },
1690
- { identifier: "video-analysis:gemini-3.6-flash:360s", credits: 224 },
1691
- { identifier: "video-analysis:gemini-3.6-flash:600s", credits: 374, note: "10-min ceiling" }
1690
+ { identifier: "video-analysis:gemini-3.6-flash", credits: 395, note: "10-min ceiling (no duration given)" },
1691
+ { identifier: "video-analysis:gemini-3.6-flash:60s", credits: 65 },
1692
+ { identifier: "video-analysis:gemini-3.6-flash:180s", credits: 92 },
1693
+ { identifier: "video-analysis:gemini-3.6-flash:360s", credits: 237 },
1694
+ { identifier: "video-analysis:gemini-3.6-flash:600s", credits: 395, note: "10-min ceiling" }
1692
1695
  ]
1693
1696
  },
1694
1697
  "gemini-3.1-pro-video-analysis": {
@@ -1701,11 +1704,11 @@ var VIDEO_MODELS = {
1701
1704
  description: "Analyze a video into a structured shot list (scenes, camera, audio) \u2014 higher-fidelity, default tier. Billed per duration bucket.",
1702
1705
  useCases: ["video-analysis", "shot-list", "cinematic"],
1703
1706
  pricing: [
1704
- { identifier: "video-analysis:gemini-3.1-pro", credits: 486, note: "10-min ceiling (no duration given)" },
1705
- { identifier: "video-analysis:gemini-3.1-pro:60s", credits: 82 },
1706
- { identifier: "video-analysis:gemini-3.1-pro:180s", credits: 111 },
1707
- { identifier: "video-analysis:gemini-3.1-pro:360s", credits: 291 },
1708
- { identifier: "video-analysis:gemini-3.1-pro:600s", credits: 486, note: "10-min ceiling" }
1707
+ { identifier: "video-analysis:gemini-3.1-pro", credits: 509, note: "10-min ceiling (no duration given)" },
1708
+ { identifier: "video-analysis:gemini-3.1-pro:60s", credits: 87 },
1709
+ { identifier: "video-analysis:gemini-3.1-pro:180s", credits: 116 },
1710
+ { identifier: "video-analysis:gemini-3.1-pro:360s", credits: 305 },
1711
+ { identifier: "video-analysis:gemini-3.1-pro:600s", credits: 509, note: "10-min ceiling" }
1709
1712
  ]
1710
1713
  },
1711
1714
  // Both mixed tiers are variants of the same advanced multi-engine analysis
@@ -1721,11 +1724,11 @@ var VIDEO_MODELS = {
1721
1724
  description: "Our most advanced analysis tier \u2014 multiple analysis engines combined into one result for maximum completeness and accuracy. Billed per duration bucket.",
1722
1725
  useCases: ["video-analysis", "shot-list", "premium", "most-complete"],
1723
1726
  pricing: [
1724
- { identifier: "video-analysis:mixed", credits: 621, note: "10-min ceiling (no duration given)" },
1725
- { identifier: "video-analysis:mixed:60s", credits: 104 },
1726
- { identifier: "video-analysis:mixed:180s", credits: 142 },
1727
- { identifier: "video-analysis:mixed:360s", credits: 372 },
1728
- { identifier: "video-analysis:mixed:600s", credits: 621, note: "10-min ceiling" }
1727
+ { identifier: "video-analysis:mixed", credits: 651, note: "10-min ceiling (no duration given)" },
1728
+ { identifier: "video-analysis:mixed:60s", credits: 110 },
1729
+ { identifier: "video-analysis:mixed:180s", credits: 149 },
1730
+ { identifier: "video-analysis:mixed:360s", credits: 390 },
1731
+ { identifier: "video-analysis:mixed:600s", credits: 651, note: "10-min ceiling" }
1729
1732
  ]
1730
1733
  },
1731
1734
  // SMART — the accuracy tier, and the only one that does not rely on voting.
@@ -1742,11 +1745,11 @@ var VIDEO_MODELS = {
1742
1745
  description: "Highest-accuracy analysis \u2014 a single deep pass that reads the footage frame by frame, finds its own shot boundaries, and identifies the cast by appearance. Best choice when the shot list will drive regeneration. Billed per duration bucket.",
1743
1746
  useCases: ["video-analysis", "shot-list", "premium", "most-accurate"],
1744
1747
  pricing: [
1745
- { identifier: "video-analysis:smart", credits: 3496, note: "10-min ceiling (no duration given)" },
1746
- { identifier: "video-analysis:smart:60s", credits: 454 },
1747
- { identifier: "video-analysis:smart:180s", credits: 975 },
1748
- { identifier: "video-analysis:smart:360s", credits: 2105 },
1749
- { identifier: "video-analysis:smart:600s", credits: 3496, note: "10-min ceiling" }
1748
+ { identifier: "video-analysis:smart", credits: 1868, note: "10-min ceiling (no duration given)" },
1749
+ { identifier: "video-analysis:smart:60s", credits: 333 },
1750
+ { identifier: "video-analysis:smart:180s", credits: 470 },
1751
+ { identifier: "video-analysis:smart:360s", credits: 1135 },
1752
+ { identifier: "video-analysis:smart:600s", credits: 1868, note: "10-min ceiling" }
1750
1753
  ]
1751
1754
  }
1752
1755
  };
@@ -7471,13 +7474,13 @@ var SCRAPER_ACTOR_LABELS = {
7471
7474
  "rss": "RSS Feed"
7472
7475
  };
7473
7476
  var SCRAPER_CREDIT_COSTS = {
7474
- "web-scrape": 2,
7475
- "web-scrape:google-search": 3,
7476
- "web-scrape:content-crawler": 1,
7477
- "web-scrape:content-crawler:site": 5,
7478
- "web-scrape:instagram": 1,
7479
- "web-scrape:tiktok": 1,
7480
- "web-scrape:rss": 1
7477
+ "web-scrape": 20,
7478
+ "web-scrape:google-search": 30,
7479
+ "web-scrape:content-crawler": 10,
7480
+ "web-scrape:content-crawler:site": 50,
7481
+ "web-scrape:instagram": 10,
7482
+ "web-scrape:tiktok": 10,
7483
+ "web-scrape:rss": 10
7481
7484
  };
7482
7485
  function isScraperActor(value) {
7483
7486
  return typeof value === "string" && SCRAPER_ACTOR_IDS.includes(value);
@@ -9481,10 +9484,10 @@ var TIER_PIPELINE_PARALLELISM = {
9481
9484
  };
9482
9485
  var TIER_MAX_PIPELINE_COST_CREDITS = {
9483
9486
  free: 0,
9484
- basic: 300,
9485
- standard: 800,
9486
- pro: 2e3,
9487
- business: 5e3
9487
+ basic: 3e3,
9488
+ standard: 8e3,
9489
+ pro: 2e4,
9490
+ business: 5e4
9488
9491
  };
9489
9492
  var PIPELINE_STAGE_TIMEOUT_MS = 30 * 60 * 1e3;
9490
9493
  var PIPELINE_HARD_TIMEOUT_MS = 4 * 60 * 60 * 1e3;
@@ -12611,35 +12614,36 @@ var WINDOW_OVERLAP = 5;
12611
12614
  var VIDEO_ANALYSIS_WINDOW = { LEN: WINDOW_LEN, STRIDE: WINDOW_STRIDE, OVERLAP: WINDOW_OVERLAP, SINGLE_MAX: 180 };
12612
12615
  var VIDEO_ANALYSIS_BUCKET_CREDITS = {
12613
12616
  // Legacy fast-tier model (pre-2026-07) — kept for stored raw-id configs.
12614
- "video-analysis:gemini-3-flash:60s": 23,
12615
- "video-analysis:gemini-3-flash:180s": 32,
12616
- "video-analysis:gemini-3-flash:360s": 81,
12617
- "video-analysis:gemini-3-flash:600s": 136,
12617
+ "video-analysis:gemini-3-flash:60s": 24,
12618
+ "video-analysis:gemini-3-flash:180s": 33,
12619
+ "video-analysis:gemini-3-flash:360s": 86,
12620
+ "video-analysis:gemini-3-flash:600s": 143,
12618
12621
  // Current fast tier — regenerated from the private formula for its backing
12619
12622
  // model; higher than the legacy fast schedule but still ≤ pro per bucket.
12620
- "video-analysis:gemini-3.6-flash:60s": 61,
12621
- "video-analysis:gemini-3.6-flash:180s": 88,
12622
- "video-analysis:gemini-3.6-flash:360s": 224,
12623
- "video-analysis:gemini-3.6-flash:600s": 374,
12624
- "video-analysis:gemini-3.1-pro:60s": 82,
12625
- "video-analysis:gemini-3.1-pro:180s": 111,
12626
- "video-analysis:gemini-3.1-pro:360s": 291,
12627
- "video-analysis:gemini-3.1-pro:600s": 486,
12623
+ "video-analysis:gemini-3.6-flash:60s": 65,
12624
+ "video-analysis:gemini-3.6-flash:180s": 92,
12625
+ "video-analysis:gemini-3.6-flash:360s": 237,
12626
+ "video-analysis:gemini-3.6-flash:600s": 395,
12627
+ "video-analysis:gemini-3.1-pro:60s": 87,
12628
+ "video-analysis:gemini-3.1-pro:180s": 116,
12629
+ "video-analysis:gemini-3.1-pro:360s": 305,
12630
+ "video-analysis:gemini-3.1-pro:600s": 509,
12628
12631
  // Mixed tiers (`mixed` + `mixed-fast`) share ONE credit family — they are
12629
12632
  // variants of the same engine plan (plan internals live in the private
12630
12633
  // analysis plugin). Admin-tunable via model_pricing like every other row.
12631
- "video-analysis:mixed:60s": 104,
12632
- "video-analysis:mixed:180s": 142,
12633
- "video-analysis:mixed:360s": 372,
12634
- "video-analysis:mixed:600s": 621,
12635
- // SMART — the one native-transport plan: a single pass with reasoning and
12636
- // frame sampling turned all the way up. Priced well above the economy tiers
12637
- // because it genuinely costs more to run, and it is the only tier whose
12638
- // accuracy was measured against a hand-counted edit list.
12639
- "video-analysis:smart:60s": 454,
12640
- "video-analysis:smart:180s": 975,
12641
- "video-analysis:smart:360s": 2105,
12642
- "video-analysis:smart:600s": 3496
12634
+ "video-analysis:mixed:60s": 110,
12635
+ "video-analysis:mixed:180s": 149,
12636
+ "video-analysis:mixed:360s": 390,
12637
+ "video-analysis:mixed:600s": 651,
12638
+ // SMART — the one native-transport plan: a single pass with reasoning turned
12639
+ // all the way up at a measured-optimal sampling rate. Priced above the
12640
+ // economy tiers because it genuinely costs more to run; the only tier whose
12641
+ // accuracy is validated against a hand-counted edit list, re-validated at
12642
+ // the current sampling rate before this schedule shipped.
12643
+ "video-analysis:smart:60s": 333,
12644
+ "video-analysis:smart:180s": 470,
12645
+ "video-analysis:smart:360s": 1135,
12646
+ "video-analysis:smart:600s": 1868
12643
12647
  };
12644
12648
  function videoAnalysisCreditSegment(modelOrSentinel) {
12645
12649
  return modelOrSentinel === "mixed-fast" ? "mixed" : modelOrSentinel;