@runtypelabs/cli 2.35.0 → 2.35.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.
Files changed (2) hide show
  1. package/dist/index.js +382 -34
  2. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -15212,7 +15212,7 @@ var CANONICAL_LOG_COLUMN_SET = {
15212
15212
  };
15213
15213
  var CANONICAL_LOG_COLUMNS = Object.keys(CANONICAL_LOG_COLUMN_SET);
15214
15214
 
15215
- // ../shared/dist/chunk-2GMXBACL.mjs
15215
+ // ../shared/dist/chunk-Q5ZS77L4.mjs
15216
15216
  var MODEL_FAMILY_PROVIDER_IDS = {
15217
15217
  "claude-fable-5": {
15218
15218
  "anthropic": "claude-fable-5",
@@ -15498,6 +15498,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
15498
15498
  "glm-5-3": {
15499
15499
  "vercel": "zai/glm-5.3"
15500
15500
  },
15501
+ "glm-5-3-flash": {
15502
+ "vercel": "zai/glm-5.3-flash"
15503
+ },
15501
15504
  "glm-5.2": {
15502
15505
  "mixlayer": "z-ai/glm-5.2",
15503
15506
  "vercel": "zai/glm-5.2"
@@ -15508,6 +15511,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
15508
15511
  "glm-5.3": {
15509
15512
  "vercel": "zai/glm-5.3"
15510
15513
  },
15514
+ "glm-5.3-flash": {
15515
+ "vercel": "zai/glm-5.3-flash"
15516
+ },
15511
15517
  "gpt-4-1": {
15512
15518
  "openai": "gpt-4.1",
15513
15519
  "vercel": "openai/gpt-4.1"
@@ -15564,12 +15570,6 @@ var MODEL_FAMILY_PROVIDER_IDS = {
15564
15570
  "gpt-4o-mini-fast": {
15565
15571
  "vercel": "openai/gpt-4o-mini-fast"
15566
15572
  },
15567
- "gpt-4o-mini-search": {
15568
- "vercel": "openai/gpt-4o-mini-search-preview"
15569
- },
15570
- "gpt-4o-mini-search-preview": {
15571
- "vercel": "openai/gpt-4o-mini-search-preview"
15572
- },
15573
15573
  "gpt-5": {
15574
15574
  "openai": "gpt-5",
15575
15575
  "vercel": "openai/gpt-5"
@@ -15796,6 +15796,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
15796
15796
  "gpt-image-1.5": {
15797
15797
  "openai": "gpt-image-1.5"
15798
15798
  },
15799
+ "gpt-oss-safeguard-120b": {
15800
+ "vercel": "openai/gpt-oss-safeguard-120b"
15801
+ },
15799
15802
  "grok-4-20-0309-non-reasoning": {
15800
15803
  "xai": "grok-4.20-0309-non-reasoning"
15801
15804
  },
@@ -15996,12 +15999,6 @@ var MODEL_FAMILY_PROVIDER_IDS = {
15996
15999
  "lyria-3-pro-preview": {
15997
16000
  "google": "lyria-3-pro-preview"
15998
16001
  },
15999
- "magistral-medium": {
16000
- "vercel": "mistral/magistral-medium"
16001
- },
16002
- "magistral-small": {
16003
- "vercel": "mistral/magistral-small"
16004
- },
16005
16002
  "mercury-2": {
16006
16003
  "vercel": "inception/mercury-2"
16007
16004
  },
@@ -16023,18 +16020,27 @@ var MODEL_FAMILY_PROVIDER_IDS = {
16023
16020
  "minimax-m2-7": {
16024
16021
  "vercel": "minimax/minimax-m2.7"
16025
16022
  },
16023
+ "minimax-m2-7-free": {
16024
+ "vercel": "minimax/minimax-m2.7-free"
16025
+ },
16026
16026
  "minimax-m2-7-highspeed": {
16027
16027
  "vercel": "minimax/minimax-m2.7-highspeed"
16028
16028
  },
16029
16029
  "minimax-m2.7": {
16030
16030
  "vercel": "minimax/minimax-m2.7"
16031
16031
  },
16032
+ "minimax-m2.7-free": {
16033
+ "vercel": "minimax/minimax-m2.7-free"
16034
+ },
16032
16035
  "minimax-m2.7-highspeed": {
16033
16036
  "vercel": "minimax/minimax-m2.7-highspeed"
16034
16037
  },
16035
16038
  "minimax-m3": {
16036
16039
  "vercel": "minimax/minimax-m3"
16037
16040
  },
16041
+ "minimax-m3-free": {
16042
+ "vercel": "minimax/minimax-m3-free"
16043
+ },
16038
16044
  "ministral-14b": {
16039
16045
  "vercel": "mistral/ministral-14b"
16040
16046
  },
@@ -16089,9 +16095,6 @@ var MODEL_FAMILY_PROVIDER_IDS = {
16089
16095
  "nemotron-3-5-lightning": {
16090
16096
  "vercel": "nvidia/nemotron-3.5-lightning"
16091
16097
  },
16092
- "nemotron-3-5-lightning-free": {
16093
- "vercel": "nvidia/nemotron-3.5-lightning-free"
16094
- },
16095
16098
  "nemotron-3-nano-30b-a3b": {
16096
16099
  "vercel": "nvidia/nemotron-3-nano-30b-a3b"
16097
16100
  },
@@ -16104,9 +16107,6 @@ var MODEL_FAMILY_PROVIDER_IDS = {
16104
16107
  "nemotron-3.5-lightning": {
16105
16108
  "vercel": "nvidia/nemotron-3.5-lightning"
16106
16109
  },
16107
- "nemotron-3.5-lightning-free": {
16108
- "vercel": "nvidia/nemotron-3.5-lightning-free"
16109
- },
16110
16110
  "nemotron-nano-12b-v2-vl": {
16111
16111
  "vercel": "nvidia/nemotron-nano-12b-v2-vl"
16112
16112
  },
@@ -16204,6 +16204,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
16204
16204
  "qwen3-8-27b": {
16205
16205
  "vercel": "alibaba/qwen3.8-27b"
16206
16206
  },
16207
+ "qwen3-8-flash": {
16208
+ "vercel": "alibaba/qwen3.8-flash"
16209
+ },
16207
16210
  "qwen3-8-max": {
16208
16211
  "vercel": "alibaba/qwen3.8-max"
16209
16212
  },
@@ -16295,6 +16298,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
16295
16298
  "qwen3.8-27b": {
16296
16299
  "vercel": "alibaba/qwen3.8-27b"
16297
16300
  },
16301
+ "qwen3.8-flash": {
16302
+ "vercel": "alibaba/qwen3.8-flash"
16303
+ },
16298
16304
  "qwen3.8-max": {
16299
16305
  "vercel": "alibaba/qwen3.8-max"
16300
16306
  },
@@ -16357,9 +16363,6 @@ var MODEL_FAMILY_PROVIDER_IDS = {
16357
16363
  },
16358
16364
  "trinity-large-thinking": {
16359
16365
  "vercel": "arcee-ai/trinity-large-thinking"
16360
- },
16361
- "trinity-mini": {
16362
- "vercel": "arcee-ai/trinity-mini"
16363
16366
  }
16364
16367
  };
16365
16368
  var PLATFORM_KEY_PROVIDER_MAP = {
@@ -16387,6 +16390,333 @@ var PLATFORM_KEY_PROVIDER_MAP = {
16387
16390
  var PLATFORM_KEY_PROVIDERS = new Set(
16388
16391
  Object.entries(PLATFORM_KEY_PROVIDER_MAP).filter(([, v2]) => v2).map(([k2]) => k2)
16389
16392
  );
16393
+ function workersAiPrimary(ids, fallback = ["vercel"]) {
16394
+ const config3 = {
16395
+ providers: [{ provider: "workers-ai", weight: 100 }],
16396
+ fallback
16397
+ };
16398
+ return Object.fromEntries(ids.map((id) => [id, config3]));
16399
+ }
16400
+ function workersAiAliases(cfId, ids) {
16401
+ return Object.fromEntries(
16402
+ ids.map((id) => [
16403
+ id,
16404
+ id.includes("/") ? { "workers-ai": cfId, vercel: id } : { "workers-ai": cfId }
16405
+ ])
16406
+ );
16407
+ }
16408
+ var DEEPSEEK_V4_FLASH_IDS = [
16409
+ "deepseek-v4-flash",
16410
+ "deepseek-v4-flash-0731",
16411
+ "deepseek/deepseek-v4-flash",
16412
+ "deepseek/deepseek-v4-flash-0731"
16413
+ ];
16414
+ var GLM_5_3_FLASH_IDS = ["glm-5.3-flash", "glm-5-3-flash", "zai/glm-5.3-flash"];
16415
+ var PROVIDER_ROUTING_CONFIG = {
16416
+ // Claude 4.5 Sonnet - Route through Vercel AI Gateway
16417
+ "claude-sonnet-4-5": {
16418
+ providers: [
16419
+ { provider: "vercel", weight: 100 }
16420
+ ],
16421
+ fallback: ["anthropic"]
16422
+ },
16423
+ // Claude 4.5 Haiku - Route through Vercel AI Gateway
16424
+ "claude-haiku-4-5": {
16425
+ providers: [
16426
+ { provider: "vercel", weight: 100 }
16427
+ ],
16428
+ fallback: ["anthropic"]
16429
+ },
16430
+ // Claude 4.5 Opus - Route through Vercel AI Gateway
16431
+ "claude-opus-4-5": {
16432
+ providers: [
16433
+ { provider: "vercel", weight: 100 }
16434
+ ],
16435
+ fallback: ["anthropic"]
16436
+ },
16437
+ // Claude Fable 5 - Route through Vercel AI Gateway
16438
+ "claude-fable-5": {
16439
+ providers: [
16440
+ { provider: "vercel", weight: 100 }
16441
+ ],
16442
+ fallback: ["anthropic"]
16443
+ },
16444
+ // GPT-5.4 Nano - CF Gateway primary for testing, Vercel + OpenAI as fallback
16445
+ "gpt-5.4-nano": {
16446
+ providers: [
16447
+ { provider: "cloudflare", weight: 100 }
16448
+ ],
16449
+ fallback: ["vercel", "openai"]
16450
+ },
16451
+ "gpt-5-4-nano": {
16452
+ providers: [
16453
+ { provider: "cloudflare", weight: 100 }
16454
+ ],
16455
+ fallback: ["vercel", "openai"]
16456
+ },
16457
+ // Gemini 2.5 Pro - Route through Vercel AI Gateway
16458
+ "gemini-2.5-pro": {
16459
+ providers: [
16460
+ { provider: "vercel", weight: 100 }
16461
+ ],
16462
+ fallback: ["google"]
16463
+ },
16464
+ // Gemini 2.5 Flash - Route through Vercel AI Gateway
16465
+ "gemini-2.5-flash": {
16466
+ providers: [
16467
+ { provider: "vercel", weight: 100 }
16468
+ ],
16469
+ fallback: ["google"]
16470
+ },
16471
+ // Gemini 2.5 Flash Image - Route through Vercel AI Gateway only
16472
+ // Note: No Google fallback - this image model is only available via Vercel gateway
16473
+ "gemini-2.5-flash-image": {
16474
+ providers: [
16475
+ { provider: "vercel", weight: 100 }
16476
+ ],
16477
+ fallback: []
16478
+ },
16479
+ // Gemini 3 Flash - the Vercel gateway alias is advertised but fails live
16480
+ // dispatch. Route the family through Google's still-live preview id instead.
16481
+ "gemini-3-flash": {
16482
+ providers: [
16483
+ { provider: "google", weight: 100 }
16484
+ ],
16485
+ fallback: []
16486
+ },
16487
+ // Gemini 3.1 Flash-Lite - Vercel AI Gateway (3.1 generation fast text).
16488
+ // Google fallback mirrors gemini-3-flash: the model exists on the google
16489
+ // provider, so a missing/unavailable gateway key degrades to direct Google
16490
+ // instead of a guaranteed dispatch failure (also what makes local dev work
16491
+ // with only PLATFORM_GOOGLE_KEY set).
16492
+ "gemini-3-1-flash-lite": {
16493
+ providers: [
16494
+ { provider: "vercel", weight: 100 }
16495
+ ],
16496
+ fallback: ["google"]
16497
+ },
16498
+ // Gemini 3 Pro Image - Route through Vercel AI Gateway only
16499
+ // Note: No Google fallback - this image model is only available via Vercel gateway
16500
+ "gemini-3-pro-image": {
16501
+ providers: [
16502
+ { provider: "vercel", weight: 100 }
16503
+ ],
16504
+ fallback: []
16505
+ },
16506
+ // Gemini 3.1 Flash Image - Vercel AI Gateway only
16507
+ "gemini-3-1-flash-image": {
16508
+ providers: [
16509
+ { provider: "vercel", weight: 100 }
16510
+ ],
16511
+ fallback: []
16512
+ },
16513
+ // Gemini 3 Pro Preview - Deprecated March 9, 2026. Aliased to gemini-3.1-pro in router.
16514
+ "gemini-3-pro-preview": {
16515
+ providers: [
16516
+ { provider: "vercel", weight: 100 }
16517
+ ],
16518
+ fallback: ["google"]
16519
+ },
16520
+ // Gemini 3.1 Pro - Route through Vercel AI Gateway (successor to gemini-3-pro-preview)
16521
+ "gemini-3.1-pro": {
16522
+ providers: [
16523
+ { provider: "vercel", weight: 100 }
16524
+ ],
16525
+ fallback: ["google"]
16526
+ },
16527
+ // Grok 4 legacy alias - route to the current Grok 4.3 successor.
16528
+ "grok-4": {
16529
+ providers: [
16530
+ { provider: "vercel", weight: 100 }
16531
+ ],
16532
+ fallback: ["xai"]
16533
+ },
16534
+ // Grok 4.3 - Route through Vercel AI Gateway with xAI fallback
16535
+ "grok-4.3": {
16536
+ providers: [
16537
+ { provider: "vercel", weight: 100 }
16538
+ ],
16539
+ fallback: ["xai"]
16540
+ },
16541
+ // Grok 4 Fast legacy aliases - route to the live 4.20 non-reasoning
16542
+ // successor; Vercel still advertises the 4.1 ids but rejects dispatch.
16543
+ "grok-4-fast": {
16544
+ providers: [
16545
+ { provider: "vercel", weight: 100 }
16546
+ ],
16547
+ fallback: []
16548
+ },
16549
+ "grok-4.1-fast-non-reasoning": {
16550
+ providers: [
16551
+ { provider: "vercel", weight: 100 }
16552
+ ],
16553
+ fallback: []
16554
+ },
16555
+ // GPT 5.1 Codex Max - Route through Vercel AI Gateway
16556
+ "gpt-5.1-codex-max": {
16557
+ providers: [
16558
+ { provider: "vercel", weight: 100 }
16559
+ ],
16560
+ fallback: ["openai"]
16561
+ },
16562
+ // Kimi K2.5 is RETIRED — see EXCLUDED_MODELS in scripts/update-models.ts.
16563
+ // Cloudflare deprecated it on 2026-05-30 and silently served K2.6 in its
16564
+ // place, so the id no longer meant what it said. `resolveModelAlias` maps
16565
+ // kimi-k2.5 → kimi-k2.6 for any stored reference that outlives migration 0120.
16566
+ // Kimi K2.6 - Route through Cloudflare Workers AI
16567
+ "kimi-k2.6": {
16568
+ providers: [
16569
+ { provider: "workers-ai", weight: 100 }
16570
+ ],
16571
+ fallback: ["vercel"]
16572
+ },
16573
+ // Kimi K2.7 Code - Route through Mixlayer, fall back to Cloudflare Workers AI.
16574
+ // Vercel renamed its listing to `moonshotai/kimi-k2.7-code-highspeed`, so the
16575
+ // bare `kimi-k2.7-code` base model no longer resolves to a Vercel gateway id;
16576
+ // Mixlayer (a platform-key provider) serves `moonshotai/kimi-k2.7-code`.
16577
+ // Workers AI (`@cf/moonshotai/kimi-k2.7-code`) was the original primary but
16578
+ // was removed from models.dev upstream in 2026-08, so its pricing data no
16579
+ // longer flows into the generated config — moved to fallback.
16580
+ "kimi-k2.7-code": {
16581
+ providers: [
16582
+ { provider: "mixlayer", weight: 100 }
16583
+ ],
16584
+ fallback: ["workers-ai"]
16585
+ },
16586
+ // NVIDIA Nemotron-3 120B - Route through Cloudflare Workers AI (no Vercel equivalent)
16587
+ "nemotron-3-120b-a12b": {
16588
+ providers: [
16589
+ { provider: "workers-ai", weight: 100 }
16590
+ ]
16591
+ },
16592
+ // Google Gemma 4 26B - Route through Cloudflare Workers AI
16593
+ "gemma-4-26b-a4b-it": {
16594
+ providers: [
16595
+ { provider: "workers-ai", weight: 100 }
16596
+ ],
16597
+ fallback: ["vercel"]
16598
+ },
16599
+ // OpenAI GPT OSS 120B - Route through Tinfoil, fall back to Workers AI.
16600
+ // Workers AI (`@cf/openai/gpt-oss-120b`) was the original primary but was
16601
+ // removed from models.dev upstream in 2026-08, so its pricing data no longer
16602
+ // flows into the generated config — moved to fallback.
16603
+ "gpt-oss-120b": {
16604
+ providers: [
16605
+ { provider: "tinfoil", weight: 100 }
16606
+ ],
16607
+ fallback: ["workers-ai"]
16608
+ },
16609
+ // Z.ai GLM-5.2 - Route through Cloudflare Workers AI, then Mixlayer, then the
16610
+ // Vercel AI Gateway. All three serve the same base model, so a Workers AI
16611
+ // rate-limit / capacity failure fast-fails to the next provider on the SAME
16612
+ // model rather than erroring the run (see `getPlatformDefaultStallFallback`,
16613
+ // which derives its same-model failover chain from this ordered list).
16614
+ // Mixlayer sits in the middle because it is the most reliable GLM host we
16615
+ // measured; Vercel is the last-resort gateway.
16616
+ //
16617
+ // This route is curated independently of generated upstream listings. The
16618
+ // Workers AI variant disappeared from models.dev in 2026-08, but the binding
16619
+ // endpoint remains executable and its pricing is preserved in the static
16620
+ // WORKERS_AI_MODEL_MAPPINGS table in @runtypelabs/model-execution.
16621
+ //
16622
+ // `providers` is the selection-time primary (Workers AI); `fallback` is the
16623
+ // ORDERED remaining-provider chain, used both for selection-time key
16624
+ // fallback AND as the runtime same-model failover order.
16625
+ //
16626
+ // All three id forms of this model resolve to the same route:
16627
+ // - `glm-5.2` — bare routed family (this entry)
16628
+ // - `glm-5-2` — dashed alias form
16629
+ // - `zai/glm-5.2` — gateway/catalog id (what surfaces like Persona pin);
16630
+ // the explicit entry overrides the static catalog provider (`vercel`) via
16631
+ // the PROVIDER_ROUTING_CONFIG-wins branch in resolveRoutedFamily.
16632
+ "glm-5.2": {
16633
+ providers: [
16634
+ { provider: "workers-ai", weight: 100 }
16635
+ ],
16636
+ fallback: ["mixlayer", "vercel"]
16637
+ },
16638
+ "glm-5-2": {
16639
+ providers: [
16640
+ { provider: "workers-ai", weight: 100 }
16641
+ ],
16642
+ fallback: ["mixlayer", "vercel"]
16643
+ },
16644
+ "zai/glm-5.2": {
16645
+ providers: [
16646
+ { provider: "workers-ai", weight: 100 }
16647
+ ],
16648
+ fallback: ["mixlayer", "vercel"]
16649
+ },
16650
+ // DeepSeek V4 Pro - Route through Cloudflare Workers AI, fall back to the
16651
+ // Vercel AI Gateway. Cloudflare serves the date-pinned build
16652
+ // (`@cf/deepseek-ai/deepseek-v4-pro-0813`) as its only V4 Pro variant, so every
16653
+ // id form maps onto it; the Vercel listing is the ordered fallback, used both
16654
+ // for selection-time key/binding fallback and as the runtime same-model
16655
+ // failover rung (`getPlatformDefaultStallFallback`).
16656
+ //
16657
+ // All four id forms of this model resolve to the same Workers-AI-primary route:
16658
+ // - `deepseek-v4-pro` — bare routed family
16659
+ // - `deepseek-v4-pro-0813` — date-pinned family
16660
+ // - `deepseek/deepseek-v4-pro` — catalog/gateway id (what surfaces pin)
16661
+ // - `deepseek/deepseek-v4-pro-0813`— date-pinned catalog id
16662
+ //
16663
+ // The two slash forms are the interesting case: `deepseek` is a DIRECT
16664
+ // provider, so they parse as direct access and resolve through
16665
+ // `resolveDirectAccessModel`, which short-circuits slash-form catalog ids to
16666
+ // their catalog provider (`vercel`). An explicit entry here now wins over that
16667
+ // short-circuit — the same PROVIDER_ROUTING_CONFIG-wins precedence
16668
+ // `resolveRoutedFamily` already applies. The COLON form
16669
+ // (`deepseek:deepseek-v4-pro`) stays explicit direct-access by design.
16670
+ "deepseek-v4-pro": {
16671
+ providers: [
16672
+ { provider: "workers-ai", weight: 100 }
16673
+ ],
16674
+ fallback: ["vercel"]
16675
+ },
16676
+ "deepseek-v4-pro-0813": {
16677
+ providers: [
16678
+ { provider: "workers-ai", weight: 100 }
16679
+ ],
16680
+ fallback: ["vercel"]
16681
+ },
16682
+ "deepseek/deepseek-v4-pro": {
16683
+ providers: [
16684
+ { provider: "workers-ai", weight: 100 }
16685
+ ],
16686
+ fallback: ["vercel"]
16687
+ },
16688
+ "deepseek/deepseek-v4-pro-0813": {
16689
+ providers: [
16690
+ { provider: "workers-ai", weight: 100 }
16691
+ ],
16692
+ fallback: ["vercel"]
16693
+ },
16694
+ // DeepSeek V4 Flash - Route through Cloudflare Workers AI, fall back to the
16695
+ // Vercel AI Gateway. Same shape as V4 Pro above: Cloudflare serves the
16696
+ // date-pinned `@cf/deepseek-ai/deepseek-v4-flash-0731` build as its only V4
16697
+ // Flash variant, so every id form maps onto it and each slash form falls back
16698
+ // to its OWN Vercel listing (`deepseek` is a DIRECT provider, so the slash
16699
+ // forms need an explicit entry to escape `resolveDirectAccessModel`'s catalog
16700
+ // short-circuit).
16701
+ ...workersAiPrimary(DEEPSEEK_V4_FLASH_IDS),
16702
+ // Qwen 3.8 27B is deliberately NOT routed to Workers AI: Cloudflare's build
16703
+ // accepts 262,144 tokens against the Vercel listing's 1,000,000, and the
16704
+ // fallback rung only engages when the AI binding is absent, so a long prompt
16705
+ // that succeeds on Vercel would fail outright. It stays on the generated
16706
+ // Vercel route.
16707
+ // Z.ai GLM-5.3 Flash - Route through Cloudflare Workers AI
16708
+ // (`@cf/zai-org/glm-5.3-flash`), fall back to the Vercel AI Gateway listing
16709
+ // (`zai/glm-5.3-flash`). Three id forms: bare family, dashed alias, and the
16710
+ // `zai/` gateway/catalog id surfaces pin.
16711
+ ...workersAiPrimary(GLM_5_3_FLASH_IDS),
16712
+ // MiniMax M2.7 - Route exclusively through the Vercel AI Gateway.
16713
+ "minimax-m2.7": {
16714
+ providers: [
16715
+ { provider: "vercel", weight: 100 }
16716
+ ],
16717
+ fallback: []
16718
+ }
16719
+ };
16390
16720
  var MANUAL_PROVIDER_MAP_OVERRIDES = {
16391
16721
  // Bedrock uses different model ID format
16392
16722
  "claude-sonnet-4-5": {
@@ -16476,6 +16806,11 @@ var MANUAL_PROVIDER_MAP_OVERRIDES = {
16476
16806
  "workers-ai": "@cf/deepseek-ai/deepseek-v4-pro-0813",
16477
16807
  "vercel": "deepseek/deepseek-v4-pro-0813"
16478
16808
  },
16809
+ // Batch 2 of the Workers-AI-primary routes. Same rule as V4 Pro: Cloudflare
16810
+ // publishes only the date-pinned DeepSeek build, the bare families inherit
16811
+ // their `vercel` id from the generated map, and the slash forms declare it.
16812
+ ...workersAiAliases("@cf/deepseek-ai/deepseek-v4-flash-0731", DEEPSEEK_V4_FLASH_IDS),
16813
+ ...workersAiAliases("@cf/zai-org/glm-5.3-flash", GLM_5_3_FLASH_IDS),
16479
16814
  // MiniMax M2.7: Vercel's gateway-form id.
16480
16815
  "minimax-m2.7": {
16481
16816
  "vercel": "minimax/minimax-m2.7"
@@ -16601,7 +16936,7 @@ var CREATOR_TO_PROVIDER = {
16601
16936
  // Default fallback
16602
16937
  };
16603
16938
 
16604
- // ../shared/dist/chunk-E3CDLSZ6.mjs
16939
+ // ../shared/dist/chunk-V4HDWTHW.mjs
16605
16940
  var BUILTIN_TOOLS_LEAN = [
16606
16941
  { "id": "gpt-image-2", "name": "GPT Image 2", "category": "image_generation", "providers": ["multi"], "defaultConfig": { "size": "1024x1024", "quality": "low", "outputFormat": "png", "background": "auto" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true },
16607
16942
  { "id": "dalle", "name": "DALL-E Image Generation", "category": "image_generation", "providers": ["multi"], "defaultConfig": { "size": "1024x1024", "quality": "standard", "style": "vivid" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "hidden": true, "deprecated": true },
@@ -16638,8 +16973,8 @@ var BUILTIN_TOOLS_LEAN = [
16638
16973
  { "id": "search_runtype_docs", "name": "Search Runtype Docs", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false, "experimental": true },
16639
16974
  { "id": "elevenlabs-tts", "name": "ElevenLabs Text-to-Speech", "category": "text_to_speech", "toolGroup": "voice", "providers": ["multi"], "defaultConfig": { "voice_id": "rachel", "model_id": "eleven_multilingual_v2", "stability": 0.5, "similarity_boost": 0.75 }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "marginPercent": 20, "hidden": true },
16640
16975
  { "id": "elevenlabs-stt", "name": "ElevenLabs Speech-to-Text", "category": "text_to_speech", "toolGroup": "voice", "providers": ["multi"], "defaultConfig": { "format": "wav", "model_id": "scribe_v2" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "marginPercent": 20, "hidden": true },
16641
- { "id": "emit_artifact_markdown", "name": "Emit Artifact (Markdown)", "category": "artifact", "providers": ["multi"], "executionHint": "platform", "hidden": true },
16642
- { "id": "emit_artifact_component", "name": "Emit Artifact (Component)", "category": "artifact", "providers": ["multi"], "executionHint": "platform", "hidden": true },
16976
+ { "id": "emit_artifact_markdown", "name": "Emit Artifact (Markdown)", "category": "artifact", "providers": ["multi"], "executionHint": "platform" },
16977
+ { "id": "emit_artifact_component", "name": "Emit Artifact (Component)", "category": "artifact", "providers": ["multi"], "executionHint": "platform" },
16643
16978
  { "id": "get_current_time", "name": "Get Current Time", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
16644
16979
  { "id": "convert_time", "name": "Convert Time Between Zones", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
16645
16980
  { "id": "time_difference", "name": "Time Difference", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
@@ -16827,7 +17162,7 @@ var BuiltInToolIdPrefix = {
16827
17162
  PLATFORM: "platform"
16828
17163
  };
16829
17164
 
16830
- // ../shared/dist/chunk-D5RN66ZS.mjs
17165
+ // ../shared/dist/chunk-NWSU7U4C.mjs
16831
17166
  function sanitizeToolNameForAiSdk(name) {
16832
17167
  return name.replace(/[^a-zA-Z0-9_]/g, "_").toLowerCase().replace(/_+/g, "_").replace(/^_|_$/g, "");
16833
17168
  }
@@ -19690,7 +20025,7 @@ var GRANOLA_INTEGRATION = {
19690
20025
  ]
19691
20026
  };
19692
20027
 
19693
- // ../shared/dist/chunk-JZ6OUYPZ.mjs
20028
+ // ../shared/dist/chunk-JXGM7PL7.mjs
19694
20029
  var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
19695
20030
  // Mixlayer models
19696
20031
  {
@@ -19769,7 +20104,8 @@ var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
19769
20104
  strengths: "Large open-weight reasoning and tool-use flagship with a 1M context at a low price \u2014 strong analytical depth where an open model is preferred.",
19770
20105
  bestFor: ["deep-reasoning", "agentic-tools", "long-context"]
19771
20106
  },
19772
- // DeepSeek models (routed via Vercel)
20107
+ // DeepSeek V4 Flash (routed via Cloudflare Workers AI, Vercel fallback). The
20108
+ // bare routed name resolves to `@cf/deepseek-ai/deepseek-v4-flash-0731`.
19773
20109
  {
19774
20110
  provider: "runtype",
19775
20111
  modelId: "deepseek-v4-flash",
@@ -22005,6 +22341,10 @@ function neutralizeCsvFormula(value) {
22005
22341
  if (STRICT_NUMBER.test(value)) return value;
22006
22342
  return `'${value}`;
22007
22343
  }
22344
+ var REPLAY_FROM_START = Object.freeze({
22345
+ row: 0,
22346
+ sub: Number.POSITIVE_INFINITY
22347
+ });
22008
22348
  var agUiRoleSchema = external_exports.enum(["developer", "system", "assistant", "user", "tool"]);
22009
22349
  var runStartedEventSchema = external_exports.object({
22010
22350
  type: external_exports.literal("RUN_STARTED"),
@@ -29135,7 +29475,14 @@ var userProfileFeaturesSchema = external_exports.object({
29135
29475
  // marker column has been dropped. Both are kept on the wire for compatibility
29136
29476
  // with deployed SPA bundles and the published SDK.
29137
29477
  workspaceModelReady: external_exports.boolean(),
29138
- workspaceModelEligible: external_exports.boolean()
29478
+ workspaceModelEligible: external_exports.boolean(),
29479
+ // Active model credit promo factor for this account (ADR 0021): `0.5` means
29480
+ // promo-eligible models (Workers AI, Gemini) bill at 50% of nominal
29481
+ // platform-key cost; `1` means no promo. Driven by the
29482
+ // `model-credit-promo-multiplier` number flag, already clamped to `[0, 1]`.
29483
+ // The dashboard renders discount badges from it using the shared
29484
+ // `isModelCreditPromoEligible` predicate; billing never trusts the client.
29485
+ modelCreditPromoMultiplier: external_exports.number().min(0).max(1).optional()
29139
29486
  });
29140
29487
  var SLACK_REQUIRED_BOT_SCOPES = [
29141
29488
  "channels:history",
@@ -29295,11 +29642,12 @@ var sandboxConfigSchema = external_exports.object({
29295
29642
  // stored `'named'` config still loads; it just behaves as `'ephemeral'`.
29296
29643
  persistence: external_exports.enum(["ephemeral", "conversation", "named"]).optional(),
29297
29644
  // INERT on the agent sandbox path: `instanceType` is NOT honored — the agent
29298
- // sandbox always provisions `standard-1` regardless of this value (the value
29299
- // is read for the transform-data/deploy sandbox billing paths, not for the
29300
- // agent builtin tools). Kept parseable for forward-compat + mirror alignment;
29301
- // treat it as a no-op author-time hint until the agent path wires container
29302
- // sizing.
29645
+ // sandbox always provisions `standard-4` (the blanket default fixed by
29646
+ // apps/sandbox/wrangler.toml `[[containers]]`) regardless of this value (the
29647
+ // value is read for the transform-data/deploy sandbox billing paths, not for
29648
+ // the agent builtin tools). Kept parseable for forward-compat + mirror
29649
+ // alignment; treat it as a no-op author-time hint until the agent path wires
29650
+ // per-plan container sizing.
29303
29651
  instanceType: external_exports.enum(["standard-1", "standard-2", "standard-3", "standard-4"]).optional(),
29304
29652
  networkAccess: sandboxNetworkAccessSchema.optional(),
29305
29653
  ttl: external_exports.enum(["5m", "1h", "24h", "unlimited"]).optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runtypelabs/cli",
3
- "version": "2.35.0",
3
+ "version": "2.35.1",
4
4
  "description": "Command-line interface for Runtype AI platform",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -26,9 +26,9 @@
26
26
  "react": "^19.2.8",
27
27
  "rosie-skills": "0.8.1",
28
28
  "yaml": "^2.9.0",
29
+ "@runtypelabs/sdk": "9.2.1",
29
30
  "@runtypelabs/ink-components": "0.3.7",
30
- "@runtypelabs/terminal-animations": "0.2.4",
31
- "@runtypelabs/sdk": "9.2.0"
31
+ "@runtypelabs/terminal-animations": "0.2.4"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@modelcontextprotocol/server": "2.0.0",
@@ -43,7 +43,7 @@
43
43
  "tsx": "^4.7.1",
44
44
  "typescript": "^6.0.3",
45
45
  "vitest": "^4.1.0",
46
- "@runtypelabs/shared": "3.32.0"
46
+ "@runtypelabs/shared": "3.34.2"
47
47
  },
48
48
  "engines": {
49
49
  "node": ">=22.12.0"