@nodaro/shared 2.23.0 → 2.24.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
@@ -1983,11 +1983,11 @@ var VIDEO_MODELS = {
1983
1983
  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.",
1984
1984
  useCases: ["video-analysis", "shot-list", "fast"],
1985
1985
  pricing: [
1986
- { identifier: "video-analysis:gemini-3-flash", credits: 848, note: "10-min ceiling (no duration given)" },
1986
+ { identifier: "video-analysis:gemini-3-flash", credits: 849, note: "10-min ceiling (no duration given)" },
1987
1987
  { identifier: "video-analysis:gemini-3-flash:60s", credits: 181 },
1988
- { identifier: "video-analysis:gemini-3-flash:180s", credits: 185 },
1989
- { identifier: "video-analysis:gemini-3-flash:360s", credits: 515 },
1990
- { identifier: "video-analysis:gemini-3-flash:600s", credits: 848, note: "10-min ceiling" }
1988
+ { identifier: "video-analysis:gemini-3-flash:180s", credits: 186 },
1989
+ { identifier: "video-analysis:gemini-3-flash:360s", credits: 516 },
1990
+ { identifier: "video-analysis:gemini-3-flash:600s", credits: 849, note: "10-min ceiling" }
1991
1991
  ]
1992
1992
  },
1993
1993
  "gemini-3.6-flash-video-analysis": {
@@ -2000,11 +2000,11 @@ var VIDEO_MODELS = {
2000
2000
  description: "Analyze a video into a structured shot list (scenes, camera, audio) \u2014 fast, economy tier. Billed per duration bucket.",
2001
2001
  useCases: ["video-analysis", "shot-list", "fast"],
2002
2002
  pricing: [
2003
- { identifier: "video-analysis:gemini-3.6-flash", credits: 992, note: "10-min ceiling (no duration given)" },
2004
- { identifier: "video-analysis:gemini-3.6-flash:60s", credits: 204 },
2003
+ { identifier: "video-analysis:gemini-3.6-flash", credits: 995, note: "10-min ceiling (no duration given)" },
2004
+ { identifier: "video-analysis:gemini-3.6-flash:60s", credits: 205 },
2005
2005
  { identifier: "video-analysis:gemini-3.6-flash:180s", credits: 219 },
2006
- { identifier: "video-analysis:gemini-3.6-flash:360s", credits: 602 },
2007
- { identifier: "video-analysis:gemini-3.6-flash:600s", credits: 992, note: "10-min ceiling" }
2006
+ { identifier: "video-analysis:gemini-3.6-flash:360s", credits: 603 },
2007
+ { identifier: "video-analysis:gemini-3.6-flash:600s", credits: 995, note: "10-min ceiling" }
2008
2008
  ]
2009
2009
  },
2010
2010
  "gemini-3.1-pro-video-analysis": {
@@ -2017,11 +2017,11 @@ var VIDEO_MODELS = {
2017
2017
  description: "Analyze a video into a structured shot list (scenes, camera, audio) \u2014 higher-fidelity, default tier. Billed per duration bucket.",
2018
2018
  useCases: ["video-analysis", "shot-list", "cinematic"],
2019
2019
  pricing: [
2020
- { identifier: "video-analysis:gemini-3.1-pro", credits: 1056, note: "10-min ceiling (no duration given)" },
2021
- { identifier: "video-analysis:gemini-3.1-pro:60s", credits: 216 },
2022
- { identifier: "video-analysis:gemini-3.1-pro:180s", credits: 232 },
2023
- { identifier: "video-analysis:gemini-3.1-pro:360s", credits: 640 },
2024
- { identifier: "video-analysis:gemini-3.1-pro:600s", credits: 1056, note: "10-min ceiling" }
2020
+ { identifier: "video-analysis:gemini-3.1-pro", credits: 1059, note: "10-min ceiling (no duration given)" },
2021
+ { identifier: "video-analysis:gemini-3.1-pro:60s", credits: 217 },
2022
+ { identifier: "video-analysis:gemini-3.1-pro:180s", credits: 233 },
2023
+ { identifier: "video-analysis:gemini-3.1-pro:360s", credits: 642 },
2024
+ { identifier: "video-analysis:gemini-3.1-pro:600s", credits: 1059, note: "10-min ceiling" }
2025
2025
  ]
2026
2026
  },
2027
2027
  // Both mixed tiers are variants of the same advanced multi-engine analysis
@@ -2037,11 +2037,11 @@ var VIDEO_MODELS = {
2037
2037
  description: "Our most advanced analysis tier \u2014 multiple analysis engines combined into one result for maximum completeness and accuracy. Billed per duration bucket.",
2038
2038
  useCases: ["video-analysis", "shot-list", "premium", "most-complete"],
2039
2039
  pricing: [
2040
- { identifier: "video-analysis:mixed", credits: 1177, note: "10-min ceiling (no duration given)" },
2040
+ { identifier: "video-analysis:mixed", credits: 1181, note: "10-min ceiling (no duration given)" },
2041
2041
  { identifier: "video-analysis:mixed:60s", credits: 270 },
2042
- { identifier: "video-analysis:mixed:180s", credits: 291 },
2043
- { identifier: "video-analysis:mixed:360s", credits: 729 },
2044
- { identifier: "video-analysis:mixed:600s", credits: 1177, note: "10-min ceiling" }
2042
+ { identifier: "video-analysis:mixed:180s", credits: 292 },
2043
+ { identifier: "video-analysis:mixed:360s", credits: 731 },
2044
+ { identifier: "video-analysis:mixed:600s", credits: 1181, note: "10-min ceiling" }
2045
2045
  ]
2046
2046
  },
2047
2047
  // SMART — the accuracy tier. Since the 2026-08-03 hybrid re-plan it is a
@@ -2059,11 +2059,11 @@ var VIDEO_MODELS = {
2059
2059
  description: "Highest-accuracy analysis \u2014 a hybrid pass that blends a native skeleton read with several donor analysis rolls, then always refines the merged result to find shot boundaries and identify the cast by appearance. Best choice when the shot list will drive regeneration. Billed per duration bucket.",
2060
2060
  useCases: ["video-analysis", "shot-list", "premium", "most-accurate"],
2061
2061
  pricing: [
2062
- { identifier: "video-analysis:smart", credits: 2076, note: "10-min ceiling (no duration given)" },
2063
- { identifier: "video-analysis:smart:60s", credits: 413 },
2064
- { identifier: "video-analysis:smart:180s", credits: 503 },
2065
- { identifier: "video-analysis:smart:360s", credits: 1267 },
2066
- { identifier: "video-analysis:smart:600s", credits: 2076, note: "10-min ceiling" }
2062
+ { identifier: "video-analysis:smart", credits: 2081, note: "10-min ceiling (no duration given)" },
2063
+ { identifier: "video-analysis:smart:60s", credits: 414 },
2064
+ { identifier: "video-analysis:smart:180s", credits: 504 },
2065
+ { identifier: "video-analysis:smart:360s", credits: 1270 },
2066
+ { identifier: "video-analysis:smart:600s", credits: 2081, note: "10-min ceiling" }
2067
2067
  ]
2068
2068
  },
2069
2069
  // ── AI Audit (`video-audit`) ── a SEPARATE node from video-analysis (own
@@ -2087,11 +2087,11 @@ var VIDEO_MODELS = {
2087
2087
  description: "Re-watches a clip against a wired analysis, applies video-verified corrections under guards, and returns a disclosed report of what changed. Billed per duration bucket.",
2088
2088
  useCases: ["video-audit", "qa", "shot-list", "verification"],
2089
2089
  pricing: [
2090
- { identifier: "video-audit", credits: 1073, note: "10-min ceiling (no duration given)" },
2090
+ { identifier: "video-audit", credits: 1075, note: "10-min ceiling (no duration given)" },
2091
2091
  { identifier: "video-audit:60s", credits: 215 },
2092
- { identifier: "video-audit:180s", credits: 290 },
2093
- { identifier: "video-audit:360s", credits: 663 },
2094
- { identifier: "video-audit:600s", credits: 1073, note: "10-min ceiling" }
2092
+ { identifier: "video-audit:180s", credits: 291 },
2093
+ { identifier: "video-audit:360s", credits: 664 },
2094
+ { identifier: "video-audit:600s", credits: 1075, note: "10-min ceiling" }
2095
2095
  ]
2096
2096
  },
2097
2097
  "video-audit-auto": {
@@ -2103,11 +2103,11 @@ var VIDEO_MODELS = {
2103
2103
  description: "Same video-verified audit as AI Audit, but auto-runs a fast analysis first when none is wired in, then applies corrections under guards and returns a disclosed report. Billed per duration bucket.",
2104
2104
  useCases: ["video-audit", "qa", "shot-list", "verification", "auto-analysis"],
2105
2105
  pricing: [
2106
- { identifier: "video-audit:auto", credits: 1921, note: "10-min ceiling (no duration given)" },
2106
+ { identifier: "video-audit:auto", credits: 1924, note: "10-min ceiling (no duration given)" },
2107
2107
  { identifier: "video-audit:auto:60s", credits: 396 },
2108
- { identifier: "video-audit:auto:180s", credits: 475 },
2109
- { identifier: "video-audit:auto:360s", credits: 1178 },
2110
- { identifier: "video-audit:auto:600s", credits: 1921, note: "10-min ceiling" }
2108
+ { identifier: "video-audit:auto:180s", credits: 477 },
2109
+ { identifier: "video-audit:auto:360s", credits: 1180 },
2110
+ { identifier: "video-audit:auto:600s", credits: 1924, note: "10-min ceiling" }
2111
2111
  ]
2112
2112
  }
2113
2113
  };
@@ -5426,7 +5426,9 @@ var LLM_MODELS = [
5426
5426
  {
5427
5427
  id: "gemini-3.6-flash",
5428
5428
  displayName: "Gemini 3.6 Flash",
5429
- desc: "Latest fast Gemini, sharper reasoning",
5429
+ // Demoted 2026-09-06 alongside 3.7: superlatives belong to the CURRENT top
5430
+ // model of a family only, and 3.8 now holds that slot.
5431
+ desc: "Fast Gemini, sharper reasoning",
5430
5432
  tier: "economy",
5431
5433
  kieFormat: "chat-completions",
5432
5434
  // KIE serves Gemini 3.6 Flash on the OpenAI-compatible dialect under this
@@ -5456,7 +5458,11 @@ var LLM_MODELS = [
5456
5458
  {
5457
5459
  id: "gemini-3.7-flash",
5458
5460
  displayName: "Gemini 3.7 Flash",
5459
- desc: "Newest fast Gemini, agentic-tuned",
5461
+ // Demoted 2026-09-06 when 3.8 registered below: superlatives belong to the
5462
+ // CURRENT top model of a family only (same rule the Opus entries follow) —
5463
+ // `desc` renders in every picker, so leaving "Newest" on the older flash
5464
+ // steers the A/B's traffic backwards.
5465
+ desc: "Fast Gemini, agentic-tuned",
5460
5466
  tier: "economy",
5461
5467
  kieFormat: "chat-completions",
5462
5468
  // KIE serves it on the OpenAI-compatible dialect under this slug
@@ -5477,6 +5483,46 @@ var LLM_MODELS = [
5477
5483
  directReasoningEfforts: ["none", "low", "medium", "high"],
5478
5484
  directGeminiModel: "gemini-3.7-flash"
5479
5485
  },
5486
+ {
5487
+ id: "gemini-3.8-flash",
5488
+ displayName: "Gemini 3.8 Flash",
5489
+ // Inherits "Newest" from 3.7 (demoted above). Deliberately does NOT name
5490
+ // agentic video: that capability exists only on the direct Google lane
5491
+ // (Interactions API, not wired here) and the modality caps below withhold
5492
+ // video — a picker desc must not promise a lever this entry cannot expose.
5493
+ desc: "Newest fast Gemini, agentic-tuned",
5494
+ tier: "economy",
5495
+ kieFormat: "chat-completions",
5496
+ // KIE serves it on the OpenAI-compatible dialect under this slug
5497
+ // (docs.kie.ai/market/gemini/gemini-3-8-flash-openai.md) — identical
5498
+ // chat-completions path shape to gemini-3.7-flash / gemini-3.6-flash,
5499
+ // different slug prefix.
5500
+ kieSlugOrModel: "gemini-3-8-flash-openai",
5501
+ vendor: "google",
5502
+ // Live-verified 2026-09-06 on the KIE lane: `response_format: json_schema`
5503
+ // is ENFORCED (the reply came back exact-schema valid, credits_consumed
5504
+ // present) — not merely accepted-and-ignored.
5505
+ structuredOutputMode: "kie-response-format",
5506
+ supportsImages: true,
5507
+ // 16384 here, NOT the 8192 its 3.6 / 3.7 siblings sit at. Those two stay at
5508
+ // the KIE-safe intersection because nobody measured their endpoints past
5509
+ // it; 3.8's WAS measured — live-verified 2026-09-06, `max_tokens: 20000`
5510
+ // was honored for 14,892 completion tokens with finish_reason "stop" (no
5511
+ // truncation), so the KIE lane is not the binding constraint. 16384 keeps
5512
+ // it level with the rest of the registry's ceiling rather than at the cap.
5513
+ maxOutputTokens: 16384,
5514
+ // KIE's 3.8 endpoint enumerates reasoning_effort low | high (its doc enum),
5515
+ // and usage carries completion_tokens_details.reasoning_tokens — same
5516
+ // KIE-safe intersection as 3.6 / 3.7, because ONE field feeds both lanes
5517
+ // and this model is KIE-first.
5518
+ reasoningEfforts: ["low", "high"],
5519
+ // Google's own API accepts the full minimal→high ladder here (`none` maps
5520
+ // to `minimal`), same as 3.7. Advanced mode is what unlocks it.
5521
+ directReasoningEfforts: ["none", "low", "medium", "high"],
5522
+ // KIE-first (no `preferDirect`) — 3.7's posture exactly: the cheap lane
5523
+ // serves the A/B, direct is Advanced mode + the reliability fallback.
5524
+ directGeminiModel: "gemini-3.8-flash"
5525
+ },
5480
5526
  {
5481
5527
  id: "claude-haiku-4.5",
5482
5528
  displayName: "Claude Haiku 4.5",
@@ -5573,7 +5619,9 @@ var LLM_MODELS = [
5573
5619
  {
5574
5620
  id: "gpt-5.4",
5575
5621
  displayName: "GPT-5.4",
5576
- desc: "Latest GPT, premium quality",
5622
+ // Demoted 2026-09-06: two GPT generations have shipped above it, so
5623
+ // "Latest" steered the picker at the oldest premium GPT in the registry.
5624
+ desc: "Older GPT, premium quality",
5577
5625
  tier: "premium",
5578
5626
  kieFormat: "responses",
5579
5627
  kieSlugOrModel: "gpt-5-4",
@@ -5628,7 +5676,11 @@ var LLM_MODELS = [
5628
5676
  {
5629
5677
  id: "gpt-5.6-sol",
5630
5678
  displayName: "GPT-5.6 Sol",
5631
- desc: "Flagship GPT-5.6, deepest reasoning",
5679
+ // Demoted 2026-09-06 when gpt-6-astra registered below — "Flagship /
5680
+ // deepest" is the current top GPT's copy only. Worded to stay distinct
5681
+ // from gpt-5.5's "Previous flagship GPT, deep reasoning": all three read
5682
+ // premium on the invoice, so a stale superlative mis-steers silently.
5683
+ desc: "Previous flagship GPT-5.6, deep reasoning",
5632
5684
  tier: "premium",
5633
5685
  kieFormat: "responses",
5634
5686
  kieSlugOrModel: "gpt-5-6-sol",
@@ -5639,6 +5691,61 @@ var LLM_MODELS = [
5639
5691
  reasoningEfforts: ["none", "low", "medium", "high", "xhigh", "max"],
5640
5692
  supportsTemperature: false
5641
5693
  },
5694
+ {
5695
+ id: "gpt-6-astra",
5696
+ displayName: "GPT-6 Astra",
5697
+ desc: "Flagship GPT-6, deepest reasoning",
5698
+ tier: "premium",
5699
+ kieFormat: "responses",
5700
+ // KIE serves GPT-6 on the responses dialect under the OpenAI family path —
5701
+ // codex/v1/responses, which llm-client DERIVES from `vendor` (the same
5702
+ // derivation that keeps Grok on grok/v1/responses). So this field is the
5703
+ // body `model` only, not a path segment. Live-verified 2026-09-06 on the
5704
+ // streaming path (array `input`, SSE deltas), which is the ONLY path we
5705
+ // serve it on — see `kieCollapseStream` below. The non-stream reply does
5706
+ // carry `credits_consumed` (and cached_tokens/cache_write_tokens in usage)
5707
+ // on the ~1 call in 3 that returns one, but we no longer take that reply,
5708
+ // so provider cost here is the rate-table estimate.
5709
+ // KIE's codex/v1/responses injects its own Codex-agent `instructions`
5710
+ // prompt ABOVE the caller's `developer` message — observed in the
5711
+ // 2026-07-14 live probe of that endpoint, and unchanged for GPT-6. Budget
5712
+ // for it when a developer message has to dominate.
5713
+ kieSlugOrModel: "gpt-6-astra",
5714
+ vendor: "openai",
5715
+ // Live-verified 2026-09-06: `text.format: json_schema` is passed through
5716
+ // and ENFORCED — the server echoed `strict: true` and returned
5717
+ // schema-valid JSON.
5718
+ structuredOutputMode: "responses-json-schema",
5719
+ // text + image + file inputs per KIE's doc. No video/audio — see the
5720
+ // image-only LLM_MODALITY_CAPS row below.
5721
+ supportsImages: true,
5722
+ maxOutputTokens: 16384,
5723
+ // KIE's documented enum for this endpoint. No `none` on purpose: the
5724
+ // endpoint reasons unconditionally (see thinkingDefaultOn below), so a
5725
+ // "none" level would be a lie the wire silently overrides.
5726
+ reasoningEfforts: ["low", "medium", "high", "xhigh"],
5727
+ // Live-probed 2026-09-06: `temperature: 0.2` was sent and the request echo
5728
+ // stayed at 1.0 — silently IGNORED, so never send it. Same treatment as the
5729
+ // GPT-5.6 family and grok-4.6.
5730
+ supportsTemperature: false,
5731
+ // With NO reasoning param sent, the server echoed effort "medium" — it
5732
+ // reasons by default (2026-09-06), so reasoning tokens share `max_tokens`
5733
+ // on EVERY call, not just effort-bearing ones. Consumers must floor output
5734
+ // headroom off this flag or a premium answer truncates into a paid-for
5735
+ // empty reply.
5736
+ thinkingDefaultOn: true,
5737
+ // Measured 2026-09-06, 12 identical requests (developer + user message,
5738
+ // reasoning.effort low, text.format json_schema): `stream: false`
5739
+ // succeeded 2/6 in 4–5 s and 500'd 4/6 with
5740
+ // {"error":{"type":"server_error"}} after 34, 34, 35 and 64 s, while the
5741
+ // same body with `stream: true` succeeded 5/6 in the same 4–5 s. An
5742
+ // earlier non-stream probe timed out at 90 s with 0 bytes, and a
5743
+ // non-stream call WITHOUT a schema 500'd after 65 s — the schema is not
5744
+ // the trigger, the non-stream lane is. The very same endpoint serves
5745
+ // gpt-5.4/5.5/5.6 non-stream reliably (live-verified 2026-07-14), which is
5746
+ // why this is per-model and not a lane-wide flag.
5747
+ kieCollapseStream: true
5748
+ },
5642
5749
  {
5643
5750
  id: "grok-4.6",
5644
5751
  displayName: "Grok 4.6",
@@ -5793,6 +5900,15 @@ var LLM_MODALITY_CAPS = {
5793
5900
  // deferred while the smart-family A/B routes this model internally (#747).
5794
5901
  // Flip these two flags ONLY together with that VA-side decision.
5795
5902
  "gemini-3.7-flash": { image: true, video: false, audio: false },
5903
+ // gemini-3.8-flash is IMAGE-ONLY by DECISION, not omission — 3.7's rationale
5904
+ // exactly: full video+audio caps would auto-enroll it in
5905
+ // VIDEO_ANALYSIS_LLM_MODELS (derived below) and force a video-analysis tier +
5906
+ // pricing decision that stays deferred until the 3.8-vs-3.7 analysis A/B
5907
+ // concludes. Google's own 3.8 lane DOES understand video (agentic video, via
5908
+ // the Interactions API we don't wire) — which is precisely why withholding it
5909
+ // has to be a decision rather than a gap. Flip these two flags ONLY together
5910
+ // with that VA-side decision.
5911
+ "gemini-3.8-flash": { image: true, video: false, audio: false },
5796
5912
  "gemini-3.1-pro": { image: true, video: true, audio: true },
5797
5913
  "claude-haiku-4.5": { image: true, video: false, audio: false },
5798
5914
  "claude-sonnet-4.6": { image: true, video: false, audio: false },
@@ -5803,6 +5919,8 @@ var LLM_MODALITY_CAPS = {
5803
5919
  "gpt-5.6-luna": { image: true, video: false, audio: false },
5804
5920
  "gpt-5.6-terra": { image: true, video: false, audio: false },
5805
5921
  "gpt-5.6-sol": { image: true, video: false, audio: false },
5922
+ // KIE's GPT-6 doc lists text + image + file inputs only — no video, no audio.
5923
+ "gpt-6-astra": { image: true, video: false, audio: false },
5806
5924
  "grok-4.6": { image: true, video: false, audio: false },
5807
5925
  "claude-sonnet-5": { image: true, video: false, audio: false },
5808
5926
  "claude-opus-4.8": { image: true, video: false, audio: false },
@@ -14289,36 +14407,36 @@ var VIDEO_ANALYSIS_WINDOW = { LEN: WINDOW_LEN, STRIDE: WINDOW_STRIDE, OVERLAP: W
14289
14407
  var VIDEO_ANALYSIS_BUCKET_CREDITS = {
14290
14408
  // Legacy fast-tier model (pre-2026-07) — kept for stored raw-id configs.
14291
14409
  "video-analysis:gemini-3-flash:60s": 181,
14292
- "video-analysis:gemini-3-flash:180s": 185,
14293
- "video-analysis:gemini-3-flash:360s": 515,
14294
- "video-analysis:gemini-3-flash:600s": 848,
14410
+ "video-analysis:gemini-3-flash:180s": 186,
14411
+ "video-analysis:gemini-3-flash:360s": 516,
14412
+ "video-analysis:gemini-3-flash:600s": 849,
14295
14413
  // Current fast tier — regenerated from the private formula for its backing
14296
14414
  // model; higher than the legacy fast schedule but still ≤ pro per bucket.
14297
- "video-analysis:gemini-3.6-flash:60s": 204,
14415
+ "video-analysis:gemini-3.6-flash:60s": 205,
14298
14416
  "video-analysis:gemini-3.6-flash:180s": 219,
14299
- "video-analysis:gemini-3.6-flash:360s": 602,
14300
- "video-analysis:gemini-3.6-flash:600s": 992,
14301
- "video-analysis:gemini-3.1-pro:60s": 216,
14302
- "video-analysis:gemini-3.1-pro:180s": 232,
14303
- "video-analysis:gemini-3.1-pro:360s": 640,
14304
- "video-analysis:gemini-3.1-pro:600s": 1056,
14417
+ "video-analysis:gemini-3.6-flash:360s": 603,
14418
+ "video-analysis:gemini-3.6-flash:600s": 995,
14419
+ "video-analysis:gemini-3.1-pro:60s": 217,
14420
+ "video-analysis:gemini-3.1-pro:180s": 233,
14421
+ "video-analysis:gemini-3.1-pro:360s": 642,
14422
+ "video-analysis:gemini-3.1-pro:600s": 1059,
14305
14423
  // Mixed tiers (`mixed` + `mixed-fast`) share ONE credit family — they are
14306
14424
  // variants of the same engine plan (plan internals live in the private
14307
14425
  // analysis plugin). Admin-tunable via model_pricing like every other row.
14308
14426
  "video-analysis:mixed:60s": 270,
14309
- "video-analysis:mixed:180s": 291,
14310
- "video-analysis:mixed:360s": 729,
14311
- "video-analysis:mixed:600s": 1177,
14427
+ "video-analysis:mixed:180s": 292,
14428
+ "video-analysis:mixed:360s": 731,
14429
+ "video-analysis:mixed:600s": 1181,
14312
14430
  // SMART — the accuracy tier, and since the 2026-08-03 re-plan a multi-roll
14313
14431
  // plan like the others, always refined (`selectionMode` does not apply
14314
14432
  // here — smart always refines; it never offers a cheaper "choose" path).
14315
14433
  // Priced above the economy tiers because it genuinely costs more to run;
14316
14434
  // the only tier whose accuracy is validated against a hand-counted edit
14317
14435
  // list, re-validated at the current plan before this schedule shipped.
14318
- "video-analysis:smart:60s": 413,
14319
- "video-analysis:smart:180s": 503,
14320
- "video-analysis:smart:360s": 1267,
14321
- "video-analysis:smart:600s": 2076
14436
+ "video-analysis:smart:60s": 414,
14437
+ "video-analysis:smart:180s": 504,
14438
+ "video-analysis:smart:360s": 1270,
14439
+ "video-analysis:smart:600s": 2081
14322
14440
  };
14323
14441
  function videoAnalysisCreditSegment(modelOrSentinel) {
14324
14442
  return modelOrSentinel === "mixed-fast" ? "mixed" : modelOrSentinel;
@@ -14340,13 +14458,13 @@ function videoAnalysisNumWindows(bucketSec) {
14340
14458
  }
14341
14459
  var VIDEO_AUDIT_BUCKET_CREDITS = {
14342
14460
  "video-audit:60s": 215,
14343
- "video-audit:180s": 290,
14344
- "video-audit:360s": 663,
14345
- "video-audit:600s": 1073,
14461
+ "video-audit:180s": 291,
14462
+ "video-audit:360s": 664,
14463
+ "video-audit:600s": 1075,
14346
14464
  "video-audit:auto:60s": 396,
14347
- "video-audit:auto:180s": 475,
14348
- "video-audit:auto:360s": 1178,
14349
- "video-audit:auto:600s": 1921
14465
+ "video-audit:auto:180s": 477,
14466
+ "video-audit:auto:360s": 1180,
14467
+ "video-audit:auto:600s": 1924
14350
14468
  };
14351
14469
  function buildVideoAuditCreditId(args) {
14352
14470
  const { analysisProvided, durationSec } = args;