bestiary

package module
v0.2.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2026 License: MIT Imports: 21 Imported by: 0

README

bestiary

Go module and CLI for querying AI model metadata from models.dev, with a canonical naming scheme that gives every model a stable, cross-provider identity.

Provides strongly-typed providers and model IDs, a static model registry (~5,650 models across ~162 providers), entity normalization (Family / Variant / Version / Date / Modifier), an HTTP client with retry, and a local SQLite cache for offline queries.

Install

As a Go library:

go get github.com/dayvidpham/bestiary@v0.2.0

As a CLI tool:

go install github.com/dayvidpham/bestiary/cmd/bestiary@latest

Requires Go 1.24+. Builds with CGO_ENABLED=0 (no C compiler needed).

The canonical representation

The same model shows up across many providers under inconsistent raw IDs. Anthropic's Claude Opus 4.6 appears as claude-opus-4-6 direct from Anthropic, as anthropic/claude-opus-4.6 on Vercel, as claude-opus-4-6-thinking on a reseller, and as eu.anthropic.claude-opus-4-6-v1 on a cloud gateway. The models.dev family field is just as noisy — claude-opus conflates the family (claude) with the variant (opus), and ~25% of entries have no family at all.

bestiary normalizes each model into a canonical tuple and renders it as a single human-readable string:

provider / family / variant / version @ date [modifier]

anthropic / claude  / opus    / 4.6     @ 2026-02-05
Field Example Meaning
Provider anthropic Who hosts this manifestation of the model
Family claude The model line (provider-independent)
Variant opus The tier/branch within the family
Version 4.6 The version, distinct from the date — Opus 4.5 and 4.6 are different models
Date 2026-02-05 Release/snapshot date
Modifier thinking An optional mode suffix (thinking, vision, latest, …)

The full canonical form for a modifier-bearing model:

alibaba-cn/kimi@2025-11-06[thinking]

Why a tuple? The tuple (Family, Variant, Version, Date) is the canonical identity; the string forms are just convenience formatters over it. Two design properties fall out:

  • Cross-provider comparison. (Family, Variant, Version) groups the same model across every provider that hosts it, so you can ask "who serves Claude Opus 4.6?" or "what does it cost on each?" without string-matching raw IDs.
  • Version ≠ date. Splitting Version from Date is the whole point: a snapshot date alone can't tell Opus 4.5 from 4.6. The parser extracts the version from the model ID (which is authoritative) and falls back to the API family field.

Normalization is deterministic (suffix tables + curated overrides in parse/data/), so it's auditable and easy to fix. Inputs the parser can't cleanly decompose are recorded to .bestiary-gen-cache/parse_failures.json at codegen time rather than silently mangled.

The design draws on ISO 1087 / IFLA-LRM terminology concepts (a concept vs. its designations); see docs/research/entity-normalization.md for the full rationale. Today every designation is rated admitted; promotion to preferred is deferred to a later curation pass.

Canonical entity keys

The section above names one provider's copy of a model. Collapse every provider that serves the same underlying model into a single cross-provider identity and you get an entity — the canonical representation bestiary has converged on for a model. An entity is written as one canonical key:

family[/variant][@version][#paramsize]{identity-mods}

A trailing [attributes] segment is accepted as input / filter syntax only — it is never rendered into a key, because attributes are per-instance data, not part of an entity's identity.

Segment Meaning
family The canonical, provider-independent model line (llama, gemini, gpt).
/variant The product-line variant/tier within the family (flash, xs). Omitted when the family has none.
@version The version — distinct from the release date (Opus 4.5 ≠ 4.6).
#paramsize Parameter size, which is identity: a 70B and an 8B are different models (different weights, VRAM, architecture). Omitted when the size is unknown, so keys without a known size are unchanged.
{identity-mods} Identity-class modifiers (instruct, thinking, omni, livetranslate, …), emitted in canonical order. These name genuinely different artifacts, so they are part of the key.
[attributes] Attribute-class tokens: serving tiers (realtime, fast) and release-stage tokens (preview, latest). These are per-instance runtime knobs — filterable, but never part of the key.

Every key below is real — resolve any of them with bestiary show --by-entity '<key>':

Entity key What it demonstrates
llama@3.3#70b{instruct} Size lives in the key: a distinct entity from llama@3.3#8b{instruct}.
gemini/flash{omni} vs gemini/flash An identity mode token (omni) splits one variant into two entities.
gpt@2.1 realtime rode in as an attribute (stripped off gpt-realtime-2.1), so it stays out of the key and the version 2.1 is preserved.
qwen/flash@3{livetranslate} A stage/mode token carried as an identity modifier.
laguna/xs@2.1 The plain shape: family, variant, version, no modifiers.
ornith@1.0#9b A metadata-only standalone — zero providers serve it, but models.dev still publishes facts, so it is synthesized as its own #size-keyed entity rather than dropped.

The rationale for each rule — why parameter size is identity, why omni/livetranslate are identity-class while realtime/preview are attributes, and how metadata-only standalones are synthesized — is recorded in the design-decisions sections of AGENTS.md: "Parameter size is part of entity identity", "Stage/mode identity granularity", and "Alias-first join with a two-tier miss policy".

Spelling unification & provenance

One model reaches bestiary under many raw spellings — different provider prefixes, casing, punctuation, size suffixes, quant tags, and even a missing version segment. Unifying those N spellings onto one entity key is not magic string-munging: every spelling arrives at its key through a deterministic, auditable pipeline, and the grouping it produces is itself queryable. Four mechanisms do the work, in precedence order:

  1. Mechanical canonical decomposition. Every raw ID is decomposed into the canonical tuple (family, variant, version, #paramsize, {identity-mods}) by the same suffix tables and version patterns described above (parse.go, parse/data/variant_suffixes.json, parse/data/version_patterns.json). Spellings that differ only in provider prefix, casing, or a stripped quant/attribute tag collapse here, for free.
  2. Curated exact-ID pins. Where the mechanical path can't reach the truth, a curated entry overrides it — size-token pins (parse/data/param_size_overrides.json) and raw-family → family/variant overrides (parse/data/family_overrides.json), each JSON entry carrying a _comment recording why the pin exists, plus exact-ID family/variant/version pins in the curated idFamilyOverrides table in parse.go (provenance recorded in Go comments). A pin is the top precedence tier: it can never be flipped by a mechanical scan or a data refresh.
  3. Pipeline alias files. The two ingest pipelines each keep a curated alias map that is consulted before mechanical decomposition — parse/data/ollama_aliases.json for the Ollama refresh and parse/data/modelsdev_aliases.json for the models.dev metadata join. A present alias is the sole identity for that spelling (curated > mechanical).
  4. The Instances list is the grouping. Once unified, every raw spelling that resolved to a key hangs off that entity as one row in its Instances list. That list is the queryable evidence of the grouping — bestiary providers '<key>' (or show --by-entity) prints exactly which raw IDs, under which providers, folded into the entity.

Worked example — Llama 4 Scout (13 spellings → 1 entity). All of these key to llama/scout@4#17b-16e{instruct}:

llama-4-scout                                     meta.llama4-scout-17b-instruct-v1:0
llama-4-scout-17b-16e-instruct                    us.meta.llama4-scout-17b-instruct-v1:0
llama-4-scout-17b-16e-instruct-fp8                cerebras-llama-4-scout-17b-16e-instruct
meta/llama-4-scout-17b-16e-instruct               meta-llama/Llama-4-Scout-17B-16E-Instruct
@cf/meta/llama-4-scout-17b-16e-instruct           workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct

Three unification steps stack: the provider-prefix / casing / -fp8 spread collapses mechanically; the size-token pins in param_size_overrides.json fold the size-less (llama-4-scout) and bare-17b (…-17b-instruct, including the two dotted Bedrock forms meta.llama4-scout-…v1:0 where the dot is token-internal) spellings up to the full 17b-16e shape; and curated @4 version pins in parse.go's exact-ID idFamilyOverrides table join the three version-less spellings (the two Bedrock forms + cerebras-…, whose IDs simply omit the 4) to the ten that already carry it. Without the pins those three would strand as a separate llama/scout#17b-16e{instruct} entity — provenance-honest, but not what a reader wants.

Worked example — Grok 4.20 beta (aliases folded into one entity). The two -beta- spellings

grok-4.20-beta-0309-reasoning      grok-4-20-beta-0309-reasoning

now key to grok@4.20{reasoning}, alongside the non-beta reasoning spellings (grok-4.20-0309-reasoning, xai/grok-4.20-reasoning, grok-4-20-reasoning, …). A curated ruling reclassified Grok's beta from an identity variant into a release-stage attribute: the stage signal is still delivered (a resolved model reports Stage: beta), but beta no longer forks the key, so the -beta- aliases stop stranding as a separate grok/beta@4.20{reasoning} entity. This is a curated, family-scoped reclassification — beta is still frozen as key material for other families where no such ruling exists.

Boundary — traceability is derivation-based today, not yet an alias data model. A spelling reaches its entity by decomposition + curated pins/aliases, and the Instances list is the evidence of that grouping. What does not yet exist is a first-class alias edge: an explicit record, per accepted spelling, of who asserted the equivalence and on what basis (claim attribution). Those alias edges are a planned follow-up, not a shipped data model — for now the curated _comment fields in parse/data/* (and the Go comments on parse.go's curated override tables) are the human-readable provenance trail.

Demo

Resolve a model by its canonical form (bestiary show defaults to canonical/"peasant" input):

$ bestiary show 'anthropic/claude/opus/4.6@2026-02-05'
{
  "ID": "claude-opus-4-6",
  "Provider": "anthropic",
  "DisplayName": "Claude Opus 4.6",
  "RawFamily": "claude-opus",
  "Family": "claude",
  "Variant": "opus",
  "Version": "4.6",
  "Date": "2026-02-05",
  "Modifier": "",
  "ContextWindow": 1000000,
  "MaxOutput": 128000,
  "Reasoning": true,
  ...
}

Bare or partial inputs are ambiguous — many providers host the same model, so bestiary lists the canonical provider (marked *) separately from the rehosts:

$ bestiary show claude
* = canonical provider

Canonical:
* anthropic/claude/opus/4.6@2026-02-05
* anthropic/claude/sonnet/4.6@2026-02-17
* anthropic/claude/haiku/4.5@2025-10-15
* anthropic/claude/opus/4.5@2025-11-24
* anthropic/claude/sonnet/4.5@2025-09-29
+9 more

Also rehosted by:
  deepinfra
  perplexity-agent
  azure-cognitive-services
  fastrouter
  nano-gpt
+24 more

To see all providers/variants: bestiary list   (or: bestiary list --provider <slug>)
To resolve an exact model ID:  bestiary show <raw-id> --format=raw

Other input formats are opt-in via --format. A Package-URL with a provider namespace filters to that provider, falling back to a loose cross-provider match when the namespace has no hit:

$ bestiary show --format purl 'pkg:huggingface/anthropic/claude-opus-4-5'
{ "ID": "claude-opus-4-5", "Provider": "anthropic", "Family": "claude", "Version": "4.5", ... }

List models in a table:

$ bestiary list --provider anthropic --output table
ID                                        Provider      Family              Context  MaxOutput  Reason  Tools   CostIn/MTok
----------------------------------------  ------------  ----------------  ---------  ---------  ------  -----  ------------
claude-3-5-haiku-20241022                 anthropic     claude               200000       8192      no    yes         $0.80
claude-haiku-4-5                          anthropic     claude               200000      64000     yes    yes         $1.00
claude-opus-4-6                           anthropic     claude              1000000     128000     yes    yes         $5.00
...

VRAM, quantization & data-source provenance

v0.2.4 answers "what will this model cost to run, at which quantization, and where did the data come from?" It adds three things on top of the canonical entity model: parameter size as part of identity, per-quantization weights + computed VRAM, and a data-source provenance core that records every source that attests to a model.

All CLI examples below write the flag before the positional argument (show --by-entity <key>). Flags are accepted in any position — show <key> --by-entity works too — but the flag-first form is the one shown here for consistency.

Parameter size is part of identity

EntityRef.String() gains an optional #paramsize segment:

family[/variant][@version][#paramsize]{identity-mods}

So a 70B and an 8B of the same family are distinct entities with distinct keys — they have different weights, different VRAM, and different architectures, so they are not the same thing served at two sizes:

$ bestiary show --by-entity 'llama@3.3#70b{instruct}'
{
  "Ref": {
    "Family": "llama",
    "Variant": "",
    "Version": "3.3",
    "ParamSize": "70b",
    "Modifier": [
      "instruct"
    ]
  },
  ...                          # (excerpt — the "Ref" object; Instances/Sources/etc. elided)
}

$ bestiary show --by-entity 'llama@3.3#8b{instruct}'
{
  "Ref": {
    "Family": "llama",
    "Variant": "",
    "Version": "3.3",
    "ParamSize": "8b",
    "Modifier": [
      "instruct"
    ]
  },
  ...                          # (excerpt)
}

The # segment is omitted when size is unknown, so every pre-v0.2.4 entity key is byte-identical — sizing is purely additive. Today only a small curated set carries sizes; broader coverage is incremental.

Per-quantization weights vs. VRAM

Each provider instance of a curated local model carries a QuantVRAM row per quantization. The table view is the most compact way to read it:

$ bestiary providers --output table 'llama@3.3#70b{instruct}'
Entity: llama@3.3#70b{instruct}
Instances (8):
  ID                                       PROVIDER               HOST              IN/MTok     OUT/MTok    CONTEXT     MAXOUT
  llama-3.3-70b-instruct                   azure                  -                  0.7100       0.7100     128000      32768
      QUANT              WEIGHTS            VRAM         TYP(4K)        CTX  PARTIAL
      q4_k_m         43033509888     85983182848     44375687168     131072    false
      q8_0           75176521728    118126194688     76518699008     131072    false
      f16           141166166016    184115838976    142508343296     131072    false
  ...

Two numbers matter, and they are deliberately not the same:

  • WEIGHTS is the ground-truth GGUF file size ingested from the Ollama registry (the q4_k_m download is ≈40 GiB = 43,033,509,888 bytes). This is the number Ollama lists on a model's tags page — it is a download/disk size, not a VRAM figure.
  • VRAM is computed by bestiary: weights + KV-cache, baked at the model's maximum context (CTX = 131072 here), with no overhead constant (VRAMFormulaVersion 2).

For the 70B at q4_k_m, VRAM − WEIGHTS = 85,983,182,848 − 43,033,509,888 = 42,949,672,960 = exactly 40 GiB of fp16 KV-cache at 128K context (≈320 KiB/token). That is why the VRAM figure is roughly 2× the file size at full context — it is physically correct, not a bug: the KV-cache at a 128K window is as large as the quantized weights themselves. At a smaller working context the figure is far closer to the file size; (QuantVRAM).EstimateVRAM(ctx) recomputes it from the stored inputs at any context you choose.

  • TYP(4K) is that recomputation made visible: the same VRAM estimate baked at a typical 4096-token working context instead of the full window, so you can size a realistic run at a glance (the 70B q4_k_m needs ≈44.4 GB at 4K versus ≈86 GB at its 131K max). It renders an em dash () when the model's maximum context is below 4096 — or unknown — since a figure at a context the model cannot serve would be meaningless, and on a PARTIAL row it stays weights-only (no phantom KV delta), exactly like VRAM.

When the architectural facts (layers / KV-heads / head-dim) are absent, the KV term is excluded and the row is flagged PARTIAL trueVRAM then equals WEIGHTS, an honest weights-only lower bound, never a silent under-estimate:

$ bestiary providers --output table 'llama@3.2#3b{instruct}'
Entity: llama@3.2#3b{instruct}
Instances (1):
  ...
      QUANT              WEIGHTS            VRAM         TYP(4K)        CTX  PARTIAL
      q4_k_m          2019139072      2019139072      2019139072     131072     true
      q8_0            3419799040      3419799040      3419799040     131072     true
Filtering by quantization

--quant keeps only the instances that carry a matching quantization row (it applies to providers and show --by-entity):

$ bestiary providers --output table --quant f16 'llama@3.3#70b{instruct}'   # 8 instances, all carry f16
$ bestiary providers --output table --quant f16 'llama@3.2#3b{instruct}'    # Instances (0): 3b has no f16 row

An unrecognized quant is rejected with an actionable error rather than silently ignored:

$ bestiary providers --quant nope 'llama@3.3#70b{instruct}'
bestiary: ParseQuantization: unrecognised quantization "nope"; why: the input does not match any known quantization name (case-insensitive); where: ParseQuantization; valid examples: f16, bf16, f32, q4_0, q8_0, q4_k_m, q5_k_m, iq4_nl, other; how to fix: pass one of the canonical wire names listed above
Where the data came from (sources)

Every entity records which data sources attest to it. bestiary sources <key> joins the provenance tables and prints one row per source — its URI, ingest date, and parser-schema version:

$ bestiary sources --output table 'llama@3.3#70b{instruct}'
Entity: llama@3.3#70b{instruct}
Sources (2):
  SOURCE       URI                                INGESTED                 PARSER
  models.dev   https://models.dev/api.json        2026-06-09T00:00:00Z          2
  ollama       https://registry.ollama.ai         2026-06-09T00:00:00Z          2

The 70B is dual-attested ([models.dev, ollama]): models.dev knows it as a hosted API model, and the Ollama ingest contributed its per-quant weights. A model only models.dev knows about reports a single source:

$ bestiary sources --output table 'claude/opus@4.5'
Entity: claude/opus@4.5
Sources (1):
  SOURCE       URI                                INGESTED                 PARSER
  models.dev   https://models.dev/api.json        2026-06-09T00:00:00Z          2

The same provenance is available as JSON (bestiary sources <key>, no --output), and the Entity.Sources array is included on every show --by-entity / providers JSON document.

Refreshing the Ollama data (cmd/bestiary-ollama)

The per-quant weights/architecture data lives in a committed curated file (parse/data/quant_vram.json) that codegen bakes into the static catalog — list / show / sources never touch the network. To refresh that file from the live Ollama registry, a human runs the offline, network-gated cmd/bestiary-ollama tool. It is a polite bot (descriptive User-Agent, ≥1 s between requests), joins each Ollama tag onto a models.dev catalog ID (alias table first, then mechanical decomposition), keeps community finetunes rather than dropping them, and merges fetch-owned fields into the curated file while preserving hand-curated architecture facts. It is not part of go test ./....

Model metadata & ingest provenance

v0.2.5 harmonizes bestiary with the full models.dev catalog and turns provenance into a first-class, queryable history. It ingests all three models.dev JSON artifacts (api.json, models.json, catalog.json), bakes a provider-agnostic metadata dimension (descriptions, licenses, benchmark claims, links) that attaches at the entity level, adds an entities census and a --status filter, and makes the ingest log an append-only history with a round-trip export. The static catalog is refreshed from a vendored July snapshot: 162 providers, 5,654 models, 810 entities (up from the April baseline of ~138 providers / ~4,300 models).

Enumerating every entity (entities)

bestiary entities walks the whole registry and prints one row per canonical entity — including metadata-only standalones that no provider currently serves but that models.dev still publishes facts about, which are otherwise only reachable by their exact key:

$ bestiary entities --output table
Entities (810):
  ENTITY KEY                                       PROVIDERS METADATA BENCHMARKS
  ...
  claude/opus@4.7                                         32      yes         19
  ...
  glm/air@4.5                                             20      yes          3
  ...
  ornith@1.0#35b                                           0      yes          7
  ...
  whisper/large@3{turbo}                                   2      yes          0
  ...

PROVIDERS counts the serving instances, METADATA marks whether the entity carries a models.dev metadata row, and BENCHMARKS counts its lab-reported benchmark claims. The ornith@1.0#35b row is a metadata-only standalone: PROVIDERS 0 (no instance serves it) yet METADATA yes with 7 benchmarks — the join synthesizes it as its own #size-keyed entity rather than dropping the facts. When the SQLite cache has never been synced, entity-view commands print a single notice to stderr and read the embedded catalog:

bestiary: using embedded catalog (run 'bestiary sync' to refresh metadata)
Entity metadata: description, license & benchmarks

show --by-entity --output table now renders the provider-agnostic metadata block — description, license, and the benchmark-claims table — under the entity header (Providers/Hosts/Instances elided here):

$ bestiary show glm-4.6 --by-entity --output table
Entity: glm@4.6
  Family:        glm
  Variant:       -
  Version:       4.6
  Identity-mods: -
Providers (24): 302ai, abacus, deepinfra, …
...
Capabilities: reasoning, tool-call, attachment, temperature, structured-output, interleaved, open-weights
Description: Late GLM-4 workhorse for coding agents, reasoning, and structured tasks
License:     -
Benchmarks (4):
  NAME                            SCORE METRIC         HARNESS            DATE         SOURCE
  Artificial Analysis Cod…         29.5 index          -                  2026-05-22   https://openrouter.ai/z-ai/glm-4.6/benchmarks
  SciCode                          38.4 percent correct -                  2026-05-22   https://openrouter.ai/z-ai/glm-4.6/benchmarks
  Terminal-Bench Hard                25 success rate   -                  2026-05-22   https://openrouter.ai/z-ai/glm-4.6/benchmarks
  SWE-Bench Pro                    9.67 resolve rate   -                  -            https://labs.scale.com/leaderboard/swe_bench_pro_public
  note: benchmark names truncated (use --output json for full names)
Lineage (0):
Instances (28):
  ...

The benchmark table keeps every claim in a separate column (name, score, metric, harness, date, source) — never concatenated — so a future canonical benchmark dimension can join on the parts. Two readability rules apply, and both announce themselves:

  • Names truncate at 24 columns. Artificial Analysis Coding Index renders as Artificial Analysis Cod…; the note: benchmark names truncated line points at --output json for the full names.
  • The table caps at the top 5 rows. glm-4.6 has 4, so all show. An entity with more prints a … and N more footer — e.g. claude/opus@4.7 (19 benchmarks) renders five rows then … and 14 more (use --output json).

The full, untruncated set — every benchmark row, both score forms, all links — is always available via --output json.

Filtering by release status (list --status)

list --status keeps only the models carrying a given models.dev release status (none, alpha, beta, deprecated):

$ bestiary list --status deprecated --output table
ID                                        Provider      Family              Context  MaxOutput  Reason  Tools   CostIn/MTok
----------------------------------------  ------------  ----------------  ---------  ---------  ------  -----  ------------
claude-opus-4-1                           anthropic     claude               200000      32000     yes    yes        $15.00
mistralai/devstral-2512                   anyapi        devstral             262144     262144      no    yes             —
MiniMaxAI/MiniMax-M2.5                    baseten       minimax              204000     204000     yes    yes         $0.30
...                                                                          # 119 deprecated models

An unrecognized status is rejected with an actionable error rather than silently matching nothing:

$ bestiary list --status bogus
bestiary: ParseModelStatus: unrecognized status "bogus"; why: the input does not match any known model status (case-insensitive); where: ParseModelStatus; valid values: none, alpha, beta, deprecated; how to fix: pass one of the valid values listed above
Provenance history & export (sources --history / --export)

The ingest log is now an append-only history — a source carries one row per distinct ingest instant, and the current ingest is simply the row with the latest timestamp. A fresh, never-synced cache serves the embedded catalog (the stderr notice above); bestiary sync then fetches api.json + models.json live, persists the models, metadata, and attestations, and appends one ingest row stamped with the real UTC wall-clock time. A materially stale vendored snapshot also warns when more than 50 live model IDs are missing from the embedded catalog (shape shown — sync requires the network, and <N> is the live missing-model count):

$ bestiary sync
bestiary: warning: <N> live model IDs are absent from the embedded catalog; the vendored models.dev snapshot is stale — refresh it and regenerate (see AGENTS.md "models.dev snapshot refresh")
...

sources --history prints the whole log, ascending by ingest time, offline from the committed seed (no entity argument):

$ bestiary sources --history --output table
Ingest history (3):
  SOURCE       URI                                INGESTED                 PARSER
  models.dev   https://models.dev/api.json        2026-06-09T00:00:00Z          3
  models.dev   https://models.dev/api.json        2026-07-13T02:11:52Z          3
  ollama       https://registry.ollama.ai         2026-06-09T00:00:00Z          3

sources --export emits the store's ingest provenance as a datasources.json v3 document — the union of the store's synced history and the curated seed, so the curated ollama row rides along even when only models.dev was synced. The output is round-trippable and promotable straight back into parse/data/datasources.json:

$ bestiary sources --export
{
  "schema_version": 3,
  "sources": [
    {
      "id": "models.dev",
      "uri": "https://models.dev/api.json",
      "canonical_name": "models.dev"
    },
    {
      "id": "ollama",
      "uri": "https://registry.ollama.ai",
      "canonical_name": "Ollama Registry"
    }
  ],
  "ingested": [
    {
      "source_id": "models.dev",
      "ingested_at": "2026-06-09T00:00:00Z",
      "parser_schema": 3
    },
    {
      "source_id": "models.dev",
      "ingested_at": "2026-07-13T02:11:52Z",
      "parser_schema": 3
    },
    {
      "source_id": "ollama",
      "ingested_at": "2026-06-09T00:00:00Z",
      "parser_schema": 3
    }
  ]
}
Vendored codegen snapshot

Codegen no longer fetches the catalog at build time. go generate ./... reads a committed snapshot — parse/data/modelsdev/catalog.json plus its SNAPSHOT.json provenance sidecar — so it is fully offline and deterministic, and a missing or corrupt snapshot is a loud error (codegen never bakes an empty catalog). Refreshing that snapshot from a newer upstream deploy is a deliberate, occasional manual step — see the "models.dev snapshot refresh" workflow in AGENTS.md.

CLI

bestiary <list|show|providers|entities|sources|sync> [flags]
Commands

show — resolve a single model and print it (offline). The argument is interpreted in the canonical ("peasant") form by default; use --format to supply HuggingFace, PURL, or raw IDs. If the input matches more than one model, an ambiguous-candidate listing is printed to stderr and the command exits non-zero. Pass --by-entity to resolve a #size-aware entity key (family[/variant][@version][#paramsize]{mods}) and print the aggregated entity — its instances, per-quant VRAM, capability union, and source list — instead of a single row.

bestiary show 'anthropic/claude/opus/4.6@2026-02-05'      # canonical form (default)
bestiary show claude-opus-4-6 --format raw                # raw API model ID
bestiary show anthropic/claude-opus-4-6 --format hf       # HuggingFace repo-id
bestiary show pkg:huggingface/anthropic/claude-opus-4-5 --format purl
bestiary show 'anthropic/claude/opus/4.6@2026-02-05' --output yaml
bestiary show --by-entity 'llama@3.3#70b{instruct}'       # aggregated entity by #size key

providers — resolve an entity key and list every provider instance that serves it, including per-quantization weights/VRAM rows in the table view.

bestiary providers --output table 'llama@3.3#70b{instruct}'
bestiary providers --output table --quant q4_k_m 'llama@3.3#70b{instruct}'

entities — enumerate every canonical entity in the registry (offline; no argument). Each row carries its provider count, whether it has models.dev metadata, and its benchmark-claim count; metadata-only standalones (no serving provider) are included so they are discoverable.

bestiary entities --output table   # summary table (ENTITY KEY / PROVIDERS / METADATA / BENCHMARKS)
bestiary entities                  # full Entity objects, JSON

sources — resolve an entity key and print its data-source provenance (one row per attesting source: URI, ingest date, parser-schema version). The --history and --export views take no entity argument and read the catalog-wide ingest log. Offline.

bestiary sources --output table 'llama@3.3#70b{instruct}'   # dual-attested: models.dev + ollama
bestiary sources 'claude/opus@4.5'                          # JSON; models.dev-only
bestiary sources --history --output table                   # full append-only ingest log (ascending)
bestiary sources --export                                   # datasources.json v3 to stdout
bestiary sources --export sources.json                      # ...or to a file

list — query models from the static registry + local cache (offline).

bestiary list                                       # all models, JSON
bestiary list --provider anthropic --output table   # Anthropic models, table
bestiary list --status deprecated --output table    # only deprecated models
bestiary list --output yaml                          # all models, YAML

sync — fetch models from the models.dev API and cache locally (online).

bestiary sync                                        # fetch all, print JSON
bestiary sync --provider anthropic --output table

After syncing, list and show merge static + cached data. When both sources have the same (ID, Provider), the most recently synced version wins.

Flags
Flag Applies to Default Description
--output all json Output rendering: json, yaml, table. (Was --format in v0.0.1.)
--format show peasant Input scheme for the model argument: peasant (canonical), huggingface/hf, purl, raw. No auto-detection — non-canonical inputs must select their format.
--by-entity show false Resolve the argument as a #size-aware entity key and print the aggregated entity instead of a single model row.
--quant providers, show --by-entity (all) Keep only instances carrying a matching quantization row (e.g. q4_k_m, f16). An unrecognized value is rejected with an actionable error.
--status list (all) Keep only models with the given release status: none, alpha, beta, deprecated. An unrecognized value is rejected with an actionable error.
--provider list, sync (all) Filter by provider slug (e.g. anthropic, google, openai).
--history sources false Print the full append-only ingest log per source (ascending). Takes no entity argument.
--export sources false Export the ingest provenance as a datasources.json v3 document (optional positional path; stdout otherwise).
--db-path all $XDG_CACHE_HOME/bestiary/models.db SQLite cache location.
--scheme show Deprecated alias for --format; kept for v0.0.1 scripts. --format wins if both are set.

Flags are positional-order-independent: bestiary show --by-entity <key> and bestiary show <key> --by-entity are equivalent.

Library usage

package main

import (
	"context"
	"fmt"
	"time"

	"github.com/dayvidpham/bestiary"
)

func main() {
	// Static registry (compiled-in, no network)
	models := bestiary.StaticModels()
	fmt.Printf("%d models available\n", len(models))

	// Resolve any expression to canonical ModelRef(s).
	// Returns ErrAmbiguous (use errors.As) when the input matches multiple models.
	refs, err := bestiary.Resolve("anthropic/claude/opus/4.6@2026-02-05")
	if err == nil && len(refs) > 0 {
		r := refs[0]
		fmt.Println(r.Format(bestiary.SchemeCanonical))   // anthropic/claude/opus/4.6@2026-02-05
		fmt.Println(r.Format(bestiary.SchemeHuggingFace)) // anthropic/claude-opus-4-6
		fmt.Println(r.Format(bestiary.SchemePURL))        // pkg:huggingface/anthropic/claude-opus-4-6
		fmt.Println(r.Format(bestiary.SchemeRaw))         // claude-opus-4-6
	}

	// Opt into a non-canonical input scheme.
	refs, err = bestiary.Resolve(
		"pkg:huggingface/anthropic/claude-opus-4-5",
		bestiary.WithInputFormat(bestiary.InputFormatPURL),
	)

	// The canonical provider for a family (e.g. claude -> anthropic).
	fmt.Println(bestiary.Family("claude").CanonicalProvider())

	// Lookup / filter the static registry.
	if m, ok := bestiary.LookupModelByProvider(bestiary.ProviderAnthropic, "claude-opus-4-6"); ok {
		ref := m.Ref() // 8-field ModelRef
		fmt.Printf("%s v%s @ %s\n", ref.Family, ref.Version, ref.Date)
	}
	for _, m := range bestiary.ModelsByFamily("claude") {
		fmt.Println(m.ID)
	}
}

Fetching live data:

ctx := context.Background()
client := bestiary.NewClient(
	bestiary.WithTimeout(10*time.Second),
	bestiary.WithRetries(3),
)
models, err := client.FetchModels(ctx)
// or: client.FetchModelsByProvider(ctx, bestiary.ProviderGoogle)

Generated constants. go generate emits a Model__* constant for every model, named Model__<Provider>__<Family>__<Variant>__<Version>__<Modifier>__<Date> (double underscores between components, single within), e.g. Model__Anthropic__Claude__Opus__4_6__20260205.

Types

Type Description
Provider String type with well-known constants (ProviderAnthropic, ProviderGoogle, ProviderOpenAI, ProviderLocal). Any models.dev slug is valid.
ModelID String type for raw API model identifiers (e.g. "claude-opus-4-6").
ModelInfo Full model metadata: API fields + normalized RawFamily/Family/Variant/Version/Date/Modifier.
ModelRef The 8-field canonical identity tuple (ID, Provider, RawFamily, Family, Variant, Version, Date, Modifier) with Format(scheme) and String().
CanonicalScheme Int enum: SchemeCanonical, SchemeHuggingFace, SchemePURL, SchemeRaw.
InputFormat Parsed --format value: InputFormatPeasant, InputFormatHuggingFace, InputFormatPURL, InputFormatRaw.
Designation A serialized identifier (Value, Scheme, Provider, Rating) — one model has many designations.
AcceptabilityRating ISO-1087 rating: AcceptabilityAdmitted (default), AcceptabilityPreferred, AcceptabilityDeprecated.
ErrAmbiguous Struct error (use errors.As) carrying the candidate []ModelRef; returned by Resolve when an input matches multiple models.
Modality / Modalities Int enum + Input/Output modality lists.
Capability Supported bool + Config map[string]string for polymorphic fields (e.g. Interleaved).
Canonical string schemes
Scheme Output for Claude Opus 4.6
SchemeCanonical anthropic/claude/opus/4.6@2026-02-05
SchemeHuggingFace anthropic/claude-opus-4-6
SchemePURL pkg:huggingface/anthropic/claude-opus-4-6
SchemeRaw claude-opus-4-6

Schema versioning

bestiary tracks two versions (see version.go):

  • BestiarySchemaVersion — semver for bestiary's public output contract, documented by the JSON Schema (bestiary.schema.json). The v0.0.1 → v0.0.2 changes (new normalized fields, added methods) were additive; see MIGRATION_v0.0.1_to_v0.0.2.md.
  • UpstreamSchemaVersion<YYYY.MM.DD>-<sha256> pinning the models.dev schema snapshot bestiary was built against, plus UpstreamGitCommit / UpstreamGitRemote for provenance.

(The module release tag — v0.2.0 — is a separate axis from BestiarySchemaVersion: the Go API grew substantially, while the JSON wire format stayed backward-compatible.)

Releases

Release tags are created automatically when a release PR is merged. To cut a release:

  1. Open a PR into main whose title is release(vX.Y.Z): <summary> — the version lives in the conventional-commit scope, e.g. release(v0.2.3): lineage + entity linking. Pre-releases are supported: release(v0.2.3-rc1): …. A space after the ): is required (release(v0.2.3):x is not recognized).
  2. Merge it. The tag-on-release-merge workflow validates the title, then creates the annotated tag vX.Y.Z on the resulting commit on main (whether you squash or create a merge commit) and pushes it.

Notes:

  • Only active once it has landed on main. Because the trigger is pull_request, GitHub runs the workflow from the copy on the base branch — so the PR that introduces the workflow does not tag itself, and any release merged before it reaches main must be tagged manually.
  • Any PR whose title is not a strict release(vX.Y.Z): … is ignored (a silent no-op).
  • If the tag already exists, the workflow fails loudly (it never force-moves a published tag), so a duplicate or mistyped release PR is caught rather than silently doing nothing.
  • A tag pushed by the workflow's GITHUB_TOKEN does not trigger downstream on: push: tags workflows; use a PAT or deploy key if you later chain a release-build job off the tag.

Updating static data

The static registry and Model__* constants are code-generated from the models.dev API:

go generate ./...

This runs cmd/bestiary-gen, which fetches https://models.dev/api.json, normalizes every entry, and writes models_static_gen.go / models_constants_gen.go. Useful flags:

Flag Description
--cache-dir <dir> Where the fetched API response and parse-failure log are written.
--no-fetch Offline mode: reuse the cached api_response.json instead of hitting the network.

Parse failures are written to <cache-dir>/parse_failures.json for review.

Dependencies

  • Go 1.24+
  • zombiezen.com/go/sqlite (CGO-free SQLite driver)
  • No other external dependencies

License

MIT

Documentation

Overview

Package bestiary provides a thin wrapper and CLI interface for the models.dev API. It exposes types for AI model metadata and a local SQLite cache for offline use.

Index

Constants

View Source
const BestiarySchemaVersion = "0.4.0"

BestiarySchemaVersion is the semantic version of the bestiary JSON Schema (the public CLI JSON output schema in bestiary.schema.json). It follows semver (major.minor.patch) and must be incremented whenever the public output schema changes.

This is DISTINCT from the SQLite store's currentSchemaVersion (store.go), which versions the on-disk cache migrations and bumps on its own cadence. Do not conflate the two: the JSON output schema and the SQLite cache schema evolve independently.

Changelog:

  • 0.0.2 → 0.0.3: widened the Modifier field string → []string (backward-INCOMPATIBLE public schema change).
  • 0.0.3 → 0.1.0: added the v0.2.3 entity-model fields (ModelInfo.Host, ModelInfo.Lineage; ModelRef.Host; new $defs EntityRef, LineageEdge, DerivationKind). Additive and backward-COMPATIBLE: the new fields are optional/zero-value, so 0.0.x records still validate.
  • 0.1.0 → 0.2.0: added the v0.2.4 VRAM/quantization/provenance fields (ModelInfo.ParamSize, ModelInfo.QuantVRAM, ModelInfo.Source; EntityRef.ParamSize; new $defs Quantization, QuantVRAM, ProviderInstance, CapabilityUnion, Entity, DataSource, DatasetIngested, EntitySource). Additive and backward-COMPATIBLE: every new field is optional/zero-value, so 0.1.x records still validate.
  • 0.2.0 → 0.3.0: added the v0.2.5 models.dev harmonization fields — the instance-level ModelInfo props (Description, Status, StatusRaw, ReasoningOptions, CostInputAudioPerMTok, CostOutputAudioPerMTok, CostContextOver200k, CostTiers), the Entity.Metadata join projection, ModelRef.ParamSize (the #size identity carrier on the identity tuple), and new $defs ModelStatus, LinkType, ModelLink, BenchmarkResult, ReasoningOption, TierCost, CostTier, EntityMetadata. (Catalog is a parser return container, not a serialized output document, so it is deliberately NOT a $def.) Additive and backward-COMPATIBLE: every new property is optional/zero-value, so 0.2.x records still validate.
  • 0.3.0 → 0.4.0: stamps the v0.2.6 parameter-shape fields decomposed from ParamSize (ModelInfo.TotalParams, ActiveParams, PerExpertParams, ExpertCount). These are DERIVED presentation facts, never entity-key material, and follow the ParamShapeNull (-1) in-domain NULL sentinel contract: -1 = not populated by parser or curation, a positive value = an attested count, and a genuine 0 is reachable only for ExpertCount (a dense shape attests zero experts). The schema pins minimum -1 on each. Additive and backward-COMPATIBLE: every new property is optional, so 0.3.x records still validate. (The full-bulk #size re-key that lands this epoch changes many EntityRef keys but is a data change, not a schema-shape change — the ParamSize carrier and its grammar are unchanged.)
View Source
const ParamShapeNull = -1

ParamShapeNull is the in-domain NULL sentinel for the four parameter-shape integer fields (ParamShape and the inline ModelInfo TotalParams / ActiveParams / PerExpertParams / ExpertCount). A field set to ParamShapeNull means "not populated by the parser or curation": the shape genuinely does not carry that fact (a dense token attests no active or per-expert count), or the size is entirely unknown. It is DISTINCT from a genuine 0, which under this contract is reachable only for ExpertCount (a dense shape attests exactly zero experts). Modelling the fields as a NULLable tabular domain — rather than overloading 0 for both "absent" and "zero" — lets a consumer tell an unpopulated field from an attested count. See ParseParamShape for the per-shape population contract.

View Source
const UpstreamGitCommit = "bf55e760"

UpstreamGitCommit is the short Git commit hash of the models.dev repository revision that corresponds to UpstreamSchemaVersion.

View Source
const UpstreamGitRemote = "git@github.com:anomalyco/models.dev.git"

UpstreamGitRemote is the canonical Git remote URL for the models.dev repository from which the upstream schema was sourced.

View Source
const UpstreamSchemaVersion = "2026.07.12-a0d8cb006e5c2b848dd96fe622e4a61cf405906a1f4bb9a2dc03fdd890ddaac8"

UpstreamSchemaVersion identifies the exact snapshot of the models.dev schema that this bestiary schema was derived from. Format: YYYY.MM.DD-sha256 where sha256 is the full 64 lowercase hex character SHA-256 hash of the upstream schema file (packages/core/src/schema.ts).

View Source
const VRAMFormulaVersion = 2

VRAMFormulaVersion identifies the VRAM estimation formula in use. Version 2 uses ingested GGUF file size as the weights term (never derived from bits-per-weight) and fp16 KV cache with no overhead constant.

View Source
const VRAMKVElemBytes = 2

VRAMKVElemBytes is the number of bytes per element in the KV cache. The KV cache is stored in fp16 (half-precision float), so each element occupies 2 bytes.

Variables

This section is empty.

Functions

func BaseRefFor added in v0.2.4

func BaseRefFor(id ModelID) string

BaseRefFor returns the curated base model reference string for the model identified by id, or the empty string when no base_ref is curated for it. Matching is case-insensitive.

Codegen uses this to infer a DerivationFinetune lineage edge for community finetunes whose base model is known from Ollama metadata. An empty result means the model is not a curated finetune (or its base is not known).

func CanonicalizeModifiers added in v0.2.2

func CanonicalizeModifiers(mods []string) []string

CanonicalizeModifiers returns a NEW slice containing the modifiers de-duplicated (case-insensitively, first spelling wins) and sorted into the canonical order. An empty or all-empty input returns nil (the canonical "no modifiers" value), so the public contract is: empty → nil; single → 1-elem; multiple → canonical-ordered. It never mutates the input slice.

func ContextWindowFor added in v0.2.4

func ContextWindowFor(id ModelID) int

ContextWindowFor returns the curated maximum context window in tokens for the model identified by id, or 0 when no context_window is curated for it. Matching is case-insensitive.

Codegen uses this as the model-max override when computing VRAMBytes: a non-zero value from this function takes precedence over ModelInfo.ContextWindow from the models.dev catalog.

func DefaultDBPath

func DefaultDBPath() (string, error)

DefaultDBPath returns the default path for the models database. It uses $XDG_CACHE_HOME/bestiary/models.db, falling back to ~/.cache/bestiary/models.db when XDG_CACHE_HOME is not set.

func DetectHost added in v0.2.3

func DetectHost(id ModelID) (Host, ModelID)

DetectHost inspects a model ID for a curated serving-host PREFIX and, on a match, returns the corresponding Host plus the host-stripped ID. For example "azure-gpt-4o" → (HostAzure, "gpt-4o"). When no curated prefix matches it returns (HostNone, id) unchanged.

Detection is intentionally curated and ID-PREFIX-ONLY:

  • It NEVER consults the Provider field. A genuine host-as-provider (e.g. provider "azure-cognitive-services" serving a plain "gpt-4o" ID) carries no host prefix on its ID, so Host stays HostNone — the host is implied by the Provider, not duplicated as an instance attribute. This is the guard against the v0.2.2 blanket provider-name strip that erased a backend label.
  • Namespaced IDs (org/model, containing "/") are never split, so an org token that merely begins with a host word (e.g. "azure-cognitive-services/gpt-4o") is left untouched and Host stays HostNone.

Host is a per-instance ATTRIBUTE: stripping it makes the remaining (Family,Variant,Version) tuple host-independent, so a host-routed instance shares its entity identity with the plainly-served model.

func DetectQuantization added in v0.2.4

func DetectQuantization(id ModelID) (Quantization, string, ModelID)

DetectQuantization inspects a model ID for an embedded or trailing quantization tag in Ollama-style notation (e.g. "llama3.3:70b-instruct-q4_K_M") and returns:

  • q: the matched Quantization constant (QuantizationNone when no tag is found; QuantizationOther when a quant-looking tag is present but unrecognised).
  • raw: the raw tag string as it appears in the id, without case normalisation (e.g. "q4_K_M"). Empty when no tag is found.
  • stripped: the model ID with the quant tag (and its leading separator "-") removed. Equal to id when no tag is found.

Matching is case-insensitive against quantNames so both "Q4_K_M" and "q4_k_m" resolve to QuantQ4_K_M. The function never panics.

This extends DetectHost's (value, stripped-id) shape with the raw matched tag as a third return value.

func EnrichedParamSize added in v0.2.6

func EnrichedParamSize(id string) (token string, err error)

EnrichedParamSize resolves the canonical parameter-size token for a model ID via the PRESENCE-based precedence pin > mechanical > ParamSizeFor:

  • a curated pin (param_size_overrides.json) is authoritative when PRESENT, even when its token is "" — a suppress-pin deliberately yields NO size and must never fall through to the mechanical extractor (presence, not value, decides);
  • else the mechanical ExtractParamSizeToken decomposition of the ID;
  • else the fetch-owned ParamSizeFor fallback (curated quant_vram.json), which ranks LAST so an Ollama-bot refresh of a fetch-owned param_size can never flip a stable ID-derived entity key.

The returned err is a DISAGREEMENT signal — non-nil only when the ID is UNPINNED and BOTH the mechanical token and the ParamSizeFor fallback are present yet differ. That is a curation gap a human must resolve (add a pin). The returned token is still valid (the mechanical token wins per precedence), so runtime callers ignore the error and degrade gracefully; codegen treats it as a LOUD, actionable failure.

func EntityModifiers added in v0.2.3

func EntityModifiers(mods []string, fam Family) []string

EntityModifiers returns the IDENTITY-class subset of mods, de-duplicated and in canonical order (see CanonicalizeModifiers). It is the projection used to build the "{identity-mods}" segment of an entity key: attribute-class modifiers are dropped because they do not affect identity. An empty/all-attribute input returns nil (the canonical "no identity modifiers" value).

EntityModifiers is implemented in terms of ClassifyModifier, so it tracks the curated table automatically: a token classifies as identity (and is retained here) unless the table — global or per-family override — demotes it to attribute. Unknown tokens default to identity and are retained — EXCEPT migrated stage-axis tokens (preview/latest/original), which are routed out FIRST (via isStageToken, before ClassifyModifier) so their absence from the curated table never lets the identity fail-safe pull them into the key.

func EstimateVRAMBytes added in v0.2.4

func EstimateVRAMBytes(weightsBytes int64, contextTokens, layers, kvHeads, headDim int) int64

EstimateVRAMBytes estimates the total VRAM requirement in bytes for a model given its weights footprint and architectural parameters.

Formula:

total = weightsBytes + KV
KV    = 2 * layers * kvHeads * headDim * contextTokens * VRAMKVElemBytes

The KV term accounts for both the K and V matrices (hence the leading 2), fp16 element size (VRAMKVElemBytes = 2), and is GQA-aware: kvHeads is the KV-head count, not the query-head count.

The weights term is always the ingested GGUF file size passed in as weightsBytes — it is the ground-truth measurement, never derived from bits-per-weight arithmetic.

KV = 0 (weights-only lower bound) when ANY of layers, kvHeads, headDim, or contextTokens is <= 0. When baking a QuantVRAM row, the caller sets VRAMEstimatePartial = VRAMEstimateIsPartial(layers, kvHeads, headDim). Note: a zero-context bake yields KV=0 WITHOUT partial — partial is reserved for structurally absent arch-facts; the caller chooses its bake context independently. See VRAMEstimateIsPartial for the exact predicate.

Integer arithmetic is int64 throughout. The maximum realistic KV cache (e.g. 200 layers × 128 heads × 256 dim × 2 M context × 2 bytes ≈ 52 TB) is well within int64 range (~9.2 EB), so no overflow protection is needed for any plausible model at the time of writing.

func ExtractDate

func ExtractDate(id ModelID, releaseDate string) string

ExtractDate extracts a date string from a model ID or release date field, normalizing to the YYYY-MM-DD form.

Matching priority:

  1. id is scanned for a YYYYMMDD or YYYY-MM-DD substring.
  2. If id has no match, releaseDate is scanned.

Returns "" when no date is found in either field. The returned string always uses the YYYY-MM-DD format (hyphens added for YYYYMMDD).

func ExtractModifier added in v0.2.0

func ExtractModifier(id ModelID, family Family, variant string) (modifier string, modifierConsumed string)

ExtractModifier returns the modifier suffix found at the trailing end of id (after family and variant are resolved) and the literal substring of id that was consumed (including the leading hyphen).

Resolution: after family + variant are known, the function scans the model ID for a trailing "-<modifier>" token where modifier is in the allowlist from parse/data/modifiers.json. Matching is longest-suffix-first so that "think" does not shadow "thinking" when both are seeded.

Return values:

  • modifier: the bare modifier token (e.g. "thinking"), or "" when none found.
  • modifierConsumed: the substring removed from id (e.g. "-thinking"), or "" when none found.

The caller should strip modifierConsumed from the model ID before passing to ExtractVersionFromID and ExtractDate, so that the modifier token does not pollute version/date heuristics.

ExtractModifier does not modify ModelInfo or ModelRef fields — it is a pure function that returns values for the caller to wire. Pipeline order:

  1. ParseFamily (raw → family + variant)
  2. ExtractModifier (id, family, variant) → modifier, consumed
  3. Strip consumed from id
  4. ExtractVersionFromID on cleaned id
  5. ExtractDate on cleaned id

func ExtractParamSizeToken added in v0.2.6

func ExtractParamSizeToken(id string) (token string, ok bool)

ExtractParamSizeToken is the single grammar authority for pulling a parameter-size token out of a model ID. It is shared (by the enrichment path, the metadata join, the offline Ollama tool, and parseBaseRef) so every site decomposes sizes identically and no site re-implements a greedy scan.

It tokenizes id on [-:/] ONLY — '.' and '_' are NOT separators ('.' carries decimal sizes; '_' matches both existing sites' no-underscore behavior and has zero extraction benefit catalog-wide). Candidate windows are contiguous token runs rejoined with their ORIGINAL separators (each window is a contiguous substring of id); the LONGEST window that is a valid size wins (ties break to the leftmost). It returns the CANONICAL token (ParseParamSize-normalized), so callers get the same spelling the entity key uses. Any static-vs-derived skew (a baked ParamSize that disagrees with what this returns) is caught by TestCodegen_UpToDate rather than silently tolerated.

"qwen3-235b-a22b"              -> ("235b-a22b", true)   // longest whole window, not "235b"
"llama-4-scout-17b-16e"        -> ("17b-16e", true)
"lfm-2.5-1.2b"                 -> ("1.2b", true)        // decimal intact
"qwen3-embedding-0.6b"         -> ("0.6b", true)        // never "6b"
"command-r7b"                  -> ("", false)           // r7b is one token; never substring "7b"
"upstage/solar-10_7b-instruct" -> ("", false)           // '_' not a separator; sized via curated pin

func ExtractVersionBetweenFamilyAndVariant added in v0.2.2

func ExtractVersionBetweenFamilyAndVariant(id ModelID, family Family, variant string) (version string, residual []string)

ExtractVersionBetweenFamilyAndVariant extracts the numeric version component from a model ID that embeds version digits BETWEEN the normalized family prefix and the variant name. This handles the common case where raw_family does not embed the version but the model ID does:

id="claude-3-5-haiku-20241022", family="claude", variant="haiku" → "3.5"
id="claude-3.5-haiku",          family="claude", variant="haiku" → "3.5"
id="gpt-5-mini",                family="gpt",    variant="mini"  → "5"

Returns (version, residual) where:

  • version is the dot-joined leading numeric tokens found between family and variant.
  • residual contains any tokens between the version and variant that are neither numeric nor the variant first-token (honest-audit signal).

N-M equivalence: hyphen-separated pure-digit tokens are dot-joined so that "3-5" → "3.5" and "4-6" → "4.6". This brings parity with ParseFamilyWithVersion.

Parity contract: ExtractVersionBetweenFamilyAndVariant fires if and only if detectVersionDigitsInID (parse.go) would also fire on the same (id, family, variant). This invariant is enforced by TestExtractVersionBetweenFamilyAndVariant_Parity (parse_internal_test.go), which asserts: detector fires ⟺ extractor returns non-empty version OR non-empty residual.

Algorithm:

  1. Normalize the family to a canonical single-word form (first alphabetic token of family for multi-token families like "claude-opus" → "claude").
  2. Strip "<normalizedFamily>-" prefix from the ID. Return ("","") when absent.
  3. Strip any trailing compact/dash date from the remainder.
  4. Tokenize on "-". Collect leading purely-numeric tokens up to the first variant-first-token (or end of tokens if variant is empty).
  5. Dot-join the numeric tokens → version. Tokens after the numeric run that are neither the variant first-token nor purely-numeric are residual.

func ExtractVersionFromID added in v0.2.0

func ExtractVersionFromID(id ModelID, rawFamily Family) string

ExtractVersionFromID extracts a numeric version (e.g. "4.5", "4.6", "2.5", "4o") from a model ID after stripping the known family prefix. Returns "" if no version-like token follows the family prefix.

This is the ID-as-authoritative-source companion to ParseFamilyWithVersion. It is called by codegen (genToModelInfo) when ParseFamilyWithVersion on the raw family field yields an empty version — which is the common case because the upstream models.dev API family strings do not embed version numbers ("claude-opus" not "claude-opus-4-5"). The model ID is where the version lives ("claude-opus-4-5-20251101", "claude-opus-4-6").

Algorithm:

  1. Strip "<rawFamily>-" from the start of id. If the ID does not begin with that prefix, return "".
  2. Strip any trailing compact date (YYYYMMDD or YYYY-MM-DD) from the remainder, since those are not version tokens.
  3. From the remaining string, attempt version extraction: a. All-hyphen-separated-digit tokens (e.g. "4-5") → dot-join → "4.5" b. Dot-version suffix (e.g. "2.5") → return directly c. Single alphanumeric-suffix token (e.g. "4o") → return as-is d. Otherwise → return ""

Examples:

ExtractVersionFromID("claude-opus-4-5-20251101", "claude-opus") → "4.5"
ExtractVersionFromID("claude-opus-4-6-20250514", "claude-opus") → "4.6"
ExtractVersionFromID("claude-opus-4-6",          "claude-opus") → "4.6"
ExtractVersionFromID("gemini-2.5-flash",         "gemini")      → "2.5"
ExtractVersionFromID("gpt-4o",                   "gpt")         → "4o"
ExtractVersionFromID("claude-opus",              "claude-opus") → ""
ExtractVersionFromID("claude-3-5-sonnet-20241022","claude")     → ""  (non-version interleaved tokens)

func FamiliesJSONKeyError added in v0.2.2

func FamiliesJSONKeyError(data []byte) error

FamiliesJSONKeyError validates that every non-comment key in the raw families.json-style bytes is a known Family (case-insensitive match against allFamilies). Returns nil when all keys are valid, or an actionable error on the first unrecognised key.

Used by tests to verify the validation contract without modifying the embedded data, and by to validate family_aliases.json target keys.

BDD: Given families.json with a typo key "claud" (should be "claude"), When FamiliesJSONKeyError is called, Then a non-nil error is returned mentioning the bad key.

func FamilyAliasesJSONError added in v0.2.2

func FamilyAliasesJSONError(data []byte) error

FamilyAliasesJSONError validates the canonical-winner ledger bytes (family_aliases.json shape: {"_comment": ..., "aliases": {key: target, ...}}). Each alias TARGET (the canonical family value) must be a known Family (case-insensitive match against allFamilies). Alias KEYS are mislabels and are deliberately NOT validated — they need not be canonical. Returns nil when every target is valid, or an actionable error on the first unknown target.

Reuses familyKeyKnown so the ledger and families.json share one fail-fast validation contract. Used by initParseData (load-time fail-fast) and by tests to verify the contract without mutating embedded data.

BDD: Given a ledger row {"l3": "lluma"} (typo target), When FamilyAliasesJSONError is called, Then a non-nil error naming the bad target is returned.

func FormatAmbiguous

func FormatAmbiguous(w io.Writer, e *ErrAmbiguous)

FormatAmbiguous writes a human-readable two-section disambiguation message for e to w (typically os.Stderr).

Output format:

bestiary: input "<input>" matched multiple canonicals
[no matches in namespace "..." — ... (when PURLMissedNamespace is set)]

* = canonical provider

Canonical:
* <canonical-form>
... (up to 5 rows; "+N more" when >5)

Also rehosted by:           (omitted when RehostProviders is empty)
  <provider-name>           (one per line, up to 5; "+N more" when >5)
  <provider-name>
  ...

To see all providers/variants: bestiary list   (or: bestiary list --provider <slug>)
To resolve an exact model ID:  bestiary show <raw-id> --format=raw

Section 1 (Canonical) shows up to 5 representatives from Candidates where the Provider is the canonical/originating provider for the family. Each row is prefixed with "* " to visually mark the canonical origin.

Section 2 (Also rehosted by) lists up to 5 distinct provider names taken directly from ErrAmbiguous.RehostProviders. The section is omitted entirely when RehostProviders is empty.

The function always returns nil; write errors are silently swallowed because this is advisory stderr output — a write failure should not mask the real ErrAmbiguous that the caller surfaces to the user.

func FormatModel

func FormatModel(w io.Writer, model ModelInfo, format OutputFormat) error

FormatModel writes a single model to w in the specified format.

func FormatModels

func FormatModels(w io.Writer, models []ModelInfo, format OutputFormat) error

FormatModels writes a list of models to w in the specified format.

func IsEnforcedCanonicalFamily added in v0.2.2

func IsEnforcedCanonicalFamily(f Family) bool

IsEnforcedCanonicalFamily reports whether f is in the CLOSED canonical-winner ENFORCE set (parse/data/family_enforce.json) — a curated list of DISTINCT model families that win over a disagreeing raw_family parent/org mislabel (aion, hermes, mixtral, qwq, …). Exposed for the before/after-diff gate (cmd/bestiary-gen): a lateral family change whose AFTER family is in this set is a SANCTIONED ledger correction (the ID-canonical distinct family beat a parent/org mislabel), not a regression — analogous to the "after ∈ registry" signal but for lateral (non-reduction) corrections. The set is curated data, NOT the categorizer's own logic, so this does not rubber-stamp an arbitrary family rewrite.

func IsKnownFamily added in v0.2.2

func IsKnownFamily(f Family) bool

IsKnownFamily reports whether f is a CANONICAL registered family — a value present (case-insensitively) in the generated allFamilies registry (families_gen.go), which is derived directly from the upstream models.dev family field. Synthetic OVER-CAPTURE family strings the ID-path may transiently produce (e.g. "claude-opus", "qwen3-vl-72b", "phi-4-mini") are NOT in that registry. Exposed for the before/after-diff gate, which uses "after ∈ registry ∧ before ∉ registry" as an INDEPENDENT, data-grounded signal that a family change reduced an over-capture to its canonical short base (and so is a genuine fix, not a regression) — the registry is curated upstream data, not the reducer's own logic, so the check does not merely rubber-stamp the implementation.

func JoinEntityMetadata added in v0.2.5

func JoinEntityMetadata(ents []Entity, meta []EntityMetadata) (attached []Entity, unlinked []MetadataID, standalone []Entity)

JoinEntityMetadata runs the metadata<->entity join over ents with meta and returns three results:

  • attached: every provided entity (deep-copied), with a matching metadata row re-attached over its Metadata field (replace, not merge). Entities with no matching metadata carry their original Metadata unchanged.
  • unlinked: the MetadataIDs whose decomposed family IS present among the provided entities but whose full tuple matched no entity — disagreements a curator resolves with an alias (the codegen slice emits them as a sorted report).
  • standalone: newly synthesized metadata-only entities for metadata whose family is absent entirely (empty Instances, Sources = [models.dev], Metadata attached).

The join is PURE: the caller's ents slice and its elements are never mutated (every returned entity is a fresh deep copy), and every attached *EntityMetadata is a fresh clone of the source row (never aliasing the meta slice).

Re-attach, never re-create: a metadata row whose identity key already matches a provided entity — including a standalone synthesized on an earlier pass and fed back in — is RE-ATTACHED onto that entity rather than duplicated, so repeated joins over the same metadata set are idempotent (no growing standalone set).

func ParamSizeFor added in v0.2.4

func ParamSizeFor(id ModelID) string

ParamSizeFor returns the canonical parameter-size token (e.g. "70b", "3b", "0.5b") for the model identified by id, or the empty string when no param_size is curated for it. Matching is case-insensitive.

The returned value is the lowercased canonical form (validated by ParseParamSize at load time) suitable for EntityRef.ParamSize.

func ParseDataReady

func ParseDataReady() error

ParseDataReady returns the error (if any) from the one-time initialization of the embedded parse data (JSON files + regex compilation). In a correct build the return value is always nil, because the data files are embedded at compile time and the regexes are validated before any release.

This function is primarily useful for startup self-checks and tests. Production code does not need to call it — ParseFamily degrades gracefully when the load fails (see the fail-closed comment inside ParseFamily).

func ParseFamilyDetailed added in v0.2.0

func ParseFamilyDetailed(raw Family, id ModelID, p Provider) (Family, string, string, []string, *ParseFailure)

ParseFamilyDetailed is the failure-aware companion to ParseFamilyWithVersion. It returns the same three-way decomposition (Family, variant, version) plus an optional *ParseFailure when the parser detects a known incomplete result.

Failure detection covers three modes:

  1. Version digits trapped between family-prefix and variant: "claude-3-5-haiku-20241022" → the 3-5 version digits are not extracted.
  2. Suffix overflow: trailing token beyond expected family/variant/version/date. Sub-cases: ReasonKnownSuffixOverflow (token in modifier allowlist) and ReasonUnknownSuffixOverflow (token not in allowlist — extend allowlist).
  3. YYMM-date-as-version false-positive: a 4-digit numeric segment that looks like a YYMM date (1900–2999 range) but is treated as part of the family/version.

The returned *ParseFailure is an annotation, NOT an error. The function always returns its best-effort family/variant/version values regardless of whether a failure was detected. Callers who need only the parse result can discard the *ParseFailure with _. Callers building an audit log should check failure != nil and accumulate.

Parameters id and p (model ID and provider) are used to populate the failure record fields and are not used in the parse logic itself.

The return order is (family, variant, version, modifier, *ParseFailure). Codegen wiring depends on this exact 5-tuple shape — do NOT reorder.

func ParseParamSize added in v0.2.4

func ParseParamSize(raw string) (string, error)

ParseParamSize canonicalizes a raw parameter-size token into the lowercase form used in EntityRef.ParamSize and ModelInfo.ParamSize (e.g. "70b", "0.5b"). The '#' prefix is NOT part of the returned value; EntityRef.String() adds it.

Canonicalization rules:

  • Input is lowercased.
  • If the lowercased input is not a recognized param-size token shape (as detected by isParamSizeToken), the function returns ("", error) so the caller knows the input was not a valid size token.
  • Empty input returns ("", nil) — no error, no size.

Examples:

ParseParamSize("70B")    → ("70b", nil)
ParseParamSize("0.5b")   → ("0.5b", nil)
ParseParamSize("8x22B")  → ("8x22b", nil)
ParseParamSize("")       → ("", nil)
ParseParamSize("4.5")    → ("", error)  — version token, not a size

func VRAMEstimateIsPartial added in v0.2.4

func VRAMEstimateIsPartial(layers, kvHeads, headDim int) bool

VRAMEstimateIsPartial reports whether the KV-cache term would be excluded from the VRAM estimate because one or more arch-facts are absent (zero).

Caller contract: when baking a QuantVRAM row, the caller (codegen) sets VRAMEstimatePartial = VRAMEstimateIsPartial(layers, kvHeads, headDim) on the row. VRAMEstimatePartial = true means VRAMBytes is a weights-only lower bound and the KV-cache was NOT included. The contextTokens argument is NOT checked here because a zero context with valid arch-facts is a legitimate caller choice (weights-only result by intent); the partial flag is reserved for the case where arch-facts are structurally absent from the source data.

func ValidateDataSourceTable added in v0.2.4

func ValidateDataSourceTable() error

ValidateDataSourceTable loads the curated data-source table and verifies its referential integrity: it returns any load/parse error, and additionally checks that every DatasetIngested.SourceID and every EntitySource.SourceID resolves to a DataSource (URI uniqueness is enforced at parse time in parseDataSourceTable).

Codegen (cmd/bestiary-gen run()) calls this once, alongside ValidateLineageTable and ValidateQuantVRAMTable, and aborts on a non-nil result. Two FK invariants are caught at generation time rather than baking an orphan provenance row:

  • the curated datasources.json is internally sound (no duplicate id/uri, every ingest source_id present in the dimension); and
  • no entity↔source attestation names a source absent from the dimension. The attestation rows come from the registry COMPILED INTO THIS BINARY (the previously generated staticModels), and their SourceIDs come from the attestation rule (models.dev + each row's curated Source). datasources.json is an INDEPENDENT curated file, so this cross-input check is genuinely falsifiable: a Source added to the model curation without a matching datasources.json row is rejected — on the next codegen run after that Source bakes into staticModels.

func ValidateEntitySourceTable added in v0.2.4

func ValidateEntitySourceTable() error

ValidateEntitySourceTable verifies that every EntityKey in the entity↔source join relation resolves to a real registry entity, and surfaces any data-source load error first via ValidateDataSourceTable.

It is deliberately NOT wired into codegen. Unlike the lineage key-resolves guard (which cross-checks an INDEPENDENT curated file against the registry), the entity↔source relation is DERIVED from the registry: loadEntityIndex builds both the relation rows and the entity index from the same scan, so every row's EntityKey is a key of that index by construction and the resolver here cannot fail against the production relation — wiring it into codegen would assert a tautology and misleadingly imply the key FK is enforced at generation. The check is kept as a public, unit-tested guard (its seam, validateEntityKeyFKs, is falsified with a constructed orphan) so it is ready the moment entity↔source rows are sourced INDEPENDENTLY of the entity index (e.g. a curated join file or the SQLite store), at which point the key FK stops being tautological. Until then the genuine codegen FK guard is ValidateDataSourceTable, which cross-checks the independent datasources.json.

func ValidateLineageTable added in v0.2.3

func ValidateLineageTable() error

ValidateLineageTable loads the curated lineage table and returns any load/parse/validation error (nil when the table is well-formed). Codegen calls this once and aborts on a non-nil result so bad curation — an unknown parent family, a malformed entry — is caught at generation time rather than silently dropping lineage at runtime.

func ValidateParamSizePins added in v0.2.6

func ValidateParamSizePins() error

ValidateParamSizePins checks that every curated pin token in param_size_overrides.json is CANONICAL: a non-empty token must round-trip through ParseParamSize to itself (a suppress-pin "" is allowed and skipped). It returns an actionable error naming every offending id -> token pair so a typo (e.g. "17b-16ee") is caught at CODEGEN, before a non-canonical token can ever flow into #size key material. The runtime loader stays graceful (a bad file degrades to an empty map); this is the codegen-time discipline that fences the pin file.

func ValidateQuantVRAMTable added in v0.2.4

func ValidateQuantVRAMTable() error

ValidateQuantVRAMTable loads the curated quant-VRAM table and returns any load/parse/validation error (nil when the table is well-formed). Codegen calls this once and aborts on a non-nil result so bad curation — an unknown quant token, zero weights_bytes, a duplicate model_id, a malformed param_size, an unknown source — is caught at generation time rather than silently producing wrong VRAM estimates at runtime.

Types

type AcceptabilityRating

type AcceptabilityRating int

AcceptabilityRating classifies a Designation by its acceptability status, following ISO 1087 terminology principles.

All designations generated in this epoch default to AcceptabilityAdmitted. Promotion to AcceptabilityPreferred and assignment of AcceptabilityDeprecated are deferred to a follow-up curation epoch.

const (
	// AcceptabilityAdmitted is the default rating. The designation is
	// recognized and may be used, but is not the preferred form.
	AcceptabilityAdmitted AcceptabilityRating = iota

	// AcceptabilityPreferred marks the designation as the recommended form.
	// Currently no designations are promoted to Preferred in this epoch.
	AcceptabilityPreferred

	// AcceptabilityDeprecated marks the designation as no longer recommended.
	// Currently no designations are deprecated in this epoch.
	AcceptabilityDeprecated
)

func (AcceptabilityRating) MarshalJSON

func (r AcceptabilityRating) MarshalJSON() ([]byte, error)

MarshalJSON serializes AcceptabilityRating as a JSON string (e.g. "admitted"). This satisfies the bestiary.schema.json $defs/AcceptabilityRating enum contract, which declares the type as a string — not a number.

func (AcceptabilityRating) String

func (r AcceptabilityRating) String() string

String returns a human-readable label for the rating.

func (*AcceptabilityRating) UnmarshalJSON

func (r *AcceptabilityRating) UnmarshalJSON(b []byte) error

UnmarshalJSON deserializes a JSON string into an AcceptabilityRating. Accepted values: "admitted", "preferred", "deprecated" (case-insensitive). Returns an error if the string is not recognized.

type BenchmarkResult added in v0.2.5

type BenchmarkResult struct {

	// Name is the benchmark name (required upstream, e.g. "MMLU", "GPQA").
	Name string
	// Version is the benchmark version, when the source distinguishes one.
	Version string
	// Variant is the benchmark variant / subtask, when the source distinguishes one.
	Variant string
	// Dataset is the evaluation dataset, when the source names one.
	Dataset string

	// Harness is the evaluation harness / framework used, when the source names one.
	Harness string

	// Metric is the reported metric name (e.g. "accuracy", "pass@1").
	Metric string
	// Score is the numeric score, or 0 when the upstream score is non-numeric
	// (in which case the verbatim value is preserved on ScoreRaw).
	Score float64
	// ScoreRaw is the verbatim upstream score when it is non-numeric (e.g. a
	// string), and empty when Score is numeric. Upstream reports scores as either
	// a number or a string; capturing the raw form here keeps a string score from
	// dropping the row or failing the parse.
	ScoreRaw string

	// SourceURL is the URL of the original claimant (the lab blog or model card).
	// It is named SourceURL rather than Source to avoid colliding with the
	// DataSourceID-typed Source fields on ModelInfo and EntityMetadata: a claim
	// attribution (who reported the score) and an ingest attestation (which data
	// source bestiary read the row from) are different provenance levels and must
	// not share a field name.
	SourceURL string
	// Date is the claim date in YYYY-MM-DD format, when the source gives one.
	Date string
}

BenchmarkResult is one benchmark claim as reported by the publishing organization. Its fields are grouped along the assessment-provenance joints — criterion identity, apparatus, assessment value, and claim attribution — and are NEVER concatenated into a single string, so a future canonical benchmark dimension can join on the separated fields.

These scores are attributed claims by the lab that published the model (a blog post or model card), not independent third-party measurements; callers must treat them as such.

type CanonicalFilter

type CanonicalFilter struct {
	Family  Family
	Variant string
	Version string
	Date    string
}

CanonicalFilter selects models by their parsed canonical axes. Empty fields act as wildcards: an empty Family matches any family, an empty Variant matches any variant, an empty Version matches any version, and an empty Date matches any date. This is the parameter type for Store.QueryByCanonical.

type CanonicalScheme

type CanonicalScheme int

CanonicalScheme identifies the string serialization format for a ModelRef. Callers use it to select how a model identity is expressed as a string, e.g. for CLI output, SBOM generation, or HuggingFace Hub lookups.

const (
	// SchemeCanonical is the default slash-separated canonical form:
	//   <provider>/<family>/<variant>@<date>
	// When no variant is present the variant segment is omitted.
	// Provider-specific representations (e.g. anthropic/claude-opus-4-20250514)
	// may be emitted where the canonical triple lacks sufficient granularity.
	SchemeCanonical CanonicalScheme = iota

	// SchemeHuggingFace produces the HuggingFace Hub form:
	//   <provider>/<raw-id>
	// This matches the repo-id used by the HuggingFace Hub API.
	SchemeHuggingFace

	// SchemePURL produces a Package URL (purl-spec + ECMA-427) form:
	//   pkg:huggingface/<provider>/<raw-id>
	SchemePURL

	// SchemeRaw returns the original API model ID verbatim (string(ModelRef.ID)).
	SchemeRaw
)

func ParseScheme

func ParseScheme(s string) (CanonicalScheme, error)

ParseScheme converts a string to a CanonicalScheme. Accepted values: "canonical", "huggingface", "purl", "raw". Returns an error if the string is not a recognized scheme. Used by CLI flag parsing (--scheme flag in cmd/bestiary).

func (CanonicalScheme) MarshalJSON

func (s CanonicalScheme) MarshalJSON() ([]byte, error)

MarshalJSON serializes CanonicalScheme as a JSON string (e.g. "canonical"). This satisfies the bestiary.schema.json $defs/CanonicalScheme enum contract, which declares the type as a string — not a number.

func (CanonicalScheme) String

func (s CanonicalScheme) String() string

String returns a human-readable name for the scheme. Used in debug output and error messages; not a serialized form.

func (*CanonicalScheme) UnmarshalJSON

func (s *CanonicalScheme) UnmarshalJSON(b []byte) error

UnmarshalJSON deserializes a JSON string into a CanonicalScheme. Accepted values: "canonical", "huggingface", "purl", "raw" (case-insensitive). Returns an error if the string is not recognized.

type Capability

type Capability struct {
	Supported bool
	Config    map[string]string // nil when no extra config
}

Capability represents a model capability that may carry additional configuration. For most capabilities, Supported is the only relevant field. For interleaved, Config may hold additional details (e.g., {"field": "reasoning_details"}).

type CapabilityUnion added in v0.2.3

type CapabilityUnion struct {
	Reasoning        bool
	ToolCall         bool
	Attachment       bool
	Temperature      bool
	StructuredOutput bool
	Interleaved      bool
	OpenWeights      bool
}

CapabilityUnion is the aggregate capability view across all instances of an entity: each boolean is the OR over the corresponding per-instance capability (an entity "supports" a capability if ANY instance does). The zero value (all-false) is the identity-safe default for an entity with no instances.

type Catalog added in v0.2.5

type Catalog struct {
	// Models is the providers view (api.json shape).
	Models []ModelInfo
	// Metadata is the models view (models.json shape).
	Metadata []EntityMetadata
}

Catalog is the parsed catalog.json artifact: the two views models.dev publishes from a single upstream deploy. Models is the providers view (the api.json shape) and Metadata is the models view (the models.json shape).

Catalog is a parser return container, not a serialized public output document, so it is intentionally NOT a $def in bestiary.schema.json; the Go type exists only to carry the two parsed views together.

func ParseCatalogJSON added in v0.2.5

func ParseCatalogJSON(data []byte) (Catalog, error)

ParseCatalogJSON decodes a catalog.json artifact ({models, providers}) into a Catalog. It is the SAME decode path Client.FetchCatalog uses, and is exactly the composition of ParseAPIJSON over the providers value and ParseModelsJSON over the models value — both views come from a single upstream deploy.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client fetches model metadata from the models.dev API. Use NewClient to construct a Client with sensible defaults.

func NewClient

func NewClient(opts ...ClientOption) *Client

NewClient creates a Client with the given options applied on top of defaults. Defaults: 30 s timeout, 2 retries, "https://models.dev/api.json".

func (*Client) FetchCatalog added in v0.2.5

func (c *Client) FetchCatalog(ctx context.Context) (Catalog, error)

FetchCatalog retrieves both catalog views in a single request from the models.dev catalog.json artifact (URL derived as a sibling of the base URL). Its retry, body-limit, and error semantics match FetchModels.

func (*Client) FetchModelMetadata added in v0.2.5

func (c *Client) FetchModelMetadata(ctx context.Context) ([]EntityMetadata, error)

FetchModelMetadata retrieves the provider-agnostic model facts from the models.dev models.json artifact (URL derived as a sibling of the base URL). Its retry, body-limit, and error semantics match FetchModels. Source and LastSynced on each returned EntityMetadata are left zero; the caller assigns them on persist.

func (*Client) FetchModels

func (c *Client) FetchModels(ctx context.Context) ([]ModelInfo, error)

FetchModels retrieves all model metadata from the models.dev api.json artifact. It retries on transient failures (non-2xx responses, network errors, or a malformed body) up to c.retries additional times with linear backoff, honouring ctx between attempts.

On final failure it returns *ErrAPIUnavailable so callers can use errors.As to inspect structured fields.

LastSynced on each returned ModelInfo is left empty; the caller must set it when persisting the results.

func (*Client) FetchModelsByProvider

func (c *Client) FetchModelsByProvider(ctx context.Context, p Provider) ([]ModelInfo, error)

FetchModelsByProvider fetches all models and returns only those from the given provider. It is a convenience wrapper around FetchModels.

type ClientOption

type ClientOption func(*Client)

ClientOption is a functional option for configuring a Client.

func WithBaseURL

func WithBaseURL(url string) ClientOption

WithBaseURL overrides the API endpoint. The default is "https://models.dev/api.json". The models.json and catalog.json artifact URLs are derived from it as siblings, so a test server pointed here via WithBaseURL serves all three artifacts by routing on the request path.

func WithRetries

func WithRetries(n int) ClientOption

WithRetries sets the number of retry attempts after an initial failure. For example, WithRetries(2) means up to 3 total attempts. The default is 2 retries.

func WithTimeout

func WithTimeout(d time.Duration) ClientOption

WithTimeout sets the HTTP request timeout. The default is 30 seconds.

type CostTier added in v0.2.5

type CostTier struct {
	// ContextSize is the token threshold at which this tier's overrides apply.
	ContextSize int
	// TierCost is embedded so its cost fields flatten to the tier level in JSON.
	TierCost
}

CostTier is a context-size-conditional price tier: the TierCost overrides apply once the request context reaches ContextSize tokens. Upstream, a tier's type is always "context", so only the token threshold is modeled here (as ContextSize) and the TierCost bundle is embedded so its cost fields flatten to the tier level in JSON.

The fixed context_over_200k override on ModelInfo and this general tiers list BOTH express context-conditional pricing: context_over_200k is upstream's legacy fixed-threshold special case and CostTier is the general mechanism. They are kept separate for wire fidelity — unifying them would invent data upstream does not assert.

type DataSource added in v0.2.4

type DataSource struct {
	ID            DataSourceID
	URI           string
	CanonicalName string
}

DataSource is the BCNF dimension row for a single originating data source. Its primary key is ID; URI is a second candidate key (each source has a distinct fetch endpoint), so ValidateDataSourceTable enforces URI uniqueness too.

  • ID is the stable DataSourceID (e.g. DataSourceModelsDev).
  • URI is the canonical fetch endpoint (e.g. https://models.dev/api.json).
  • CanonicalName is the human-facing label for display.

func DataSourceByID added in v0.2.4

func DataSourceByID(id DataSourceID) (DataSource, bool)

DataSourceByID returns the DataSource dimension row for id and whether it exists. It is the FK-join entry point used to resolve a SourceID (on a DatasetIngested or EntitySource) to its uri/canonical-name.

func KnownDataSources added in v0.2.4

func KnownDataSources() []DataSource

KnownDataSources returns the curated data-source dimension in curated file order. The result is a fresh slice (callers cannot mutate the cached table). On a load failure it returns nil (graceful degrade), never panicking.

type DataSourceID added in v0.2.4

type DataSourceID string

DataSourceID is the stable identifier for a data source that provides model records to the bestiary registry. The zero value (DataSourceNone, empty string) means "no source recorded" and is the correct default for any row that has not been assigned a source.

This file is the home of the data-source provenance module: the DataSourceID type and well-known source constants; the BCNF provenance types (DataSource dimension, DatasetIngested fact, EntitySource join row); the curated loader for parse/data/datasources.json with its runtime degrade seam; the public lookups (KnownDataSources, DataSourceByID, DatasetIngestedFor, DatasetIngestHistoryFor, EntitySources); and the codegen FK guards (ValidateDataSourceTable, ValidateEntitySourceTable). The entity↔source join relation itself is built by the registry aggregate in registry.go (loadEntityIndex / buildEntitySourceRelation); EntitySources here reads that relation's per-entity projection.

const (
	// DataSourceNone is the zero value: no source recorded for this row.
	DataSourceNone DataSourceID = ""

	// DataSourceModelsDev identifies the models.dev API as the originating
	// data source.
	DataSourceModelsDev DataSourceID = "models.dev"

	// DataSourceOllama identifies the Ollama registry as the originating
	// data source.
	DataSourceOllama DataSourceID = "ollama"
)

func EntitySources added in v0.2.4

func EntitySources(entityKey string) []DataSourceID

EntitySources returns the sorted, de-duplicated DataSourceIDs that attest the entity identified by entityKey (an EntityRef.String() value), or nil when none do. It is the join-table lookup behind Entity.Sources: the projection is read from the registry-built entity↔source relation and is always sorted ascending by DataSourceID for deterministic output.

func SourceFor added in v0.2.4

func SourceFor(id ModelID) DataSourceID

SourceFor returns the DataSourceID for the model identified by id, or DataSourceNone (the empty string) when the model is not in the curated table. Matching is case-insensitive. For curated Ollama data the value is DataSourceOllama.

type DatasetIngested added in v0.2.4

type DatasetIngested struct {
	SourceID     DataSourceID
	IngestedAt   string
	ParserSchema int
}

DatasetIngested records one ingest of a data source. The URI is deliberately ABSENT: it is a transitive dependency (URI depends on SourceID via DataSource), so it is reached by joining to DataSource via SourceID rather than duplicated here — this is the BCNF normalization that removes the transitive dependency.

A source may have MANY DatasetIngested rows: the ingest log is append-only, so a source accumulates one row per distinct ingest instant. The identity of a row is the composite (SourceID, IngestedAt); the CURRENT ingest for a source is the row with the maximum IngestedAt (DatasetIngestedFor), and the full ordered history is DatasetIngestHistoryFor.

  • SourceID is the DataSourceID that was ingested (FK to DataSource).
  • IngestedAt is a COMMITTED snapshot timestamp from datasources.json. It is never computed at load or codegen time — pinning it in the data file is what keeps generated output byte-deterministic across runs.
  • ParserSchema is the curated-data schema version this ingest was parsed under.

func DatasetIngestHistoryFor added in v0.2.5

func DatasetIngestHistoryFor(id DataSourceID) []DatasetIngested

DatasetIngestHistoryFor returns the full ingest history for the source id, sorted ascending by IngestedAt (oldest first), or nil when the source has no ingest rows. The result is a fresh slice (callers cannot mutate the cached table). On a load failure it returns nil (graceful degrade), never panicking. It is the curated-seed counterpart of Store.QueryIngestHistory.

func DatasetIngestedFor added in v0.2.4

func DatasetIngestedFor(id DataSourceID) (DatasetIngested, bool)

DatasetIngestedFor returns the CURRENT DatasetIngested for the source id — the row with the maximum IngestedAt — and whether any ingest exists. The returned value carries NO uri; resolve the uri via DataSourceByID(id) (the BCNF join) when it is needed. Use DatasetIngestHistoryFor for the full ordered history.

type DerivationKind added in v0.2.3

type DerivationKind int

DerivationKind classifies HOW a model was derived from one or more parent models — the edge label on a lineage relationship (see LineageEdge). It is a closed enum: the set of derivation techniques is small and well-understood, so (unlike Host/Provider) a strongly-typed int enum is the right fit.

The zero value is DerivationNone (no derivation / a base model).

const (
	// DerivationNone is the zero value: no derivation relationship (a base model).
	DerivationNone DerivationKind = iota
	// DerivationFinetune: parameters further trained on additional data
	// (e.g. dracarys finetuned from llama).
	DerivationFinetune
	// DerivationMerge: weights combined from two or more parent models. A merge
	// edge set carries >= 2 parents.
	DerivationMerge
	// DerivationDistillation: a smaller/student model trained to mimic a larger
	// teacher model.
	DerivationDistillation
	// DerivationQuantized: a lower-precision copy of a parent model.
	DerivationQuantized
	// DerivationAdapter: a parameter-efficient adapter (e.g. LoRA) applied over
	// a base model.
	DerivationAdapter
)

func (DerivationKind) MarshalText added in v0.2.3

func (k DerivationKind) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler, emitting the canonical wire name (so DerivationKind serializes as a JSON string, not an integer). An out-of-range value is a programming error and yields an actionable error.

func (DerivationKind) String added in v0.2.3

func (k DerivationKind) String() string

String returns the lowercase wire name of the derivation kind. An out-of-range value renders as "derivationkind(<n>)" so logs never silently drop an unexpected value.

func (*DerivationKind) UnmarshalText added in v0.2.3

func (k *DerivationKind) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler, parsing a canonical wire name back into a DerivationKind. Parsing is case-sensitive against the wire names produced by MarshalText, guaranteeing a lossless round-trip. An unrecognized token yields an actionable error listing the valid values.

type Designation

type Designation struct {
	// Value is the serialized model identifier under Scheme.
	Value string

	// Scheme is the serialization scheme used to produce Value.
	Scheme CanonicalScheme

	// Provider is the hosting provider associated with this designation.
	// For cross-scheme designations (e.g. SchemeRaw) the Provider is the
	// original model's hosting provider.
	Provider Provider

	// Rating classifies acceptability. All epoch-generated designations are
	// AcceptabilityAdmitted; promotion is deferred.
	Rating AcceptabilityRating
}

Designation pairs a model identity string with its serialization scheme, hosting provider, and acceptability rating.

A single ModelRef may have multiple Designations: a canonical form, a raw API ID form, and optionally provider-specific alias forms. Each carries an AcceptabilityRating. In this epoch all generated designations default to AcceptabilityAdmitted.

type Entity added in v0.2.3

type Entity struct {
	Ref              EntityRef
	Instances        []ProviderInstance
	Lineage          []LineageEdge
	Providers        []Provider
	Hosts            []Host
	PriceInputRange  [2]*float64
	PriceOutputRange [2]*float64
	ContextRange     [2]int
	MaxOutputRange   [2]int
	Capabilities     CapabilityUnion
	// Sources is a DERIVED, sorted (ascending DataSourceID), de-duplicated read
	// projection of the entity↔source join relation. It is NOT a source of truth —
	// it is a convenience view over the EntitySource join table. For any entity
	// returned by the registry it is always populated (every registry entity attests
	// at least the models.dev origin); it is nil only on a hand-constructed Entity
	// value that never went through the registry aggregate.
	Sources []DataSourceID
	// Metadata is the provider-agnostic model facts (description, license, links,
	// benchmark claims) joined to this entity from the models.dev models.json
	// side. It is a pointer because metadata is genuinely optional: nil when no
	// EntityMetadata was joined to this identity. When present it is owned by the
	// Entity value and is deep-copied on read alongside the other entity fields.
	Metadata *EntityMetadata
}

Entity is a model identity (Ref) together with every provider/host instance that serves it and the aggregate views derived from those instances. It is the unit returned by Entities() / EntityByTuple().

Range fields summarize the instances:

  • PriceInputRange / PriceOutputRange: [min,max] over the NON-nil instance costs only; when every instance cost is nil the range is {nil,nil} (no nil-deref, no spurious zero). Indices: [0]=min, [1]=max.
  • ContextRange / MaxOutputRange: [min,max] over instance context/max-output.

func AttachEntityMetadata added in v0.2.5

func AttachEntityMetadata(ents []Entity, meta []EntityMetadata) []Entity

AttachEntityMetadata runs the same join over the provided entities and metadata set and returns the attached entities followed by any newly synthesized standalone entities. It is pure (no store access; inputs never mutated) and re-attaches existing standalones instead of duplicating them, so a second call with the same metadata set yields the same result with no growing standalone tail.

The unlinked disagreements are intentionally not returned here — this is the CLI overlay entry point, where an unmatched-but-family-known metadata id is simply not surfaced. Callers that need the unlinked report (codegen) call JoinEntityMetadata.

func Entities added in v0.2.3

func Entities() []Entity

Entities returns every model entity in the static registry, each with its instances and aggregate views populated. The slice is ordered deterministically by first-seen entity key.

The result is a DEFENSIVE DEEP COPY: every returned Entity (and all of its slices and price pointers) is independent of the memoized registry index and of every other returned Entity. Mutating a returned value can never corrupt the registry or alias another entity.

func EntityByTuple added in v0.2.3

func EntityByTuple(family Family, variant, version, paramSize string, identityModifiers ...string) (Entity, bool)

EntityByTuple looks up a single entity by its identity tuple: family, variant, version, paramSize, and any identity-class modifiers. The bool reports whether a matching entity exists. Lookup is by EntityRef.String() equality, so the modifier arguments are order-independent.

paramSize is the canonical parameter-size token (e.g. "70b", "8b"), or "" when size is unknown. A non-empty paramSize produces a #-segment in the lookup key, distinguishing sized entities (e.g. "llama@3.3#70b{instruct}") from entities with no curated size ("llama@3.3{instruct}").

The supplied modifiers are passed through EntityModifiers(_, family), the same identity-class projection used to build the index keys: attribute-class tokens are dropped and the remainder canonicalized, so a caller need not pre-filter. The returned Entity is a defensive deep copy (see Entities).

func (Entity) Ancestors added in v0.2.3

func (e Entity) Ancestors() []EntityRef

Ancestors returns the transitive set of parent EntityRefs reachable from this entity's lineage, via a cycle-safe depth-first traversal of the curated derivation DAG. The first hop comes from the entity's own Lineage edges (as populated at codegen); deeper hops follow the curated forward index. When the entity carries no edges directly, the curated index keyed by its Ref seeds the traversal — exact (sized) key first, then the size-stripped key so a size-agnostic curated edge is inherited by every sized sibling (see forwardSeed). A cycle never loops.

func (Entity) Descendants added in v0.2.3

func (e Entity) Descendants() []EntityRef

Descendants returns the transitive set of child EntityRefs derived (directly or indirectly) from this entity, via a cycle-safe depth-first traversal of the curated derivation DAG's reverse edges. The root lookup is exact (sized) key first, then the size-stripped key so a size-agnostic parent edge yields descendants for every sized sibling (see reverseRootKey).

type EntityMetadata added in v0.2.5

type EntityMetadata struct {
	// MetadataID is the stable models.dev metadata key (e.g. "zhipuai/glm-4.6").
	MetadataID MetadataID
	// Name is the display name.
	Name string
	// Description is the model description.
	Description string
	// License is the license identifier or name.
	License string
	// Links are the model's reference links; upstream weights[] rows fold in with
	// Type == LinkWeights. nil when the source lists none.
	Links []ModelLink
	// Benchmarks are the lab-reported benchmark claims. nil when the source lists none.
	Benchmarks []BenchmarkResult
	// Source is the ingest attestation — the data source this metadata was read
	// from (DataSourceModelsDev). It is DataSourceNone on a value that has not
	// been assigned a source.
	Source DataSourceID
	// LastSynced is an RFC3339 timestamp; empty on baked rows until a sync occurs.
	LastSynced string

	// RawFamily is the upstream models.json `family` value verbatim (e.g. "gemini",
	// "nemotron") — the SAME raw-family signal the catalog enrichment pipeline feeds
	// to ParseFamilyDetailed. It is internal provenance used ONLY to key the
	// metadata<->entity join's family-PRESENCE gate off the same canonicalization the
	// catalog side uses, so an over-captured compound family (e.g. "gemini-omni" from
	// the id-only decomposition) is not mistaken for an absent family and wrongly
	// synthesized as a standalone. It is NOT part of the public JSON contract
	// (json:"-") — the entity KEY is still the mechanical decomposition — but it IS
	// persisted by the store (entity_metadata.raw_family) and round-trips through
	// UpsertEntityMetadata / QueryEntityMetadata, so a synced/cached row keeps the same
	// signal the baked rows carry. It is empty ("") only for a value that never had one:
	// a legacy pre-column cache row until it is re-synced, or a hand-constructed
	// EntityMetadata; the presence gate falls back to the mechanical family in that case.
	RawFamily Family `json:"-"`
}

EntityMetadata holds the provider-agnostic model facts models.dev publishes on its models.json side: description, license, reference links, and lab-reported benchmark claims, keyed by the stable MetadataID.

It carries NO status field: status is not present in models.json — it is an api.json / instance-level fact and lives on ModelInfo only. A single EntityMetadata attaches to at most one Entity (Entity.Metadata); the join is computed at load time by the metadata↔entity adapter.

func MergeEntityMetadata added in v0.2.5

func MergeEntityMetadata(static, cached []EntityMetadata) []EntityMetadata

MergeEntityMetadata merges baked (static) and cached entity-metadata lists, deduplicating by MetadataID. When both sources carry the same MetadataID the row with the more recent LastSynced timestamp wins; since LastSynced is an RFC3339 string, lexicographic comparison correctly orders recency and a baked row (empty LastSynced) always loses to any synced row.

The result has UNION semantics (the MergeModels precedent): a MetadataID present in only one source is always retained — in particular a BAKED-ONLY row (never re-synced) SURVIVES a sync of a disjoint set. Output is sorted ascending by MetadataID for deterministic ordering.

func ParseModelsJSON added in v0.2.5

func ParseModelsJSON(data []byte) ([]EntityMetadata, error)

ParseModelsJSON decodes a models.json artifact (provider-agnostic model facts, keyed by canonical <lab>/<model> id) into the public EntityMetadata slice. It is the SAME decode path Client.FetchModelMetadata uses. A malformed benchmark score (a JSON string) is captured per row on ScoreRaw and never fails the parse; no row is dropped. Source and LastSynced are left zero — the caller assigns ingest provenance.

type EntityRef added in v0.2.3

type EntityRef struct {
	Family    Family
	Variant   string
	Version   string
	ParamSize string   // canonical parameter-size token, e.g. "70b"; empty when unknown
	Modifier  []string // identity-class modifiers only, canonical order
}

EntityRef is the canonical IDENTITY of a model entity — the tuple that determines whether two provider/host instances are "the same model". It is the comparable map key for entity grouping (via EntityRef.String) and doubles as the parent reference in a lineage edge (see LineageEdge).

Identity is (Family, Variant, Version, ParamSize) PLUS the identity-class modifiers in Modifier. Crucially:

  • Version is the IDENTITY version (e.g. "4.5"), NOT a release date. EntityRef deliberately has NO Date field: a date is a per-release attribute, not part of identity. Do not conflate EntityRef's "@version" with formatCanonical's "@date".
  • ParamSize is the canonical parameter-size token (e.g. "70b", "8b"). It is part of entity identity because "llama@3.3#70b{instruct}" and "llama@3.3#8b{instruct}" are distinct models. Empty when size is unknown.
  • Modifier holds ONLY identity-class modifiers (see EntityModifiers / ClassifyModifier). Attribute-class modifiers and per-instance attributes (host, price, quant, …) are NEVER part of EntityRef and NEVER appear in the key string.

Because Modifier is a slice, an EntityRef value is not itself comparable and cannot be used directly as a map key; use EntityRef.String() as the key.

func (EntityRef) String added in v0.2.3

func (r EntityRef) String() string

String returns the canonical comparable key for this entity:

family[/variant][@version][#paramsize]{identity-mods}

Rules:

  • "/variant" is appended only when Variant is non-empty.
  • "@version" is appended only when Version is non-empty (this is the IDENTITY version, never a date).
  • "#paramsize" is appended only when ParamSize is non-empty. It is placed AFTER @version and BEFORE {identity-mods}. The '#' sentinel was chosen because it does not collide with any existing segment character. When ParamSize is empty, the segment is OMITTED ENTIRELY so every existing key remains byte-identical to its pre-paramsize value.
  • "{identity-mods}" is appended only when at least one identity modifier is present; the tokens are de-duplicated and rendered in canonical order (CanonicalizeModifiers), comma-separated. The braces are OMITTED entirely when there are no identity modifiers.
  • The "[attributes]" segment is NEVER part of this key (attributes do not affect identity).

Two EntityRefs whose Modifier slices are permutations of the same identity-mod set produce the IDENTICAL key.

type EntitySource added in v0.2.4

type EntitySource struct {
	EntityKey string
	SourceID  DataSourceID
}

EntitySource is one row of the BCNF join table relating an entity to a data source that attests it. The primary key is the composite (EntityKey, SourceID); an entity attested by N sources has N rows. EntityKey is an EntityRef.String() value; SourceID is a FK to DataSource.

Attestation rule (the join's existence condition, applied by the registry aggregate in registry.go's loadEntityIndex): every static row attests DataSourceModelsDev — a row whose Source carrier is empty (DataSourceNone) means the models.dev origin is implicit; a row whose Source names a further, distinct source (e.g. ollama) is a models.dev row ENRICHED with that source's data, so it DUAL-attests BOTH DataSourceModelsDev AND that source. Thus a pure models.dev entity has one row {models.dev} and an ollama-enriched entity has two rows {models.dev, ollama}. The same rule is stated at registry.go's aggregate comment and the parse/data/datasources.json _comment.

type ErrAPIUnavailable

type ErrAPIUnavailable struct {
	// URL is the endpoint that was contacted.
	URL string
	// Attempts is how many times the request was tried before giving up.
	Attempts int
	// Cause is the last error returned by the HTTP client.
	Cause error
}

ErrAPIUnavailable is returned when the models.dev API cannot be reached after one or more attempts. Cause holds the underlying network or HTTP error.

Use errors.As to extract structured fields; use Unwrap to inspect the root cause via errors.Is.

func (*ErrAPIUnavailable) Error

func (e *ErrAPIUnavailable) Error() string

Error implements the error interface. Format: "bestiary: API unavailable after <n> attempt(s) at <url>: <cause>"

func (*ErrAPIUnavailable) Unwrap

func (e *ErrAPIUnavailable) Unwrap() error

Unwrap returns the underlying cause so that errors.Is and errors.As can traverse the error chain.

type ErrAmbiguous

type ErrAmbiguous struct {
	// Input is the raw string passed to Resolve.
	Input string
	// Scheme is the CanonicalScheme that was active during resolution.
	Scheme CanonicalScheme
	// Candidates lists all matching ModelRefs, grouped by distinct Canonical.
	Candidates []ModelRef
	// PURLMissedNamespace is set when the PURL namespace (provider segment) had
	// zero matches and a loose-match fallback was performed. The value is the
	// namespace string that missed (e.g. "totally-unknown-ns").
	// Empty when no PURL namespace miss occurred.
	PURLMissedNamespace string
	// RehostProviders is the deduplicated list of providers (in stable first-seen
	// order) that host at least one of the matching models but are NOT the
	// canonical/originating provider for the family. Populated at both ErrAmbiguous
	// construction sites in resolve.go (multi-group case and PURL loose-fallback
	// case). Empty when no rehost providers exist in the match set.
	RehostProviders []Provider
}

ErrAmbiguous is returned by Resolve when the input string matches models with two or more distinct Canonical identities (e.g., "claude" matches claude/opus, claude/sonnet, and claude/haiku simultaneously).

It is distinct from cross-provider hosting: if multiple providers host the same Canonical, Resolve returns []ModelRef with err == nil.

What: the raw input string that triggered the ambiguity. Scheme: the CanonicalScheme used during resolution. Candidates: the list of ModelRefs that matched, one per distinct Canonical. PURLMissedNamespace: when non-empty, identifies the PURL namespace (provider) that had zero matches, triggering a loose-match fallback. (Fix #1)

Use errors.As to extract structured fields. The Error() message names all 6 actionable-error elements per [C-actionable-errors]:

  1. What went wrong (ambiguous input),
  2. Why it happened (multiple distinct canonicals matched),
  3. Where it failed (Resolve),
  4. When it failed (during model lookup / resolution step),
  5. What it means for the caller (the query cannot be resolved unambiguously),
  6. How to fix it (refine input or use --format=raw).

func (*ErrAmbiguous) Error

func (e *ErrAmbiguous) Error() string

Error implements the error interface with an actionable message. All 6 elements from the [C-actionable-errors] constraint are present: What, Why, Where, When, What it means for the caller, and How to fix.

type ErrNotFound

type ErrNotFound struct {
	// What describes the resource kind that was not found (e.g., "model").
	What string
	// Key is the identifier that was searched for (e.g., model ID).
	Key string
}

ErrNotFound is returned when a requested resource cannot be located in the local store or remote API.

What identifies the resource kind (e.g., "model"), and Key is the lookup value that was not found. Use errors.As to extract structured fields.

ErrNotFound has no Unwrap method by design: it is a sentinel-style error with no wrapped cause. Use errors.As to match.

func (*ErrNotFound) Error

func (e *ErrNotFound) Error() string

Error implements the error interface. Format: "bestiary: <what> not found: <key>"

type Family

type Family string

Family identifies the model family from the models.dev API. It is a named string type for type safety, following the same pattern as Provider.

const (
	FamilyHy                Family = "Hy"
	FamilyAgi               Family = "agi"
	FamilyAllenai           Family = "allenai"
	FamilyAlpha             Family = "alpha"
	FamilyAura              Family = "aura"
	FamilyAuto              Family = "auto"
	FamilyBaichuan          Family = "baichuan"
	FamilyBart              Family = "bart"
	FamilyBge               Family = "bge"
	FamilyBigPickle         Family = "big-pickle"
	FamilyCanopylabs        Family = "canopylabs"
	FamilyChutesai          Family = "chutesai"
	FamilyClaude            Family = "claude"
	FamilyClaudeFable       Family = "claude-fable"
	FamilyClaudeHaiku       Family = "claude-haiku"
	FamilyClaudeOpus        Family = "claude-opus"
	FamilyClaudeSonnet      Family = "claude-sonnet"
	FamilyCodestral         Family = "codestral"
	FamilyCodestralEmbed    Family = "codestral-embed"
	FamilyCogito            Family = "cogito"
	FamilyCohereEmbed       Family = "cohere-embed"
	FamilyCommand           Family = "command"
	FamilyCommandA          Family = "command-a"
	FamilyCommandR          Family = "command-r"
	FamilyDallE             Family = "dall-e"
	FamilyDeepSeek          Family = "deepseek"
	FamilyDeepSeekFlash     Family = "deepseek-flash"
	FamilyDeepSeekFlashFree Family = "deepseek-flash-free"
	FamilyDeepSeekThinking  Family = "deepseek-thinking"
	FamilyDevstral          Family = "devstral"
	FamilyDistilbert        Family = "distilbert"
	FamilyElevenlabs        Family = "elevenlabs"
	FamilyErnie             Family = "ernie"
	FamilyFlux              Family = "flux"
	FamilyFugu              Family = "fugu"
	FamilyGemini            Family = "gemini"
	FamilyGeminiEmbedding   Family = "gemini-embedding"
	FamilyGeminiFlash       Family = "gemini-flash"
	FamilyGeminiFlashLite   Family = "gemini-flash-lite"
	FamilyGeminiPro         Family = "gemini-pro"
	FamilyGemma             Family = "gemma"
	FamilyGLM               Family = "glm"
	FamilyGLMAir            Family = "glm-air"
	FamilyGLMFlash          Family = "glm-flash"
	FamilyGLMFree           Family = "glm-free"
	FamilyGLMZ              Family = "glm-z"
	FamilyGlmv              Family = "glmv"
	FamilyGPT               Family = "gpt"
	FamilyGPTCodex          Family = "gpt-codex"
	FamilyGPTCodexMini      Family = "gpt-codex-mini"
	FamilyGPTCodexSpark     Family = "gpt-codex-spark"
	FamilyGPTImage          Family = "gpt-image"
	FamilyGPTLuna           Family = "gpt-luna"
	FamilyGPTMini           Family = "gpt-mini"
	FamilyGPTNano           Family = "gpt-nano"
	FamilyGPTOss            Family = "gpt-oss"
	FamilyGPTPro            Family = "gpt-pro"
	FamilyGPTSol            Family = "gpt-sol"
	FamilyGPTTerra          Family = "gpt-terra"
	FamilyGranite           Family = "granite"
	FamilyGrok              Family = "grok"
	FamilyGrokBuild         Family = "grok-build"
	FamilyGroq              Family = "groq"
	FamilyHermes            Family = "hermes"
	FamilyHunyuan           Family = "hunyuan"
	FamilyHy3               Family = "hy3"
	FamilyHy3Free           Family = "hy3-free"
	FamilyIdeogram          Family = "ideogram"
	FamilyImagen            Family = "imagen"
	FamilyIndictrans        Family = "indictrans"
	FamilyJais              Family = "jais"
	FamilyJamba             Family = "jamba"
	FamilyKatCoder          Family = "kat-coder"
	FamilyKimi              Family = "kimi"
	FamilyKimiFree          Family = "kimi-free"
	FamilyKimiK2            Family = "kimi-k2"
	FamilyKimiThinking      Family = "kimi-thinking"
	FamilyLaguna            Family = "laguna"
	FamilyLing              Family = "ling"
	FamilyLingFlashFree     Family = "ling-flash-free"
	FamilyLiquid            Family = "liquid"
	FamilyLlama             Family = "llama"
	FamilyLongcat           Family = "longcat"
	FamilyLucid             Family = "lucid"
	FamilyLyria             Family = "lyria"
	FamilyM2m               Family = "m2m"
	FamilyMagistral         Family = "magistral"
	FamilyMagistralMedium   Family = "magistral-medium"
	FamilyMagistralSmall    Family = "magistral-small"
	FamilyMai               Family = "mai"
	FamilyMelotts           Family = "melotts"
	FamilyMercury           Family = "mercury"
	FamilyMimo              Family = "mimo"
	FamilyMimoFlashFree     Family = "mimo-flash-free"
	FamilyMimoOmniFree      Family = "mimo-omni-free"
	FamilyMimoProFree       Family = "mimo-pro-free"
	FamilyMimoV2Omni        Family = "mimo-v2-omni"
	FamilyMimoV2Pro         Family = "mimo-v2-pro"
	FamilyMimoV25           Family = "mimo-v2.5"
	FamilyMimoV25Free       Family = "mimo-v2.5-free"
	FamilyMimoV25Pro        Family = "mimo-v2.5-pro"
	FamilyMiniMax           Family = "minimax"
	FamilyMiniMaxFree       Family = "minimax-free"
	FamilyMiniMaxM25        Family = "minimax-m2.5"
	FamilyMiniMaxM27        Family = "minimax-m2.7"
	FamilyMiniMaxM3         Family = "minimax-m3"
	FamilyMiniMaxM3Free     Family = "minimax-m3-free"
	FamilyMinistral         Family = "ministral"
	FamilyMistral           Family = "mistral"
	FamilyMistralEmbed      Family = "mistral-embed"
	FamilyMistralLarge      Family = "mistral-large"
	FamilyMistralMedium     Family = "mistral-medium"
	FamilyMistralNemo       Family = "mistral-nemo"
	FamilyMistralSmall      Family = "mistral-small"
	FamilyMixtral           Family = "mixtral"
	FamilyMmPoly            Family = "mm-poly"
	FamilyModelRouter       Family = "model-router"
	FamilyMorph             Family = "morph"
	FamilyMuse              Family = "muse"
	FamilyNanoBanana        Family = "nano-banana"
	FamilyNemotron          Family = "nemotron"
	FamilyNemotronFree      Family = "nemotron-free"
	FamilyNorth             Family = "north"
	FamilyNorthFree         Family = "north-free"
	FamilyNousresearch      Family = "nousresearch"
	FamilyNova              Family = "nova"
	FamilyNovaLite          Family = "nova-lite"
	FamilyNovaMicro         Family = "nova-micro"
	FamilyNovaPro           Family = "nova-pro"
	FamilyO                 Family = "o"
	FamilyOMini             Family = "o-mini"
	FamilyOPro              Family = "o-pro"
	FamilyOsmosis           Family = "osmosis"
	FamilyPalmyra           Family = "palmyra"
	FamilyPhi               Family = "phi"
	FamilyPixtral           Family = "pixtral"
	FamilyPlamo             Family = "plamo"
	FamilyQvq               Family = "qvq"
	FamilyQwen              Family = "qwen"
	FamilyQwenFree          Family = "qwen-free"
	FamilyQwen35            Family = "qwen3.5"
	FamilyQwen36            Family = "qwen3.6"
	FamilyQwen37Max         Family = "qwen3.7-max"
	FamilyQwen37Plus        Family = "qwen3.7-plus"
	FamilyQwerky            Family = "qwerky"
	FamilyRay               Family = "ray"
	FamilyRecraft           Family = "recraft"
	FamilyReka              Family = "reka"
	FamilyRing              Family = "ring"
	FamilyRing1TFree        Family = "ring-1t-free"
	FamilyRnj               Family = "rnj"
	FamilyRunway            Family = "runway"
	FamilySarvam            Family = "sarvam"
	FamilySeed              Family = "seed"
	FamilySmartTurn         Family = "smart-turn"
	FamilySolarMini         Family = "solar-mini"
	FamilySolarPro          Family = "solar-pro"
	FamilySonar             Family = "sonar"
	FamilySonarDeepResearch Family = "sonar-deep-research"
	FamilySonarPro          Family = "sonar-pro"
	FamilySonarReasoning    Family = "sonar-reasoning"
	FamilySora              Family = "sora"
	FamilyStableDiffusion   Family = "stable-diffusion"
	FamilyStep              Family = "step"
	FamilyTako              Family = "tako"
	FamilyTextEmbedding     Family = "text-embedding"
	FamilyTitanEmbed        Family = "titan-embed"
	FamilyTopazlabs         Family = "topazlabs"
	FamilyTrinity           Family = "trinity"
	FamilyTrinityMini       Family = "trinity-mini"
	FamilyUnsloth           Family = "unsloth"
	FamilyV0                Family = "v0"
	FamilyVenice            Family = "venice"
	FamilyVeo               Family = "veo"
	FamilyVoxtral           Family = "voxtral"
	FamilyVoyage            Family = "voyage"
	FamilyWhisper           Family = "whisper"
	FamilyYi                Family = "yi"
)
const (
	FamilyMythologic Family = "mythologic"
	FamilyHuginn     Family = "huginn"
)

FamilyMythologic and FamilyHuginn are the two parent base families of the MythoMax-L2-13B merge. MythoMax is a weight merge of MythoLogic-L2 and Huginn, so the merge edge carries these as STANDALONE parent families (not as llama-variants): the parents are distinct artifacts in their own right, and a merge by definition combines >= 2 separate parents. Neither is emitted by the API as a base family value, so both are registered here so lineage parent-validation recognizes them.

const FamilySolar Family = "solar"

FamilySolar is the curated base family for Upstage's SOLAR models. The models.dev API never emits a bare "solar" family value — only the variant-qualified solar-mini / solar-pro reach allFamilies (families_gen.go) — yet the base family is needed as a valid lineage derivation PARENT (a SOLAR finetune names "solar" as its base). It is registered here as a hand-curated supplement to the generated set; see curatedBaseFamilies.

func Families

func Families() []Family

Families returns all known Family values as a defensive copy.

func InferFamilyFromID

func InferFamilyFromID(id ModelID, p Provider) Family

InferFamilyFromID is the empty-family fallback for models whose API family field is empty (~25% of models). It uses the model ID as a heuristic signal.

Algorithm:

  1. Split id on "-".
  2. Consume trailing tokens that are purely version-like (all digits, or match a version pattern) — these are noise, not signal.
  3. Take the first remaining token as the inferred family.
  4. Return "" when no alphabetic-leading token is found.

The provider parameter is reserved for future provider-specific heuristics and is not currently used.

func InferFamilyFromIDWithVariant added in v0.2.0

func InferFamilyFromIDWithVariant(id ModelID, p Provider) (Family, string, string)

InferFamilyFromIDWithVariant is the extended empty-family fallback for models whose API family field is empty (~25% of models). Unlike InferFamilyFromID, it extracts (Family, Variant, Version) by:

  1. Attempting the Δ2′ modifier-strip path: tentatively strip a trailing modifier to expose a hidden date, then decompose and apply two commit guards.
  2. Existing flow: strip trailing date, feed ID to ParseFamilyWithVersion, then fall back to first-token-only if no decomposition found.

This ensures (Family, Variant, Version) is consistent across providers regardless of whether raw_family is empty or populated.

Examples:

InferFamilyFromIDWithVariant("claude-opus-4-5-20251101", "nano-gpt") → ("claude", "opus", "4.5")
InferFamilyFromIDWithVariant("claude-opus-4-6", "some-provider")    → ("claude", "opus", "4.6")
InferFamilyFromIDWithVariant("gpt-4o", "openai")                    → ("gpt", "", "4o")
InferFamilyFromIDWithVariant("claude-opus-4-1-20250805-thinking", "302ai") → ("claude", "opus", "4.1")

The provider parameter is reserved for future provider-specific heuristics and is not currently used.

this is a thin wrapper that applies the letter-prefix series split to the inner inference result, so the empty-raw primitive is SELF-CONSISTENT with the canonical ParseFamilyDetailed path (kimi-k2 → (kimi,k,2), minimax-m1 → (minimax,m,1), and the compound-family recovery kimi-k2-0905 → kimi).

func ParseFamily

func ParseFamily(raw Family) (Family, string)

ParseFamily takes a raw API family value and returns (Family, variant).

Resolution order (first match wins):

  1. family_overrides table — explicit (raw → Family, variant) mappings.
  2. Versioned-variant patterns — v/k/m/no-prefix and hyphen-separated versions. For hyphen-version matches, the non-numeric prefix is itself resolved via overrides.
  3. Suffix-stripping table — strip the longest matching suffix to identify variant.
  4. Fallback — return (raw, "") unchanged.

ParseFamily is deterministic: the same input always produces the same output. Empty raw returns ("", "").

func ParseFamilyWithVersion added in v0.2.0

func ParseFamilyWithVersion(raw Family) (Family, string, string)

ParseFamilyWithVersion takes a raw API family value and returns (Family, variant, version) — a three-way decomposition that separates the semantic model version (e.g. "4.5") from the variant (e.g. "opus").

This is an additive companion to ParseFamily. For inputs that ParseFamily already handles correctly (overrides, v/k/m/no-prefix patterns, suffix stripping), the family and variant return values are identical to ParseFamily. The new third return value extracts the numeric version component when the raw family string embeds one via the hyphen-version pattern or a dot-version tail (e.g. "gemini-2.5-flash").

Resolution order (first match wins):

  1. family_overrides table — no version for override entries.
  2. hyphen-version pattern — converts hyphenated digits to dot notation: "claude-opus-4-5" → (claude, opus, 4.5); "llama-3-1" → (llama, "", 3.1).
  3. Other versioned patterns (v/k/m/no-prefix) — version stays in variant, version="".
  4. Suffix stripping + dot-version detection: "gemini-2.5-flash" → suffix strip yields base="gemini-2.5"; detect "-N.M" tail → (gemini, flash, 2.5).
  5. Dot-version fallback: "gemini-2.5" → (gemini, "", 2.5).
  6. Pure fallback — same as ParseFamily, version="".

ParseFamilyWithVersion is deterministic. Empty raw returns ("", "", "").

func (Family) CanonicalProvider added in v0.2.0

func (f Family) CanonicalProvider() Provider

CanonicalProvider returns the originating/canonical provider for this Family.

When the family is a well-known model family with a clear original publisher, the canonical provider is returned. When the family has no canonical mapping (community models, multi-org models, or unmapped families), the empty Provider is returned. Resolve falls back to ErrAmbiguous in that case.

The mapping is a static switch populated at source time. Unknown families use the empty string sentinel rather than a wrong-but-plausible guess.

TODO: review and fill in additional canonical-provider mappings beyond the initial well-known set.

func (Family) IsKnown

func (f Family) IsKnown() bool

IsKnown reports whether f is a recognized Family. The known set is generated from the models.dev API at codegen time (allFamilies, families_gen.go) plus the hand-curated curatedBaseFamilies supplement (base families the API omits but that lineage / canonical references depend on, e.g. "solar").

func (Family) MarshalText

func (f Family) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It is permissive: any Family value (known or unknown) can be marshaled.

func (Family) String

func (f Family) String() string

String returns the string representation of the family.

func (*Family) UnmarshalText

func (f *Family) UnmarshalText(b []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It is permissive: any byte slice is accepted; use IsKnown() to validate.

type Harness

type Harness string

Harness identifies the coding tool or AI-assisted development environment that is driving the model interaction.

const (
	HarnessClaudeCode  Harness = "claude-code"
	HarnessGeminiCLI   Harness = "gemini-cli"
	HarnessCodex       Harness = "codex"
	HarnessOpenCode    Harness = "opencode"
	HarnessCursor      Harness = "cursor"
	HarnessAntigravity Harness = "antigravity"
)

func Harnesses

func Harnesses() []Harness

Harnesses returns all known Harness values. The returned slice is a defensive copy — modifying it does not affect the package state.

func (Harness) IsKnown

func (h Harness) IsKnown() bool

IsKnown reports whether h is one of the six declared Harness constants.

func (Harness) MarshalText

func (h Harness) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (Harness) String

func (h Harness) String() string

String returns the string representation of the harness.

func (*Harness) UnmarshalText

func (h *Harness) UnmarshalText(b []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It accepts any string value; use IsKnown() to validate.

type Host added in v0.2.3

type Host string

Host identifies the serving host / backend infrastructure that actually runs a model instance, as distinct from the Provider (the organization that offers or sells access to it). The same logical model+provider may be served from different backends (e.g. an OpenAI model served via Azure), and the same host may back many providers. Host is therefore a per-instance ATTRIBUTE: it never participates in entity identity (see EntityRef) and is rendered in the "[attributes]" segment of a canonical string, never in the "{identity-mods}" key segment.

Host is a string type (not a closed int enum) for the same reason Provider is: the set of serving backends is open and grows over time. Well-known hosts have named constants for type-safe call sites; unrecognized hosts are still representable verbatim. ModelInfo.Host is populated by DetectHost, which matches a model ID against the curated host-prefix table (parse/data/hosts.json); an unrecognized or absent prefix yields HostNone.

const (
	// HostNone is the zero value: the serving host is unknown or unspecified.
	// A genuine "no distinct host" record (e.g. a provider serving its own
	// model directly) is also represented as HostNone.
	HostNone Host = ""
	// HostAzure is Microsoft Azure (e.g. Azure OpenAI / Azure AI Foundry).
	HostAzure Host = "azure"
	// HostAWS is Amazon Web Services (e.g. Bedrock / SageMaker).
	HostAWS Host = "aws"
	// HostGCP is Google Cloud Platform (e.g. Vertex AI).
	HostGCP Host = "gcp"
	// HostCloudflare is Cloudflare (e.g. Workers AI).
	HostCloudflare Host = "cloudflare"
)

func (Host) IsKnown added in v0.2.3

func (h Host) IsKnown() bool

IsKnown reports whether h is one of the named Host constants (excluding HostNone). Unrecognized non-empty hosts return false but remain valid Host values — callers that need to accept any backend should not gate on IsKnown.

type InputFormat added in v0.2.0

type InputFormat string

InputFormat specifies the input scheme for parsing a model identity string in the bestiary show command.

The default is InputFormatPeasant (bestiary canonical form). Other formats must be explicitly selected via --format on the CLI.

const (
	// InputFormatPeasant is the bestiary canonical form:
	//   [<provider>/]<family>[/<variant>[/<version>]][@<date>]
	// This is the default input format.
	InputFormatPeasant InputFormat = "peasant"

	// InputFormatHuggingFace is the HuggingFace Hub form:
	//   <provider>/<raw-model-id>
	InputFormatHuggingFace InputFormat = "huggingface"

	// InputFormatPURL is the Package URL (PURL) form:
	//   pkg:huggingface/<provider>/<raw-model-id>
	InputFormatPURL InputFormat = "purl"

	// InputFormatRaw is the raw API model ID (exact match):
	//   <raw-model-id>
	InputFormatRaw InputFormat = "raw"
)

func ParseInputFormat added in v0.2.0

func ParseInputFormat(s string) (InputFormat, error)

ParseInputFormat converts a --format flag string to an InputFormat. Accepted values: "peasant", "huggingface", "hf", "purl", "raw" (case-insensitive). Returns an error if the string is not a recognized input format. Used by CLI flag parsing (--format flag in cmd/bestiary show).

type LineageEdge added in v0.2.3

type LineageEdge struct {
	Parent EntityRef
	Kind   DerivationKind
}

LineageEdge is one directed derivation relationship: this model was derived from Parent via technique Kind. A model with multiple parents (e.g. a MERGE) carries multiple LineageEdges; Parent is a full EntityRef so a parent can be resolved to its own entity (and its own ancestors) for DAG traversal.

func LineageFor added in v0.2.3

func LineageFor(id ModelID) []LineageEdge

LineageFor returns the curated parent derivation edges for the model identified by id, or nil when no lineage is curated for it. It is the population entry point used by codegen to bake ModelInfo.Lineage, and a convenience over LineageRecordFor when the provenance flags are not needed.

type LineageRecord added in v0.2.3

type LineageRecord struct {
	Child EntityRef
	Edges []LineageEdge
	Real  bool
}

LineageRecord is the curated lineage of a single model: the set of parent derivation edges plus the provenance flags that describe how the record was sourced. It is returned by LineageRecordFor.

  • Child is the child model's identity as a node in the derivation DAG (used by Ancestors / Descendants traversal).
  • Edges holds one LineageEdge per parent. A MERGE carries >= 2 edges.
  • Real reports whether the child model exists in the models.dev catalog (an attested record). When false the entry is a SYNTHETIC / catalog-absent fixture: the child itself is not in the catalog (only its parents are), and the edge is curated-only. The flag exists so consumers never mistake a synthetic fixture for an attested catalog lineage.

func LineageRecordFor added in v0.2.3

func LineageRecordFor(id ModelID) (LineageRecord, bool)

LineageRecordFor returns the curated LineageRecord for the model identified by id, and whether one exists. Matching is by the curated child key (the lowercase model ID or its post-'/' segment), so it resolves both bare and namespaced ID forms — and SYNTHETIC / catalog-absent children too (their Real field is false).

type LinkType added in v0.2.5

type LinkType int

LinkType classifies a model reference link (the type tag on a models.json links[] row, and the synthetic tag for a folded-in weights[] row). It is a closed int enum.

The zero value is LinkOther: on this ELEMENT type the upstream type tag is always present (every link arrives with a type), so absence is impossible and a zero value can only mean "the upstream tag was unrecognized". The fail-safe bucket therefore sits at the zero value, and the raw token is carried on ModelLink.TypeRaw. This Other-at-zero convention deliberately differs from ModelStatus's None-at-zero convention; see the file-level comment.

const (
	// LinkOther is the zero value and fail-safe: an unrecognized link type. The
	// raw token is carried on ModelLink.TypeRaw.
	LinkOther LinkType = iota
	// LinkAnnouncement: a launch or announcement post.
	LinkAnnouncement
	// LinkBlog: a blog article.
	LinkBlog
	// LinkDocs: product or API documentation.
	LinkDocs
	// LinkLicense: the model's license text.
	LinkLicense
	// LinkModelCard: a model card (e.g. on a model hub).
	LinkModelCard
	// LinkPaper: a research paper or technical report.
	LinkPaper
	// LinkWeights: a downloadable-weights reference (a folded-in weights[] row).
	LinkWeights
)

func (LinkType) IsKnown added in v0.2.5

func (t LinkType) IsKnown() bool

IsKnown reports whether t is a named constant in this package. LinkOther is considered known (a named member of the enum); only out-of-range integers return false.

func (LinkType) MarshalText added in v0.2.5

func (t LinkType) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler, emitting the canonical wire name (so LinkType serializes as a JSON string, not an integer). An out-of-range value is a programming error and yields an actionable error.

func (LinkType) String added in v0.2.5

func (t LinkType) String() string

String returns the canonical lowercase wire name of the link type. An out-of-range value renders as "linktype(<n>)" so logs never silently drop an unexpected value.

func (*LinkType) UnmarshalText added in v0.2.5

func (t *LinkType) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler, parsing a canonical wire name back into a LinkType. Parsing is case-insensitive. An unrecognized token yields an actionable error.

type MetadataID added in v0.2.5

type MetadataID string

MetadataID is the lab-scoped models.dev metadata key for a model's provider-agnostic facts (e.g. "zhipuai/glm-4.6"). It is the stable upstream key for an EntityMetadata row and is immune to entity re-keying, so the store and the join adapter key metadata by it rather than by an EntityRef.String().

type Modalities

type Modalities struct {
	Input  []Modality
	Output []Modality
}

Modalities groups the input and output modalities supported by a model.

type Modality

type Modality int

Modality represents a type of input or output an AI model can process.

const (
	ModalityText  Modality = iota // "text"
	ModalityImage                 // "image"
	ModalityPDF                   // "pdf"
	ModalityAudio                 // "audio"
	ModalityVideo                 // "video"
)

func (Modality) MarshalText

func (m Modality) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (Modality) String

func (m Modality) String() string

String returns the human-readable name of the modality. For out-of-range values it returns "Modality(<n>)" rather than panicking.

func (*Modality) UnmarshalText

func (m *Modality) UnmarshalText(b []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

type ModelID

type ModelID string

ModelID is the canonical identifier for an AI model (e.g., "claude-3-5-sonnet-20241022").

const (
	Model__302AI__ChatGPT__4o__Latest                                                        ModelID = "chatgpt-4o-latest"
	Model__302AI__Claude__3__5__Haiku__3_5__20241022                                         ModelID = "claude-3-5-haiku-20241022"
	Model__302AI__Claude__3__5__Haiku__3_5__Latest                                           ModelID = "claude-3-5-haiku-latest"
	Model__302AI__Claude__Haiku__4_5                                                         ModelID = "claude-haiku-4-5"
	Model__302AI__Claude__Haiku__4_5__20251001                                               ModelID = "claude-haiku-4-5-20251001"
	Model__302AI__Claude__Opus__4_1__20250805                                                ModelID = "claude-opus-4-1-20250805"
	Model__302AI__Claude__Opus__4_1__Thinking__20250805                                      ModelID = "claude-opus-4-1-20250805-thinking"
	Model__302AI__Claude__Opus__4_5                                                          ModelID = "claude-opus-4-5"
	Model__302AI__Claude__Opus__4_5__20251101                                                ModelID = "claude-opus-4-5-20251101"
	Model__302AI__Claude__Opus__4_5__Thinking__20251101                                      ModelID = "claude-opus-4-5-20251101-thinking"
	Model__302AI__Claude__Opus__4_6                                                          ModelID = "claude-opus-4-6"
	Model__302AI__Claude__Opus__4_6__Thinking                                                ModelID = "claude-opus-4-6-thinking"
	Model__302AI__Claude__Opus__4_7                                                          ModelID = "claude-opus-4-7"
	Model__302AI__Claude__Opus__4__20250514                                                  ModelID = "claude-opus-4-20250514"
	Model__302AI__Claude__Sonnet__4_5                                                        ModelID = "claude-sonnet-4-5"
	Model__302AI__Claude__Sonnet__4_5__20250929                                              ModelID = "claude-sonnet-4-5-20250929"
	Model__302AI__Claude__Sonnet__4_5__Thinking__20250929                                    ModelID = "claude-sonnet-4-5-20250929-thinking"
	Model__302AI__Claude__Sonnet__4_6                                                        ModelID = "claude-sonnet-4-6"
	Model__302AI__Claude__Sonnet__4_6__Thinking                                              ModelID = "claude-sonnet-4-6-thinking"
	Model__302AI__Claude__Sonnet__4__20250514                                                ModelID = "claude-sonnet-4-20250514"
	Model__302AI__DeepSeek__Chat                                                             ModelID = "deepseek-chat"
	Model__302AI__DeepSeek__Reasoner__Thinking                                               ModelID = "deepseek-reasoner"
	Model__302AI__DeepSeek__V3__2                                                            ModelID = "deepseek-v3.2"
	Model__302AI__DeepSeek__V3__2__Thinking                                                  ModelID = "deepseek-v3.2-thinking"
	Model__302AI__Doubao__Seed__1__6__Thinking__250715__1_6__Thinking                        ModelID = "doubao-seed-1-6-thinking-250715"
	Model__302AI__Doubao__Seed__1__6__Vision__250815__1_6__Vision                            ModelID = "doubao-seed-1-6-vision-250815"
	Model__302AI__Doubao__Seed__1__8__251215__1_8                                            ModelID = "doubao-seed-1-8-251215"
	Model__302AI__Doubao__Seed__Code__Preview__251028__PreviewCode                           ModelID = "doubao-seed-code-preview-251028"
	Model__302AI__GLM__4_5                                                                   ModelID = "glm-4.5"
	Model__302AI__GLM__4_6                                                                   ModelID = "glm-4.6"
	Model__302AI__GLM__4_7                                                                   ModelID = "glm-4.7"
	Model__302AI__GLM__4__5__Air__4_5                                                        ModelID = "glm-4.5-air"
	Model__302AI__GLM__4__5__Airx__4_5                                                       ModelID = "glm-4.5-airx"
	Model__302AI__GLM__4__5__X__4_5                                                          ModelID = "glm-4.5-x"
	Model__302AI__GLM__4__5v__4_5                                                            ModelID = "glm-4.5v"
	Model__302AI__GLM__4__6v__4_6                                                            ModelID = "glm-4.6v"
	Model__302AI__GLM__4__7__Flashx__4_7                                                     ModelID = "glm-4.7-flashx"
	Model__302AI__GLM__5                                                                     ModelID = "glm-5"
	Model__302AI__GLM__5_1                                                                   ModelID = "glm-5.1"
	Model__302AI__GLM__5__Turbo                                                              ModelID = "glm-5-turbo"
	Model__302AI__GLM__5v__5__Turbo                                                          ModelID = "glm-5v-turbo"
	Model__302AI__GLM__For__Coding                                                           ModelID = "glm-for-coding"
	Model__302AI__GPT__4_1                                                                   ModelID = "gpt-4.1"
	Model__302AI__GPT__4__1__Mini__4_1                                                       ModelID = "gpt-4.1-mini"
	Model__302AI__GPT__4__1__Nano__4_1                                                       ModelID = "gpt-4.1-nano"
	Model__302AI__GPT__4o                                                                    ModelID = "gpt-4o"
	Model__302AI__GPT__5                                                                     ModelID = "gpt-5"
	Model__302AI__GPT__5_1                                                                   ModelID = "gpt-5.1"
	Model__302AI__GPT__5_1__ChatLatest                                                       ModelID = "gpt-5.1-chat-latest"
	Model__302AI__GPT__5_2                                                                   ModelID = "gpt-5.2"
	Model__302AI__GPT__5_2__ChatLatest                                                       ModelID = "gpt-5.2-chat-latest"
	Model__302AI__GPT__5_4                                                                   ModelID = "gpt-5.4"
	Model__302AI__GPT__5__4__Mini__5_4                                                       ModelID = "gpt-5.4-mini"
	Model__302AI__GPT__5__4__Mini__5_4__20260317                                             ModelID = "gpt-5.4-mini-2026-03-17"
	Model__302AI__GPT__5__4__Nano__5_4                                                       ModelID = "gpt-5.4-nano"
	Model__302AI__GPT__5__4__Nano__5_4__20260317                                             ModelID = "gpt-5.4-nano-2026-03-17"
	Model__302AI__GPT__5__4__Pro__5_4                                                        ModelID = "gpt-5.4-pro"
	Model__302AI__GPT__5__Mini__5                                                            ModelID = "gpt-5-mini"
	Model__302AI__GPT__5__Pro__5                                                             ModelID = "gpt-5-pro"
	Model__302AI__GPT__5__Thinking                                                           ModelID = "gpt-5-thinking"
	Model__302AI__Gemini__2__0__Flash__Lite__2_0                                             ModelID = "gemini-2.0-flash-lite"
	Model__302AI__Gemini__2__5__Flash__2_5                                                   ModelID = "gemini-2.5-flash"
	Model__302AI__Gemini__2__5__Flash__Image__2_5                                            ModelID = "gemini-2.5-flash-image"
	Model__302AI__Gemini__2__5__Flash__Lite__Preview__2_5__Preview__20250926                 ModelID = "gemini-2.5-flash-lite-preview-09-2025"
	Model__302AI__Gemini__2__5__Flash__Nothink__2_5                                          ModelID = "gemini-2.5-flash-nothink"
	Model__302AI__Gemini__2__5__Flash__Preview__2_5__Preview__20250926                       ModelID = "gemini-2.5-flash-preview-09-2025"
	Model__302AI__Gemini__2__5__Pro__2_5                                                     ModelID = "gemini-2.5-pro"
	Model__302AI__Gemini__3__1__Flash__Image__3_1__Preview                                   ModelID = "gemini-3.1-flash-image-preview"
	Model__302AI__Gemini__3__Flash__3__Preview                                               ModelID = "gemini-3-flash-preview"
	Model__302AI__Gemini__3__Pro__3__Preview                                                 ModelID = "gemini-3-pro-preview"
	Model__302AI__Gemini__3__Pro__Image__3__Preview                                          ModelID = "gemini-3-pro-image-preview"
	Model__302AI__Grok__4_1                                                                  ModelID = "grok-4.1"
	Model__302AI__Grok__4_1__ReasoningFast                                                   ModelID = "grok-4-1-fast-reasoning"
	Model__302AI__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                       ModelID = "grok-4-1-fast-non-reasoning"
	Model__302AI__Grok__4__20__Beta__0309__4_20__Reasoning                                   ModelID = "grok-4.20-beta-0309-reasoning"
	Model__302AI__Grok__4__20__Beta__0309__Non__Reasoning__4_20__Non_Reasoning               ModelID = "grok-4.20-beta-0309-non-reasoning"
	Model__302AI__Grok__4__20__Multi__Agent__Beta__0309__4_20                                ModelID = "grok-4.20-multi-agent-beta-0309"
	Model__302AI__Grok__4__Fast__Non__Reasoning__4__Non_Reasoning                            ModelID = "grok-4-fast-non-reasoning"
	Model__302AI__Grok__4__ReasoningFast                                                     ModelID = "grok-4-fast-reasoning"
	Model__302AI__Kimi__K2__0905__2__Preview                                                 ModelID = "kimi-k2-0905-preview"
	Model__302AI__Kimi__K2__2__Thinking                                                      ModelID = "kimi-k2-thinking"
	Model__302AI__Kimi__K2__2__ThinkingTurbo                                                 ModelID = "kimi-k2-thinking-turbo"
	Model__302AI__MiniMax__M1__1                                                             ModelID = "MiniMax-M1"
	Model__302AI__MiniMax__M2__1__2_1                                                        ModelID = "MiniMax-M2.1"
	Model__302AI__MiniMax__M2__2                                                             ModelID = "MiniMax-M2"
	Model__302AI__MiniMax__M2__7__2_7                                                        ModelID = "MiniMax-M2.7"
	Model__302AI__MiniMax__M2__7__2_7__Highspeed                                             ModelID = "MiniMax-M2.7-highspeed"
	Model__302AI__Ministral__14b__2512                                                       ModelID = "ministral-14b-2512"
	Model__302AI__Mistral__Large__2512                                                       ModelID = "mistral-large-2512"
	Model__302AI__Qwen3__235b__A22b__3                                                       ModelID = "qwen3-235b-a22b"
	Model__302AI__Qwen3__235b__A22b__Instruct__2507__3__Instruct                             ModelID = "qwen3-235b-a22b-instruct-2507"
	Model__302AI__Qwen3__30b__A3b__3                                                         ModelID = "qwen3-30b-a3b"
	Model__302AI__Qwen3__Coder__480b__A35b__3__Instruct                                      ModelID = "qwen3-coder-480b-a35b-instruct"
	Model__302AI__Qwen3__Max__3__20250923                                                    ModelID = "qwen3-max-2025-09-23"
	Model__302AI__Qwen__Flash                                                                ModelID = "qwen-flash"
	Model__302AI__Qwen__Max__Latest                                                          ModelID = "qwen-max-latest"
	Model__302AI__Qwen__Plus                                                                 ModelID = "qwen-plus"
	Model__AIHubMix__Alicloud__DeepSeek__V4__Flash                                           ModelID = "alicloud-deepseek-v4-flash"
	Model__AIHubMix__Alicloud__DeepSeek__V4__Pro__Thinking                                   ModelID = "alicloud-deepseek-v4-pro"
	Model__AIHubMix__Alicloud__GLM__5__1                                                     ModelID = "alicloud-glm-5.1"
	Model__AIHubMix__Claude__Opus__4_6                                                       ModelID = "claude-opus-4-6"
	Model__AIHubMix__Claude__Opus__4_6__Think                                                ModelID = "claude-opus-4-6-think"
	Model__AIHubMix__Claude__Opus__4_7                                                       ModelID = "claude-opus-4-7"
	Model__AIHubMix__Claude__Opus__4_7__Think                                                ModelID = "claude-opus-4-7-think"
	Model__AIHubMix__Claude__Opus__4_8                                                       ModelID = "claude-opus-4-8"
	Model__AIHubMix__Claude__Opus__4_8__Think                                                ModelID = "claude-opus-4-8-think"
	Model__AIHubMix__Claude__Sonnet__4_6                                                     ModelID = "claude-sonnet-4-6"
	Model__AIHubMix__Claude__Sonnet__4_6__Think                                              ModelID = "claude-sonnet-4-6-think"
	Model__AIHubMix__Coding__GLM__5__1                                                       ModelID = "coding-glm-5.1"
	Model__AIHubMix__Coding__GLM__5__1__Free                                                 ModelID = "coding-glm-5.1-free"
	Model__AIHubMix__Coding__MiniMax__M2__7__2_7                                             ModelID = "coding-minimax-m2.7"
	Model__AIHubMix__Coding__MiniMax__M2__7__2_7__Highspeed                                  ModelID = "coding-minimax-m2.7-highspeed"
	Model__AIHubMix__Coding__MiniMax__M2__7__Free                                            ModelID = "coding-minimax-m2.7-free"
	Model__AIHubMix__Coding__Xiaomi__Mimo__V2__5__2_5                                        ModelID = "coding-xiaomi-mimo-v2.5"
	Model__AIHubMix__Coding__Xiaomi__Mimo__V2__5__2_5__Pro                                   ModelID = "coding-xiaomi-mimo-v2.5-pro"
	Model__AIHubMix__Deep__DeepSeek__V4__Flash                                               ModelID = "deep-deepseek-v4-flash"
	Model__AIHubMix__Deep__DeepSeek__V4__Pro__Thinking                                       ModelID = "deep-deepseek-v4-pro"
	Model__AIHubMix__Doubao__Seed__2__0__Lite__260428                                        ModelID = "doubao-seed-2-0-lite-260428"
	Model__AIHubMix__Doubao__Seed__2__0__Mini__260428                                        ModelID = "doubao-seed-2-0-mini-260428"
	Model__AIHubMix__Doubao__Seed__2__0__PreviewCode                                         ModelID = "doubao-seed-2-0-code-preview"
	Model__AIHubMix__Doubao__Seed__2__0__Pro                                                 ModelID = "doubao-seed-2-0-pro"
	Model__AIHubMix__GLM__5_2                                                                ModelID = "glm-5.2"
	Model__AIHubMix__GLM__5v__5__Turbo                                                       ModelID = "glm-5v-turbo"
	Model__AIHubMix__GPT__5_1                                                                ModelID = "gpt-5.1"
	Model__AIHubMix__GPT__5_2                                                                ModelID = "gpt-5.2"
	Model__AIHubMix__GPT__5_4                                                                ModelID = "gpt-5.4"
	Model__AIHubMix__GPT__5_5                                                                ModelID = "gpt-5.5"
	Model__AIHubMix__GPT__5__1__Codex__5_1                                                   ModelID = "gpt-5.1-codex"
	Model__AIHubMix__GPT__5__1__Codex__Mini__5_1                                             ModelID = "gpt-5.1-codex-mini"
	Model__AIHubMix__GPT__5__2__Codex__5_2                                                   ModelID = "gpt-5.2-codex"
	Model__AIHubMix__GPT__5__3__Codex__5_3                                                   ModelID = "gpt-5.3-codex"
	Model__AIHubMix__GPT__5__4__Mini__5_4                                                    ModelID = "gpt-5.4-mini"
	Model__AIHubMix__Gemini__2__5__Flash__2_5                                                ModelID = "gemini-2.5-flash"
	Model__AIHubMix__Gemini__2__5__Pro__2_5                                                  ModelID = "gemini-2.5-pro"
	Model__AIHubMix__Gemini__3__1__Flash__Lite__3_1                                          ModelID = "gemini-3.1-flash-lite"
	Model__AIHubMix__Gemini__3__1__Pro__3_1__Preview                                         ModelID = "gemini-3.1-pro-preview"
	Model__AIHubMix__Gemini__3__1__Pro__Preview__Customtools__3_1                            ModelID = "gemini-3.1-pro-preview-customtools"
	Model__AIHubMix__Gemini__3__Flash__3__Preview                                            ModelID = "gemini-3-flash-preview"
	Model__AIHubMix__Grok__4_3                                                               ModelID = "grok-4.3"
	Model__AIHubMix__Kimi__K2__5__2_5                                                        ModelID = "kimi-k2.5"
	Model__AIHubMix__Kimi__K2__6__2_6                                                        ModelID = "kimi-k2.6"
	Model__AIHubMix__MiniMax__M2__7__2_7                                                     ModelID = "minimax-m2.7"
	Model__AIHubMix__Qwen3__6__Flash__3_6                                                    ModelID = "qwen3.6-flash"
	Model__AIHubMix__Qwen3__6__Max__3_6__Preview                                             ModelID = "qwen3.6-max-preview"
	Model__AIHubMix__Qwen3__6__Plus__3_6                                                     ModelID = "qwen3.6-plus"
	Model__AIHubMix__Qwen3__7__Max__3_7                                                      ModelID = "qwen3.7-max"
	Model__AIHubMix__Qwen3__7__Plus__3_7                                                     ModelID = "qwen3.7-plus"
	Model__AIHubMix__Xiaomi__Mimo__V2__5__2_5                                                ModelID = "xiaomi-mimo-v2.5"
	Model__AIHubMix__Xiaomi__Mimo__V2__5__2_5__Pro                                           ModelID = "xiaomi-mimo-v2.5-pro"
	Model__AIHubMix__Xiaomi__Mimo__V2__5__Free                                               ModelID = "xiaomi-mimo-v2.5-free"
	Model__AIHubMix__Xiaomi__Mimo__V2__5__Pro__Free                                          ModelID = "xiaomi-mimo-v2.5-pro-free"
	Model__AIHubMix__Zai__GLM__5__1                                                          ModelID = "zai-glm-5.1"
	Model__AIRouter__GPT__5_4                                                                ModelID = "gpt-5.4"
	Model__AIRouter__GPT__5_5                                                                ModelID = "gpt-5.5"
	Model__AIRouter__GPT__5__6__Luna__5_6                                                    ModelID = "gpt-5.6-luna"
	Model__AIRouter__GPT__5__6__Sol__5_6                                                     ModelID = "gpt-5.6-sol"
	Model__AIRouter__GPT__5__6__Terra__5_6                                                   ModelID = "gpt-5.6-terra"
	Model__Abacus__Claude__3__7__Sonnet__3_7__20250219                                       ModelID = "claude-3-7-sonnet-20250219"
	Model__Abacus__Claude__Fable__5                                                          ModelID = "claude-fable-5"
	Model__Abacus__Claude__Haiku__4_5__20251001                                              ModelID = "claude-haiku-4-5-20251001"
	Model__Abacus__Claude__Opus__4_1__20250805                                               ModelID = "claude-opus-4-1-20250805"
	Model__Abacus__Claude__Opus__4_5__20251101                                               ModelID = "claude-opus-4-5-20251101"
	Model__Abacus__Claude__Opus__4_6                                                         ModelID = "claude-opus-4-6"
	Model__Abacus__Claude__Opus__4_7                                                         ModelID = "claude-opus-4-7"
	Model__Abacus__Claude__Opus__4_8                                                         ModelID = "claude-opus-4-8"
	Model__Abacus__Claude__Opus__4__20250514                                                 ModelID = "claude-opus-4-20250514"
	Model__Abacus__Claude__Sonnet__4_5__20250929                                             ModelID = "claude-sonnet-4-5-20250929"
	Model__Abacus__Claude__Sonnet__4_6                                                       ModelID = "claude-sonnet-4-6"
	Model__Abacus__Claude__Sonnet__4__20250514                                               ModelID = "claude-sonnet-4-20250514"
	Model__Abacus__Claude__Sonnet__5                                                         ModelID = "claude-sonnet-5"
	Model__Abacus__DeepSeek__R1__Thinking                                                    ModelID = "deepseek-ai/DeepSeek-R1"
	Model__Abacus__DeepSeek__V3__1                                                           ModelID = "deepseek/deepseek-v3.1"
	Model__Abacus__DeepSeek__V3__1__Terminus                                                 ModelID = "deepseek-ai/DeepSeek-V3.1-Terminus"
	Model__Abacus__DeepSeek__V3__2                                                           ModelID = "deepseek-ai/DeepSeek-V3.2"
	Model__Abacus__DeepSeek__V4__Flash                                                       ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__Abacus__DeepSeek__V4__Pro__Thinking                                               ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__Abacus__GLM__4_5                                                                  ModelID = "zai-org/GLM-4.5"
	Model__Abacus__GLM__4_6                                                                  ModelID = "zai-org/GLM-4.6"
	Model__Abacus__GLM__4_7                                                                  ModelID = "zai-org/GLM-4.7"
	Model__Abacus__GLM__5                                                                    ModelID = "zai-org/GLM-5"
	Model__Abacus__GLM__5_1                                                                  ModelID = "zai-org/GLM-5.1"
	Model__Abacus__GLM__5_2                                                                  ModelID = "zai-org/GLM-5.2"
	Model__Abacus__GPT__4_1                                                                  ModelID = "gpt-4.1"
	Model__Abacus__GPT__4__1__Mini__4_1                                                      ModelID = "gpt-4.1-mini"
	Model__Abacus__GPT__4__1__Nano__4_1                                                      ModelID = "gpt-4.1-nano"
	Model__Abacus__GPT__4o                                                                   ModelID = "gpt-4o"
	Model__Abacus__GPT__4o__20241120                                                         ModelID = "gpt-4o-2024-11-20"
	Model__Abacus__GPT__4o__Mini                                                             ModelID = "gpt-4o-mini"
	Model__Abacus__GPT__5                                                                    ModelID = "gpt-5"
	Model__Abacus__GPT__5_1                                                                  ModelID = "gpt-5.1"
	Model__Abacus__GPT__5_1__ChatLatest                                                      ModelID = "gpt-5.1-chat-latest"
	Model__Abacus__GPT__5_2                                                                  ModelID = "gpt-5.2"
	Model__Abacus__GPT__5_2__ChatLatest                                                      ModelID = "gpt-5.2-chat-latest"
	Model__Abacus__GPT__5_3__ChatLatest                                                      ModelID = "gpt-5.3-chat-latest"
	Model__Abacus__GPT__5_4                                                                  ModelID = "gpt-5.4"
	Model__Abacus__GPT__5_5                                                                  ModelID = "gpt-5.5"
	Model__Abacus__GPT__5__1__Codex__5_1                                                     ModelID = "gpt-5.1-codex"
	Model__Abacus__GPT__5__1__Codex__Max__5_1                                                ModelID = "gpt-5.1-codex-max"
	Model__Abacus__GPT__5__2__Codex__5_2                                                     ModelID = "gpt-5.2-codex"
	Model__Abacus__GPT__5__3__Codex__5_3                                                     ModelID = "gpt-5.3-codex"
	Model__Abacus__GPT__5__3__Codex__Xhigh__5_3                                              ModelID = "gpt-5.3-codex-xhigh"
	Model__Abacus__GPT__5__4__Mini__5_4                                                      ModelID = "gpt-5.4-mini"
	Model__Abacus__GPT__5__4__Nano__5_4                                                      ModelID = "gpt-5.4-nano"
	Model__Abacus__GPT__5__6__Luna__5_6                                                      ModelID = "gpt-5.6-luna"
	Model__Abacus__GPT__5__6__Sol__5_6                                                       ModelID = "gpt-5.6-sol"
	Model__Abacus__GPT__5__6__Terra__5_6                                                     ModelID = "gpt-5.6-terra"
	Model__Abacus__GPT__5__Codex__5                                                          ModelID = "gpt-5-codex"
	Model__Abacus__GPT__5__Mini__5                                                           ModelID = "gpt-5-mini"
	Model__Abacus__GPT__5__Nano__5                                                           ModelID = "gpt-5-nano"
	Model__Abacus__GPT__Oss__120b                                                            ModelID = "openai/gpt-oss-120b"
	Model__Abacus__Gemini__2__5__Flash__2_5                                                  ModelID = "gemini-2.5-flash"
	Model__Abacus__Gemini__2__5__Flash__Image__2_5                                           ModelID = "gemini-2.5-flash-image"
	Model__Abacus__Gemini__2__5__Pro__2_5                                                    ModelID = "gemini-2.5-pro"
	Model__Abacus__Gemini__3__1__Flash__Image__3_1__Preview                                  ModelID = "gemini-3.1-flash-image-preview"
	Model__Abacus__Gemini__3__1__Flash__Lite__3_1                                            ModelID = "gemini-3.1-flash-lite"
	Model__Abacus__Gemini__3__1__Flash__Lite__3_1__Preview                                   ModelID = "gemini-3.1-flash-lite-preview"
	Model__Abacus__Gemini__3__1__Pro__3_1__Preview                                           ModelID = "gemini-3.1-pro-preview"
	Model__Abacus__Gemini__3__5__Flash__3_5                                                  ModelID = "gemini-3.5-flash"
	Model__Abacus__Gemini__3__Flash__3__Preview                                              ModelID = "gemini-3-flash-preview"
	Model__Abacus__Gemini__3__Pro__Image__3__Preview                                         ModelID = "gemini-3-pro-image-preview"
	Model__Abacus__Gemma__4__31b__It__4                                                      ModelID = "google/gemma-4-31b-it"
	Model__Abacus__Grok__4_3                                                                 ModelID = "grok-4.3"
	Model__Abacus__Grok__4_5                                                                 ModelID = "grok-4.5"
	Model__Abacus__Grok__4__0709__4                                                          ModelID = "grok-4-0709"
	Model__Abacus__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                      ModelID = "grok-4-1-fast-non-reasoning"
	Model__Abacus__Grok__4__Fast__Non__Reasoning__4__Non_Reasoning                           ModelID = "grok-4-fast-non-reasoning"
	Model__Abacus__Grok__Code__Fast__1                                                       ModelID = "grok-code-fast-1"
	Model__Abacus__Kimi__K2__2__TurboPreview                                                 ModelID = "kimi-k2-turbo-preview"
	Model__Abacus__Kimi__K2__5__2_5                                                          ModelID = "kimi-k2.5"
	Model__Abacus__Kimi__K2__6__2_6                                                          ModelID = "moonshotai/Kimi-K2.6"
	Model__Abacus__Llama__3__3__70b__Versatile__3_3                                          ModelID = "llama-3.3-70b-versatile"
	Model__Abacus__Llama__4__Maverick__17B__128E__Instruct__Fp8__4__Instruct                 ModelID = "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"
	Model__Abacus__Meta__Llama__3__1__405B__3_1__TurboInstruct                               ModelID = "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo"
	Model__Abacus__Meta__Llama__3__1__8B__3_1__Instruct                                      ModelID = "meta-llama/Meta-Llama-3.1-8B-Instruct"
	Model__Abacus__Meta__Llama__3__3__70B__3_3__Instruct                                     ModelID = "meta-llama/Meta-Llama-3.3-70B-Instruct"
	Model__Abacus__Mimo__V2__2__Pro                                                          ModelID = "mimo-v2-pro"
	Model__Abacus__MiniMax__M2__7__2_7                                                       ModelID = "MiniMaxAI/MiniMax-M2.7"
	Model__Abacus__MiniMax__M3__3                                                            ModelID = "MiniMaxAI/MiniMax-M3"
	Model__Abacus__Muse__Spark__1_1                                                          ModelID = "muse-spark-1.1"
	Model__Abacus__O3__3                                                                     ModelID = "o3"
	Model__Abacus__O3__3__Mini                                                               ModelID = "o3-mini"
	Model__Abacus__O3__3__Pro                                                                ModelID = "o3-pro"
	Model__Abacus__O4__4__Mini                                                               ModelID = "o4-mini"
	Model__Abacus__Qwen2__5__72B__2_5__Instruct                                              ModelID = "Qwen/Qwen2.5-72B-Instruct"
	Model__Abacus__Qwen3__235B__A22b__Instruct__2507__3__Instruct                            ModelID = "Qwen/Qwen3-235B-A22B-Instruct-2507"
	Model__Abacus__Qwen3__32B__3                                                             ModelID = "Qwen/Qwen3-32B"
	Model__Abacus__Qwen3__6__27B__3_6                                                        ModelID = "Qwen/Qwen3.6-27B"
	Model__Abacus__Qwen3__Coder__480B__A35b__3__Instruct                                     ModelID = "Qwen/Qwen3-Coder-480B-A35B-Instruct"
	Model__Abacus__Qwen3__Max__3                                                             ModelID = "qwen3-max"
	Model__Abacus__Qwen__2__5__Coder__32b__2_5                                               ModelID = "qwen-2.5-coder-32b"
	Model__Abacus__Qwq__32B                                                                  ModelID = "Qwen/QwQ-32B"
	Model__Abacus__Route__LLM                                                                ModelID = "route-llm"
	Model__AbliterationAI__Abliterated__Model                                                ModelID = "abliterated-model"
	Model__AlibabaCN__DeepSeek__R1__0528__Thinking                                           ModelID = "deepseek-r1-0528"
	Model__AlibabaCN__DeepSeek__R1__0528__Thinking__Siliconflow                              ModelID = "siliconflow/deepseek-r1-0528"
	Model__AlibabaCN__DeepSeek__R1__Distill__Llama__70b__Thinking                            ModelID = "deepseek-r1-distill-llama-70b"
	Model__AlibabaCN__DeepSeek__R1__Distill__Llama__8b__Thinking                             ModelID = "deepseek-r1-distill-llama-8b"
	Model__AlibabaCN__DeepSeek__R1__Distill__Qwen__14b                                       ModelID = "deepseek-r1-distill-qwen-14b"
	Model__AlibabaCN__DeepSeek__R1__Distill__Qwen__1__5b                                     ModelID = "deepseek-r1-distill-qwen-1-5b"
	Model__AlibabaCN__DeepSeek__R1__Distill__Qwen__32b                                       ModelID = "deepseek-r1-distill-qwen-32b"
	Model__AlibabaCN__DeepSeek__R1__Distill__Qwen__7b                                        ModelID = "deepseek-r1-distill-qwen-7b"
	Model__AlibabaCN__DeepSeek__R1__Thinking                                                 ModelID = "deepseek-r1"
	Model__AlibabaCN__DeepSeek__V3                                                           ModelID = "deepseek-v3"
	Model__AlibabaCN__DeepSeek__V3__0324                                                     ModelID = "siliconflow/deepseek-v3-0324"
	Model__AlibabaCN__DeepSeek__V3__1                                                        ModelID = "deepseek-v3-1"
	Model__AlibabaCN__DeepSeek__V3__1__Terminus                                              ModelID = "siliconflow/deepseek-v3.1-terminus"
	Model__AlibabaCN__DeepSeek__V3__2                                                        ModelID = "siliconflow/deepseek-v3.2"
	Model__AlibabaCN__DeepSeek__V3__2__Exp__2                                                ModelID = "deepseek-v3-2-exp"
	Model__AlibabaCN__DeepSeek__V4__Flash                                                    ModelID = "deepseek-v4-flash"
	Model__AlibabaCN__DeepSeek__V4__Pro__Thinking                                            ModelID = "deepseek-v4-pro"
	Model__AlibabaCN__GLM__5                                                                 ModelID = "glm-5"
	Model__AlibabaCN__GLM__5_1                                                               ModelID = "glm-5.1"
	Model__AlibabaCN__GLM__5_2                                                               ModelID = "glm-5.2"
	Model__AlibabaCN__Kimi__K2__2__Thinking                                                  ModelID = "kimi-k2-thinking"
	Model__AlibabaCN__Kimi__K2__5__2_5                                                       ModelID = "kimi-k2.5"
	Model__AlibabaCN__Kimi__K2__5__2_5__Kimi                                                 ModelID = "kimi/kimi-k2.5"
	Model__AlibabaCN__Kimi__K2__6__2_6                                                       ModelID = "kimi-k2.6"
	Model__AlibabaCN__MiniMax__M2__5__2_5                                                    ModelID = "MiniMax-M2.5"
	Model__AlibabaCN__MiniMax__M2__7__2_7                                                    ModelID = "MiniMax/MiniMax-M2.7"
	Model__AlibabaCN__Moonshot__Kimi__K2__Instruct                                           ModelID = "moonshot-kimi-k2-instruct"
	Model__AlibabaCN__Qvq__Max                                                               ModelID = "qvq-max"
	Model__AlibabaCN__Qwen2__5__14b__2__Instruct                                             ModelID = "qwen2-5-14b-instruct"
	Model__AlibabaCN__Qwen2__5__32b__2__Instruct                                             ModelID = "qwen2-5-32b-instruct"
	Model__AlibabaCN__Qwen2__5__72b__2__Instruct                                             ModelID = "qwen2-5-72b-instruct"
	Model__AlibabaCN__Qwen2__5__7b__2__Instruct                                              ModelID = "qwen2-5-7b-instruct"
	Model__AlibabaCN__Qwen2__5__Coder__32b__2__Instruct                                      ModelID = "qwen2-5-coder-32b-instruct"
	Model__AlibabaCN__Qwen2__5__Coder__7b__2__Instruct                                       ModelID = "qwen2-5-coder-7b-instruct"
	Model__AlibabaCN__Qwen2__5__Math__72b__2__Instruct                                       ModelID = "qwen2-5-math-72b-instruct"
	Model__AlibabaCN__Qwen2__5__Math__7b__2__Instruct                                        ModelID = "qwen2-5-math-7b-instruct"
	Model__AlibabaCN__Qwen2__5__Omni__7b__2__Omni                                            ModelID = "qwen2-5-omni-7b"
	Model__AlibabaCN__Qwen2__5__Vl__72b__2__Instruct                                         ModelID = "qwen2-5-vl-72b-instruct"
	Model__AlibabaCN__Qwen2__5__Vl__7b__2__Instruct                                          ModelID = "qwen2-5-vl-7b-instruct"
	Model__AlibabaCN__Qwen3__14b__3                                                          ModelID = "qwen3-14b"
	Model__AlibabaCN__Qwen3__235b__A22b__3                                                   ModelID = "qwen3-235b-a22b"
	Model__AlibabaCN__Qwen3__32b__3                                                          ModelID = "qwen3-32b"
	Model__AlibabaCN__Qwen3__5__397b__A17b__3_5                                              ModelID = "qwen3.5-397b-a17b"
	Model__AlibabaCN__Qwen3__5__Flash__3_5                                                   ModelID = "qwen3.5-flash"
	Model__AlibabaCN__Qwen3__5__Plus__3_5                                                    ModelID = "qwen3.5-plus"
	Model__AlibabaCN__Qwen3__6__Flash__3_6                                                   ModelID = "qwen3.6-flash"
	Model__AlibabaCN__Qwen3__6__Max__3_6__Preview                                            ModelID = "qwen3.6-max-preview"
	Model__AlibabaCN__Qwen3__6__Plus__3_6                                                    ModelID = "qwen3.6-plus"
	Model__AlibabaCN__Qwen3__7__Max__3_7                                                     ModelID = "qwen3.7-max"
	Model__AlibabaCN__Qwen3__7__Plus__3_7                                                    ModelID = "qwen3.7-plus"
	Model__AlibabaCN__Qwen3__8b__3                                                           ModelID = "qwen3-8b"
	Model__AlibabaCN__Qwen3__Asr__Flash__3                                                   ModelID = "qwen3-asr-flash"
	Model__AlibabaCN__Qwen3__Coder__30b__A3b__3__Instruct                                    ModelID = "qwen3-coder-30b-a3b-instruct"
	Model__AlibabaCN__Qwen3__Coder__480b__A35b__3__Instruct                                  ModelID = "qwen3-coder-480b-a35b-instruct"
	Model__AlibabaCN__Qwen3__Coder__Flash__3                                                 ModelID = "qwen3-coder-flash"
	Model__AlibabaCN__Qwen3__Coder__Plus__3                                                  ModelID = "qwen3-coder-plus"
	Model__AlibabaCN__Qwen3__Max__3                                                          ModelID = "qwen3-max"
	Model__AlibabaCN__Qwen3__Next__80b__A3b__3__Instruct                                     ModelID = "qwen3-next-80b-a3b-instruct"
	Model__AlibabaCN__Qwen3__Next__80b__A3b__3__Thinking                                     ModelID = "qwen3-next-80b-a3b-thinking"
	Model__AlibabaCN__Qwen3__Omni__Flash__3__Omni                                            ModelID = "qwen3-omni-flash"
	Model__AlibabaCN__Qwen3__Omni__Flash__3__OmniRealtime                                    ModelID = "qwen3-omni-flash-realtime"
	Model__AlibabaCN__Qwen3__Vl__235b__A22b__3                                               ModelID = "qwen3-vl-235b-a22b"
	Model__AlibabaCN__Qwen3__Vl__30b__A3b__3                                                 ModelID = "qwen3-vl-30b-a3b"
	Model__AlibabaCN__Qwen3__Vl__Plus__3                                                     ModelID = "qwen3-vl-plus"
	Model__AlibabaCN__Qwen__Deep__Research                                                   ModelID = "qwen-deep-research"
	Model__AlibabaCN__Qwen__Doc__Turbo                                                       ModelID = "qwen-doc-turbo"
	Model__AlibabaCN__Qwen__Flash                                                            ModelID = "qwen-flash"
	Model__AlibabaCN__Qwen__Long                                                             ModelID = "qwen-long"
	Model__AlibabaCN__Qwen__Math__Plus                                                       ModelID = "qwen-math-plus"
	Model__AlibabaCN__Qwen__Math__Turbo                                                      ModelID = "qwen-math-turbo"
	Model__AlibabaCN__Qwen__Max                                                              ModelID = "qwen-max"
	Model__AlibabaCN__Qwen__Mt__Plus                                                         ModelID = "qwen-mt-plus"
	Model__AlibabaCN__Qwen__Mt__Turbo                                                        ModelID = "qwen-mt-turbo"
	Model__AlibabaCN__Qwen__Omni__Turbo__Omni                                                ModelID = "qwen-omni-turbo"
	Model__AlibabaCN__Qwen__Omni__Turbo__OmniRealtime                                        ModelID = "qwen-omni-turbo-realtime"
	Model__AlibabaCN__Qwen__Plus                                                             ModelID = "qwen-plus"
	Model__AlibabaCN__Qwen__Plus__Character                                                  ModelID = "qwen-plus-character"
	Model__AlibabaCN__Qwen__Turbo                                                            ModelID = "qwen-turbo"
	Model__AlibabaCN__Qwen__Vl__Max                                                          ModelID = "qwen-vl-max"
	Model__AlibabaCN__Qwen__Vl__Ocr                                                          ModelID = "qwen-vl-ocr"
	Model__AlibabaCN__Qwen__Vl__Plus                                                         ModelID = "qwen-vl-plus"
	Model__AlibabaCN__Qwq__32b                                                               ModelID = "qwq-32b"
	Model__AlibabaCN__Qwq__Plus                                                              ModelID = "qwq-plus"
	Model__AlibabaCN__Tongyi__Intent__Detect__V3                                             ModelID = "tongyi-intent-detect-v3"
	Model__AlibabaCodingPlanCN__GLM__4_7                                                     ModelID = "glm-4.7"
	Model__AlibabaCodingPlanCN__GLM__5                                                       ModelID = "glm-5"
	Model__AlibabaCodingPlanCN__Kimi__K2__5__2_5                                             ModelID = "kimi-k2.5"
	Model__AlibabaCodingPlanCN__MiniMax__M2__5__2_5                                          ModelID = "MiniMax-M2.5"
	Model__AlibabaCodingPlanCN__Qwen3__5__Plus__3_5                                          ModelID = "qwen3.5-plus"
	Model__AlibabaCodingPlanCN__Qwen3__6__Flash__3_6                                         ModelID = "qwen3.6-flash"
	Model__AlibabaCodingPlanCN__Qwen3__6__Plus__3_6                                          ModelID = "qwen3.6-plus"
	Model__AlibabaCodingPlanCN__Qwen3__7__Max__3_7                                           ModelID = "qwen3.7-max"
	Model__AlibabaCodingPlanCN__Qwen3__7__Plus__3_7                                          ModelID = "qwen3.7-plus"
	Model__AlibabaCodingPlanCN__Qwen3__Coder__Next__3                                        ModelID = "qwen3-coder-next"
	Model__AlibabaCodingPlanCN__Qwen3__Coder__Plus__3                                        ModelID = "qwen3-coder-plus"
	Model__AlibabaCodingPlanCN__Qwen3__Max__3__20260123                                      ModelID = "qwen3-max-2026-01-23"
	Model__AlibabaCodingPlan__GLM__4_7                                                       ModelID = "glm-4.7"
	Model__AlibabaCodingPlan__GLM__5                                                         ModelID = "glm-5"
	Model__AlibabaCodingPlan__Kimi__K2__5__2_5                                               ModelID = "kimi-k2.5"
	Model__AlibabaCodingPlan__MiniMax__M2__5__2_5                                            ModelID = "MiniMax-M2.5"
	Model__AlibabaCodingPlan__Qwen3__5__Plus__3_5                                            ModelID = "qwen3.5-plus"
	Model__AlibabaCodingPlan__Qwen3__6__Flash__3_6                                           ModelID = "qwen3.6-flash"
	Model__AlibabaCodingPlan__Qwen3__6__Plus__3_6                                            ModelID = "qwen3.6-plus"
	Model__AlibabaCodingPlan__Qwen3__7__Max__3_7                                             ModelID = "qwen3.7-max"
	Model__AlibabaCodingPlan__Qwen3__7__Plus__3_7                                            ModelID = "qwen3.7-plus"
	Model__AlibabaCodingPlan__Qwen3__Coder__Next__3                                          ModelID = "qwen3-coder-next"
	Model__AlibabaCodingPlan__Qwen3__Coder__Plus__3                                          ModelID = "qwen3-coder-plus"
	Model__AlibabaCodingPlan__Qwen3__Max__3__20260123                                        ModelID = "qwen3-max-2026-01-23"
	Model__AlibabaTokenPlanCN__DeepSeek__V3__2                                               ModelID = "deepseek-v3.2"
	Model__AlibabaTokenPlanCN__DeepSeek__V4__Flash                                           ModelID = "deepseek-v4-flash"
	Model__AlibabaTokenPlanCN__DeepSeek__V4__Pro__Thinking                                   ModelID = "deepseek-v4-pro"
	Model__AlibabaTokenPlanCN__GLM__5                                                        ModelID = "glm-5"
	Model__AlibabaTokenPlanCN__GLM__5_1                                                      ModelID = "glm-5.1"
	Model__AlibabaTokenPlanCN__GLM__5_2                                                      ModelID = "glm-5.2"
	Model__AlibabaTokenPlanCN__Kimi__K2__5__2_5                                              ModelID = "kimi-k2.5"
	Model__AlibabaTokenPlanCN__Kimi__K2__6__2_6                                              ModelID = "kimi-k2.6"
	Model__AlibabaTokenPlanCN__Kimi__K2__7__2_7__Code                                        ModelID = "kimi-k2.7-code"
	Model__AlibabaTokenPlanCN__MiniMax__M2__5__2_5                                           ModelID = "MiniMax-M2.5"
	Model__AlibabaTokenPlanCN__Qwen3__6__Flash__3_6                                          ModelID = "qwen3.6-flash"
	Model__AlibabaTokenPlanCN__Qwen3__6__Plus__3_6                                           ModelID = "qwen3.6-plus"
	Model__AlibabaTokenPlanCN__Qwen3__7__Max__3_7                                            ModelID = "qwen3.7-max"
	Model__AlibabaTokenPlanCN__Qwen3__7__Plus__3_7                                           ModelID = "qwen3.7-plus"
	Model__AlibabaTokenPlanCN__Qwen__Image__2_0                                              ModelID = "qwen-image-2.0"
	Model__AlibabaTokenPlanCN__Qwen__Image__2__0__Pro__2_0                                   ModelID = "qwen-image-2.0-pro"
	Model__AlibabaTokenPlanCN__Wan2__7__Image                                                ModelID = "wan2.7-image"
	Model__AlibabaTokenPlanCN__Wan2__7__Image__Pro                                           ModelID = "wan2.7-image-pro"
	Model__AlibabaTokenPlan__DeepSeek__V3__2                                                 ModelID = "deepseek-v3.2"
	Model__AlibabaTokenPlan__DeepSeek__V4__Flash                                             ModelID = "deepseek-v4-flash"
	Model__AlibabaTokenPlan__DeepSeek__V4__Pro__Thinking                                     ModelID = "deepseek-v4-pro"
	Model__AlibabaTokenPlan__GLM__5                                                          ModelID = "glm-5"
	Model__AlibabaTokenPlan__GLM__5_1                                                        ModelID = "glm-5.1"
	Model__AlibabaTokenPlan__GLM__5_2                                                        ModelID = "glm-5.2"
	Model__AlibabaTokenPlan__Kimi__K2__5__2_5                                                ModelID = "kimi-k2.5"
	Model__AlibabaTokenPlan__Kimi__K2__6__2_6                                                ModelID = "kimi-k2.6"
	Model__AlibabaTokenPlan__Kimi__K2__7__2_7__Code                                          ModelID = "kimi-k2.7-code"
	Model__AlibabaTokenPlan__MiniMax__M2__5__2_5                                             ModelID = "MiniMax-M2.5"
	Model__AlibabaTokenPlan__Qwen3__6__Flash__3_6                                            ModelID = "qwen3.6-flash"
	Model__AlibabaTokenPlan__Qwen3__6__Plus__3_6                                             ModelID = "qwen3.6-plus"
	Model__AlibabaTokenPlan__Qwen3__7__Max__3_7                                              ModelID = "qwen3.7-max"
	Model__AlibabaTokenPlan__Qwen3__7__Plus__3_7                                             ModelID = "qwen3.7-plus"
	Model__AlibabaTokenPlan__Qwen__Image__2_0                                                ModelID = "qwen-image-2.0"
	Model__AlibabaTokenPlan__Qwen__Image__2__0__Pro__2_0                                     ModelID = "qwen-image-2.0-pro"
	Model__AlibabaTokenPlan__Wan2__7__Image                                                  ModelID = "wan2.7-image"
	Model__AlibabaTokenPlan__Wan2__7__Image__Pro                                             ModelID = "wan2.7-image-pro"
	Model__Alibaba__Qvq__Max                                                                 ModelID = "qvq-max"
	Model__Alibaba__Qwen2__5__14b__2__Instruct                                               ModelID = "qwen2-5-14b-instruct"
	Model__Alibaba__Qwen2__5__32b__2__Instruct                                               ModelID = "qwen2-5-32b-instruct"
	Model__Alibaba__Qwen2__5__72b__2__Instruct                                               ModelID = "qwen2-5-72b-instruct"
	Model__Alibaba__Qwen2__5__7b__2__Instruct                                                ModelID = "qwen2-5-7b-instruct"
	Model__Alibaba__Qwen2__5__Omni__7b__2__Omni                                              ModelID = "qwen2-5-omni-7b"
	Model__Alibaba__Qwen2__5__Vl__72b__2__Instruct                                           ModelID = "qwen2-5-vl-72b-instruct"
	Model__Alibaba__Qwen2__5__Vl__7b__2__Instruct                                            ModelID = "qwen2-5-vl-7b-instruct"
	Model__Alibaba__Qwen3__14b__3                                                            ModelID = "qwen3-14b"
	Model__Alibaba__Qwen3__235b__A22b__3                                                     ModelID = "qwen3-235b-a22b"
	Model__Alibaba__Qwen3__32b__3                                                            ModelID = "qwen3-32b"
	Model__Alibaba__Qwen3__5__122b__A10b__3_5                                                ModelID = "qwen3.5-122b-a10b"
	Model__Alibaba__Qwen3__5__27b__3_5                                                       ModelID = "qwen3.5-27b"
	Model__Alibaba__Qwen3__5__35b__A3b__3_5                                                  ModelID = "qwen3.5-35b-a3b"
	Model__Alibaba__Qwen3__5__397b__A17b__3_5                                                ModelID = "qwen3.5-397b-a17b"
	Model__Alibaba__Qwen3__5__Plus__3_5                                                      ModelID = "qwen3.5-plus"
	Model__Alibaba__Qwen3__6__27b__3_6                                                       ModelID = "qwen3.6-27b"
	Model__Alibaba__Qwen3__6__35b__A3b__3_6                                                  ModelID = "qwen3.6-35b-a3b"
	Model__Alibaba__Qwen3__6__Flash__3_6                                                     ModelID = "qwen3.6-flash"
	Model__Alibaba__Qwen3__6__Max__3_6__Preview                                              ModelID = "qwen3.6-max-preview"
	Model__Alibaba__Qwen3__6__Plus__3_6                                                      ModelID = "qwen3.6-plus"
	Model__Alibaba__Qwen3__7__Max__3_7                                                       ModelID = "qwen3.7-max"
	Model__Alibaba__Qwen3__7__Plus__3_7                                                      ModelID = "qwen3.7-plus"
	Model__Alibaba__Qwen3__8b__3                                                             ModelID = "qwen3-8b"
	Model__Alibaba__Qwen3__Asr__Flash__3                                                     ModelID = "qwen3-asr-flash"
	Model__Alibaba__Qwen3__Coder__30b__A3b__3__Instruct                                      ModelID = "qwen3-coder-30b-a3b-instruct"
	Model__Alibaba__Qwen3__Coder__480b__A35b__3__Instruct                                    ModelID = "qwen3-coder-480b-a35b-instruct"
	Model__Alibaba__Qwen3__Coder__Flash__3                                                   ModelID = "qwen3-coder-flash"
	Model__Alibaba__Qwen3__Coder__Plus__3                                                    ModelID = "qwen3-coder-plus"
	Model__Alibaba__Qwen3__Livetranslate__Flash__3__LivetranslateRealtime                    ModelID = "qwen3-livetranslate-flash-realtime"
	Model__Alibaba__Qwen3__Max__3                                                            ModelID = "qwen3-max"
	Model__Alibaba__Qwen3__Next__80b__A3b__3__Instruct                                       ModelID = "qwen3-next-80b-a3b-instruct"
	Model__Alibaba__Qwen3__Next__80b__A3b__3__Thinking                                       ModelID = "qwen3-next-80b-a3b-thinking"
	Model__Alibaba__Qwen3__Omni__Flash__3__Omni                                              ModelID = "qwen3-omni-flash"
	Model__Alibaba__Qwen3__Omni__Flash__3__OmniRealtime                                      ModelID = "qwen3-omni-flash-realtime"
	Model__Alibaba__Qwen3__Vl__235b__A22b__3                                                 ModelID = "qwen3-vl-235b-a22b"
	Model__Alibaba__Qwen3__Vl__30b__A3b__3                                                   ModelID = "qwen3-vl-30b-a3b"
	Model__Alibaba__Qwen3__Vl__Plus__3                                                       ModelID = "qwen3-vl-plus"
	Model__Alibaba__Qwen__Flash                                                              ModelID = "qwen-flash"
	Model__Alibaba__Qwen__Max                                                                ModelID = "qwen-max"
	Model__Alibaba__Qwen__Mt__Plus                                                           ModelID = "qwen-mt-plus"
	Model__Alibaba__Qwen__Mt__Turbo                                                          ModelID = "qwen-mt-turbo"
	Model__Alibaba__Qwen__Omni__Turbo__Omni                                                  ModelID = "qwen-omni-turbo"
	Model__Alibaba__Qwen__Omni__Turbo__OmniRealtime                                          ModelID = "qwen-omni-turbo-realtime"
	Model__Alibaba__Qwen__Plus                                                               ModelID = "qwen-plus"
	Model__Alibaba__Qwen__Plus__Character__Ja                                                ModelID = "qwen-plus-character-ja"
	Model__Alibaba__Qwen__Turbo                                                              ModelID = "qwen-turbo"
	Model__Alibaba__Qwen__Vl__Max                                                            ModelID = "qwen-vl-max"
	Model__Alibaba__Qwen__Vl__Ocr                                                            ModelID = "qwen-vl-ocr"
	Model__Alibaba__Qwen__Vl__Plus                                                           ModelID = "qwen-vl-plus"
	Model__Alibaba__Qwq__Plus                                                                ModelID = "qwq-plus"
	Model__AmazonBedrock__Amazon__Nova__2__Lite__V1__0                                       ModelID = "amazon.nova-2-lite-v1:0"
	Model__AmazonBedrock__Amazon__Nova__Lite__V1__0                                          ModelID = "amazon.nova-lite-v1:0"
	Model__AmazonBedrock__Amazon__Nova__Micro__V1__0                                         ModelID = "amazon.nova-micro-v1:0"
	Model__AmazonBedrock__Amazon__Nova__Pro__V1__0                                           ModelID = "amazon.nova-pro-v1:0"
	Model__AmazonBedrock__Anthropic__Claude__Fable__5                                        ModelID = "anthropic.claude-fable-5"
	Model__AmazonBedrock__Anthropic__Claude__Haiku__4__5__20251001__V1__0                    ModelID = "anthropic.claude-haiku-4-5-20251001-v1:0"
	Model__AmazonBedrock__Anthropic__Claude__Opus__4__1__20250805__V1__0                     ModelID = "anthropic.claude-opus-4-1-20250805-v1:0"
	Model__AmazonBedrock__Anthropic__Claude__Opus__4__5__20251101__V1__0                     ModelID = "anthropic.claude-opus-4-5-20251101-v1:0"
	Model__AmazonBedrock__Anthropic__Claude__Opus__4__6__V1                                  ModelID = "anthropic.claude-opus-4-6-v1"
	Model__AmazonBedrock__Anthropic__Claude__Opus__4__7                                      ModelID = "anthropic.claude-opus-4-7"
	Model__AmazonBedrock__Anthropic__Claude__Opus__4__8                                      ModelID = "anthropic.claude-opus-4-8"
	Model__AmazonBedrock__Anthropic__Claude__Sonnet__4__5__20250929__V1__0                   ModelID = "anthropic.claude-sonnet-4-5-20250929-v1:0"
	Model__AmazonBedrock__Anthropic__Claude__Sonnet__4__6                                    ModelID = "anthropic.claude-sonnet-4-6"
	Model__AmazonBedrock__Anthropic__Claude__Sonnet__5                                       ModelID = "anthropic.claude-sonnet-5"
	Model__AmazonBedrock__Au__Anthropic__Claude__Haiku__4__5__20251001__V1__0                ModelID = "au.anthropic.claude-haiku-4-5-20251001-v1:0"
	Model__AmazonBedrock__Au__Anthropic__Claude__Opus__4__6__V1                              ModelID = "au.anthropic.claude-opus-4-6-v1"
	Model__AmazonBedrock__Au__Anthropic__Claude__Opus__4__8                                  ModelID = "au.anthropic.claude-opus-4-8"
	Model__AmazonBedrock__Au__Anthropic__Claude__Sonnet__4__5__20250929__V1__0               ModelID = "au.anthropic.claude-sonnet-4-5-20250929-v1:0"
	Model__AmazonBedrock__Au__Anthropic__Claude__Sonnet__4__6                                ModelID = "au.anthropic.claude-sonnet-4-6"
	Model__AmazonBedrock__Au__Anthropic__Claude__Sonnet__5                                   ModelID = "au.anthropic.claude-sonnet-5"
	Model__AmazonBedrock__DeepSeek__R1__V1__0__Thinking                                      ModelID = "deepseek.r1-v1:0"
	Model__AmazonBedrock__DeepSeek__V3__2                                                    ModelID = "deepseek.v3.2"
	Model__AmazonBedrock__DeepSeek__V3__V1__0                                                ModelID = "deepseek.v3-v1:0"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Fable__5                                    ModelID = "eu.anthropic.claude-fable-5"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Haiku__4__5__20251001__V1__0                ModelID = "eu.anthropic.claude-haiku-4-5-20251001-v1:0"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Opus__4__5__20251101__V1__0                 ModelID = "eu.anthropic.claude-opus-4-5-20251101-v1:0"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Opus__4__6__V1                              ModelID = "eu.anthropic.claude-opus-4-6-v1"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Opus__4__7                                  ModelID = "eu.anthropic.claude-opus-4-7"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Opus__4__8                                  ModelID = "eu.anthropic.claude-opus-4-8"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Sonnet__4__5__20250929__V1__0               ModelID = "eu.anthropic.claude-sonnet-4-5-20250929-v1:0"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Sonnet__4__6                                ModelID = "eu.anthropic.claude-sonnet-4-6"
	Model__AmazonBedrock__Eu__Anthropic__Claude__Sonnet__5                                   ModelID = "eu.anthropic.claude-sonnet-5"
	Model__AmazonBedrock__Global__Anthropic__Claude__Fable__5                                ModelID = "global.anthropic.claude-fable-5"
	Model__AmazonBedrock__Global__Anthropic__Claude__Haiku__4__5__20251001__V1__0            ModelID = "global.anthropic.claude-haiku-4-5-20251001-v1:0"
	Model__AmazonBedrock__Global__Anthropic__Claude__Opus__4__5__20251101__V1__0             ModelID = "global.anthropic.claude-opus-4-5-20251101-v1:0"
	Model__AmazonBedrock__Global__Anthropic__Claude__Opus__4__6__V1                          ModelID = "global.anthropic.claude-opus-4-6-v1"
	Model__AmazonBedrock__Global__Anthropic__Claude__Opus__4__7                              ModelID = "global.anthropic.claude-opus-4-7"
	Model__AmazonBedrock__Global__Anthropic__Claude__Opus__4__8                              ModelID = "global.anthropic.claude-opus-4-8"
	Model__AmazonBedrock__Global__Anthropic__Claude__Sonnet__4__5__20250929__V1__0           ModelID = "global.anthropic.claude-sonnet-4-5-20250929-v1:0"
	Model__AmazonBedrock__Global__Anthropic__Claude__Sonnet__4__6                            ModelID = "global.anthropic.claude-sonnet-4-6"
	Model__AmazonBedrock__Global__Anthropic__Claude__Sonnet__5                               ModelID = "global.anthropic.claude-sonnet-5"
	Model__AmazonBedrock__Google__Gemma__3__12b__It                                          ModelID = "google.gemma-3-12b-it"
	Model__AmazonBedrock__Google__Gemma__3__27b__It                                          ModelID = "google.gemma-3-27b-it"
	Model__AmazonBedrock__Google__Gemma__3__4b__It                                           ModelID = "google.gemma-3-4b-it"
	Model__AmazonBedrock__Jp__Anthropic__Claude__Haiku__4__5__20251001__V1__0                ModelID = "jp.anthropic.claude-haiku-4-5-20251001-v1:0"
	Model__AmazonBedrock__Jp__Anthropic__Claude__Opus__4__7                                  ModelID = "jp.anthropic.claude-opus-4-7"
	Model__AmazonBedrock__Jp__Anthropic__Claude__Opus__4__8                                  ModelID = "jp.anthropic.claude-opus-4-8"
	Model__AmazonBedrock__Jp__Anthropic__Claude__Sonnet__4__5__20250929__V1__0               ModelID = "jp.anthropic.claude-sonnet-4-5-20250929-v1:0"
	Model__AmazonBedrock__Jp__Anthropic__Claude__Sonnet__4__6                                ModelID = "jp.anthropic.claude-sonnet-4-6"
	Model__AmazonBedrock__Jp__Anthropic__Claude__Sonnet__5                                   ModelID = "jp.anthropic.claude-sonnet-5"
	Model__AmazonBedrock__Meta__Llama3__1__70b__Instruct__V1__0__Instruct                    ModelID = "meta.llama3-1-70b-instruct-v1:0"
	Model__AmazonBedrock__Meta__Llama3__1__8b__Instruct__V1__0__Instruct                     ModelID = "meta.llama3-1-8b-instruct-v1:0"
	Model__AmazonBedrock__Meta__Llama3__3__70b__Instruct__V1__0__Instruct                    ModelID = "meta.llama3-3-70b-instruct-v1:0"
	Model__AmazonBedrock__Meta__Llama4__Maverick__17b__Instruct__V1__0__4__Instruct          ModelID = "meta.llama4-maverick-17b-instruct-v1:0"
	Model__AmazonBedrock__Meta__Llama4__Scout__17b__Instruct__V1__0__4__Instruct             ModelID = "meta.llama4-scout-17b-instruct-v1:0"
	Model__AmazonBedrock__MiniMax__MiniMax__M2__1__2_1                                       ModelID = "minimax.minimax-m2.1"
	Model__AmazonBedrock__MiniMax__MiniMax__M2__2                                            ModelID = "minimax.minimax-m2"
	Model__AmazonBedrock__MiniMax__MiniMax__M2__5__2_5                                       ModelID = "minimax.minimax-m2.5"
	Model__AmazonBedrock__Mistral__Devstral__2__123b                                         ModelID = "mistral.devstral-2-123b"
	Model__AmazonBedrock__Mistral__Magistral__Small__2509                                    ModelID = "mistral.magistral-small-2509"
	Model__AmazonBedrock__Mistral__Ministral__3__14b__Instruct                               ModelID = "mistral.ministral-3-14b-instruct"
	Model__AmazonBedrock__Mistral__Ministral__3__3b__Instruct                                ModelID = "mistral.ministral-3-3b-instruct"
	Model__AmazonBedrock__Mistral__Ministral__3__8b__Instruct                                ModelID = "mistral.ministral-3-8b-instruct"
	Model__AmazonBedrock__Mistral__Mistral__Large__3__675b__Instruct                         ModelID = "mistral.mistral-large-3-675b-instruct"
	Model__AmazonBedrock__Mistral__Pixtral__Large__2502__V1__0                               ModelID = "mistral.pixtral-large-2502-v1:0"
	Model__AmazonBedrock__Mistral__Voxtral__Mini__3b__2507                                   ModelID = "mistral.voxtral-mini-3b-2507"
	Model__AmazonBedrock__Mistral__Voxtral__Small__24b__2507                                 ModelID = "mistral.voxtral-small-24b-2507"
	Model__AmazonBedrock__MoonshotAI__Kimi__K2__5__2_5                                       ModelID = "moonshotai.kimi-k2.5"
	Model__AmazonBedrock__Moonshot__Kimi__K2__2__Thinking                                    ModelID = "moonshot.kimi-k2-thinking"
	Model__AmazonBedrock__Nvidia__Nemotron__Nano__12b__V2                                    ModelID = "nvidia.nemotron-nano-12b-v2"
	Model__AmazonBedrock__Nvidia__Nemotron__Nano__3__30b                                     ModelID = "nvidia.nemotron-nano-3-30b"
	Model__AmazonBedrock__Nvidia__Nemotron__Nano__9b__V2                                     ModelID = "nvidia.nemotron-nano-9b-v2"
	Model__AmazonBedrock__Nvidia__Nemotron__Super__3__120b                                   ModelID = "nvidia.nemotron-super-3-120b"
	Model__AmazonBedrock__OpenAI__GPT__5__4                                                  ModelID = "openai.gpt-5.4"
	Model__AmazonBedrock__OpenAI__GPT__5__5                                                  ModelID = "openai.gpt-5.5"
	Model__AmazonBedrock__OpenAI__GPT__Oss__120b                                             ModelID = "openai.gpt-oss-120b"
	Model__AmazonBedrock__OpenAI__GPT__Oss__120b__1__0                                       ModelID = "openai.gpt-oss-120b-1:0"
	Model__AmazonBedrock__OpenAI__GPT__Oss__20b                                              ModelID = "openai.gpt-oss-20b"
	Model__AmazonBedrock__OpenAI__GPT__Oss__20b__1__0                                        ModelID = "openai.gpt-oss-20b-1:0"
	Model__AmazonBedrock__OpenAI__GPT__Oss__Safeguard__120b                                  ModelID = "openai.gpt-oss-safeguard-120b"
	Model__AmazonBedrock__OpenAI__GPT__Oss__Safeguard__20b                                   ModelID = "openai.gpt-oss-safeguard-20b"
	Model__AmazonBedrock__Qwen__Qwen3__235b__A22b__2507__V1__0                               ModelID = "qwen.qwen3-235b-a22b-2507-v1:0"
	Model__AmazonBedrock__Qwen__Qwen3__32b__V1__0                                            ModelID = "qwen.qwen3-32b-v1:0"
	Model__AmazonBedrock__Qwen__Qwen3__Coder__30b__A3b__V1__0                                ModelID = "qwen.qwen3-coder-30b-a3b-v1:0"
	Model__AmazonBedrock__Qwen__Qwen3__Coder__480b__A35b__V1__0                              ModelID = "qwen.qwen3-coder-480b-a35b-v1:0"
	Model__AmazonBedrock__Qwen__Qwen3__Coder__Next                                           ModelID = "qwen.qwen3-coder-next"
	Model__AmazonBedrock__Qwen__Qwen3__Next__80b__A3b                                        ModelID = "qwen.qwen3-next-80b-a3b"
	Model__AmazonBedrock__Qwen__Qwen3__Vl__235b__A22b                                        ModelID = "qwen.qwen3-vl-235b-a22b"
	Model__AmazonBedrock__Us__Anthropic__Claude__Fable__5                                    ModelID = "us.anthropic.claude-fable-5"
	Model__AmazonBedrock__Us__Anthropic__Claude__Haiku__4__5__20251001__V1__0                ModelID = "us.anthropic.claude-haiku-4-5-20251001-v1:0"
	Model__AmazonBedrock__Us__Anthropic__Claude__Opus__4__1__20250805__V1__0                 ModelID = "us.anthropic.claude-opus-4-1-20250805-v1:0"
	Model__AmazonBedrock__Us__Anthropic__Claude__Opus__4__5__20251101__V1__0                 ModelID = "us.anthropic.claude-opus-4-5-20251101-v1:0"
	Model__AmazonBedrock__Us__Anthropic__Claude__Opus__4__6__V1                              ModelID = "us.anthropic.claude-opus-4-6-v1"
	Model__AmazonBedrock__Us__Anthropic__Claude__Opus__4__7                                  ModelID = "us.anthropic.claude-opus-4-7"
	Model__AmazonBedrock__Us__Anthropic__Claude__Opus__4__8                                  ModelID = "us.anthropic.claude-opus-4-8"
	Model__AmazonBedrock__Us__Anthropic__Claude__Sonnet__4__5__20250929__V1__0               ModelID = "us.anthropic.claude-sonnet-4-5-20250929-v1:0"
	Model__AmazonBedrock__Us__Anthropic__Claude__Sonnet__4__6                                ModelID = "us.anthropic.claude-sonnet-4-6"
	Model__AmazonBedrock__Us__Anthropic__Claude__Sonnet__5                                   ModelID = "us.anthropic.claude-sonnet-5"
	Model__AmazonBedrock__Us__DeepSeek__R1__V1__0__Thinking                                  ModelID = "us.deepseek.r1-v1:0"
	Model__AmazonBedrock__Us__Meta__Llama4__Maverick__17b__Instruct__V1__0__4__Instruct      ModelID = "us.meta.llama4-maverick-17b-instruct-v1:0"
	Model__AmazonBedrock__Us__Meta__Llama4__Scout__17b__Instruct__V1__0__4__Instruct         ModelID = "us.meta.llama4-scout-17b-instruct-v1:0"
	Model__AmazonBedrock__Writer__Palmyra__X4__V1__0                                         ModelID = "writer.palmyra-x4-v1:0"
	Model__AmazonBedrock__Writer__Palmyra__X5__V1__0                                         ModelID = "writer.palmyra-x5-v1:0"
	Model__AmazonBedrock__Zai__GLM__4__7                                                     ModelID = "zai.glm-4.7"
	Model__AmazonBedrock__Zai__GLM__4__7__Flash                                              ModelID = "zai.glm-4.7-flash"
	Model__AmazonBedrock__Zai__GLM__5                                                        ModelID = "zai.glm-5"
	Model__AmazonBedrock__xAI__Grok__4__3                                                    ModelID = "xai.grok-4.3"
	Model__Ambient__GLM__5__1__Fp8__5_1                                                      ModelID = "zai-org/GLM-5.1-FP8"
	Model__Ambient__GLM__5__2__Fp8__5_2                                                      ModelID = "zai-org/GLM-5.2-FP8"
	Model__Ambient__Kimi__K2__6__2_6                                                         ModelID = "moonshotai/kimi-k2.6"
	Model__Ambient__Kimi__K2__7__2_7__Code                                                   ModelID = "moonshotai/kimi-k2.7-code"
	Model__Anthropic__Claude__Fable__5                                                       ModelID = "claude-fable-5"
	Model__Anthropic__Claude__Haiku__4_5                                                     ModelID = "claude-haiku-4-5"
	Model__Anthropic__Claude__Haiku__4_5__20251001                                           ModelID = "claude-haiku-4-5-20251001"
	Model__Anthropic__Claude__Opus__4_1                                                      ModelID = "claude-opus-4-1"
	Model__Anthropic__Claude__Opus__4_1__20250805                                            ModelID = "claude-opus-4-1-20250805"
	Model__Anthropic__Claude__Opus__4_5                                                      ModelID = "claude-opus-4-5"
	Model__Anthropic__Claude__Opus__4_5__20251101                                            ModelID = "claude-opus-4-5-20251101"
	Model__Anthropic__Claude__Opus__4_6                                                      ModelID = "claude-opus-4-6"
	Model__Anthropic__Claude__Opus__4_7                                                      ModelID = "claude-opus-4-7"
	Model__Anthropic__Claude__Opus__4_8                                                      ModelID = "claude-opus-4-8"
	Model__Anthropic__Claude__Sonnet__4_5                                                    ModelID = "claude-sonnet-4-5"
	Model__Anthropic__Claude__Sonnet__4_5__20250929                                          ModelID = "claude-sonnet-4-5-20250929"
	Model__Anthropic__Claude__Sonnet__4_6                                                    ModelID = "claude-sonnet-4-6"
	Model__Anthropic__Claude__Sonnet__5                                                      ModelID = "claude-sonnet-5"
	Model__AnyAPI__Claude__Haiku__4_5                                                        ModelID = "anthropic/claude-haiku-4-5"
	Model__AnyAPI__Claude__Opus__4_6                                                         ModelID = "anthropic/claude-opus-4-6"
	Model__AnyAPI__Claude__Opus__4_7                                                         ModelID = "anthropic/claude-opus-4-7"
	Model__AnyAPI__Claude__Sonnet__4_5                                                       ModelID = "anthropic/claude-sonnet-4-5"
	Model__AnyAPI__Claude__Sonnet__4_6                                                       ModelID = "anthropic/claude-sonnet-4-6"
	Model__AnyAPI__Command__R__Plus__20240830                                                ModelID = "cohere/command-r-plus-08-2024"
	Model__AnyAPI__DeepSeek__Chat                                                            ModelID = "deepseek/deepseek-chat"
	Model__AnyAPI__DeepSeek__R1__Thinking                                                    ModelID = "deepseek/deepseek-r1"
	Model__AnyAPI__DeepSeek__V4__Flash                                                       ModelID = "deepseek/deepseek-v4-flash"
	Model__AnyAPI__DeepSeek__V4__Pro__Thinking                                               ModelID = "deepseek/deepseek-v4-pro"
	Model__AnyAPI__Devstral__2512                                                            ModelID = "mistralai/devstral-2512"
	Model__AnyAPI__GPT__4_1                                                                  ModelID = "openai/gpt-4.1"
	Model__AnyAPI__GPT__4__1__Mini__4_1                                                      ModelID = "openai/gpt-4.1-mini"
	Model__AnyAPI__GPT__5                                                                    ModelID = "openai/gpt-5"
	Model__AnyAPI__GPT__5_1                                                                  ModelID = "openai/gpt-5.1"
	Model__AnyAPI__GPT__5_2                                                                  ModelID = "openai/gpt-5.2"
	Model__AnyAPI__GPT__5_4                                                                  ModelID = "openai/gpt-5.4"
	Model__AnyAPI__GPT__5__Mini__5                                                           ModelID = "openai/gpt-5-mini"
	Model__AnyAPI__Gemini__2__5__Flash__2_5                                                  ModelID = "google/gemini-2.5-flash"
	Model__AnyAPI__Gemini__2__5__Flash__Lite__2_5                                            ModelID = "google/gemini-2.5-flash-lite"
	Model__AnyAPI__Gemini__2__5__Pro__2_5                                                    ModelID = "google/gemini-2.5-pro"
	Model__AnyAPI__Gemini__3__Flash__3__Preview                                              ModelID = "google/gemini-3-flash-preview"
	Model__AnyAPI__Gemini__3__Pro__3__Preview                                                ModelID = "google/gemini-3-pro-preview"
	Model__AnyAPI__Grok__4_3                                                                 ModelID = "xai/grok-4.3"
	Model__AnyAPI__Mistral__Large__2512                                                      ModelID = "mistralai/mistral-large-2512"
	Model__AnyAPI__O3__3                                                                     ModelID = "openai/o3"
	Model__AnyAPI__O3__3__Mini                                                               ModelID = "openai/o3-mini"
	Model__AnyAPI__O4__4__Mini                                                               ModelID = "openai/o4-mini"
	Model__AnyAPI__Sonar__Pro                                                                ModelID = "perplexity/sonar-pro"
	Model__AnyAPI__Sonar__Reasoning__Pro                                                     ModelID = "perplexity/sonar-reasoning-pro"
	Model__AtomicChat__Gemma__4__E4b__It__Iq4__Xs__4                                         ModelID = "gemma-4-E4B-it-IQ4_XS"
	Model__AtomicChat__Gemma__4__E4b__It__Mlx__4bit__4                                       ModelID = "gemma-4-E4B-it-MLX-4bit"
	Model__AtomicChat__Meta__Llama__3__1__8B__Instruct__Gguf__Instruct                       ModelID = "Meta-Llama-3_1-8B-Instruct-GGUF"
	Model__AtomicChat__Qwen3__5__9B__Mlx__4bit                                               ModelID = "Qwen3_5-9B-MLX-4bit"
	Model__AtomicChat__Qwen3__5__9B__Q4__K__M                                                ModelID = "Qwen3_5-9B-Q4_K_M"
	Model__Auriko__Claude__Opus__4_6                                                         ModelID = "claude-opus-4-6"
	Model__Auriko__Claude__Opus__4_7                                                         ModelID = "claude-opus-4-7"
	Model__Auriko__Claude__Sonnet__4_6                                                       ModelID = "claude-sonnet-4-6"
	Model__Auriko__DeepSeek__V4__Flash                                                       ModelID = "deepseek-v4-flash"
	Model__Auriko__DeepSeek__V4__Pro__Thinking                                               ModelID = "deepseek-v4-pro"
	Model__Auriko__GLM__5_1                                                                  ModelID = "glm-5.1"
	Model__Auriko__Gemini__2__5__Flash__2_5                                                  ModelID = "gemini-2.5-flash"
	Model__Auriko__Gemini__2__5__Pro__2_5                                                    ModelID = "gemini-2.5-pro"
	Model__Auriko__Gemini__3__1__Pro__3_1__Preview                                           ModelID = "gemini-3.1-pro-preview"
	Model__Auriko__Grok__4_3                                                                 ModelID = "grok-4.3"
	Model__Auriko__Kimi__K2__5__2_5                                                          ModelID = "kimi-k2.5"
	Model__Auriko__Kimi__K2__6__2_6                                                          ModelID = "kimi-k2.6"
	Model__Auriko__MiniMax__M2__7__2_7                                                       ModelID = "minimax-m2-7"
	Model__Auriko__MiniMax__M2__7__2_7__Highspeed                                            ModelID = "minimax-m2-7-highspeed"
	Model__Auriko__Qwen__3__6__Plus__3_6                                                     ModelID = "qwen-3.6-plus"
	Model__AzureCognitiveServices__Claude__Haiku__4_5                                        ModelID = "claude-haiku-4-5"
	Model__AzureCognitiveServices__Claude__Opus__4_1                                         ModelID = "claude-opus-4-1"
	Model__AzureCognitiveServices__Claude__Opus__4_5                                         ModelID = "claude-opus-4-5"
	Model__AzureCognitiveServices__Claude__Opus__4_6                                         ModelID = "claude-opus-4-6"
	Model__AzureCognitiveServices__Claude__Opus__4_8                                         ModelID = "claude-opus-4-8"
	Model__AzureCognitiveServices__Claude__Sonnet__4_5                                       ModelID = "claude-sonnet-4-5"
	Model__AzureCognitiveServices__Codestral__2501                                           ModelID = "codestral-2501"
	Model__AzureCognitiveServices__Codex__Mini                                               ModelID = "codex-mini"
	Model__AzureCognitiveServices__Cohere__Command__A                                        ModelID = "cohere-command-a"
	Model__AzureCognitiveServices__Cohere__Command__R__20240830                              ModelID = "cohere-command-r-08-2024"
	Model__AzureCognitiveServices__Cohere__Command__R__Plus__20240830                        ModelID = "cohere-command-r-plus-08-2024"
	Model__AzureCognitiveServices__Cohere__Embed__V3__English                                ModelID = "cohere-embed-v3-english"
	Model__AzureCognitiveServices__Cohere__Embed__V3__Multilingual                           ModelID = "cohere-embed-v3-multilingual"
	Model__AzureCognitiveServices__Cohere__Embed__V__4__0                                    ModelID = "cohere-embed-v-4-0"
	Model__AzureCognitiveServices__DeepSeek__R1__0528__Thinking                              ModelID = "deepseek-r1-0528"
	Model__AzureCognitiveServices__DeepSeek__R1__Thinking                                    ModelID = "deepseek-r1"
	Model__AzureCognitiveServices__DeepSeek__V3__0324                                        ModelID = "deepseek-v3-0324"
	Model__AzureCognitiveServices__DeepSeek__V3__1                                           ModelID = "deepseek-v3.1"
	Model__AzureCognitiveServices__DeepSeek__V3__2                                           ModelID = "deepseek-v3.2"
	Model__AzureCognitiveServices__DeepSeek__V3__2__Speciale                                 ModelID = "deepseek-v3.2-speciale"
	Model__AzureCognitiveServices__GPT__3_5__TurboInstruct                                   ModelID = "gpt-3.5-turbo-instruct"
	Model__AzureCognitiveServices__GPT__3__5__Turbo__0125__3_5__Turbo                        ModelID = "gpt-3.5-turbo-0125"
	Model__AzureCognitiveServices__GPT__3__5__Turbo__0301__3_5__Turbo                        ModelID = "gpt-3.5-turbo-0301"
	Model__AzureCognitiveServices__GPT__3__5__Turbo__0613__3_5__Turbo                        ModelID = "gpt-3.5-turbo-0613"
	Model__AzureCognitiveServices__GPT__3__5__Turbo__1106__3_5__Turbo                        ModelID = "gpt-3.5-turbo-1106"
	Model__AzureCognitiveServices__GPT__4                                                    ModelID = "gpt-4"
	Model__AzureCognitiveServices__GPT__4_1                                                  ModelID = "gpt-4.1"
	Model__AzureCognitiveServices__GPT__4__1__Mini__4_1                                      ModelID = "gpt-4.1-mini"
	Model__AzureCognitiveServices__GPT__4__1__Nano__4_1                                      ModelID = "gpt-4.1-nano"
	Model__AzureCognitiveServices__GPT__4__32k__4                                            ModelID = "gpt-4-32k"
	Model__AzureCognitiveServices__GPT__4__Turbo                                             ModelID = "gpt-4-turbo"
	Model__AzureCognitiveServices__GPT__4__VisionTurbo                                       ModelID = "gpt-4-turbo-vision"
	Model__AzureCognitiveServices__GPT__4o                                                   ModelID = "gpt-4o"
	Model__AzureCognitiveServices__GPT__4o__Mini                                             ModelID = "gpt-4o-mini"
	Model__AzureCognitiveServices__GPT__5                                                    ModelID = "gpt-5"
	Model__AzureCognitiveServices__GPT__5_1                                                  ModelID = "gpt-5.1"
	Model__AzureCognitiveServices__GPT__5_1__Chat                                            ModelID = "gpt-5.1-chat"
	Model__AzureCognitiveServices__GPT__5_2                                                  ModelID = "gpt-5.2"
	Model__AzureCognitiveServices__GPT__5_2__Chat                                            ModelID = "gpt-5.2-chat"
	Model__AzureCognitiveServices__GPT__5_4                                                  ModelID = "gpt-5.4"
	Model__AzureCognitiveServices__GPT__5_5                                                  ModelID = "gpt-5.5"
	Model__AzureCognitiveServices__GPT__5__1__Codex__5_1                                     ModelID = "gpt-5.1-codex"
	Model__AzureCognitiveServices__GPT__5__1__Codex__Mini__5_1                               ModelID = "gpt-5.1-codex-mini"
	Model__AzureCognitiveServices__GPT__5__2__Codex__5_2                                     ModelID = "gpt-5.2-codex"
	Model__AzureCognitiveServices__GPT__5__3__Codex__5_3                                     ModelID = "gpt-5.3-codex"
	Model__AzureCognitiveServices__GPT__5__4__Mini__5_4                                      ModelID = "gpt-5.4-mini"
	Model__AzureCognitiveServices__GPT__5__4__Nano__5_4                                      ModelID = "gpt-5.4-nano"
	Model__AzureCognitiveServices__GPT__5__4__Pro__5_4                                       ModelID = "gpt-5.4-pro"
	Model__AzureCognitiveServices__GPT__5__Chat                                              ModelID = "gpt-5-chat"
	Model__AzureCognitiveServices__GPT__5__Codex__5                                          ModelID = "gpt-5-codex"
	Model__AzureCognitiveServices__GPT__5__Mini__5                                           ModelID = "gpt-5-mini"
	Model__AzureCognitiveServices__GPT__5__Nano__5                                           ModelID = "gpt-5-nano"
	Model__AzureCognitiveServices__GPT__5__Pro__5                                            ModelID = "gpt-5-pro"
	Model__AzureCognitiveServices__Grok__4__ReasoningFast                                    ModelID = "grok-4-fast-reasoning"
	Model__AzureCognitiveServices__Kimi__K2__2__Thinking                                     ModelID = "kimi-k2-thinking"
	Model__AzureCognitiveServices__Kimi__K2__5__2_5                                          ModelID = "kimi-k2.5"
	Model__AzureCognitiveServices__Kimi__K2__6__2_6                                          ModelID = "kimi-k2.6"
	Model__AzureCognitiveServices__Llama__3__2__11b__3_2__VisionInstruct                     ModelID = "llama-3.2-11b-vision-instruct"
	Model__AzureCognitiveServices__Llama__3__2__90b__3_2__VisionInstruct                     ModelID = "llama-3.2-90b-vision-instruct"
	Model__AzureCognitiveServices__Llama__3__3__70b__3_3__Instruct                           ModelID = "llama-3.3-70b-instruct"
	Model__AzureCognitiveServices__Llama__4__Maverick__17b__128e__Instruct__Fp8__4__Instruct ModelID = "llama-4-maverick-17b-128e-instruct-fp8"
	Model__AzureCognitiveServices__Llama__4__Scout__17b__16e__4__Instruct                    ModelID = "llama-4-scout-17b-16e-instruct"
	Model__AzureCognitiveServices__Meta__Llama__3__1__405b__3_1__Instruct                    ModelID = "meta-llama-3.1-405b-instruct"
	Model__AzureCognitiveServices__Meta__Llama__3__1__70b__3_1__Instruct                     ModelID = "meta-llama-3.1-70b-instruct"
	Model__AzureCognitiveServices__Meta__Llama__3__1__8b__3_1__Instruct                      ModelID = "meta-llama-3.1-8b-instruct"
	Model__AzureCognitiveServices__Meta__Llama__3__70b__3__Instruct                          ModelID = "meta-llama-3-70b-instruct"
	Model__AzureCognitiveServices__Meta__Llama__3__8b__3__Instruct                           ModelID = "meta-llama-3-8b-instruct"
	Model__AzureCognitiveServices__Ministral__3b                                             ModelID = "ministral-3b"
	Model__AzureCognitiveServices__Mistral__Large__2411                                      ModelID = "mistral-large-2411"
	Model__AzureCognitiveServices__Mistral__Medium__2505                                     ModelID = "mistral-medium-2505"
	Model__AzureCognitiveServices__Mistral__Nemo                                             ModelID = "mistral-nemo"
	Model__AzureCognitiveServices__Mistral__Small__2503                                      ModelID = "mistral-small-2503"
	Model__AzureCognitiveServices__Model__Router                                             ModelID = "model-router"
	Model__AzureCognitiveServices__O1__1                                                     ModelID = "o1"
	Model__AzureCognitiveServices__O1__1__Mini                                               ModelID = "o1-mini"
	Model__AzureCognitiveServices__O3__3                                                     ModelID = "o3"
	Model__AzureCognitiveServices__O3__3__Mini                                               ModelID = "o3-mini"
	Model__AzureCognitiveServices__O4__4__Mini                                               ModelID = "o4-mini"
	Model__AzureCognitiveServices__Phi__3__5__Mini__3_5__Instruct                            ModelID = "phi-3.5-mini-instruct"
	Model__AzureCognitiveServices__Phi__3__5__Moe__3_5__Instruct                             ModelID = "phi-3.5-moe-instruct"
	Model__AzureCognitiveServices__Phi__3__Medium__128k__3__Instruct                         ModelID = "phi-3-medium-128k-instruct"
	Model__AzureCognitiveServices__Phi__3__Medium__4k__3__Instruct                           ModelID = "phi-3-medium-4k-instruct"
	Model__AzureCognitiveServices__Phi__3__Mini__128k__3__Instruct                           ModelID = "phi-3-mini-128k-instruct"
	Model__AzureCognitiveServices__Phi__3__Mini__4k__3__Instruct                             ModelID = "phi-3-mini-4k-instruct"
	Model__AzureCognitiveServices__Phi__3__Small__128k__3__Instruct                          ModelID = "phi-3-small-128k-instruct"
	Model__AzureCognitiveServices__Phi__3__Small__8k__3__Instruct                            ModelID = "phi-3-small-8k-instruct"
	Model__AzureCognitiveServices__Phi__4                                                    ModelID = "phi-4"
	Model__AzureCognitiveServices__Phi__4__Mini__4                                           ModelID = "phi-4-mini"
	Model__AzureCognitiveServices__Phi__4__Mini__4__Reasoning                                ModelID = "phi-4-mini-reasoning"
	Model__AzureCognitiveServices__Phi__4__Multimodal                                        ModelID = "phi-4-multimodal"
	Model__AzureCognitiveServices__Phi__4__Reasoning                                         ModelID = "phi-4-reasoning"
	Model__AzureCognitiveServices__Phi__4__Reasoning__Plus__4                                ModelID = "phi-4-reasoning-plus"
	Model__AzureCognitiveServices__Text__Embedding__3__Large__3                              ModelID = "text-embedding-3-large"
	Model__AzureCognitiveServices__Text__Embedding__3__Small__3                              ModelID = "text-embedding-3-small"
	Model__AzureCognitiveServices__Text__Embedding__Ada__002                                 ModelID = "text-embedding-ada-002"
	Model__Azure__Claude__Fable__5                                                           ModelID = "claude-fable-5"
	Model__Azure__Claude__Haiku__4_5                                                         ModelID = "claude-haiku-4-5"
	Model__Azure__Claude__Opus__4_1                                                          ModelID = "claude-opus-4-1"
	Model__Azure__Claude__Opus__4_5                                                          ModelID = "claude-opus-4-5"
	Model__Azure__Claude__Opus__4_6                                                          ModelID = "claude-opus-4-6"
	Model__Azure__Claude__Opus__4_8                                                          ModelID = "claude-opus-4-8"
	Model__Azure__Claude__Sonnet__4_5                                                        ModelID = "claude-sonnet-4-5"
	Model__Azure__Claude__Sonnet__4_6                                                        ModelID = "claude-sonnet-4-6"
	Model__Azure__Claude__Sonnet__5                                                          ModelID = "claude-sonnet-5"
	Model__Azure__Codestral__2501                                                            ModelID = "codestral-2501"
	Model__Azure__Codex__Mini                                                                ModelID = "codex-mini"
	Model__Azure__Cohere__Command__A                                                         ModelID = "cohere-command-a"
	Model__Azure__Cohere__Command__R__20240830                                               ModelID = "cohere-command-r-08-2024"
	Model__Azure__Cohere__Command__R__Plus__20240830                                         ModelID = "cohere-command-r-plus-08-2024"
	Model__Azure__Cohere__Embed__V3__English                                                 ModelID = "cohere-embed-v3-english"
	Model__Azure__Cohere__Embed__V3__Multilingual                                            ModelID = "cohere-embed-v3-multilingual"
	Model__Azure__Cohere__Embed__V__4__0                                                     ModelID = "cohere-embed-v-4-0"
	Model__Azure__DeepSeek__R1__0528__Thinking                                               ModelID = "deepseek-r1-0528"
	Model__Azure__DeepSeek__R1__Thinking                                                     ModelID = "deepseek-r1"
	Model__Azure__DeepSeek__V3__0324                                                         ModelID = "deepseek-v3-0324"
	Model__Azure__DeepSeek__V3__1                                                            ModelID = "deepseek-v3.1"
	Model__Azure__DeepSeek__V3__2                                                            ModelID = "deepseek-v3.2"
	Model__Azure__DeepSeek__V3__2__Speciale                                                  ModelID = "deepseek-v3.2-speciale"
	Model__Azure__DeepSeek__V4__Flash                                                        ModelID = "deepseek-v4-flash"
	Model__Azure__DeepSeek__V4__Pro__Thinking                                                ModelID = "deepseek-v4-pro"
	Model__Azure__GPT__3_5__TurboInstruct                                                    ModelID = "gpt-3.5-turbo-instruct"
	Model__Azure__GPT__3__5__Turbo__0125__3_5__Turbo                                         ModelID = "gpt-3.5-turbo-0125"
	Model__Azure__GPT__3__5__Turbo__0301__3_5__Turbo                                         ModelID = "gpt-3.5-turbo-0301"
	Model__Azure__GPT__3__5__Turbo__0613__3_5__Turbo                                         ModelID = "gpt-3.5-turbo-0613"
	Model__Azure__GPT__3__5__Turbo__1106__3_5__Turbo                                         ModelID = "gpt-3.5-turbo-1106"
	Model__Azure__GPT__4                                                                     ModelID = "gpt-4"
	Model__Azure__GPT__4_1                                                                   ModelID = "gpt-4.1"
	Model__Azure__GPT__4__1__Mini__4_1                                                       ModelID = "gpt-4.1-mini"
	Model__Azure__GPT__4__1__Nano__4_1                                                       ModelID = "gpt-4.1-nano"
	Model__Azure__GPT__4__32k__4                                                             ModelID = "gpt-4-32k"
	Model__Azure__GPT__4__Turbo                                                              ModelID = "gpt-4-turbo"
	Model__Azure__GPT__4__VisionTurbo                                                        ModelID = "gpt-4-turbo-vision"
	Model__Azure__GPT__4o                                                                    ModelID = "gpt-4o"
	Model__Azure__GPT__4o__Mini                                                              ModelID = "gpt-4o-mini"
	Model__Azure__GPT__5                                                                     ModelID = "gpt-5"
	Model__Azure__GPT__5_1                                                                   ModelID = "gpt-5.1"
	Model__Azure__GPT__5_1__Chat                                                             ModelID = "gpt-5.1-chat"
	Model__Azure__GPT__5_2                                                                   ModelID = "gpt-5.2"
	Model__Azure__GPT__5_2__Chat                                                             ModelID = "gpt-5.2-chat"
	Model__Azure__GPT__5_3__Chat                                                             ModelID = "gpt-5.3-chat"
	Model__Azure__GPT__5_4                                                                   ModelID = "gpt-5.4"
	Model__Azure__GPT__5_5                                                                   ModelID = "gpt-5.5"
	Model__Azure__GPT__5__1__Codex__5_1                                                      ModelID = "gpt-5.1-codex"
	Model__Azure__GPT__5__1__Codex__Max__5_1                                                 ModelID = "gpt-5.1-codex-max"
	Model__Azure__GPT__5__1__Codex__Mini__5_1                                                ModelID = "gpt-5.1-codex-mini"
	Model__Azure__GPT__5__2__Codex__5_2                                                      ModelID = "gpt-5.2-codex"
	Model__Azure__GPT__5__3__Codex__5_3                                                      ModelID = "gpt-5.3-codex"
	Model__Azure__GPT__5__4__Mini__5_4                                                       ModelID = "gpt-5.4-mini"
	Model__Azure__GPT__5__4__Nano__5_4                                                       ModelID = "gpt-5.4-nano"
	Model__Azure__GPT__5__4__Pro__5_4                                                        ModelID = "gpt-5.4-pro"
	Model__Azure__GPT__5__Chat                                                               ModelID = "gpt-5-chat"
	Model__Azure__GPT__5__Codex__5                                                           ModelID = "gpt-5-codex"
	Model__Azure__GPT__5__Mini__5                                                            ModelID = "gpt-5-mini"
	Model__Azure__GPT__5__Nano__5                                                            ModelID = "gpt-5-nano"
	Model__Azure__GPT__5__Pro__5                                                             ModelID = "gpt-5-pro"
	Model__Azure__GPT__Image__1                                                              ModelID = "gpt-image-1"
	Model__Azure__GPT__Image__1_5                                                            ModelID = "gpt-image-1.5"
	Model__Azure__GPT__Image__2                                                              ModelID = "gpt-image-2"
	Model__Azure__Grok__4_1__ReasoningFast                                                   ModelID = "grok-4-1-fast-reasoning"
	Model__Azure__Grok__4_20__Reasoning                                                      ModelID = "grok-4-20-reasoning"
	Model__Azure__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                       ModelID = "grok-4-1-fast-non-reasoning"
	Model__Azure__Grok__4__20__Non__Reasoning__4_20__Non_Reasoning                           ModelID = "grok-4-20-non-reasoning"
	Model__Azure__Grok__4__ReasoningFast                                                     ModelID = "grok-4-fast-reasoning"
	Model__Azure__Kimi__K2__2__Thinking                                                      ModelID = "kimi-k2-thinking"
	Model__Azure__Kimi__K2__5__2_5                                                           ModelID = "kimi-k2.5"
	Model__Azure__Kimi__K2__6__2_6                                                           ModelID = "kimi-k2.6"
	Model__Azure__Llama__3__2__11b__3_2__VisionInstruct                                      ModelID = "llama-3.2-11b-vision-instruct"
	Model__Azure__Llama__3__2__90b__3_2__VisionInstruct                                      ModelID = "llama-3.2-90b-vision-instruct"
	Model__Azure__Llama__3__3__70b__3_3__Instruct                                            ModelID = "llama-3.3-70b-instruct"
	Model__Azure__Llama__4__Maverick__17b__128e__Instruct__Fp8__4__Instruct                  ModelID = "llama-4-maverick-17b-128e-instruct-fp8"
	Model__Azure__Llama__4__Scout__17b__16e__4__Instruct                                     ModelID = "llama-4-scout-17b-16e-instruct"
	Model__Azure__Meta__Llama__3__1__405b__3_1__Instruct                                     ModelID = "meta-llama-3.1-405b-instruct"
	Model__Azure__Meta__Llama__3__1__70b__3_1__Instruct                                      ModelID = "meta-llama-3.1-70b-instruct"
	Model__Azure__Meta__Llama__3__1__8b__3_1__Instruct                                       ModelID = "meta-llama-3.1-8b-instruct"
	Model__Azure__Meta__Llama__3__70b__3__Instruct                                           ModelID = "meta-llama-3-70b-instruct"
	Model__Azure__Meta__Llama__3__8b__3__Instruct                                            ModelID = "meta-llama-3-8b-instruct"
	Model__Azure__Ministral__3b                                                              ModelID = "ministral-3b"
	Model__Azure__Mistral__Large__2411                                                       ModelID = "mistral-large-2411"
	Model__Azure__Mistral__Medium__2505                                                      ModelID = "mistral-medium-2505"
	Model__Azure__Mistral__Nemo                                                              ModelID = "mistral-nemo"
	Model__Azure__Mistral__Small__2503                                                       ModelID = "mistral-small-2503"
	Model__Azure__Model__Router                                                              ModelID = "model-router"
	Model__Azure__O1__1                                                                      ModelID = "o1"
	Model__Azure__O1__1__Mini                                                                ModelID = "o1-mini"
	Model__Azure__O3__3                                                                      ModelID = "o3"
	Model__Azure__O3__3__Mini                                                                ModelID = "o3-mini"
	Model__Azure__O4__4__Mini                                                                ModelID = "o4-mini"
	Model__Azure__Phi__3__5__Mini__3_5__Instruct                                             ModelID = "phi-3.5-mini-instruct"
	Model__Azure__Phi__3__5__Moe__3_5__Instruct                                              ModelID = "phi-3.5-moe-instruct"
	Model__Azure__Phi__3__Medium__128k__3__Instruct                                          ModelID = "phi-3-medium-128k-instruct"
	Model__Azure__Phi__3__Medium__4k__3__Instruct                                            ModelID = "phi-3-medium-4k-instruct"
	Model__Azure__Phi__3__Mini__128k__3__Instruct                                            ModelID = "phi-3-mini-128k-instruct"
	Model__Azure__Phi__3__Mini__4k__3__Instruct                                              ModelID = "phi-3-mini-4k-instruct"
	Model__Azure__Phi__3__Small__128k__3__Instruct                                           ModelID = "phi-3-small-128k-instruct"
	Model__Azure__Phi__3__Small__8k__3__Instruct                                             ModelID = "phi-3-small-8k-instruct"
	Model__Azure__Phi__4                                                                     ModelID = "phi-4"
	Model__Azure__Phi__4__Mini__4                                                            ModelID = "phi-4-mini"
	Model__Azure__Phi__4__Mini__4__Reasoning                                                 ModelID = "phi-4-mini-reasoning"
	Model__Azure__Phi__4__Multimodal                                                         ModelID = "phi-4-multimodal"
	Model__Azure__Phi__4__Reasoning                                                          ModelID = "phi-4-reasoning"
	Model__Azure__Phi__4__Reasoning__Plus__4                                                 ModelID = "phi-4-reasoning-plus"
	Model__Azure__Text__Embedding__3__Large__3                                               ModelID = "text-embedding-3-large"
	Model__Azure__Text__Embedding__3__Small__3                                               ModelID = "text-embedding-3-small"
	Model__Azure__Text__Embedding__Ada__002                                                  ModelID = "text-embedding-ada-002"
	Model__Bailing__Ling__1T__1t                                                             ModelID = "Ling-1T"
	Model__Bailing__Ring__1T__1t                                                             ModelID = "Ring-1T"
	Model__Baseten__DeepSeek__V3__1                                                          ModelID = "deepseek-ai/DeepSeek-V3.1"
	Model__Baseten__DeepSeek__V4__Pro__Thinking                                              ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__Baseten__GLM__4_7                                                                 ModelID = "zai-org/GLM-4.7"
	Model__Baseten__GLM__5                                                                   ModelID = "zai-org/GLM-5"
	Model__Baseten__GLM__5_1                                                                 ModelID = "zai-org/GLM-5.1"
	Model__Baseten__GLM__5_2                                                                 ModelID = "zai-org/GLM-5.2"
	Model__Baseten__GPT__Oss__120b                                                           ModelID = "openai/gpt-oss-120b"
	Model__Baseten__Kimi__K2__5__2_5                                                         ModelID = "moonshotai/Kimi-K2.5"
	Model__Baseten__Kimi__K2__6__2_6                                                         ModelID = "moonshotai/Kimi-K2.6"
	Model__Baseten__Kimi__K2__7__2_7__Code                                                   ModelID = "moonshotai/Kimi-K2.7-Code"
	Model__Baseten__MiniMax__M2__5__2_5                                                      ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__Baseten__Nemotron__120B__A12b                                                     ModelID = "nvidia/Nemotron-120B-A12B"
	Model__Baseten__Nvidia__Nemotron__3__Ultra__550B__A55b                                   ModelID = "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B"
	Model__Berget__GLM__4_7                                                                  ModelID = "zai-org/GLM-4.7"
	Model__Berget__GLM__5_2                                                                  ModelID = "zai-org/GLM-5.2"
	Model__Berget__GPT__Oss__120b                                                            ModelID = "openai/gpt-oss-120b"
	Model__Berget__Gemma__4__31B__It__4                                                      ModelID = "google/gemma-4-31B-it"
	Model__Berget__Kimi__K2__6__2_6                                                          ModelID = "moonshotai/Kimi-K2.6"
	Model__Berget__Llama__3__3__70B__3_3__Instruct                                           ModelID = "meta-llama/Llama-3.3-70B-Instruct"
	Model__Berget__Mistral__Medium__3__5__128B__3_5                                          ModelID = "mistralai/Mistral-Medium-3.5-128B"
	Model__Berget__Mistral__Small__3__2__24B__Instruct__2506__3_2__Instruct                  ModelID = "mistralai/Mistral-Small-3.2-24B-Instruct-2506"
	Model__Blueclaw__Qwen3__6__27B__3_6                                                      ModelID = "Qwen3.6-27B"
	Model__Blueclaw__Qwen3__6__35B__A3b__Fp8__3_6                                            ModelID = "Qwen/Qwen3.6-35B-A3B-FP8"
	Model__Cerebras__GPT__Oss__120b                                                          ModelID = "gpt-oss-120b"
	Model__Cerebras__Gemma__4__31b__4                                                        ModelID = "gemma-4-31b"
	Model__Cerebras__Zai__GLM__4_7                                                           ModelID = "zai-glm-4.7"
	Model__Chutes__DeepSeek__V3__2__Tee                                                      ModelID = "deepseek-ai/DeepSeek-V3.2-TEE"
	Model__Chutes__GLM__5__1__Tee__5_1                                                       ModelID = "zai-org/GLM-5.1-TEE"
	Model__Chutes__GLM__5__2__Tee__5_2                                                       ModelID = "zai-org/GLM-5.2-TEE"
	Model__Chutes__GLM__5__Tee__5                                                            ModelID = "zai-org/GLM-5-TEE"
	Model__Chutes__Gemma__4__31B__Turbo__Tee__4__Turbo                                       ModelID = "google/gemma-4-31B-turbo-TEE"
	Model__Chutes__Kimi__K2__5__Tee                                                          ModelID = "moonshotai/Kimi-K2.5-TEE"
	Model__Chutes__Kimi__K2__6__Tee                                                          ModelID = "moonshotai/Kimi-K2.6-TEE"
	Model__Chutes__MiniMax__M2__5__Tee                                                       ModelID = "MiniMaxAI/MiniMax-M2.5-TEE"
	Model__Chutes__Mistral__Nemo__Instruct__2407__Tee__Instruct                              ModelID = "unsloth/Mistral-Nemo-Instruct-2407-TEE"
	Model__Chutes__Qwen3__235B__A22b__Thinking__2507__Tee__3__Thinking                       ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507-TEE"
	Model__Chutes__Qwen3__32B__Tee__3                                                        ModelID = "Qwen/Qwen3-32B-TEE"
	Model__Chutes__Qwen3__5__397B__A17b__Tee__3_5                                            ModelID = "Qwen/Qwen3.5-397B-A17B-TEE"
	Model__Chutes__Qwen3__6__27B__Tee__3_6                                                   ModelID = "Qwen/Qwen3.6-27B-TEE"
	Model__Clarifai__DeepSeek__Ocr                                                           ModelID = "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR"
	Model__Clarifai__GPT__Oss__120b__High__Throughput                                        ModelID = "openai/chat-completion/models/gpt-oss-120b-high-throughput"
	Model__Clarifai__GPT__Oss__20b                                                           ModelID = "openai/chat-completion/models/gpt-oss-20b"
	Model__Clarifai__Kimi__K2__6                                                             ModelID = "moonshotai/chat-completion/models/Kimi-K2_6"
	Model__Clarifai__MiniMax__M2__5__High__Throughput                                        ModelID = "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput"
	Model__Clarifai__Ministral__3__14B__Reasoning__2512__3__Reasoning                        ModelID = "mistralai/completion/models/Ministral-3-14B-Reasoning-2512"
	Model__Clarifai__Ministral__3__3B__Reasoning__2512__3__Reasoning                         ModelID = "mistralai/completion/models/Ministral-3-3B-Reasoning-2512"
	Model__Clarifai__Mm__Poly__8b                                                            ModelID = "clarifai/main/models/mm-poly-8b"
	Model__Clarifai__Qwen3__30B__A3b__Instruct__2507__3__Instruct                            ModelID = "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507"
	Model__Clarifai__Qwen3__30B__A3b__Thinking__2507__3__Thinking                            ModelID = "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507"
	Model__Clarifai__Qwen3__Coder__30B__A3b__3__Instruct                                     ModelID = "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct"
	Model__Clarifai__Trinity__Mini                                                           ModelID = "arcee_ai/AFM/models/trinity-mini"
	Model__Claudinio__Claudinio                                                              ModelID = "claudinio"
	Model__Claudinio__Claudius                                                               ModelID = "claudius"
	Model__CloudFerroSherlock__Bielik__11B__V2__6__Instruct                                  ModelID = "speakleash/Bielik-11B-v2.6-Instruct"
	Model__CloudFerroSherlock__Bielik__11B__V3__0__Instruct                                  ModelID = "speakleash/Bielik-11B-v3.0-Instruct"
	Model__CloudFerroSherlock__GPT__Oss__120b                                                ModelID = "openai/gpt-oss-120b"
	Model__CloudFerroSherlock__Llama__3__3__70B__3_3__Instruct                               ModelID = "meta-llama/Llama-3.3-70B-Instruct"
	Model__CloudFerroSherlock__MiniMax__M2__5__2_5                                           ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__CloudflareAIGateway__Aura__2__En__2                                               ModelID = "workers-ai/@cf/deepgram/aura-2-en"
	Model__CloudflareAIGateway__Aura__2__Es__2                                               ModelID = "workers-ai/@cf/deepgram/aura-2-es"
	Model__CloudflareAIGateway__Bart__Large__Cnn                                             ModelID = "workers-ai/@cf/facebook/bart-large-cnn"
	Model__CloudflareAIGateway__Bge__Base__En__V1__5                                         ModelID = "workers-ai/@cf/baai/bge-base-en-v1.5"
	Model__CloudflareAIGateway__Bge__Large__En__V1__5                                        ModelID = "workers-ai/@cf/baai/bge-large-en-v1.5"
	Model__CloudflareAIGateway__Bge__M3                                                      ModelID = "workers-ai/@cf/baai/bge-m3"
	Model__CloudflareAIGateway__Bge__Reranker__Base                                          ModelID = "workers-ai/@cf/baai/bge-reranker-base"
	Model__CloudflareAIGateway__Bge__Small__En__V1__5                                        ModelID = "workers-ai/@cf/baai/bge-small-en-v1.5"
	Model__CloudflareAIGateway__Claude__3__5__Haiku__3_5_1                                   ModelID = "anthropic/claude-3-5-haiku"
	Model__CloudflareAIGateway__Claude__3__5__Haiku__3_5_2                                   ModelID = "anthropic/claude-3.5-haiku"
	Model__CloudflareAIGateway__Claude__3__5__Sonnet__3_5                                    ModelID = "anthropic/claude-3.5-sonnet"
	Model__CloudflareAIGateway__Claude__3__Haiku__3                                          ModelID = "anthropic/claude-3-haiku"
	Model__CloudflareAIGateway__Claude__3__Opus__3                                           ModelID = "anthropic/claude-3-opus"
	Model__CloudflareAIGateway__Claude__3__Sonnet__3                                         ModelID = "anthropic/claude-3-sonnet"
	Model__CloudflareAIGateway__Claude__Fable__5                                             ModelID = "anthropic/claude-fable-5"
	Model__CloudflareAIGateway__Claude__Haiku__4_5                                           ModelID = "anthropic/claude-haiku-4-5"
	Model__CloudflareAIGateway__Claude__Opus__4                                              ModelID = "anthropic/claude-opus-4"
	Model__CloudflareAIGateway__Claude__Opus__4_1                                            ModelID = "anthropic/claude-opus-4-1"
	Model__CloudflareAIGateway__Claude__Opus__4_5                                            ModelID = "anthropic/claude-opus-4-5"
	Model__CloudflareAIGateway__Claude__Opus__4_6                                            ModelID = "anthropic/claude-opus-4-6"
	Model__CloudflareAIGateway__Claude__Opus__4_7                                            ModelID = "anthropic/claude-opus-4-7"
	Model__CloudflareAIGateway__Claude__Opus__4_8                                            ModelID = "anthropic/claude-opus-4-8"
	Model__CloudflareAIGateway__Claude__Sonnet__4                                            ModelID = "anthropic/claude-sonnet-4"
	Model__CloudflareAIGateway__Claude__Sonnet__4_5                                          ModelID = "anthropic/claude-sonnet-4-5"
	Model__CloudflareAIGateway__Claude__Sonnet__4_6                                          ModelID = "anthropic/claude-sonnet-4-6"
	Model__CloudflareAIGateway__Claude__Sonnet__5                                            ModelID = "anthropic/claude-sonnet-5"
	Model__CloudflareAIGateway__DeepSeek__R1__Distill__Qwen__32b__Thinking                   ModelID = "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"
	Model__CloudflareAIGateway__Distilbert__Sst__2__Int8__2                                  ModelID = "workers-ai/@cf/huggingface/distilbert-sst-2-int8"
	Model__CloudflareAIGateway__GLM__4__7__Flash__4_7                                        ModelID = "workers-ai/@cf/zai-org/glm-4.7-flash"
	Model__CloudflareAIGateway__GPT__3_5__Turbo                                              ModelID = "openai/gpt-3.5-turbo"
	Model__CloudflareAIGateway__GPT__4                                                       ModelID = "openai/gpt-4"
	Model__CloudflareAIGateway__GPT__4__Turbo                                                ModelID = "openai/gpt-4-turbo"
	Model__CloudflareAIGateway__GPT__4o                                                      ModelID = "openai/gpt-4o"
	Model__CloudflareAIGateway__GPT__4o__Mini                                                ModelID = "openai/gpt-4o-mini"
	Model__CloudflareAIGateway__GPT__5_1                                                     ModelID = "openai/gpt-5.1"
	Model__CloudflareAIGateway__GPT__5_2                                                     ModelID = "openai/gpt-5.2"
	Model__CloudflareAIGateway__GPT__5_4                                                     ModelID = "openai/gpt-5.4"
	Model__CloudflareAIGateway__GPT__5_5                                                     ModelID = "openai/gpt-5.5"
	Model__CloudflareAIGateway__GPT__5__1__Codex__5_1                                        ModelID = "openai/gpt-5.1-codex"
	Model__CloudflareAIGateway__GPT__5__2__Codex__5_2                                        ModelID = "openai/gpt-5.2-codex"
	Model__CloudflareAIGateway__GPT__5__3__Codex__5_3                                        ModelID = "openai/gpt-5.3-codex"
	Model__CloudflareAIGateway__GPT__Oss__120b                                               ModelID = "workers-ai/@cf/openai/gpt-oss-120b"
	Model__CloudflareAIGateway__GPT__Oss__20b                                                ModelID = "workers-ai/@cf/openai/gpt-oss-20b"
	Model__CloudflareAIGateway__Gemma__3__12b__It__3                                         ModelID = "workers-ai/@cf/google/gemma-3-12b-it"
	Model__CloudflareAIGateway__Gemma__Sea__Lion__V4__27b__It                                ModelID = "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it"
	Model__CloudflareAIGateway__Granite__4__0__H__Micro__4_0                                 ModelID = "workers-ai/@cf/ibm-granite/granite-4.0-h-micro"
	Model__CloudflareAIGateway__Indictrans2__En__Indic__1B                                   ModelID = "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B"
	Model__CloudflareAIGateway__Kimi__K2__5__2_5                                             ModelID = "workers-ai/@cf/moonshotai/kimi-k2.5"
	Model__CloudflareAIGateway__Kimi__K2__6__2_6                                             ModelID = "workers-ai/@cf/moonshotai/kimi-k2.6"
	Model__CloudflareAIGateway__Llama__2__7b__Chat__Fp16__2__Chat                            ModelID = "workers-ai/@cf/meta/llama-2-7b-chat-fp16"
	Model__CloudflareAIGateway__Llama__3__1__8b__3_1__Instruct                               ModelID = "workers-ai/@cf/meta/llama-3.1-8b-instruct"
	Model__CloudflareAIGateway__Llama__3__1__8b__Instruct__Awq__3_1__Instruct                ModelID = "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq"
	Model__CloudflareAIGateway__Llama__3__1__8b__Instruct__Fp8__3_1__Instruct                ModelID = "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8"
	Model__CloudflareAIGateway__Llama__3__2__11b__3_2__VisionInstruct                        ModelID = "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct"
	Model__CloudflareAIGateway__Llama__3__2__1b__3_2__Instruct                               ModelID = "workers-ai/@cf/meta/llama-3.2-1b-instruct"
	Model__CloudflareAIGateway__Llama__3__2__3b__3_2__Instruct                               ModelID = "workers-ai/@cf/meta/llama-3.2-3b-instruct"
	Model__CloudflareAIGateway__Llama__3__3__70b__Instruct__Fp8__3_3__FastInstruct           ModelID = "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast"
	Model__CloudflareAIGateway__Llama__3__8b__3__Instruct                                    ModelID = "workers-ai/@cf/meta/llama-3-8b-instruct"
	Model__CloudflareAIGateway__Llama__3__8b__Instruct__Awq__3__Instruct                     ModelID = "workers-ai/@cf/meta/llama-3-8b-instruct-awq"
	Model__CloudflareAIGateway__Llama__4__Scout__17b__16e__4__Instruct                       ModelID = "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct"
	Model__CloudflareAIGateway__Llama__Guard__3__8b__3                                       ModelID = "workers-ai/@cf/meta/llama-guard-3-8b"
	Model__CloudflareAIGateway__M2m100__1__2b                                                ModelID = "workers-ai/@cf/meta/m2m100-1.2b"
	Model__CloudflareAIGateway__Melotts                                                      ModelID = "workers-ai/@cf/myshell-ai/melotts"
	Model__CloudflareAIGateway__Mistral__7b__Instruct__V0__1__0_1__Instruct                  ModelID = "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1"
	Model__CloudflareAIGateway__Mistral__Small__3__1__24b__3_1__Instruct                     ModelID = "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct"
	Model__CloudflareAIGateway__Nemotron__3__120b__A12b__3                                   ModelID = "workers-ai/@cf/nvidia/nemotron-3-120b-a12b"
	Model__CloudflareAIGateway__Nova__3                                                      ModelID = "workers-ai/@cf/deepgram/nova-3"
	Model__CloudflareAIGateway__O1__1                                                        ModelID = "openai/o1"
	Model__CloudflareAIGateway__O3__3                                                        ModelID = "openai/o3"
	Model__CloudflareAIGateway__O3__3__Mini                                                  ModelID = "openai/o3-mini"
	Model__CloudflareAIGateway__O3__3__Pro                                                   ModelID = "openai/o3-pro"
	Model__CloudflareAIGateway__O4__4__Mini                                                  ModelID = "openai/o4-mini"
	Model__CloudflareAIGateway__Plamo__Embedding__1b                                         ModelID = "workers-ai/@cf/pfnet/plamo-embedding-1b"
	Model__CloudflareAIGateway__Qwen2__5__Coder__32b__2_5__Instruct                          ModelID = "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct"
	Model__CloudflareAIGateway__Qwen3__30b__A3b__Fp8__3                                      ModelID = "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8"
	Model__CloudflareAIGateway__Qwen3__Embedding__0__6b__3                                   ModelID = "workers-ai/@cf/qwen/qwen3-embedding-0.6b"
	Model__CloudflareAIGateway__Qwq__32b                                                     ModelID = "workers-ai/@cf/qwen/qwq-32b"
	Model__CloudflareAIGateway__Smart__Turn__V2                                              ModelID = "workers-ai/@cf/pipecat-ai/smart-turn-v2"
	Model__CloudflareWorkersAI__DeepSeek__R1__Distill__Qwen__32b__Thinking                   ModelID = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"
	Model__CloudflareWorkersAI__GLM__4__7__Flash__4_7                                        ModelID = "@cf/zai-org/glm-4.7-flash"
	Model__CloudflareWorkersAI__GLM__5_2                                                     ModelID = "@cf/zai-org/glm-5.2"
	Model__CloudflareWorkersAI__GPT__Oss__120b                                               ModelID = "@cf/openai/gpt-oss-120b"
	Model__CloudflareWorkersAI__GPT__Oss__20b                                                ModelID = "@cf/openai/gpt-oss-20b"
	Model__CloudflareWorkersAI__Gemma__4__26b__A4b__It__4                                    ModelID = "@cf/google/gemma-4-26b-a4b-it"
	Model__CloudflareWorkersAI__Gemma__Sea__Lion__V4__27b__It                                ModelID = "@cf/aisingapore/gemma-sea-lion-v4-27b-it"
	Model__CloudflareWorkersAI__Granite__4__0__H__Micro__4_0                                 ModelID = "@cf/ibm-granite/granite-4.0-h-micro"
	Model__CloudflareWorkersAI__Kimi__K2__6__2_6                                             ModelID = "@cf/moonshotai/kimi-k2.6"
	Model__CloudflareWorkersAI__Kimi__K2__7__2_7__Code                                       ModelID = "@cf/moonshotai/kimi-k2.7-code"
	Model__CloudflareWorkersAI__Llama__3__1__8b__Instruct__Fp8__3_1__Instruct                ModelID = "@cf/meta/llama-3.1-8b-instruct-fp8"
	Model__CloudflareWorkersAI__Llama__3__2__11b__3_2__VisionInstruct                        ModelID = "@cf/meta/llama-3.2-11b-vision-instruct"
	Model__CloudflareWorkersAI__Llama__3__2__1b__3_2__Instruct                               ModelID = "@cf/meta/llama-3.2-1b-instruct"
	Model__CloudflareWorkersAI__Llama__3__2__3b__3_2__Instruct                               ModelID = "@cf/meta/llama-3.2-3b-instruct"
	Model__CloudflareWorkersAI__Llama__3__3__70b__Instruct__Fp8__3_3__FastInstruct           ModelID = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"
	Model__CloudflareWorkersAI__Llama__4__Scout__17b__16e__4__Instruct                       ModelID = "@cf/meta/llama-4-scout-17b-16e-instruct"
	Model__CloudflareWorkersAI__Llama__Guard__3__8b__3                                       ModelID = "@cf/meta/llama-guard-3-8b"
	Model__CloudflareWorkersAI__Mistral__Small__3__1__24b__3_1__Instruct                     ModelID = "@cf/mistralai/mistral-small-3.1-24b-instruct"
	Model__CloudflareWorkersAI__Nemotron__3__120b__A12b__3                                   ModelID = "@cf/nvidia/nemotron-3-120b-a12b"
	Model__CloudflareWorkersAI__Qwen2__5__Coder__32b__2_5__Instruct                          ModelID = "@cf/qwen/qwen2.5-coder-32b-instruct"
	Model__CloudflareWorkersAI__Qwen3__30b__A3b__Fp8__3                                      ModelID = "@cf/qwen/qwen3-30b-a3b-fp8"
	Model__CloudflareWorkersAI__Qwq__32b                                                     ModelID = "@cf/qwen/qwq-32b"
	Model__Cohere__C4ai__Aya__Expanse__32b                                                   ModelID = "c4ai-aya-expanse-32b"
	Model__Cohere__C4ai__Aya__Expanse__8b                                                    ModelID = "c4ai-aya-expanse-8b"
	Model__Cohere__C4ai__Aya__Vision__32b__Vision                                            ModelID = "c4ai-aya-vision-32b"
	Model__Cohere__C4ai__Aya__Vision__8b__Vision                                             ModelID = "c4ai-aya-vision-8b"
	Model__Cohere__Command__A__20250313                                                      ModelID = "command-a-03-2025"
	Model__Cohere__Command__A__Plus__20260520                                                ModelID = "command-a-plus-05-2026"
	Model__Cohere__Command__A__Reasoning__Reasoning__20250821                                ModelID = "command-a-reasoning-08-2025"
	Model__Cohere__Command__A__Translate__20250828                                           ModelID = "command-a-translate-08-2025"
	Model__Cohere__Command__A__Vision__Vision__20250731                                      ModelID = "command-a-vision-07-2025"
	Model__Cohere__Command__R7b__12__20241202                                                ModelID = "command-r7b-12-2024"
	Model__Cohere__Command__R7b__Arabic__02__20250227                                        ModelID = "command-r7b-arabic-02-2025"
	Model__Cohere__Command__R__20240830                                                      ModelID = "command-r-08-2024"
	Model__Cohere__Command__R__Plus__20240830                                                ModelID = "command-r-plus-08-2024"
	Model__Cohere__North__Mini__Code__1__0                                                   ModelID = "north-mini-code-1-0"
	Model__Cortecs__Claude__4__5__Sonnet__4_5                                                ModelID = "claude-4-5-sonnet"
	Model__Cortecs__Claude__4__6__Sonnet__4_6                                                ModelID = "claude-4-6-sonnet"
	Model__Cortecs__Claude__Haiku__4_5                                                       ModelID = "claude-haiku-4-5"
	Model__Cortecs__Claude__Opus4__5                                                         ModelID = "claude-opus4-5"
	Model__Cortecs__Claude__Opus4__6                                                         ModelID = "claude-opus4-6"
	Model__Cortecs__Claude__Opus4__7                                                         ModelID = "claude-opus4-7"
	Model__Cortecs__Claude__Opus4__8                                                         ModelID = "claude-opus4-8"
	Model__Cortecs__Claude__Sonnet__4                                                        ModelID = "claude-sonnet-4"
	Model__Cortecs__Codestral__2508                                                          ModelID = "codestral-2508"
	Model__Cortecs__DeepSeek__R1__0528__Thinking                                             ModelID = "deepseek-r1-0528"
	Model__Cortecs__DeepSeek__V3__0324                                                       ModelID = "deepseek-v3-0324"
	Model__Cortecs__DeepSeek__V3__2                                                          ModelID = "deepseek-v3.2"
	Model__Cortecs__DeepSeek__V4__Flash                                                      ModelID = "deepseek-v4-flash"
	Model__Cortecs__DeepSeek__V4__Pro__Thinking                                              ModelID = "deepseek-v4-pro"
	Model__Cortecs__Devstral__2512                                                           ModelID = "devstral-2512"
	Model__Cortecs__GLM__4_5                                                                 ModelID = "glm-4.5"
	Model__Cortecs__GLM__4_7                                                                 ModelID = "glm-4.7"
	Model__Cortecs__GLM__4__5__Air__4_5                                                      ModelID = "glm-4.5-air"
	Model__Cortecs__GLM__4__7__Flash__4_7                                                    ModelID = "glm-4.7-flash"
	Model__Cortecs__GLM__5                                                                   ModelID = "glm-5"
	Model__Cortecs__GLM__5_1                                                                 ModelID = "glm-5.1"
	Model__Cortecs__GLM__5_2                                                                 ModelID = "glm-5.2"
	Model__Cortecs__GLM__5__Turbo                                                            ModelID = "glm-5-turbo"
	Model__Cortecs__GLM__5v__5__Turbo                                                        ModelID = "glm-5v-turbo"
	Model__Cortecs__GPT__4_1                                                                 ModelID = "gpt-4.1"
	Model__Cortecs__GPT__5_4                                                                 ModelID = "gpt-5.4"
	Model__Cortecs__GPT__Oss__120b                                                           ModelID = "gpt-oss-120b"
	Model__Cortecs__Gemini__2__5__Pro__2_5                                                   ModelID = "gemini-2.5-pro"
	Model__Cortecs__Hermes__4__70b__4                                                        ModelID = "hermes-4-70b"
	Model__Cortecs__Intellect__3                                                             ModelID = "intellect-3"
	Model__Cortecs__Kimi__K2__2__Instruct                                                    ModelID = "kimi-k2-instruct"
	Model__Cortecs__Kimi__K2__2__Thinking                                                    ModelID = "kimi-k2-thinking"
	Model__Cortecs__Kimi__K2__5__2_5__Thinking                                               ModelID = "kimi-k2.5"
	Model__Cortecs__Kimi__K2__6__2_6__Thinking                                               ModelID = "kimi-k2.6"
	Model__Cortecs__Kimi__K2__7__2_7__Code                                                   ModelID = "kimi-k2.7-code"
	Model__Cortecs__Llama__3__1__405b__3_1__Instruct                                         ModelID = "llama-3.1-405b-instruct"
	Model__Cortecs__Llama__3__3__70b__3_3__Instruct                                          ModelID = "llama-3.3-70b-instruct"
	Model__Cortecs__Llama__4__Maverick__4                                                    ModelID = "llama-4-maverick"
	Model__Cortecs__MiniMax__M2__1__2_1                                                      ModelID = "minimax-m2.1"
	Model__Cortecs__MiniMax__M2__2                                                           ModelID = "minimax-m2"
	Model__Cortecs__MiniMax__M2__5__2_5                                                      ModelID = "minimax-m2.5"
	Model__Cortecs__MiniMax__M2__7__2_7                                                      ModelID = "minimax-m2.7"
	Model__Cortecs__MiniMax__M3__3                                                           ModelID = "minimax-m3"
	Model__Cortecs__Mistral__Large__2512                                                     ModelID = "mistral-large-2512"
	Model__Cortecs__Mixtral__8x7B__Instruct__V0__1__0_1__Instruct                            ModelID = "mixtral-8x7B-instruct-v0.1"
	Model__Cortecs__Nemotron__3__Super__120b__A12b__3                                        ModelID = "nemotron-3-super-120b-a12b"
	Model__Cortecs__Nova__Pro__V1                                                            ModelID = "nova-pro-v1"
	Model__Cortecs__Qwen3__235b__A22b__Instruct__2507__3__Instruct                           ModelID = "qwen3-235b-a22b-instruct-2507"
	Model__Cortecs__Qwen3__32b__3                                                            ModelID = "qwen3-32b"
	Model__Cortecs__Qwen3__5__122b__A10b__3_5                                                ModelID = "qwen3.5-122b-a10b"
	Model__Cortecs__Qwen3__5__397b__A17b__3_5                                                ModelID = "qwen3.5-397b-a17b"
	Model__Cortecs__Qwen3__Coder__30b__A3b__3__Instruct                                      ModelID = "qwen3-coder-30b-a3b-instruct"
	Model__Cortecs__Qwen3__Coder__480b__A35b__3__Instruct                                    ModelID = "qwen3-coder-480b-a35b-instruct"
	Model__Cortecs__Qwen3__Coder__Next__3                                                    ModelID = "qwen3-coder-next"
	Model__Cortecs__Qwen3__Next__80b__A3b__3__Thinking                                       ModelID = "qwen3-next-80b-a3b-thinking"
	Model__Cortecs__Qwen__2__5__72b__2_5__Instruct                                           ModelID = "qwen-2.5-72b-instruct"
	Model__Crof__DeepSeek__V3__2                                                             ModelID = "deepseek-v3.2"
	Model__Crof__DeepSeek__V4__Flash                                                         ModelID = "deepseek-v4-flash"
	Model__Crof__DeepSeek__V4__Pro__Lightning__Thinking                                      ModelID = "deepseek-v4-pro-lightning"
	Model__Crof__DeepSeek__V4__Pro__Thinking                                                 ModelID = "deepseek-v4-pro"
	Model__Crof__GLM__4_7                                                                    ModelID = "glm-4.7"
	Model__Crof__GLM__4__7__Flash__4_7                                                       ModelID = "glm-4.7-flash"
	Model__Crof__GLM__5                                                                      ModelID = "glm-5"
	Model__Crof__GLM__5_1                                                                    ModelID = "glm-5.1"
	Model__Crof__GLM__5_2                                                                    ModelID = "glm-5.2"
	Model__Crof__Gemma__4__31b__It__4                                                        ModelID = "gemma-4-31b-it"
	Model__Crof__Greg__1__Mini__1                                                            ModelID = "greg-1-mini"
	Model__Crof__Greg__2__Super__2                                                           ModelID = "greg-2-super"
	Model__Crof__Greg__2__Ultra__2                                                           ModelID = "greg-2-ultra"
	Model__Crof__Greg__Rp                                                                    ModelID = "greg-rp"
	Model__Crof__Kimi__K2__5__2_5                                                            ModelID = "kimi-k2.5"
	Model__Crof__Kimi__K2__5__2_5__Lightning                                                 ModelID = "kimi-k2.5-lightning"
	Model__Crof__Kimi__K2__6__2_6                                                            ModelID = "kimi-k2.6"
	Model__Crof__Kimi__K2__7__2_7__Code                                                      ModelID = "kimi-k2.7-code"
	Model__Crof__Mimo__V2__5__2_5__Pro                                                       ModelID = "mimo-v2.5-pro"
	Model__Crof__MiniMax__M2__5__2_5                                                         ModelID = "minimax-m2.5"
	Model__Crof__Qwen3__5__397b__A17b__3_5                                                   ModelID = "qwen3.5-397b-a17b"
	Model__Crof__Qwen3__5__9b__3_5                                                           ModelID = "qwen3.5-9b"
	Model__Crof__Qwen3__6__27b__3_6                                                          ModelID = "qwen3.6-27b"
	Model__CrossModel__Claude__Fable__5                                                      ModelID = "anthropic/claude-fable-5"
	Model__CrossModel__Claude__Haiku__4_5                                                    ModelID = "anthropic/claude-haiku-4-5"
	Model__CrossModel__Claude__Opus__4_7                                                     ModelID = "anthropic/claude-opus-4-7"
	Model__CrossModel__Claude__Opus__4_8                                                     ModelID = "anthropic/claude-opus-4-8"
	Model__CrossModel__Claude__Sonnet__4_6                                                   ModelID = "anthropic/claude-sonnet-4-6"
	Model__CrossModel__Claude__Sonnet__5                                                     ModelID = "anthropic/claude-sonnet-5"
	Model__CrossModel__DeepSeek__V4__Flash                                                   ModelID = "deepseek/deepseek-v4-flash"
	Model__CrossModel__DeepSeek__V4__Pro__Thinking                                           ModelID = "deepseek/deepseek-v4-pro"
	Model__CrossModel__GLM__4_7                                                              ModelID = "z-ai/glm-4.7"
	Model__CrossModel__GLM__5                                                                ModelID = "z-ai/glm-5"
	Model__CrossModel__GLM__5_1                                                              ModelID = "z-ai/glm-5.1"
	Model__CrossModel__GLM__5_2                                                              ModelID = "z-ai/glm-5.2"
	Model__CrossModel__GLM__5__Turbo                                                         ModelID = "z-ai/glm-5-turbo"
	Model__CrossModel__GPT__4o__Mini                                                         ModelID = "openai/gpt-4o-mini"
	Model__CrossModel__GPT__5_4                                                              ModelID = "openai/gpt-5.4"
	Model__CrossModel__GPT__5_5                                                              ModelID = "openai/gpt-5.5"
	Model__CrossModel__GPT__5__4__Mini__5_4                                                  ModelID = "openai/gpt-5.4-mini"
	Model__CrossModel__GPT__5__4__Nano__5_4                                                  ModelID = "openai/gpt-5.4-nano"
	Model__CrossModel__GPT__5__5__Pro__5_5                                                   ModelID = "openai/gpt-5.5-pro"
	Model__CrossModel__Gemini__2__5__Flash__2_5                                              ModelID = "gemini/gemini-2.5-flash"
	Model__CrossModel__Gemini__2__5__Flash__Lite__2_5                                        ModelID = "gemini/gemini-2.5-flash-lite"
	Model__CrossModel__Gemini__2__5__Pro__2_5                                                ModelID = "gemini/gemini-2.5-pro"
	Model__CrossModel__Gemini__3__1__Pro__3_1__Preview                                       ModelID = "gemini/gemini-3.1-pro-preview"
	Model__CrossModel__Gemini__3__5__Flash__3_5                                              ModelID = "gemini/gemini-3.5-flash"
	Model__CrossModel__Gemini__3__Flash__3__Preview                                          ModelID = "gemini/gemini-3-flash-preview"
	Model__CrossModel__Hy3__3__Preview                                                       ModelID = "tencent/hy3-preview"
	Model__CrossModel__Kimi__K2__5__2_5                                                      ModelID = "moonshot/kimi-k2.5"
	Model__CrossModel__Kimi__K2__6__2_6                                                      ModelID = "moonshot/kimi-k2.6"
	Model__CrossModel__Kimi__K2__7__2_7__Code                                                ModelID = "moonshot/kimi-k2.7-code"
	Model__CrossModel__Mimo__V2__5__2_5                                                      ModelID = "xiaomi/mimo-v2.5"
	Model__CrossModel__Mimo__V2__5__2_5__Pro                                                 ModelID = "xiaomi/mimo-v2.5-pro"
	Model__CrossModel__MiniMax__M2__7__2_7                                                   ModelID = "minimax/minimax-m2.7"
	Model__CrossModel__MiniMax__M3__3                                                        ModelID = "minimax/minimax-m3"
	Model__CrossModel__Qwen3__6__Flash__3_6                                                  ModelID = "qwen/qwen3.6-flash"
	Model__CrossModel__Qwen3__6__Plus__3_6                                                   ModelID = "qwen/qwen3.6-plus"
	Model__CrossModel__Qwen3__7__Max__3_7                                                    ModelID = "qwen/qwen3.7-max"
	Model__CrossModel__Qwen3__7__Plus__3_7                                                   ModelID = "qwen/qwen3.7-plus"
	Model__DInference__GLM__4_7                                                              ModelID = "glm-4.7"
	Model__DInference__GLM__5                                                                ModelID = "glm-5"
	Model__DInference__GLM__5_1                                                              ModelID = "glm-5.1"
	Model__DInference__GPT__Oss__120b                                                        ModelID = "gpt-oss-120b"
	Model__DInference__MiniMax__M2__5__2_5                                                   ModelID = "minimax-m2.5"
	Model__DaoXE__Claude__Haiku__4_5__20251001                                               ModelID = "claude-haiku-4-5-20251001"
	Model__DaoXE__Claude__Opus__4_8                                                          ModelID = "claude-opus-4-8"
	Model__DaoXE__Claude__Sonnet__4_6                                                        ModelID = "claude-sonnet-4-6"
	Model__DaoXE__GPT__5_4                                                                   ModelID = "gpt-5.4"
	Model__DaoXE__GPT__5_5                                                                   ModelID = "gpt-5.5"
	Model__DaoXE__Gemini__3__1__Pro__3_1__Preview                                            ModelID = "gemini-3.1-pro-preview"
	Model__DaoXE__Grok__4_3                                                                  ModelID = "grok-4.3"
	Model__DaoXE__Grok__4_5                                                                  ModelID = "grok-4.5"
	Model__DaoXE__Kimi__K2__5__2_5                                                           ModelID = "kimi-k2.5"
	Model__Databricks__Databricks__Claude__Haiku__4__5                                       ModelID = "databricks-claude-haiku-4-5"
	Model__Databricks__Databricks__Claude__Opus__4__1                                        ModelID = "databricks-claude-opus-4-1"
	Model__Databricks__Databricks__Claude__Opus__4__5                                        ModelID = "databricks-claude-opus-4-5"
	Model__Databricks__Databricks__Claude__Opus__4__6                                        ModelID = "databricks-claude-opus-4-6"
	Model__Databricks__Databricks__Claude__Opus__4__7                                        ModelID = "databricks-claude-opus-4-7"
	Model__Databricks__Databricks__Claude__Sonnet__4                                         ModelID = "databricks-claude-sonnet-4"
	Model__Databricks__Databricks__Claude__Sonnet__4__5                                      ModelID = "databricks-claude-sonnet-4-5"
	Model__Databricks__Databricks__Claude__Sonnet__4__6                                      ModelID = "databricks-claude-sonnet-4-6"
	Model__Databricks__Databricks__GLM__5__2                                                 ModelID = "databricks-glm-5-2"
	Model__Databricks__Databricks__GPT__5                                                    ModelID = "databricks-gpt-5"
	Model__Databricks__Databricks__GPT__5__1                                                 ModelID = "databricks-gpt-5-1"
	Model__Databricks__Databricks__GPT__5__2                                                 ModelID = "databricks-gpt-5-2"
	Model__Databricks__Databricks__GPT__5__4                                                 ModelID = "databricks-gpt-5-4"
	Model__Databricks__Databricks__GPT__5__4__Mini                                           ModelID = "databricks-gpt-5-4-mini"
	Model__Databricks__Databricks__GPT__5__4__Nano                                           ModelID = "databricks-gpt-5-4-nano"
	Model__Databricks__Databricks__GPT__5__5                                                 ModelID = "databricks-gpt-5-5"
	Model__Databricks__Databricks__GPT__5__Mini                                              ModelID = "databricks-gpt-5-mini"
	Model__Databricks__Databricks__GPT__5__Nano                                              ModelID = "databricks-gpt-5-nano"
	Model__Databricks__Databricks__GPT__Oss__120b                                            ModelID = "databricks-gpt-oss-120b"
	Model__Databricks__Databricks__GPT__Oss__20b                                             ModelID = "databricks-gpt-oss-20b"
	Model__Databricks__Databricks__Gemini__2__5__Flash                                       ModelID = "databricks-gemini-2-5-flash"
	Model__Databricks__Databricks__Gemini__2__5__Pro                                         ModelID = "databricks-gemini-2-5-pro"
	Model__Databricks__Databricks__Gemini__3__1__Flash__Lite                                 ModelID = "databricks-gemini-3-1-flash-lite"
	Model__Databricks__Databricks__Gemini__3__1__Pro                                         ModelID = "databricks-gemini-3-1-pro"
	Model__Databricks__Databricks__Gemini__3__Flash                                          ModelID = "databricks-gemini-3-flash"
	Model__Databricks__Databricks__Gemini__3__Pro                                            ModelID = "databricks-gemini-3-pro"
	Model__Databricks__Databricks__Kimi__K2__7__Code                                         ModelID = "databricks-kimi-k2-7-code"
	Model__DeepInfra__DeepSeek__R1__0528                                                     ModelID = "deepseek-ai/DeepSeek-R1-0528"
	Model__DeepInfra__DeepSeek__V3__2                                                        ModelID = "deepseek-ai/DeepSeek-V3.2"
	Model__DeepInfra__DeepSeek__V4__Flash                                                    ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__DeepInfra__DeepSeek__V4__Pro__Thinking                                            ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__DeepInfra__GLM__4_6                                                               ModelID = "zai-org/GLM-4.6"
	Model__DeepInfra__GLM__4_7                                                               ModelID = "zai-org/GLM-4.7"
	Model__DeepInfra__GLM__4__7__Flash__4_7                                                  ModelID = "zai-org/GLM-4.7-Flash"
	Model__DeepInfra__GLM__5                                                                 ModelID = "zai-org/GLM-5"
	Model__DeepInfra__GLM__5_1                                                               ModelID = "zai-org/GLM-5.1"
	Model__DeepInfra__GLM__5_2                                                               ModelID = "zai-org/GLM-5.2"
	Model__DeepInfra__GPT__Oss__120b                                                         ModelID = "openai/gpt-oss-120b"
	Model__DeepInfra__GPT__Oss__20b                                                          ModelID = "openai/gpt-oss-20b"
	Model__DeepInfra__Gemma__4__26B__A4b__It__4                                              ModelID = "google/gemma-4-26B-A4B-it"
	Model__DeepInfra__Gemma__4__31B__It__4                                                   ModelID = "google/gemma-4-31B-it"
	Model__DeepInfra__Kimi__K2__5__2_5                                                       ModelID = "moonshotai/Kimi-K2.5"
	Model__DeepInfra__Kimi__K2__6__2_6                                                       ModelID = "moonshotai/Kimi-K2.6"
	Model__DeepInfra__Kimi__K2__7__2_7__Code                                                 ModelID = "moonshotai/Kimi-K2.7-Code"
	Model__DeepInfra__Llama__3__3__70B__3_3__TurboInstruct                                   ModelID = "meta-llama/Llama-3.3-70B-Instruct-Turbo"
	Model__DeepInfra__Llama__3__3__Nemotron__Super__49B__V1__5__3_3                          ModelID = "nvidia/Llama-3.3-Nemotron-Super-49B-v1.5"
	Model__DeepInfra__Llama__4__Maverick__17B__128E__Instruct__Fp8__4__Instruct              ModelID = "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"
	Model__DeepInfra__Llama__4__Scout__17B__16E__4__Instruct                                 ModelID = "meta-llama/Llama-4-Scout-17B-16E-Instruct"
	Model__DeepInfra__Mimo__V2__5__2_5                                                       ModelID = "XiaomiMiMo/MiMo-V2.5"
	Model__DeepInfra__Mimo__V2__5__2_5__Pro                                                  ModelID = "XiaomiMiMo/MiMo-V2.5-Pro"
	Model__DeepInfra__MiniMax__M2__5__2_5                                                    ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__DeepInfra__MiniMax__M2__7__2_7                                                    ModelID = "MiniMaxAI/MiniMax-M2.7"
	Model__DeepInfra__MiniMax__M3__3                                                         ModelID = "MiniMaxAI/MiniMax-M3"
	Model__DeepInfra__Nemotron__3__Nano__30B__A3b__3                                         ModelID = "nvidia/Nemotron-3-Nano-30B-A3B"
	Model__DeepInfra__Nemotron__3__Nano__Omni__30B__A3b__3__ReasoningOmni                    ModelID = "nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning"
	Model__DeepInfra__Qwen3__32B__3                                                          ModelID = "Qwen/Qwen3-32B"
	Model__DeepInfra__Qwen3__5__122B__A10b__3_5                                              ModelID = "Qwen/Qwen3.5-122B-A10B"
	Model__DeepInfra__Qwen3__5__27B__3_5                                                     ModelID = "Qwen/Qwen3.5-27B"
	Model__DeepInfra__Qwen3__5__35B__A3b__3_5                                                ModelID = "Qwen/Qwen3.5-35B-A3B"
	Model__DeepInfra__Qwen3__5__397B__A17b__3_5                                              ModelID = "Qwen/Qwen3.5-397B-A17B"
	Model__DeepInfra__Qwen3__5__9B__3_5                                                      ModelID = "Qwen/Qwen3.5-9B"
	Model__DeepInfra__Qwen3__6__27B__3_6                                                     ModelID = "Qwen/Qwen3.6-27B"
	Model__DeepInfra__Qwen3__6__35B__A3b__3_6                                                ModelID = "Qwen/Qwen3.6-35B-A3B"
	Model__DeepInfra__Qwen3__7__Max__3_7                                                     ModelID = "Qwen/Qwen3.7-Max"
	Model__DeepInfra__Qwen3__Coder__480B__A35b__Instruct__Turbo__3                           ModelID = "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo"
	Model__DeepInfra__Qwen3__Max__3                                                          ModelID = "Qwen/Qwen3-Max"
	Model__DeepInfra__Qwen3__Next__80B__A3b__3__Instruct                                     ModelID = "Qwen/Qwen3-Next-80B-A3B-Instruct"
	Model__DeepSeek__DeepSeek__Chat                                                          ModelID = "deepseek-chat"
	Model__DeepSeek__DeepSeek__Reasoner__Thinking                                            ModelID = "deepseek-reasoner"
	Model__DeepSeek__DeepSeek__V4__Flash                                                     ModelID = "deepseek-v4-flash"
	Model__DeepSeek__DeepSeek__V4__Pro__Thinking                                             ModelID = "deepseek-v4-pro"
	Model__DigitalOcean__Alibaba__Qwen3__32b                                                 ModelID = "alibaba-qwen3-32b"
	Model__DigitalOcean__All__Mini__Lm__L6__V2                                               ModelID = "all-mini-lm-l6-v2"
	Model__DigitalOcean__Anthropic__Claude__3__5__Haiku                                      ModelID = "anthropic-claude-3.5-haiku"
	Model__DigitalOcean__Anthropic__Claude__3__5__Sonnet                                     ModelID = "anthropic-claude-3.5-sonnet"
	Model__DigitalOcean__Anthropic__Claude__3__7__Sonnet                                     ModelID = "anthropic-claude-3.7-sonnet"
	Model__DigitalOcean__Anthropic__Claude__3__Opus                                          ModelID = "anthropic-claude-3-opus"
	Model__DigitalOcean__Anthropic__Claude__4__1__Opus                                       ModelID = "anthropic-claude-4.1-opus"
	Model__DigitalOcean__Anthropic__Claude__4__5__Haiku                                      ModelID = "anthropic-claude-4.5-haiku"
	Model__DigitalOcean__Anthropic__Claude__4__5__Sonnet                                     ModelID = "anthropic-claude-4.5-sonnet"
	Model__DigitalOcean__Anthropic__Claude__4__6__Sonnet                                     ModelID = "anthropic-claude-4.6-sonnet"
	Model__DigitalOcean__Anthropic__Claude__Fable__5                                         ModelID = "anthropic-claude-fable-5"
	Model__DigitalOcean__Anthropic__Claude__Haiku__4__5                                      ModelID = "anthropic-claude-haiku-4.5"
	Model__DigitalOcean__Anthropic__Claude__Opus__4                                          ModelID = "anthropic-claude-opus-4"
	Model__DigitalOcean__Anthropic__Claude__Opus__4__5                                       ModelID = "anthropic-claude-opus-4.5"
	Model__DigitalOcean__Anthropic__Claude__Opus__4__6                                       ModelID = "anthropic-claude-opus-4.6"
	Model__DigitalOcean__Anthropic__Claude__Opus__4__7                                       ModelID = "anthropic-claude-opus-4.7"
	Model__DigitalOcean__Anthropic__Claude__Opus__4__8                                       ModelID = "anthropic-claude-opus-4.8"
	Model__DigitalOcean__Anthropic__Claude__Sonnet__4                                        ModelID = "anthropic-claude-sonnet-4"
	Model__DigitalOcean__Arcee__Trinity__Large__Thinking                                     ModelID = "arcee-trinity-large-thinking"
	Model__DigitalOcean__Bge__M3                                                             ModelID = "bge-m3"
	Model__DigitalOcean__Bge__Reranker__V2__M3                                               ModelID = "bge-reranker-v2-m3"
	Model__DigitalOcean__DeepSeek__3_2                                                       ModelID = "deepseek-3.2"
	Model__DigitalOcean__DeepSeek__4__Flash__4                                               ModelID = "deepseek-4-flash"
	Model__DigitalOcean__DeepSeek__R1__Distill__Llama__70b__Thinking                         ModelID = "deepseek-r1-distill-llama-70b"
	Model__DigitalOcean__DeepSeek__V3                                                        ModelID = "deepseek-v3"
	Model__DigitalOcean__DeepSeek__V4__Pro__Thinking                                         ModelID = "deepseek-v4-pro"
	Model__DigitalOcean__E5__Large__V2                                                       ModelID = "e5-large-v2"
	Model__DigitalOcean__Fast__Sdxl                                                          ModelID = "fal-ai/fast-sdxl"
	Model__DigitalOcean__GLM__5                                                              ModelID = "glm-5"
	Model__DigitalOcean__GLM__5_1                                                            ModelID = "glm-5.1"
	Model__DigitalOcean__GLM__5_2                                                            ModelID = "glm-5.2"
	Model__DigitalOcean__Gemma__4__31B__It__4                                                ModelID = "gemma-4-31B-it"
	Model__DigitalOcean__Gte__Large__En__V1__5                                               ModelID = "gte-large-en-v1.5"
	Model__DigitalOcean__Kimi__K2__5__2_5                                                    ModelID = "kimi-k2.5"
	Model__DigitalOcean__Kimi__K2__6__2_6                                                    ModelID = "kimi-k2.6"
	Model__DigitalOcean__Llama3__3__70b__Instruct                                            ModelID = "llama3.3-70b-instruct"
	Model__DigitalOcean__Llama3__8b__Instruct                                                ModelID = "llama3-8b-instruct"
	Model__DigitalOcean__Llama__4__Maverick__4                                               ModelID = "llama-4-maverick"
	Model__DigitalOcean__MiniMax__M2__5__2_5                                                 ModelID = "minimax-m2.5"
	Model__DigitalOcean__Ministral__3__8b__Instruct__2512__3__Instruct                       ModelID = "ministral-3-8b-instruct-2512"
	Model__DigitalOcean__Mistral__3__14B                                                     ModelID = "mistral-3-14B"
	Model__DigitalOcean__Mistral__7b__Instruct__V0__3__0_3__Instruct                         ModelID = "mistral-7b-instruct-v0.3"
	Model__DigitalOcean__Mistral__Nemo__Instruct__2407__Instruct                             ModelID = "mistral-nemo-instruct-2407"
	Model__DigitalOcean__Multi__Qa__Mpnet__Base__Dot__V1                                     ModelID = "multi-qa-mpnet-base-dot-v1"
	Model__DigitalOcean__Multilingual__V2                                                    ModelID = "fal-ai/elevenlabs/tts/multilingual-v2"
	Model__DigitalOcean__Nemotron__3__Nano__30b__3                                           ModelID = "nemotron-3-nano-30b"
	Model__DigitalOcean__Nemotron__3__Nano__3__Omni                                          ModelID = "nemotron-3-nano-omni"
	Model__DigitalOcean__Nemotron__3__Ultra__550b__3                                         ModelID = "nemotron-3-ultra-550b"
	Model__DigitalOcean__Nemotron__Nano__12b__V2__Vl                                         ModelID = "nemotron-nano-12b-v2-vl"
	Model__DigitalOcean__Nvidia__Nemotron__3__Super__120b                                    ModelID = "nvidia-nemotron-3-super-120b"
	Model__DigitalOcean__OpenAI__GPT__4__1                                                   ModelID = "openai-gpt-4.1"
	Model__DigitalOcean__OpenAI__GPT__4o                                                     ModelID = "openai-gpt-4o"
	Model__DigitalOcean__OpenAI__GPT__4o__Mini                                               ModelID = "openai-gpt-4o-mini"
	Model__DigitalOcean__OpenAI__GPT__5                                                      ModelID = "openai-gpt-5"
	Model__DigitalOcean__OpenAI__GPT__5__1__Codex__Max                                       ModelID = "openai-gpt-5.1-codex-max"
	Model__DigitalOcean__OpenAI__GPT__5__2                                                   ModelID = "openai-gpt-5.2"
	Model__DigitalOcean__OpenAI__GPT__5__2__Pro                                              ModelID = "openai-gpt-5.2-pro"
	Model__DigitalOcean__OpenAI__GPT__5__3__Codex                                            ModelID = "openai-gpt-5.3-codex"
	Model__DigitalOcean__OpenAI__GPT__5__4                                                   ModelID = "openai-gpt-5.4"
	Model__DigitalOcean__OpenAI__GPT__5__4__Mini                                             ModelID = "openai-gpt-5.4-mini"
	Model__DigitalOcean__OpenAI__GPT__5__4__Nano                                             ModelID = "openai-gpt-5.4-nano"
	Model__DigitalOcean__OpenAI__GPT__5__4__Pro                                              ModelID = "openai-gpt-5.4-pro"
	Model__DigitalOcean__OpenAI__GPT__5__5                                                   ModelID = "openai-gpt-5.5"
	Model__DigitalOcean__OpenAI__GPT__5__Mini                                                ModelID = "openai-gpt-5-mini"
	Model__DigitalOcean__OpenAI__GPT__5__Nano                                                ModelID = "openai-gpt-5-nano"
	Model__DigitalOcean__OpenAI__GPT__Image__1                                               ModelID = "openai-gpt-image-1"
	Model__DigitalOcean__OpenAI__GPT__Image__1__5                                            ModelID = "openai-gpt-image-1.5"
	Model__DigitalOcean__OpenAI__GPT__Image__2                                               ModelID = "openai-gpt-image-2"
	Model__DigitalOcean__OpenAI__GPT__Oss__120b                                              ModelID = "openai-gpt-oss-120b"
	Model__DigitalOcean__OpenAI__GPT__Oss__20b                                               ModelID = "openai-gpt-oss-20b"
	Model__DigitalOcean__OpenAI__O1                                                          ModelID = "openai-o1"
	Model__DigitalOcean__OpenAI__O3                                                          ModelID = "openai-o3"
	Model__DigitalOcean__OpenAI__O3__Mini                                                    ModelID = "openai-o3-mini"
	Model__DigitalOcean__Qwen3__5__397b__A17b__3_5                                           ModelID = "qwen3.5-397b-a17b"
	Model__DigitalOcean__Qwen3__Coder__Flash__3                                              ModelID = "qwen3-coder-flash"
	Model__DigitalOcean__Qwen3__Embedding__0__6b__3                                          ModelID = "qwen3-embedding-0.6b"
	Model__DigitalOcean__Qwen3__Tts__Voicedesign__3                                          ModelID = "qwen3-tts-voicedesign"
	Model__DigitalOcean__Qwen__2__5__14b__2_5__Instruct                                      ModelID = "qwen-2.5-14b-instruct"
	Model__DigitalOcean__Schnell                                                             ModelID = "fal-ai/flux/schnell"
	Model__DigitalOcean__Stable__Diffusion__3__5__Large__3_5                                 ModelID = "stable-diffusion-3.5-large"
	Model__DigitalOcean__Text__To__Audio                                                     ModelID = "fal-ai/stable-audio-25/text-to-audio"
	Model__DigitalOcean__Wan2__2__T2v__A14b__2                                               ModelID = "wan2-2-t2v-a14b"
	Model__Drun__DeepSeek__R1__Thinking                                                      ModelID = "public/deepseek-r1"
	Model__Drun__DeepSeek__V3                                                                ModelID = "public/deepseek-v3"
	Model__Drun__MiniMax__M25__25                                                            ModelID = "public/minimax-m25"
	Model__EmpirioLabs__DeepSeek__V4__Flash                                                  ModelID = "deepseek-v4-flash"
	Model__EmpirioLabs__DeepSeek__V4__Pro__Thinking                                          ModelID = "deepseek-v4-pro"
	Model__EmpirioLabs__Fugu__Ultra                                                          ModelID = "fugu-ultra"
	Model__EmpirioLabs__GLM__4__5__Flash__4_5                                                ModelID = "glm-4-5-flash"
	Model__EmpirioLabs__GLM__4__7__Flash__4_7                                                ModelID = "glm-4-7-flash"
	Model__EmpirioLabs__GLM__5_1                                                             ModelID = "glm-5-1"
	Model__EmpirioLabs__GLM__5_2                                                             ModelID = "glm-5-2"
	Model__EmpirioLabs__Gemma__4__26b__A4b__4                                                ModelID = "gemma-4-26b-a4b"
	Model__EmpirioLabs__Kimi__K2__6__2_6                                                     ModelID = "kimi-k2-6"
	Model__EmpirioLabs__Kimi__K2__7__2_7__Code                                               ModelID = "kimi-k2-7-code"
	Model__EmpirioLabs__Kimi__K2__7__Code__Highspeed__2_7                                    ModelID = "kimi-k2-7-code-highspeed"
	Model__EmpirioLabs__Mimo__V2__5__2_5                                                     ModelID = "mimo-v2-5"
	Model__EmpirioLabs__Mimo__V2__5__2_5__Pro                                                ModelID = "mimo-v2-5-pro"
	Model__EmpirioLabs__MiniMax__M2__7__2_7                                                  ModelID = "minimax-m2-7"
	Model__EmpirioLabs__MiniMax__M2__7__2_7__Highspeed                                       ModelID = "minimax-m2-7-highspeed"
	Model__EmpirioLabs__MiniMax__M3__3                                                       ModelID = "minimax-m3"
	Model__EmpirioLabs__Muse__Spark__1_1                                                     ModelID = "muse-spark-1-1"
	Model__EmpirioLabs__Qwen3__5__122b__A10b__3                                              ModelID = "qwen3-5-122b-a10b"
	Model__EmpirioLabs__Qwen3__5__27b__3                                                     ModelID = "qwen3-5-27b"
	Model__EmpirioLabs__Qwen3__5__35b__A3b__3                                                ModelID = "qwen3-5-35b-a3b"
	Model__EmpirioLabs__Qwen3__5__397b__A17b__3                                              ModelID = "qwen3-5-397b-a17b"
	Model__EmpirioLabs__Qwen3__5__4b__3                                                      ModelID = "qwen3-5-4b"
	Model__EmpirioLabs__Qwen3__5__9b__3                                                      ModelID = "qwen3-5-9b"
	Model__EmpirioLabs__Qwen3__5__Plus__3                                                    ModelID = "qwen3-5-plus"
	Model__EmpirioLabs__Qwen3__6__27b__3                                                     ModelID = "qwen3-6-27b"
	Model__EmpirioLabs__Qwen3__6__Flash__3                                                   ModelID = "qwen3-6-flash"
	Model__EmpirioLabs__Qwen3__6__Max__3__Preview                                            ModelID = "qwen3-6-max-preview"
	Model__EmpirioLabs__Qwen3__6__Plus__3                                                    ModelID = "qwen3-6-plus"
	Model__EmpirioLabs__Qwen3__7__Max__3                                                     ModelID = "qwen3-7-max"
	Model__EmpirioLabs__Qwen3__7__Plus__3                                                    ModelID = "qwen3-7-plus"
	Model__EmpirioLabs__Qwen3__Max__3                                                        ModelID = "qwen3-max"
	Model__EmpirioLabs__Step__3__5__Flash__2603__3_5                                         ModelID = "step-3-5-flash-2603"
	Model__EmpirioLabs__Step__3__5__Flash__3_5                                               ModelID = "step-3-5-flash"
	Model__EmpirioLabs__Step__3__7__Flash__3_7                                               ModelID = "step-3-7-flash"
	Model__Evroc__GPT__Oss__120b                                                             ModelID = "openai/gpt-oss-120b"
	Model__Evroc__Gemma__4__26B__A4b__It__4                                                  ModelID = "google/gemma-4-26B-A4B-it"
	Model__Evroc__Kb__Whisper__Large                                                         ModelID = "KBLab/kb-whisper-large"
	Model__Evroc__Kimi__K2__6__2_6                                                           ModelID = "moonshotai/Kimi-K2.6"
	Model__Evroc__Llama__3__3__70B__Instruct__Fp8__3_3__Instruct                             ModelID = "nvidia/Llama-3.3-70B-Instruct-FP8"
	Model__Evroc__Mistral__Medium__3__5__128B__3_5                                           ModelID = "mistralai/Mistral-Medium-3.5-128B"
	Model__Evroc__Multilingual__E5__Large__Instruct                                          ModelID = "intfloat/multilingual-e5-large-instruct"
	Model__Evroc__Qwen3__6__35B__A3b__Fp8__3_6                                               ModelID = "Qwen/Qwen3.6-35B-A3B-FP8"
	Model__Evroc__Qwen3__Embedding__8B__3                                                    ModelID = "Qwen/Qwen3-Embedding-8B"
	Model__Evroc__Qwen3__Reranker__4B__3                                                     ModelID = "Qwen/Qwen3-Reranker-4B"
	Model__Evroc__Qwen3__Vl__30B__A3b__3__Instruct                                           ModelID = "Qwen/Qwen3-VL-30B-A3B-Instruct"
	Model__Evroc__Roc                                                                        ModelID = "evroc/roc"
	Model__Evroc__Voxtral__Small__24B__2507                                                  ModelID = "mistralai/Voxtral-Small-24B-2507"
	Model__Evroc__Whisper__Large__V3__3                                                      ModelID = "openai/whisper-large-v3"
	Model__Evroc__Whisper__Large__V3__3__Turbo                                               ModelID = "openai/whisper-large-v3-turbo"
	Model__FastRouter__Claude__Opus__4_1                                                     ModelID = "anthropic/claude-opus-4.1"
	Model__FastRouter__Claude__Opus__4_8                                                     ModelID = "anthropic/claude-opus-4.8"
	Model__FastRouter__Claude__Sonnet__4                                                     ModelID = "anthropic/claude-sonnet-4"
	Model__FastRouter__Claude__Sonnet__4_6                                                   ModelID = "anthropic/claude-sonnet-4.6"
	Model__FastRouter__DeepSeek__R1__Distill__Llama__70b__Thinking                           ModelID = "deepseek-ai/deepseek-r1-distill-llama-70b"
	Model__FastRouter__DeepSeek__V4__Pro__Thinking                                           ModelID = "deepseek/deepseek-v4-pro"
	Model__FastRouter__GLM__5                                                                ModelID = "z-ai/glm-5"
	Model__FastRouter__GLM__5_1                                                              ModelID = "z-ai/glm-5.1"
	Model__FastRouter__GPT__4_1                                                              ModelID = "openai/gpt-4.1"
	Model__FastRouter__GPT__5                                                                ModelID = "openai/gpt-5"
	Model__FastRouter__GPT__5_5                                                              ModelID = "openai/gpt-5.5"
	Model__FastRouter__GPT__5__3__Codex__5_3                                                 ModelID = "openai/gpt-5.3-codex"
	Model__FastRouter__GPT__5__4__Mini__5_4                                                  ModelID = "openai/gpt-5.4-mini"
	Model__FastRouter__GPT__5__4__Nano__5_4                                                  ModelID = "openai/gpt-5.4-nano"
	Model__FastRouter__GPT__5__5__Pro__5_5                                                   ModelID = "openai/gpt-5.5-pro"
	Model__FastRouter__GPT__5__Mini__5                                                       ModelID = "openai/gpt-5-mini"
	Model__FastRouter__GPT__5__Nano__5                                                       ModelID = "openai/gpt-5-nano"
	Model__FastRouter__GPT__Image__2                                                         ModelID = "openai/gpt-image-2"
	Model__FastRouter__GPT__Oss__120b                                                        ModelID = "openai/gpt-oss-120b"
	Model__FastRouter__GPT__Oss__20b                                                         ModelID = "openai/gpt-oss-20b"
	Model__FastRouter__GPT__Realtime__1_5__Realtime                                          ModelID = "openai/gpt-realtime-1.5"
	Model__FastRouter__Gemini__2__5__Flash__2_5                                              ModelID = "google/gemini-2.5-flash"
	Model__FastRouter__Gemini__2__5__Pro__2_5                                                ModelID = "google/gemini-2.5-pro"
	Model__FastRouter__Gemini__3__1__Flash__Image__3_1__Preview                              ModelID = "google/gemini-3.1-flash-image-preview"
	Model__FastRouter__Gemini__3__1__Pro__3_1__Preview                                       ModelID = "google/gemini-3.1-pro-preview"
	Model__FastRouter__Gemini__3__5__Flash__3_5                                              ModelID = "google/gemini-3.5-flash"
	Model__FastRouter__Gemini__3__Pro__Image__3__Preview                                     ModelID = "google/gemini-3-pro-image-preview"
	Model__FastRouter__Gemma__4__31b__It__4                                                  ModelID = "google/gemma-4-31b-it"
	Model__FastRouter__Grok__4                                                               ModelID = "x-ai/grok-4"
	Model__FastRouter__Grok__4_3                                                             ModelID = "x-ai/grok-4.3"
	Model__FastRouter__Grok__Build__0_1                                                      ModelID = "x-ai/grok-build-0.1"
	Model__FastRouter__Imagen__4_0__Fast                                                     ModelID = "google/imagen-4.0-fast"
	Model__FastRouter__Imagen__4__0__Ultra__4_0                                              ModelID = "google/imagen-4.0-ultra"
	Model__FastRouter__Kimi__K2__2                                                           ModelID = "moonshotai/kimi-k2"
	Model__FastRouter__Kimi__K2__6__2_6                                                      ModelID = "moonshotai/kimi-k2.6"
	Model__FastRouter__Lucid__Origin                                                         ModelID = "leonardo-ai/lucid-origin"
	Model__FastRouter__Lucid__Realism                                                        ModelID = "leonardo-ai/lucid-realism"
	Model__FastRouter__MiniMax__M2__7__2_7                                                   ModelID = "minimax/minimax-m2.7"
	Model__FastRouter__MiniMax__M2__7__2_7__Highspeed                                        ModelID = "minimax/minimax-m2.7-highspeed"
	Model__FastRouter__Qwen3__Coder__3                                                       ModelID = "qwen/qwen3-coder"
	Model__FastRouter__Sarvam__105b                                                          ModelID = "sarvam/sarvam-105b"
	Model__FastRouter__Sarvam__30b                                                           ModelID = "sarvam/sarvam-30b"
	Model__FastRouter__Seedance__2                                                           ModelID = "bytedance/seedance-2"
	Model__FastRouter__Veo3__1__3_1                                                          ModelID = "google/veo3.1"
	Model__FastRouter__Veo3__1__3_1__Fast                                                    ModelID = "google/veo3.1-fast"
	Model__FastRouter__Veo3__1__Lite                                                         ModelID = "google/veo3.1-lite"
	Model__FastRouter__Wan__V2__6                                                            ModelID = "wanx/wan-v2-6"
	Model__FireworksAI__DeepSeek__V4__Flash                                                  ModelID = "accounts/fireworks/models/deepseek-v4-flash"
	Model__FireworksAI__DeepSeek__V4__Pro__Thinking                                          ModelID = "accounts/fireworks/models/deepseek-v4-pro"
	Model__FireworksAI__GLM__5p1                                                             ModelID = "accounts/fireworks/models/glm-5p1"
	Model__FireworksAI__GLM__5p1__Fast                                                       ModelID = "accounts/fireworks/routers/glm-5p1-fast"
	Model__FireworksAI__GLM__5p2                                                             ModelID = "accounts/fireworks/models/glm-5p2"
	Model__FireworksAI__GLM__5p2__Fast                                                       ModelID = "accounts/fireworks/routers/glm-5p2-fast"
	Model__FireworksAI__GPT__Oss__120b                                                       ModelID = "accounts/fireworks/models/gpt-oss-120b"
	Model__FireworksAI__GPT__Oss__20b                                                        ModelID = "accounts/fireworks/models/gpt-oss-20b"
	Model__FireworksAI__Kimi__K2p6__2_6__Thinking                                            ModelID = "accounts/fireworks/models/kimi-k2p6"
	Model__FireworksAI__Kimi__K2p6__2_6__ThinkingFast                                        ModelID = "accounts/fireworks/routers/kimi-k2p6-fast"
	Model__FireworksAI__Kimi__K2p6__2_6__ThinkingTurbo                                       ModelID = "accounts/fireworks/routers/kimi-k2p6-turbo"
	Model__FireworksAI__Kimi__K2p7__2_7__Code                                                ModelID = "accounts/fireworks/models/kimi-k2p7-code"
	Model__FireworksAI__Kimi__K2p7__2_7__FastCode                                            ModelID = "accounts/fireworks/routers/kimi-k2p7-code-fast"
	Model__FireworksAI__MiniMax__M2p7__2_7                                                   ModelID = "accounts/fireworks/models/minimax-m2p7"
	Model__FireworksAI__MiniMax__M3__3                                                       ModelID = "accounts/fireworks/models/minimax-m3"
	Model__FireworksAI__Qwen3p7__Plus                                                        ModelID = "accounts/fireworks/models/qwen3p7-plus"
	Model__FreeModel__Claude__Fable__5                                                       ModelID = "claude-fable-5"
	Model__FreeModel__Claude__Haiku__4_5__20251001                                           ModelID = "claude-haiku-4-5-20251001"
	Model__FreeModel__Claude__Opus__4_6                                                      ModelID = "claude-opus-4-6"
	Model__FreeModel__Claude__Opus__4_7                                                      ModelID = "claude-opus-4-7"
	Model__FreeModel__Claude__Opus__4_8                                                      ModelID = "claude-opus-4-8"
	Model__FreeModel__Claude__Sonnet__4_6                                                    ModelID = "claude-sonnet-4-6"
	Model__FreeModel__GPT__5_4                                                               ModelID = "gpt-5.4"
	Model__FreeModel__GPT__5_5                                                               ModelID = "gpt-5.5"
	Model__FreeModel__GPT__5__3__Codex__5_3                                                  ModelID = "gpt-5.3-codex"
	Model__FreeModel__GPT__5__4__Mini__5_4                                                   ModelID = "gpt-5.4-mini"
	Model__Friendli__DeepSeek__V3__2                                                         ModelID = "deepseek-ai/DeepSeek-V3.2"
	Model__Friendli__GLM__5_1                                                                ModelID = "zai-org/GLM-5.1"
	Model__Friendli__GLM__5_2                                                                ModelID = "zai-org/GLM-5.2"
	Model__Friendli__Gemma__4__31B__It__4                                                    ModelID = "google/gemma-4-31B-it"
	Model__Friendli__MiniMax__M2__5__2_5                                                     ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__Friendli__Qwen3__235B__A22b__Instruct__2507__3__Instruct                          ModelID = "Qwen/Qwen3-235B-A22B-Instruct-2507"
	Model__FrogBot__Claude__Haiku__4_5                                                       ModelID = "claude-haiku-4-5"
	Model__FrogBot__Claude__Opus__4_6                                                        ModelID = "claude-opus-4-6"
	Model__FrogBot__Claude__Opus__4_7                                                        ModelID = "claude-opus-4-7"
	Model__FrogBot__Claude__Sonnet__4_6                                                      ModelID = "claude-sonnet-4-6"
	Model__FrogBot__DeepSeek__V4__Pro                                                        ModelID = "deepseek-v4-pro"
	Model__FrogBot__GPT__4o                                                                  ModelID = "gpt-4o"
	Model__FrogBot__GPT__5_5                                                                 ModelID = "gpt-5-5"
	Model__FrogBot__GPT__5__3__Codex__5_3                                                    ModelID = "gpt-5-3-codex"
	Model__FrogBot__GPT__5__4__Mini__5_4                                                     ModelID = "gpt-5-4-mini"
	Model__FrogBot__GPT__5__4__Nano__5_4                                                     ModelID = "gpt-5-4-nano"
	Model__FrogBot__GPT__Oss__120b                                                           ModelID = "gpt-oss-120b"
	Model__FrogBot__GPT__Oss__20b                                                            ModelID = "gpt-oss-20b"
	Model__FrogBot__Gemini__2__5__Flash__2_5                                                 ModelID = "gemini-2.5-flash"
	Model__FrogBot__Gemini__2__5__Pro__2_5                                                   ModelID = "gemini-2.5-pro"
	Model__FrogBot__Gemini__3__1__Pro__3_1__Preview                                          ModelID = "gemini-3-1-pro-preview"
	Model__FrogBot__Gemini__3__Flash__3__Preview                                             ModelID = "gemini-3-flash-preview"
	Model__FrogBot__Grok__4_1__ReasoningFast                                                 ModelID = "grok-4-1-fast-reasoning"
	Model__FrogBot__Grok__4_3                                                                ModelID = "grok-4-3"
	Model__FrogBot__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                     ModelID = "grok-4-1-fast-non-reasoning"
	Model__FrogBot__Grok__Code__Fast__1                                                      ModelID = "grok-code-fast-1"
	Model__FrogBot__Kimi__K2__5__2_5                                                         ModelID = "kimi-k2.5"
	Model__FrogBot__Kimi__K2__6__2_6                                                         ModelID = "kimi-k2-6"
	Model__FrogBot__MiniMax__M2__5__2_5                                                      ModelID = "minimax-m2-5"
	Model__FrogBot__MiniMax__M2__7__2_7                                                      ModelID = "minimax-m2-7"
	Model__FrogBot__Qwen__3__6__Plus__3_6                                                    ModelID = "qwen-3-6-plus"
	Model__FrogBot__Zai__GLM__5__1                                                           ModelID = "zai-glm-5-1"
	Model__GMICloud__Claude__Opus__4_6                                                       ModelID = "anthropic/claude-opus-4.6"
	Model__GMICloud__Claude__Opus__4_7                                                       ModelID = "anthropic/claude-opus-4.7"
	Model__GMICloud__Claude__Opus__4_8                                                       ModelID = "anthropic/claude-opus-4.8"
	Model__GMICloud__Claude__Sonnet__4_6                                                     ModelID = "anthropic/claude-sonnet-4.6"
	Model__GMICloud__DeepSeek__V4__Flash                                                     ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__GMICloud__DeepSeek__V4__Pro__Thinking                                             ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__GMICloud__GLM__5__1__Fp8__5_1                                                     ModelID = "zai-org/GLM-5.1-FP8"
	Model__GMICloud__GLM__5__2__Fp8__5_2                                                     ModelID = "zai-org/GLM-5.2-FP8"
	Model__GMICloud__GLM__5__Fp8__5                                                          ModelID = "zai-org/GLM-5-FP8"
	Model__GMICloud__GPT__5_5                                                                ModelID = "openai/gpt-5.5"
	Model__GMICloud__Kimi__K2__6__2_6                                                        ModelID = "moonshotai/Kimi-K2.6"
	Model__GMICloud__Kimi__K2__7__Code__Highspeed__2_7                                       ModelID = "moonshotai/kimi-k2.7-code-highspeed"
	Model__GMICloud__Qwen3__7__Max__3_7                                                      ModelID = "Qwen/Qwen3.7-Max"
	Model__GitHubCopilot__Claude__Fable__5                                                   ModelID = "claude-fable-5"
	Model__GitHubCopilot__Claude__Haiku__4_5                                                 ModelID = "claude-haiku-4.5"
	Model__GitHubCopilot__Claude__Opus__4_5                                                  ModelID = "claude-opus-4.5"
	Model__GitHubCopilot__Claude__Opus__4_6                                                  ModelID = "claude-opus-4.6"
	Model__GitHubCopilot__Claude__Opus__4_7                                                  ModelID = "claude-opus-4.7"
	Model__GitHubCopilot__Claude__Opus__4_8                                                  ModelID = "claude-opus-4.8"
	Model__GitHubCopilot__Claude__Sonnet__4                                                  ModelID = "claude-sonnet-4"
	Model__GitHubCopilot__Claude__Sonnet__4_5                                                ModelID = "claude-sonnet-4.5"
	Model__GitHubCopilot__Claude__Sonnet__4_6                                                ModelID = "claude-sonnet-4.6"
	Model__GitHubCopilot__Claude__Sonnet__5                                                  ModelID = "claude-sonnet-5"
	Model__GitHubCopilot__GPT__4_1                                                           ModelID = "gpt-4.1"
	Model__GitHubCopilot__GPT__5_2                                                           ModelID = "gpt-5.2"
	Model__GitHubCopilot__GPT__5_4                                                           ModelID = "gpt-5.4"
	Model__GitHubCopilot__GPT__5_5                                                           ModelID = "gpt-5.5"
	Model__GitHubCopilot__GPT__5__2__Codex__5_2                                              ModelID = "gpt-5.2-codex"
	Model__GitHubCopilot__GPT__5__3__Codex__5_3                                              ModelID = "gpt-5.3-codex"
	Model__GitHubCopilot__GPT__5__4__Mini__5_4                                               ModelID = "gpt-5.4-mini"
	Model__GitHubCopilot__GPT__5__4__Nano__5_4                                               ModelID = "gpt-5.4-nano"
	Model__GitHubCopilot__GPT__5__6__Luna__5_6                                               ModelID = "gpt-5.6-luna"
	Model__GitHubCopilot__GPT__5__6__Sol__5_6                                                ModelID = "gpt-5.6-sol"
	Model__GitHubCopilot__GPT__5__6__Terra__5_6                                              ModelID = "gpt-5.6-terra"
	Model__GitHubCopilot__GPT__5__Mini__5                                                    ModelID = "gpt-5-mini"
	Model__GitHubCopilot__Gemini__2__5__Pro__2_5                                             ModelID = "gemini-2.5-pro"
	Model__GitHubCopilot__Gemini__3__1__Pro__3_1__Preview                                    ModelID = "gemini-3.1-pro-preview"
	Model__GitHubCopilot__Gemini__3__5__Flash__3_5                                           ModelID = "gemini-3.5-flash"
	Model__GitHubCopilot__Gemini__3__Flash__3__Preview                                       ModelID = "gemini-3-flash-preview"
	Model__GitHubCopilot__Kimi__K2__7__2_7__Code                                             ModelID = "kimi-k2.7-code"
	Model__GitHubCopilot__Mai__Code__1__Flash__Picker__1                                     ModelID = "mai-code-1-flash-picker"
	Model__GitHubModels__Ai21__Jamba__1__5__Large                                            ModelID = "ai21-labs/ai21-jamba-1.5-large"
	Model__GitHubModels__Ai21__Jamba__1__5__Mini                                             ModelID = "ai21-labs/ai21-jamba-1.5-mini"
	Model__GitHubModels__Codestral__2501                                                     ModelID = "mistral-ai/codestral-2501"
	Model__GitHubModels__Cohere__Command__A                                                  ModelID = "cohere/cohere-command-a"
	Model__GitHubModels__Cohere__Command__R                                                  ModelID = "cohere/cohere-command-r"
	Model__GitHubModels__Cohere__Command__R__20240801                                        ModelID = "cohere/cohere-command-r-08-2024"
	Model__GitHubModels__Cohere__Command__R__Plus                                            ModelID = "cohere/cohere-command-r-plus"
	Model__GitHubModels__Cohere__Command__R__Plus__20240801                                  ModelID = "cohere/cohere-command-r-plus-08-2024"
	Model__GitHubModels__DeepSeek__R1__0528__Thinking                                        ModelID = "deepseek/deepseek-r1-0528"
	Model__GitHubModels__DeepSeek__R1__Thinking                                              ModelID = "deepseek/deepseek-r1"
	Model__GitHubModels__DeepSeek__V3__0324                                                  ModelID = "deepseek/deepseek-v3-0324"
	Model__GitHubModels__GPT__4_1                                                            ModelID = "openai/gpt-4.1"
	Model__GitHubModels__GPT__4__1__Mini__4_1                                                ModelID = "openai/gpt-4.1-mini"
	Model__GitHubModels__GPT__4__1__Nano__4_1                                                ModelID = "openai/gpt-4.1-nano"
	Model__GitHubModels__GPT__4o                                                             ModelID = "openai/gpt-4o"
	Model__GitHubModels__GPT__4o__Mini                                                       ModelID = "openai/gpt-4o-mini"
	Model__GitHubModels__Grok__3                                                             ModelID = "xai/grok-3"
	Model__GitHubModels__Grok__3__Mini__3                                                    ModelID = "xai/grok-3-mini"
	Model__GitHubModels__Jais__30b__Chat                                                     ModelID = "core42/jais-30b-chat"
	Model__GitHubModels__Llama__3__2__11b__3_2__VisionInstruct                               ModelID = "meta/llama-3.2-11b-vision-instruct"
	Model__GitHubModels__Llama__3__2__90b__3_2__VisionInstruct                               ModelID = "meta/llama-3.2-90b-vision-instruct"
	Model__GitHubModels__Llama__3__3__70b__3_3__Instruct                                     ModelID = "meta/llama-3.3-70b-instruct"
	Model__GitHubModels__Llama__4__Maverick__17b__128e__Instruct__Fp8__4__Instruct           ModelID = "meta/llama-4-maverick-17b-128e-instruct-fp8"
	Model__GitHubModels__Llama__4__Scout__17b__16e__4__Instruct                              ModelID = "meta/llama-4-scout-17b-16e-instruct"
	Model__GitHubModels__Mai__Ds__R1                                                         ModelID = "microsoft/mai-ds-r1"
	Model__GitHubModels__Meta__Llama__3__1__405b__3_1__Instruct                              ModelID = "meta/meta-llama-3.1-405b-instruct"
	Model__GitHubModels__Meta__Llama__3__1__70b__3_1__Instruct                               ModelID = "meta/meta-llama-3.1-70b-instruct"
	Model__GitHubModels__Meta__Llama__3__1__8b__3_1__Instruct                                ModelID = "meta/meta-llama-3.1-8b-instruct"
	Model__GitHubModels__Meta__Llama__3__70b__3__Instruct                                    ModelID = "meta/meta-llama-3-70b-instruct"
	Model__GitHubModels__Meta__Llama__3__8b__3__Instruct                                     ModelID = "meta/meta-llama-3-8b-instruct"
	Model__GitHubModels__Ministral__3b                                                       ModelID = "mistral-ai/ministral-3b"
	Model__GitHubModels__Mistral__Large__2411                                                ModelID = "mistral-ai/mistral-large-2411"
	Model__GitHubModels__Mistral__Medium__2505                                               ModelID = "mistral-ai/mistral-medium-2505"
	Model__GitHubModels__Mistral__Nemo                                                       ModelID = "mistral-ai/mistral-nemo"
	Model__GitHubModels__Mistral__Small__2503                                                ModelID = "mistral-ai/mistral-small-2503"
	Model__GitHubModels__O1__1                                                               ModelID = "openai/o1"
	Model__GitHubModels__O1__1__Mini                                                         ModelID = "openai/o1-mini"
	Model__GitHubModels__O1__1__Preview                                                      ModelID = "openai/o1-preview"
	Model__GitHubModels__O3__3                                                               ModelID = "openai/o3"
	Model__GitHubModels__O3__3__Mini                                                         ModelID = "openai/o3-mini"
	Model__GitHubModels__O4__4__Mini                                                         ModelID = "openai/o4-mini"
	Model__GitHubModels__Phi__3_5__VisionInstruct                                            ModelID = "microsoft/phi-3.5-vision-instruct"
	Model__GitHubModels__Phi__3__5__Mini__3_5__Instruct                                      ModelID = "microsoft/phi-3.5-mini-instruct"
	Model__GitHubModels__Phi__3__5__Moe__3_5__Instruct                                       ModelID = "microsoft/phi-3.5-moe-instruct"
	Model__GitHubModels__Phi__3__Medium__128k__3__Instruct                                   ModelID = "microsoft/phi-3-medium-128k-instruct"
	Model__GitHubModels__Phi__3__Medium__4k__3__Instruct                                     ModelID = "microsoft/phi-3-medium-4k-instruct"
	Model__GitHubModels__Phi__3__Mini__128k__3__Instruct                                     ModelID = "microsoft/phi-3-mini-128k-instruct"
	Model__GitHubModels__Phi__3__Mini__4k__3__Instruct                                       ModelID = "microsoft/phi-3-mini-4k-instruct"
	Model__GitHubModels__Phi__3__Small__128k__3__Instruct                                    ModelID = "microsoft/phi-3-small-128k-instruct"
	Model__GitHubModels__Phi__3__Small__8k__3__Instruct                                      ModelID = "microsoft/phi-3-small-8k-instruct"
	Model__GitHubModels__Phi__4                                                              ModelID = "microsoft/phi-4"
	Model__GitHubModels__Phi__4__Mini__4__Instruct                                           ModelID = "microsoft/phi-4-mini-instruct"
	Model__GitHubModels__Phi__4__Mini__4__Reasoning                                          ModelID = "microsoft/phi-4-mini-reasoning"
	Model__GitHubModels__Phi__4__MultimodalInstruct                                          ModelID = "microsoft/phi-4-multimodal-instruct"
	Model__GitHubModels__Phi__4__Reasoning                                                   ModelID = "microsoft/phi-4-reasoning"
	Model__GitLab__Duo__Chat__Fable__5                                                       ModelID = "duo-chat-fable-5"
	Model__GitLab__Duo__Chat__GPT__5__1                                                      ModelID = "duo-chat-gpt-5-1"
	Model__GitLab__Duo__Chat__GPT__5__2                                                      ModelID = "duo-chat-gpt-5-2"
	Model__GitLab__Duo__Chat__GPT__5__2__Codex                                               ModelID = "duo-chat-gpt-5-2-codex"
	Model__GitLab__Duo__Chat__GPT__5__3__Codex                                               ModelID = "duo-chat-gpt-5-3-codex"
	Model__GitLab__Duo__Chat__GPT__5__4                                                      ModelID = "duo-chat-gpt-5-4"
	Model__GitLab__Duo__Chat__GPT__5__4__Mini                                                ModelID = "duo-chat-gpt-5-4-mini"
	Model__GitLab__Duo__Chat__GPT__5__4__Nano                                                ModelID = "duo-chat-gpt-5-4-nano"
	Model__GitLab__Duo__Chat__GPT__5__5                                                      ModelID = "duo-chat-gpt-5-5"
	Model__GitLab__Duo__Chat__GPT__5__Codex                                                  ModelID = "duo-chat-gpt-5-codex"
	Model__GitLab__Duo__Chat__GPT__5__Mini                                                   ModelID = "duo-chat-gpt-5-mini"
	Model__GitLab__Duo__Chat__Haiku__4__5                                                    ModelID = "duo-chat-haiku-4-5"
	Model__GitLab__Duo__Chat__Opus__4__5                                                     ModelID = "duo-chat-opus-4-5"
	Model__GitLab__Duo__Chat__Opus__4__6                                                     ModelID = "duo-chat-opus-4-6"
	Model__GitLab__Duo__Chat__Opus__4__7                                                     ModelID = "duo-chat-opus-4-7"
	Model__GitLab__Duo__Chat__Opus__4__8                                                     ModelID = "duo-chat-opus-4-8"
	Model__GitLab__Duo__Chat__Sonnet__4__5                                                   ModelID = "duo-chat-sonnet-4-5"
	Model__GitLab__Duo__Chat__Sonnet__4__6                                                   ModelID = "duo-chat-sonnet-4-6"
	Model__GitLab__Duo__Chat__Sonnet__5                                                      ModelID = "duo-chat-sonnet-5"
	Model__GoogleVertexAnthropic__Claude__3__5__Haiku__3_5__20241022                         ModelID = "claude-3-5-haiku@20241022"
	Model__GoogleVertexAnthropic__Claude__Haiku__4_5__20251001                               ModelID = "claude-haiku-4-5@20251001"
	Model__GoogleVertexAnthropic__Claude__Opus__4_1__20250805                                ModelID = "claude-opus-4-1@20250805"
	Model__GoogleVertexAnthropic__Claude__Opus__4_5__20251101                                ModelID = "claude-opus-4-5@20251101"
	Model__GoogleVertexAnthropic__Claude__Opus__4__20250514                                  ModelID = "claude-opus-4@20250514"
	Model__GoogleVertexAnthropic__Claude__Opus__4__6__Default__4_6                           ModelID = "claude-opus-4-6@default"
	Model__GoogleVertexAnthropic__Claude__Opus__4__7__Default__4_7                           ModelID = "claude-opus-4-7@default"
	Model__GoogleVertexAnthropic__Claude__Opus__4__8__Default__4_8                           ModelID = "claude-opus-4-8@default"
	Model__GoogleVertexAnthropic__Claude__Sonnet__4_5__20250929                              ModelID = "claude-sonnet-4-5@20250929"
	Model__GoogleVertexAnthropic__Claude__Sonnet__4__20250514                                ModelID = "claude-sonnet-4@20250514"
	Model__GoogleVertexAnthropic__Claude__Sonnet__4__6__Default__4_6                         ModelID = "claude-sonnet-4-6@default"
	Model__GoogleVertexAnthropic__Claude__Sonnet__5__Default__5                              ModelID = "claude-sonnet-5@default"
	Model__GoogleVertex__Claude__3__5__Haiku__3_5__20241022                                  ModelID = "claude-3-5-haiku@20241022"
	Model__GoogleVertex__Claude__Haiku__4_5__20251001                                        ModelID = "claude-haiku-4-5@20251001"
	Model__GoogleVertex__Claude__Opus__4_1__20250805                                         ModelID = "claude-opus-4-1@20250805"
	Model__GoogleVertex__Claude__Opus__4_5__20251101                                         ModelID = "claude-opus-4-5@20251101"
	Model__GoogleVertex__Claude__Opus__4__20250514                                           ModelID = "claude-opus-4@20250514"
	Model__GoogleVertex__Claude__Opus__4__6__Default__4_6                                    ModelID = "claude-opus-4-6@default"
	Model__GoogleVertex__Claude__Opus__4__7__Default__4_7                                    ModelID = "claude-opus-4-7@default"
	Model__GoogleVertex__Claude__Opus__4__8__Default__4_8                                    ModelID = "claude-opus-4-8@default"
	Model__GoogleVertex__Claude__Sonnet__4_5__20250929                                       ModelID = "claude-sonnet-4-5@20250929"
	Model__GoogleVertex__Claude__Sonnet__4__20250514                                         ModelID = "claude-sonnet-4@20250514"
	Model__GoogleVertex__Claude__Sonnet__4__6__Default__4_6                                  ModelID = "claude-sonnet-4-6@default"
	Model__GoogleVertex__Claude__Sonnet__5__Default__5                                       ModelID = "claude-sonnet-5@default"
	Model__GoogleVertex__DeepSeek__V3__1__Maas                                               ModelID = "deepseek-ai/deepseek-v3.1-maas"
	Model__GoogleVertex__DeepSeek__V3__2__Maas                                               ModelID = "deepseek-ai/deepseek-v3.2-maas"
	Model__GoogleVertex__GLM__4__7__Maas__4_7                                                ModelID = "zai-org/glm-4.7-maas"
	Model__GoogleVertex__GLM__5__Maas__5                                                     ModelID = "zai-org/glm-5-maas"
	Model__GoogleVertex__GPT__Oss__120b__Maas                                                ModelID = "openai/gpt-oss-120b-maas"
	Model__GoogleVertex__GPT__Oss__20b__Maas                                                 ModelID = "openai/gpt-oss-20b-maas"
	Model__GoogleVertex__Gemini__2__5__Flash__2_5                                            ModelID = "gemini-2.5-flash"
	Model__GoogleVertex__Gemini__2__5__Flash__Image__2_5                                     ModelID = "gemini-2.5-flash-image"
	Model__GoogleVertex__Gemini__2__5__Flash__Lite__2_5                                      ModelID = "gemini-2.5-flash-lite"
	Model__GoogleVertex__Gemini__2__5__Flash__Tts__2_5                                       ModelID = "gemini-2.5-flash-tts"
	Model__GoogleVertex__Gemini__2__5__Pro__2_5                                              ModelID = "gemini-2.5-pro"
	Model__GoogleVertex__Gemini__2__5__Pro__Tts__2_5                                         ModelID = "gemini-2.5-pro-tts"
	Model__GoogleVertex__Gemini__3__1__Flash__Image__3_1                                     ModelID = "gemini-3.1-flash-image"
	Model__GoogleVertex__Gemini__3__1__Flash__Lite__3_1                                      ModelID = "gemini-3.1-flash-lite"
	Model__GoogleVertex__Gemini__3__1__Flash__Lite__3_1__Preview                             ModelID = "gemini-3.1-flash-lite-preview"
	Model__GoogleVertex__Gemini__3__1__Pro__3_1__Preview                                     ModelID = "gemini-3.1-pro-preview"
	Model__GoogleVertex__Gemini__3__1__Pro__Preview__Customtools__3_1                        ModelID = "gemini-3.1-pro-preview-customtools"
	Model__GoogleVertex__Gemini__3__5__Flash__3_5                                            ModelID = "gemini-3.5-flash"
	Model__GoogleVertex__Gemini__3__Flash__3__Preview                                        ModelID = "gemini-3-flash-preview"
	Model__GoogleVertex__Gemini__3__Pro__Image__3                                            ModelID = "gemini-3-pro-image"
	Model__GoogleVertex__Gemini__Embedding__001                                              ModelID = "gemini-embedding-001"
	Model__GoogleVertex__Gemini__Flash__Latest                                               ModelID = "gemini-flash-latest"
	Model__GoogleVertex__Gemini__Flash__Lite__Latest                                         ModelID = "gemini-flash-lite-latest"
	Model__GoogleVertex__Kimi__K2__Thinking__Maas__2__Thinking                               ModelID = "moonshotai/kimi-k2-thinking-maas"
	Model__GoogleVertex__Llama__3__3__70b__Instruct__Maas__3_3__Instruct                     ModelID = "meta/llama-3.3-70b-instruct-maas"
	Model__GoogleVertex__Llama__4__Maverick__17b__128e__Instruct__Maas__4__Instruct          ModelID = "meta/llama-4-maverick-17b-128e-instruct-maas"
	Model__GoogleVertex__Qwen3__235b__A22b__Instruct__2507__Maas__3__Instruct                ModelID = "qwen/qwen3-235b-a22b-instruct-2507-maas"
	Model__Google__Gemini__2__0__Flash__2_0                                                  ModelID = "gemini-2.0-flash"
	Model__Google__Gemini__2__0__Flash__Lite__2_0                                            ModelID = "gemini-2.0-flash-lite"
	Model__Google__Gemini__2__5__Flash__2_5                                                  ModelID = "gemini-2.5-flash"
	Model__Google__Gemini__2__5__Flash__Image__2_5                                           ModelID = "gemini-2.5-flash-image"
	Model__Google__Gemini__2__5__Flash__Lite__2_5                                            ModelID = "gemini-2.5-flash-lite"
	Model__Google__Gemini__2__5__Flash__Preview__Tts__2_5                                    ModelID = "gemini-2.5-flash-preview-tts"
	Model__Google__Gemini__2__5__Pro__2_5                                                    ModelID = "gemini-2.5-pro"
	Model__Google__Gemini__2__5__Pro__Preview__Tts__2_5                                      ModelID = "gemini-2.5-pro-preview-tts"
	Model__Google__Gemini__3__1__Flash__Image__3_1__Preview                                  ModelID = "gemini-3.1-flash-image-preview"
	Model__Google__Gemini__3__1__Flash__Lite__3_1                                            ModelID = "gemini-3.1-flash-lite"
	Model__Google__Gemini__3__1__Flash__Lite__3_1__Preview                                   ModelID = "gemini-3.1-flash-lite-preview"
	Model__Google__Gemini__3__1__Pro__3_1__Preview                                           ModelID = "gemini-3.1-pro-preview"
	Model__Google__Gemini__3__1__Pro__Preview__Customtools__3_1                              ModelID = "gemini-3.1-pro-preview-customtools"
	Model__Google__Gemini__3__5__Flash__3_5                                                  ModelID = "gemini-3.5-flash"
	Model__Google__Gemini__3__Flash__3__Preview                                              ModelID = "gemini-3-flash-preview"
	Model__Google__Gemini__3__Pro__3__Preview                                                ModelID = "gemini-3-pro-preview"
	Model__Google__Gemini__3__Pro__Image__3__Preview                                         ModelID = "gemini-3-pro-image-preview"
	Model__Google__Gemini__Embedding__001                                                    ModelID = "gemini-embedding-001"
	Model__Google__Gemini__Flash__Latest                                                     ModelID = "gemini-flash-latest"
	Model__Google__Gemini__Flash__Lite__Latest                                               ModelID = "gemini-flash-lite-latest"
	Model__Google__Gemini__Omni__Flash__PreviewOmni                                          ModelID = "gemini-omni-flash-preview"
	Model__Google__Gemma__4__26b__A4b__It__4                                                 ModelID = "gemma-4-26b-a4b-it"
	Model__Google__Gemma__4__31b__It__4                                                      ModelID = "gemma-4-31b-it"
	Model__Groq__Compound                                                                    ModelID = "groq/compound"
	Model__Groq__Compound__Mini                                                              ModelID = "groq/compound-mini"
	Model__Groq__GPT__Oss__120b                                                              ModelID = "openai/gpt-oss-120b"
	Model__Groq__GPT__Oss__20b                                                               ModelID = "openai/gpt-oss-20b"
	Model__Groq__GPT__Oss__Safeguard__20b                                                    ModelID = "openai/gpt-oss-safeguard-20b"
	Model__Groq__Llama__3__1__8b__Instant__3_1                                               ModelID = "llama-3.1-8b-instant"
	Model__Groq__Llama__3__3__70b__Versatile__3_3                                            ModelID = "llama-3.3-70b-versatile"
	Model__Groq__Llama__4__Scout__17b__16e__4__Instruct                                      ModelID = "meta-llama/llama-4-scout-17b-16e-instruct"
	Model__Groq__Llama__Prompt__Guard__2__22m__2                                             ModelID = "meta-llama/llama-prompt-guard-2-22m"
	Model__Groq__Llama__Prompt__Guard__2__86m__2                                             ModelID = "meta-llama/llama-prompt-guard-2-86m"
	Model__Groq__Orpheus__Arabic__Saudi                                                      ModelID = "canopylabs/orpheus-arabic-saudi"
	Model__Groq__Orpheus__V1__English                                                        ModelID = "canopylabs/orpheus-v1-english"
	Model__Groq__Qwen3__32b__3                                                               ModelID = "qwen/qwen3-32b"
	Model__Groq__Whisper__Large__V3__3                                                       ModelID = "whisper-large-v3"
	Model__Groq__Whisper__Large__V3__3__Turbo                                                ModelID = "whisper-large-v3-turbo"
	Model__Helicone__ChatGPT__4o__Latest                                                     ModelID = "chatgpt-4o-latest"
	Model__Helicone__Claude__3__5__Haiku__3_5                                                ModelID = "claude-3.5-haiku"
	Model__Helicone__Claude__3__5__Sonnet__V2__3_5                                           ModelID = "claude-3.5-sonnet-v2"
	Model__Helicone__Claude__3__7__Sonnet__3_7                                               ModelID = "claude-3.7-sonnet"
	Model__Helicone__Claude__3__Haiku__3__20240307                                           ModelID = "claude-3-haiku-20240307"
	Model__Helicone__Claude__4__5__Haiku__4_5                                                ModelID = "claude-4.5-haiku"
	Model__Helicone__Claude__4__5__Opus__4_5                                                 ModelID = "claude-4.5-opus"
	Model__Helicone__Claude__4__5__Sonnet__4_5                                               ModelID = "claude-4.5-sonnet"
	Model__Helicone__Claude__Haiku__4_5__20251001                                            ModelID = "claude-haiku-4-5-20251001"
	Model__Helicone__Claude__Opus__4                                                         ModelID = "claude-opus-4"
	Model__Helicone__Claude__Opus__4_1                                                       ModelID = "claude-opus-4-1"
	Model__Helicone__Claude__Opus__4_1__20250805                                             ModelID = "claude-opus-4-1-20250805"
	Model__Helicone__Claude__Sonnet__4                                                       ModelID = "claude-sonnet-4"
	Model__Helicone__Claude__Sonnet__4_5__20250929                                           ModelID = "claude-sonnet-4-5-20250929"
	Model__Helicone__DeepSeek__R1__Distill__Llama__70b__Thinking                             ModelID = "deepseek-r1-distill-llama-70b"
	Model__Helicone__DeepSeek__Reasoner__Thinking                                            ModelID = "deepseek-reasoner"
	Model__Helicone__DeepSeek__Tng__R1t2__Chimera__Thinking                                  ModelID = "deepseek-tng-r1t2-chimera"
	Model__Helicone__DeepSeek__V3                                                            ModelID = "deepseek-v3"
	Model__Helicone__DeepSeek__V3__1__Terminus                                               ModelID = "deepseek-v3.1-terminus"
	Model__Helicone__DeepSeek__V3__2                                                         ModelID = "deepseek-v3.2"
	Model__Helicone__Ernie__4__5__21b__A3b__4_5__Thinking                                    ModelID = "ernie-4.5-21b-a3b-thinking"
	Model__Helicone__GLM__4_6                                                                ModelID = "glm-4.6"
	Model__Helicone__GPT__4_1                                                                ModelID = "gpt-4.1"
	Model__Helicone__GPT__4__1__Mini__4_1                                                    ModelID = "gpt-4.1-mini"
	Model__Helicone__GPT__4__1__Mini__4_1__20250414                                          ModelID = "gpt-4.1-mini-2025-04-14"
	Model__Helicone__GPT__4__1__Nano__4_1                                                    ModelID = "gpt-4.1-nano"
	Model__Helicone__GPT__4o                                                                 ModelID = "gpt-4o"
	Model__Helicone__GPT__4o__Mini                                                           ModelID = "gpt-4o-mini"
	Model__Helicone__GPT__5                                                                  ModelID = "gpt-5"
	Model__Helicone__GPT__5_1                                                                ModelID = "gpt-5.1"
	Model__Helicone__GPT__5_1__ChatLatest                                                    ModelID = "gpt-5.1-chat-latest"
	Model__Helicone__GPT__5__1__Codex__5_1                                                   ModelID = "gpt-5.1-codex"
	Model__Helicone__GPT__5__1__Codex__Mini__5_1                                             ModelID = "gpt-5.1-codex-mini"
	Model__Helicone__GPT__5__ChatLatest                                                      ModelID = "gpt-5-chat-latest"
	Model__Helicone__GPT__5__Codex__5                                                        ModelID = "gpt-5-codex"
	Model__Helicone__GPT__5__Mini__5                                                         ModelID = "gpt-5-mini"
	Model__Helicone__GPT__5__Nano__5                                                         ModelID = "gpt-5-nano"
	Model__Helicone__GPT__5__Pro__5                                                          ModelID = "gpt-5-pro"
	Model__Helicone__GPT__Oss__120b                                                          ModelID = "gpt-oss-120b"
	Model__Helicone__GPT__Oss__20b                                                           ModelID = "gpt-oss-20b"
	Model__Helicone__Gemini__2__5__Flash__2_5                                                ModelID = "gemini-2.5-flash"
	Model__Helicone__Gemini__2__5__Flash__Lite__2_5                                          ModelID = "gemini-2.5-flash-lite"
	Model__Helicone__Gemini__2__5__Pro__2_5                                                  ModelID = "gemini-2.5-pro"
	Model__Helicone__Gemini__3__Pro__3__Preview                                              ModelID = "gemini-3-pro-preview"
	Model__Helicone__Gemma2__9b__It                                                          ModelID = "gemma2-9b-it"
	Model__Helicone__Gemma__3__12b__It__3                                                    ModelID = "gemma-3-12b-it"
	Model__Helicone__Grok__3                                                                 ModelID = "grok-3"
	Model__Helicone__Grok__3__Mini__3                                                        ModelID = "grok-3-mini"
	Model__Helicone__Grok__4                                                                 ModelID = "grok-4"
	Model__Helicone__Grok__4_1__ReasoningFast                                                ModelID = "grok-4-1-fast-reasoning"
	Model__Helicone__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                    ModelID = "grok-4-1-fast-non-reasoning"
	Model__Helicone__Grok__4__Fast__Non__Reasoning__4__Non_Reasoning                         ModelID = "grok-4-fast-non-reasoning"
	Model__Helicone__Grok__4__ReasoningFast                                                  ModelID = "grok-4-fast-reasoning"
	Model__Helicone__Grok__Code__Fast__1                                                     ModelID = "grok-code-fast-1"
	Model__Helicone__Hermes__2__Pro__Llama__3__8b__2                                         ModelID = "hermes-2-pro-llama-3-8b"
	Model__Helicone__Kimi__K2__0711__2                                                       ModelID = "kimi-k2-0711"
	Model__Helicone__Kimi__K2__0905__2                                                       ModelID = "kimi-k2-0905"
	Model__Helicone__Kimi__K2__2__Thinking                                                   ModelID = "kimi-k2-thinking"
	Model__Helicone__Llama__3__1__8b__3_1__Instruct                                          ModelID = "llama-3.1-8b-instruct"
	Model__Helicone__Llama__3__1__8b__3_1__TurboInstruct                                     ModelID = "llama-3.1-8b-instruct-turbo"
	Model__Helicone__Llama__3__1__8b__Instant__3_1                                           ModelID = "llama-3.1-8b-instant"
	Model__Helicone__Llama__3__3__70b__3_3__Instruct                                         ModelID = "llama-3.3-70b-instruct"
	Model__Helicone__Llama__3__3__70b__Versatile__3_3                                        ModelID = "llama-3.3-70b-versatile"
	Model__Helicone__Llama__4__Maverick__4                                                   ModelID = "llama-4-maverick"
	Model__Helicone__Llama__4__Scout__4                                                      ModelID = "llama-4-scout"
	Model__Helicone__Llama__Guard__4                                                         ModelID = "llama-guard-4"
	Model__Helicone__Llama__Prompt__Guard__2__22m__2                                         ModelID = "llama-prompt-guard-2-22m"
	Model__Helicone__Llama__Prompt__Guard__2__86m__2                                         ModelID = "llama-prompt-guard-2-86m"
	Model__Helicone__Mistral__Large__2411                                                    ModelID = "mistral-large-2411"
	Model__Helicone__Mistral__Nemo                                                           ModelID = "mistral-nemo"
	Model__Helicone__Mistral__Small                                                          ModelID = "mistral-small"
	Model__Helicone__O1__1                                                                   ModelID = "o1"
	Model__Helicone__O1__1__Mini                                                             ModelID = "o1-mini"
	Model__Helicone__O3__3                                                                   ModelID = "o3"
	Model__Helicone__O3__3__Mini                                                             ModelID = "o3-mini"
	Model__Helicone__O3__3__Pro                                                              ModelID = "o3-pro"
	Model__Helicone__O4__4__Mini                                                             ModelID = "o4-mini"
	Model__Helicone__Qwen2__5__Coder__7b__2_5__Fast                                          ModelID = "qwen2.5-coder-7b-fast"
	Model__Helicone__Qwen3__235b__A22b__3__Thinking                                          ModelID = "qwen3-235b-a22b-thinking"
	Model__Helicone__Qwen3__30b__A3b__3                                                      ModelID = "qwen3-30b-a3b"
	Model__Helicone__Qwen3__32b__3                                                           ModelID = "qwen3-32b"
	Model__Helicone__Qwen3__Coder__3                                                         ModelID = "qwen3-coder"
	Model__Helicone__Qwen3__Coder__30b__A3b__3__Instruct                                     ModelID = "qwen3-coder-30b-a3b-instruct"
	Model__Helicone__Qwen3__Next__80b__A3b__3__Instruct                                      ModelID = "qwen3-next-80b-a3b-instruct"
	Model__Helicone__Qwen3__Vl__235b__A22b__3__Instruct                                      ModelID = "qwen3-vl-235b-a22b-instruct"
	Model__Helicone__Sonar                                                                   ModelID = "sonar"
	Model__Helicone__Sonar__Deep__Research                                                   ModelID = "sonar-deep-research"
	Model__Helicone__Sonar__Pro                                                              ModelID = "sonar-pro"
	Model__Helicone__Sonar__Reasoning                                                        ModelID = "sonar-reasoning"
	Model__Helicone__Sonar__Reasoning__Pro                                                   ModelID = "sonar-reasoning-pro"
	Model__HpcAI__Claude__Opus__4_7                                                          ModelID = "anthropic/claude-opus-4.7"
	Model__HpcAI__DeepSeek__V4__Flash                                                        ModelID = "deepseek/deepseek-v4-flash"
	Model__HpcAI__DeepSeek__V4__Pro__Thinking                                                ModelID = "deepseek/deepseek-v4-pro"
	Model__HpcAI__GLM__5_1                                                                   ModelID = "zai-org/glm-5.1"
	Model__HpcAI__GLM__5_2                                                                   ModelID = "zai-org/glm-5.2"
	Model__HpcAI__GPT__5_5                                                                   ModelID = "openai/gpt-5.5"
	Model__HpcAI__Kimi__K2__5__2_5                                                           ModelID = "moonshotai/kimi-k2.5"
	Model__HpcAI__Kimi__K2__7__2_7__Code                                                     ModelID = "moonshotai/kimi-k2.7-code"
	Model__HpcAI__MiniMax__M2__5__2_5                                                        ModelID = "minimax/minimax-m2.5"
	Model__HuggingFace__DeepSeek__R1__0528__Thinking                                         ModelID = "deepseek-ai/DeepSeek-R1-0528"
	Model__HuggingFace__DeepSeek__R1__Thinking                                               ModelID = "deepseek-ai/DeepSeek-R1"
	Model__HuggingFace__DeepSeek__V3__2                                                      ModelID = "deepseek-ai/DeepSeek-V3.2"
	Model__HuggingFace__DeepSeek__V4__Flash                                                  ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__HuggingFace__DeepSeek__V4__Pro__Thinking                                          ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__HuggingFace__GLM__4_5                                                             ModelID = "zai-org/GLM-4.5"
	Model__HuggingFace__GLM__4_6                                                             ModelID = "zai-org/GLM-4.6"
	Model__HuggingFace__GLM__4_7                                                             ModelID = "zai-org/GLM-4.7"
	Model__HuggingFace__GLM__4__5V__4_5                                                      ModelID = "zai-org/GLM-4.5V"
	Model__HuggingFace__GLM__4__5__Air__4_5                                                  ModelID = "zai-org/GLM-4.5-Air"
	Model__HuggingFace__GLM__4__7__Flash__4_7                                                ModelID = "zai-org/GLM-4.7-Flash"
	Model__HuggingFace__GLM__5                                                               ModelID = "zai-org/GLM-5"
	Model__HuggingFace__GLM__5_1                                                             ModelID = "zai-org/GLM-5.1"
	Model__HuggingFace__GLM__5_2                                                             ModelID = "zai-org/GLM-5.2"
	Model__HuggingFace__GPT__Oss__120b                                                       ModelID = "openai/gpt-oss-120b"
	Model__HuggingFace__GPT__Oss__20b                                                        ModelID = "openai/gpt-oss-20b"
	Model__HuggingFace__Gemma__4__26B__A4b__It__4                                            ModelID = "google/gemma-4-26B-A4B-it"
	Model__HuggingFace__Gemma__4__31B__It__4                                                 ModelID = "google/gemma-4-31B-it"
	Model__HuggingFace__Kimi__K2__2__Instruct                                                ModelID = "moonshotai/Kimi-K2-Instruct"
	Model__HuggingFace__Kimi__K2__2__Thinking                                                ModelID = "moonshotai/Kimi-K2-Thinking"
	Model__HuggingFace__Kimi__K2__5__2_5                                                     ModelID = "moonshotai/Kimi-K2.5"
	Model__HuggingFace__Kimi__K2__6__2_6                                                     ModelID = "moonshotai/Kimi-K2.6"
	Model__HuggingFace__Kimi__K2__7__2_7__Code                                               ModelID = "moonshotai/Kimi-K2.7-Code"
	Model__HuggingFace__Kimi__K2__Instruct__0905__2__Instruct                                ModelID = "moonshotai/Kimi-K2-Instruct-0905"
	Model__HuggingFace__Llama__3__3__70B__3_3__Instruct                                      ModelID = "meta-llama/Llama-3.3-70B-Instruct"
	Model__HuggingFace__Mimo__V2__5__2_5__Pro                                                ModelID = "XiaomiMiMo/MiMo-V2.5-Pro"
	Model__HuggingFace__Mimo__V2__Flash                                                      ModelID = "XiaomiMiMo/MiMo-V2-Flash"
	Model__HuggingFace__MiniMax__M2__1__2_1                                                  ModelID = "MiniMaxAI/MiniMax-M2.1"
	Model__HuggingFace__MiniMax__M2__2                                                       ModelID = "MiniMaxAI/MiniMax-M2"
	Model__HuggingFace__MiniMax__M2__5__2_5                                                  ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__HuggingFace__MiniMax__M2__7__2_7                                                  ModelID = "MiniMaxAI/MiniMax-M2.7"
	Model__HuggingFace__MiniMax__M3__3                                                       ModelID = "MiniMaxAI/MiniMax-M3"
	Model__HuggingFace__Qwen3__235B__A22b__3                                                 ModelID = "Qwen/Qwen3-235B-A22B"
	Model__HuggingFace__Qwen3__235B__A22b__Thinking__2507__3__Thinking                       ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507"
	Model__HuggingFace__Qwen3__32B__3                                                        ModelID = "Qwen/Qwen3-32B"
	Model__HuggingFace__Qwen3__5__122B__A10b__3_5                                            ModelID = "Qwen/Qwen3.5-122B-A10B"
	Model__HuggingFace__Qwen3__5__27B__3_5                                                   ModelID = "Qwen/Qwen3.5-27B"
	Model__HuggingFace__Qwen3__5__35B__A3b__3_5                                              ModelID = "Qwen/Qwen3.5-35B-A3B"
	Model__HuggingFace__Qwen3__5__397B__A17b__3_5                                            ModelID = "Qwen/Qwen3.5-397B-A17B"
	Model__HuggingFace__Qwen3__5__9B__3_5                                                    ModelID = "Qwen/Qwen3.5-9B"
	Model__HuggingFace__Qwen3__6__27B__3_6                                                   ModelID = "Qwen/Qwen3.6-27B"
	Model__HuggingFace__Qwen3__6__35B__A3b__3_6                                              ModelID = "Qwen/Qwen3.6-35B-A3B"
	Model__HuggingFace__Qwen3__Coder__30B__A3b__3__Instruct                                  ModelID = "Qwen/Qwen3-Coder-30B-A3B-Instruct"
	Model__HuggingFace__Qwen3__Coder__480B__A35b__3__Instruct                                ModelID = "Qwen/Qwen3-Coder-480B-A35B-Instruct"
	Model__HuggingFace__Qwen3__Coder__Next__3                                                ModelID = "Qwen/Qwen3-Coder-Next"
	Model__HuggingFace__Qwen3__Embedding__4B__3                                              ModelID = "Qwen/Qwen3-Embedding-4B"
	Model__HuggingFace__Qwen3__Embedding__8B__3                                              ModelID = "Qwen/Qwen3-Embedding-8B"
	Model__HuggingFace__Qwen3__Next__80B__A3b__3__Instruct                                   ModelID = "Qwen/Qwen3-Next-80B-A3B-Instruct"
	Model__HuggingFace__Qwen3__Next__80B__A3b__3__Thinking                                   ModelID = "Qwen/Qwen3-Next-80B-A3B-Thinking"
	Model__HuggingFace__Step__3__5__Flash__3_5                                               ModelID = "stepfun-ai/Step-3.5-Flash"
	Model__HuggingFace__Step__3__7__Flash__3_7                                               ModelID = "stepfun-ai/Step-3.7-Flash"
	Model__IONet__DeepSeek__R1__0528__Thinking                                               ModelID = "deepseek-ai/DeepSeek-R1-0528"
	Model__IONet__Devstral__Small__2505                                                      ModelID = "mistralai/Devstral-Small-2505"
	Model__IONet__GLM__4_6                                                                   ModelID = "zai-org/GLM-4.6"
	Model__IONet__GPT__Oss__120b                                                             ModelID = "openai/gpt-oss-120b"
	Model__IONet__GPT__Oss__20b                                                              ModelID = "openai/gpt-oss-20b"
	Model__IONet__Kimi__K2__2__Thinking                                                      ModelID = "moonshotai/Kimi-K2-Thinking"
	Model__IONet__Kimi__K2__Instruct__0905__2__Instruct                                      ModelID = "moonshotai/Kimi-K2-Instruct-0905"
	Model__IONet__Llama__3__2__90B__3_2__VisionInstruct                                      ModelID = "meta-llama/Llama-3.2-90B-Vision-Instruct"
	Model__IONet__Llama__3__3__70B__3_3__Instruct                                            ModelID = "meta-llama/Llama-3.3-70B-Instruct"
	Model__IONet__Llama__4__Maverick__17B__128E__Instruct__Fp8__4__Instruct                  ModelID = "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"
	Model__IONet__Magistral__Small__2506                                                     ModelID = "mistralai/Magistral-Small-2506"
	Model__IONet__Mistral__Large__Instruct__2411__Instruct                                   ModelID = "mistralai/Mistral-Large-Instruct-2411"
	Model__IONet__Mistral__Nemo__Instruct__2407__Instruct                                    ModelID = "mistralai/Mistral-Nemo-Instruct-2407"
	Model__IONet__Qwen2__5__Vl__32B__2_5__Instruct                                           ModelID = "Qwen/Qwen2.5-VL-32B-Instruct"
	Model__IONet__Qwen3__235B__A22b__Thinking__2507__3__Thinking                             ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507"
	Model__IONet__Qwen3__Coder__480B__A35b__Instruct__Int4__Mixed__Ar__3                     ModelID = "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar"
	Model__IONet__Qwen3__Next__80B__A3b__3__Instruct                                         ModelID = "Qwen/Qwen3-Next-80B-A3B-Instruct"
	Model__Inception__Mercury__2                                                             ModelID = "mercury-2"
	Model__Inception__Mercury__Edit__2                                                       ModelID = "mercury-edit-2"
	Model__Inceptron__GLM__5_2                                                               ModelID = "zai-org/GLM-5.2"
	Model__Inceptron__GLM__5__1__Fp8__5_1                                                    ModelID = "zai-org/GLM-5.1-FP8"
	Model__Inceptron__Kimi__K2__6__2_6                                                       ModelID = "moonshotai/Kimi-K2.6"
	Model__Inceptron__Kimi__K2__6__2_6__Fast                                                 ModelID = "moonshotai/Kimi-K2.6-Fast"
	Model__Inceptron__Kimi__K2__7__2_7__Code                                                 ModelID = "moonshotai/Kimi-K2.7-Code"
	Model__Inceptron__MiniMax__M2__5__2_5                                                    ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__InferX__Gemma__4__31b__It__Fp8__4                                                 ModelID = "google/gemma-4-31b-it-fp8"
	Model__InferX__Qwen3__5__122b__A10b__Nvfp4__3_5                                          ModelID = "qwen/qwen3.5-122b-a10b-nvfp4"
	Model__InferX__Qwen3__6__27b__Fp8__3_6                                                   ModelID = "qwen/qwen3.6-27b-fp8"
	Model__InferX__Qwen3__6__35b__A3b__Fp8__3_6                                              ModelID = "qwen/qwen3.6-35b-a3b-fp8"
	Model__InferX__Qwen3__Coder__Next__Fp8__1m__3                                            ModelID = "qwen/qwen3-coder-next-fp8-1m"
	Model__InferX__Qwen3__Coder__Next__Fp8__3                                                ModelID = "qwen/qwen3-coder-next-fp8"
	Model__Inference__Gemma__3                                                               ModelID = "google/gemma-3"
	Model__Inference__Llama__3__1__8b__3_1__Instruct                                         ModelID = "meta/llama-3.1-8b-instruct"
	Model__Inference__Llama__3__2__11b__3_2__VisionInstruct                                  ModelID = "meta/llama-3.2-11b-vision-instruct"
	Model__Inference__Llama__3__2__1b__3_2__Instruct                                         ModelID = "meta/llama-3.2-1b-instruct"
	Model__Inference__Llama__3__2__3b__3_2__Instruct                                         ModelID = "meta/llama-3.2-3b-instruct"
	Model__Inference__Mistral__Nemo__12b__Instruct                                           ModelID = "mistral/mistral-nemo-12b-instruct"
	Model__Inference__Osmosis__Structure__0__6b                                              ModelID = "osmosis/osmosis-structure-0.6b"
	Model__Inference__Qwen3__Embedding__4b__3                                                ModelID = "qwen/qwen3-embedding-4b"
	Model__Inference__Qwen__2__5__7b__2_5__VisionInstruct                                    ModelID = "qwen/qwen-2.5-7b-vision-instruct"
	Model__Jiekou__Claude__Haiku__4_5__20251001                                              ModelID = "claude-haiku-4-5-20251001"
	Model__Jiekou__Claude__Opus__4_1__20250805                                               ModelID = "claude-opus-4-1-20250805"
	Model__Jiekou__Claude__Opus__4_5__20251101                                               ModelID = "claude-opus-4-5-20251101"
	Model__Jiekou__Claude__Opus__4_6                                                         ModelID = "claude-opus-4-6"
	Model__Jiekou__Claude__Opus__4__20250514                                                 ModelID = "claude-opus-4-20250514"
	Model__Jiekou__Claude__Sonnet__4_5__20250929                                             ModelID = "claude-sonnet-4-5-20250929"
	Model__Jiekou__Claude__Sonnet__4__20250514                                               ModelID = "claude-sonnet-4-20250514"
	Model__Jiekou__DeepSeek__R1__0528__Thinking                                              ModelID = "deepseek/deepseek-r1-0528"
	Model__Jiekou__DeepSeek__V3__0324                                                        ModelID = "deepseek/deepseek-v3-0324"
	Model__Jiekou__DeepSeek__V3__1                                                           ModelID = "deepseek/deepseek-v3.1"
	Model__Jiekou__Ernie__4__5__300b__A47b__Paddle__4_5                                      ModelID = "baidu/ernie-4.5-300b-a47b-paddle"
	Model__Jiekou__Ernie__4__5__Vl__424b__A47b__4_5                                          ModelID = "baidu/ernie-4.5-vl-424b-a47b"
	Model__Jiekou__GLM__4_5                                                                  ModelID = "zai-org/glm-4.5"
	Model__Jiekou__GLM__4_7                                                                  ModelID = "zai-org/glm-4.7"
	Model__Jiekou__GLM__4__5v__4_5                                                           ModelID = "zai-org/glm-4.5v"
	Model__Jiekou__GLM__4__7__Flash__4_7                                                     ModelID = "zai-org/glm-4.7-flash"
	Model__Jiekou__GPT__5_1                                                                  ModelID = "gpt-5.1"
	Model__Jiekou__GPT__5_2                                                                  ModelID = "gpt-5.2"
	Model__Jiekou__GPT__5__1__Codex__5_1                                                     ModelID = "gpt-5.1-codex"
	Model__Jiekou__GPT__5__1__Codex__Max__5_1                                                ModelID = "gpt-5.1-codex-max"
	Model__Jiekou__GPT__5__1__Codex__Mini__5_1                                               ModelID = "gpt-5.1-codex-mini"
	Model__Jiekou__GPT__5__2__Codex__5_2                                                     ModelID = "gpt-5.2-codex"
	Model__Jiekou__GPT__5__2__Pro__5_2                                                       ModelID = "gpt-5.2-pro"
	Model__Jiekou__GPT__5__ChatLatest                                                        ModelID = "gpt-5-chat-latest"
	Model__Jiekou__GPT__5__Codex__5                                                          ModelID = "gpt-5-codex"
	Model__Jiekou__GPT__5__Mini__5                                                           ModelID = "gpt-5-mini"
	Model__Jiekou__GPT__5__Nano__5                                                           ModelID = "gpt-5-nano"
	Model__Jiekou__GPT__5__Pro__5                                                            ModelID = "gpt-5-pro"
	Model__Jiekou__Gemini__2__5__Flash__2_5                                                  ModelID = "gemini-2.5-flash"
	Model__Jiekou__Gemini__2__5__Flash__Lite__2_5                                            ModelID = "gemini-2.5-flash-lite"
	Model__Jiekou__Gemini__2__5__Flash__Lite__Preview__06__17__2_5                           ModelID = "gemini-2.5-flash-lite-preview-06-17"
	Model__Jiekou__Gemini__2__5__Flash__Lite__Preview__09__2025__2_5__Preview                ModelID = "gemini-2.5-flash-lite-preview-09-2025"
	Model__Jiekou__Gemini__2__5__Flash__Preview__05__20__2_5                                 ModelID = "gemini-2.5-flash-preview-05-20"
	Model__Jiekou__Gemini__2__5__Pro__2_5                                                    ModelID = "gemini-2.5-pro"
	Model__Jiekou__Gemini__2__5__Pro__Preview__06__05__2_5                                   ModelID = "gemini-2.5-pro-preview-06-05"
	Model__Jiekou__Gemini__3__Flash__3__Preview                                              ModelID = "gemini-3-flash-preview"
	Model__Jiekou__Gemini__3__Pro__3__Preview                                                ModelID = "gemini-3-pro-preview"
	Model__Jiekou__Grok__4_1__ReasoningFast                                                  ModelID = "grok-4-1-fast-reasoning"
	Model__Jiekou__Grok__4__0709__4                                                          ModelID = "grok-4-0709"
	Model__Jiekou__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                      ModelID = "grok-4-1-fast-non-reasoning"
	Model__Jiekou__Grok__4__Fast__Non__Reasoning__4__Non_Reasoning                           ModelID = "grok-4-fast-non-reasoning"
	Model__Jiekou__Grok__4__ReasoningFast                                                    ModelID = "grok-4-fast-reasoning"
	Model__Jiekou__Grok__Code__Fast__1                                                       ModelID = "grok-code-fast-1"
	Model__Jiekou__Kimi__K2__0905__2                                                         ModelID = "moonshotai/kimi-k2-0905"
	Model__Jiekou__Kimi__K2__2__Instruct                                                     ModelID = "moonshotai/kimi-k2-instruct"
	Model__Jiekou__Kimi__K2__5__2_5                                                          ModelID = "moonshotai/kimi-k2.5"
	Model__Jiekou__Mimo__V2__Flash                                                           ModelID = "xiaomimimo/mimo-v2-flash"
	Model__Jiekou__MiniMax__M1__80k__1                                                       ModelID = "minimaxai/minimax-m1-80k"
	Model__Jiekou__MiniMax__M2__1__2_1                                                       ModelID = "minimax/minimax-m2.1"
	Model__Jiekou__O3__3                                                                     ModelID = "o3"
	Model__Jiekou__O3__3__Mini                                                               ModelID = "o3-mini"
	Model__Jiekou__O4__4__Mini                                                               ModelID = "o4-mini"
	Model__Jiekou__Qwen3__235b__A22b__Fp8__3                                                 ModelID = "qwen/qwen3-235b-a22b-fp8"
	Model__Jiekou__Qwen3__235b__A22b__Instruct__2507__3__Instruct                            ModelID = "qwen/qwen3-235b-a22b-instruct-2507"
	Model__Jiekou__Qwen3__235b__A22b__Thinking__2507__3__Thinking                            ModelID = "qwen/qwen3-235b-a22b-thinking-2507"
	Model__Jiekou__Qwen3__30b__A3b__Fp8__3                                                   ModelID = "qwen/qwen3-30b-a3b-fp8"
	Model__Jiekou__Qwen3__32b__Fp8__3                                                        ModelID = "qwen/qwen3-32b-fp8"
	Model__Jiekou__Qwen3__Coder__480b__A35b__3__Instruct                                     ModelID = "qwen/qwen3-coder-480b-a35b-instruct"
	Model__Jiekou__Qwen3__Coder__Next__3                                                     ModelID = "qwen/qwen3-coder-next"
	Model__Jiekou__Qwen3__Next__80b__A3b__3__Instruct                                        ModelID = "qwen/qwen3-next-80b-a3b-instruct"
	Model__Jiekou__Qwen3__Next__80b__A3b__3__Thinking                                        ModelID = "qwen/qwen3-next-80b-a3b-thinking"
	Model__KUAECloudCodingPlan__GLM__4_7                                                     ModelID = "GLM-4.7"
	Model__Kenari__Claude__Opus__4_7                                                         ModelID = "claude-opus-4-7"
	Model__Kenari__Claude__Opus__4_8                                                         ModelID = "claude-opus-4-8"
	Model__Kenari__Claude__Sonnet__4_6                                                       ModelID = "claude-sonnet-4-6"
	Model__Kenari__DeepSeek__V4__Flash                                                       ModelID = "deepseek-v4-flash"
	Model__Kenari__DeepSeek__V4__Flash__Free                                                 ModelID = "deepseek-v4-flash:free"
	Model__Kenari__DeepSeek__V4__Pro__Free__Thinking                                         ModelID = "deepseek-v4-pro:free"
	Model__Kenari__DeepSeek__V4__Pro__Thinking                                               ModelID = "deepseek-v4-pro"
	Model__Kenari__GLM__5_1                                                                  ModelID = "glm-5-1"
	Model__Kenari__GLM__5_2                                                                  ModelID = "glm-5-2"
	Model__Kenari__GPT__5_5                                                                  ModelID = "gpt-5-5"
	Model__Kenari__GPT__5__4__Mini__5_4                                                      ModelID = "gpt-5-4-mini"
	Model__Kenari__GPT__Image__2                                                             ModelID = "gpt-image-2"
	Model__Kenari__GPT__Oss__120b                                                            ModelID = "gpt-oss-120b"
	Model__Kenari__GPT__Oss__20b                                                             ModelID = "gpt-oss-20b"
	Model__Kenari__Gemma__4__31b__It__4                                                      ModelID = "gemma-4-31b-it"
	Model__Kenari__Grok__4_3                                                                 ModelID = "grok-4-3"
	Model__Kenari__Grok__Build__0_1                                                          ModelID = "grok-build-0-1"
	Model__Kenari__Kimi__K2__6__2_6                                                          ModelID = "kimi-k2-6"
	Model__Kenari__Kimi__K2__7__2_7__Code                                                    ModelID = "kimi-k2-7-code"
	Model__Kenari__Mimo__V2__5__2_5                                                          ModelID = "mimo-v2-5"
	Model__Kenari__Mimo__V2__5__2_5__Pro                                                     ModelID = "mimo-v2-5-pro"
	Model__Kenari__MiniMax__M3__3                                                            ModelID = "minimax-m3"
	Model__Kenari__Qwen3__7__Plus__3                                                         ModelID = "qwen3-7-plus"
	Model__Kilo__Aion__1_0                                                                   ModelID = "aion-labs/aion-1.0"
	Model__Kilo__Aion__1__0__Mini__1_0                                                       ModelID = "aion-labs/aion-1.0-mini"
	Model__Kilo__Aion__2_0                                                                   ModelID = "aion-labs/aion-2.0"
	Model__Kilo__Aion__Rp__Llama__3__1__8b                                                   ModelID = "aion-labs/aion-rp-llama-3.1-8b"
	Model__Kilo__Auto                                                                        ModelID = "openrouter/auto"
	Model__Kilo__Balanced                                                                    ModelID = "kilo-auto/balanced"
	Model__Kilo__Bodybuilder                                                                 ModelID = "openrouter/bodybuilder"
	Model__Kilo__Claude__3__5__Haiku__3_5                                                    ModelID = "anthropic/claude-3.5-haiku"
	Model__Kilo__Claude__3__Haiku__3                                                         ModelID = "anthropic/claude-3-haiku"
	Model__Kilo__Claude__Haiku__4_5                                                          ModelID = "anthropic/claude-haiku-4.5"
	Model__Kilo__Claude__Haiku__Latest                                                       ModelID = "~anthropic/claude-haiku-latest"
	Model__Kilo__Claude__Opus__4                                                             ModelID = "anthropic/claude-opus-4"
	Model__Kilo__Claude__Opus__4_1                                                           ModelID = "anthropic/claude-opus-4.1"
	Model__Kilo__Claude__Opus__4_5                                                           ModelID = "anthropic/claude-opus-4.5"
	Model__Kilo__Claude__Opus__4_6__Anthropic                                                ModelID = "anthropic/claude-opus-4.6"
	Model__Kilo__Claude__Opus__4_6__Fast                                                     ModelID = "anthropic/claude-opus-4.6-fast"
	Model__Kilo__Claude__Opus__4_6__Stealth                                                  ModelID = "stealth/claude-opus-4.6"
	Model__Kilo__Claude__Opus__4_7__Anthropic                                                ModelID = "anthropic/claude-opus-4.7"
	Model__Kilo__Claude__Opus__4_7__Fast                                                     ModelID = "anthropic/claude-opus-4.7-fast"
	Model__Kilo__Claude__Opus__4_7__Stealth                                                  ModelID = "stealth/claude-opus-4.7"
	Model__Kilo__Claude__Opus__Latest                                                        ModelID = "~anthropic/claude-opus-latest"
	Model__Kilo__Claude__Sonnet__4                                                           ModelID = "anthropic/claude-sonnet-4"
	Model__Kilo__Claude__Sonnet__4_5                                                         ModelID = "anthropic/claude-sonnet-4.5"
	Model__Kilo__Claude__Sonnet__4_6__Anthropic                                              ModelID = "anthropic/claude-sonnet-4.6"
	Model__Kilo__Claude__Sonnet__4_6__Stealth                                                ModelID = "stealth/claude-sonnet-4.6"
	Model__Kilo__Claude__Sonnet__Latest                                                      ModelID = "~anthropic/claude-sonnet-latest"
	Model__Kilo__Cobuddy__Free                                                               ModelID = "baidu/cobuddy:free"
	Model__Kilo__CodeLlama__7b__Instruct__Solidity__Instruct                                 ModelID = "alfredpros/codellama-7b-instruct-solidity"
	Model__Kilo__Coder__Large                                                                ModelID = "arcee-ai/coder-large"
	Model__Kilo__Codestral__2508                                                             ModelID = "mistralai/codestral-2508"
	Model__Kilo__Cogito__V2__1__671b                                                         ModelID = "deepcogito/cogito-v2.1-671b"
	Model__Kilo__Command__A                                                                  ModelID = "cohere/command-a"
	Model__Kilo__Command__R7b__12__20241202                                                  ModelID = "cohere/command-r7b-12-2024"
	Model__Kilo__Command__R__20240830                                                        ModelID = "cohere/command-r-08-2024"
	Model__Kilo__Command__R__Plus__20240830                                                  ModelID = "cohere/command-r-plus-08-2024"
	Model__Kilo__Cydonia__24b__V4__1                                                         ModelID = "thedrummer/cydonia-24b-v4.1"
	Model__Kilo__DeepSeek__Chat                                                              ModelID = "deepseek/deepseek-chat"
	Model__Kilo__DeepSeek__Chat__V3__0324                                                    ModelID = "deepseek/deepseek-chat-v3-0324"
	Model__Kilo__DeepSeek__Chat__V3__1__3_1                                                  ModelID = "deepseek/deepseek-chat-v3.1"
	Model__Kilo__DeepSeek__R1                                                                ModelID = "deepseek/deepseek-r1"
	Model__Kilo__DeepSeek__R1__0528                                                          ModelID = "deepseek/deepseek-r1-0528"
	Model__Kilo__DeepSeek__R1__Distill__Llama__70b                                           ModelID = "deepseek/deepseek-r1-distill-llama-70b"
	Model__Kilo__DeepSeek__R1__Distill__Qwen__32b                                            ModelID = "deepseek/deepseek-r1-distill-qwen-32b"
	Model__Kilo__DeepSeek__V3__1__Nex__N1                                                    ModelID = "nex-agi/deepseek-v3.1-nex-n1"
	Model__Kilo__DeepSeek__V3__1__Terminus                                                   ModelID = "deepseek/deepseek-v3.1-terminus"
	Model__Kilo__DeepSeek__V3__2                                                             ModelID = "deepseek/deepseek-v3.2"
	Model__Kilo__DeepSeek__V3__2__Exp                                                        ModelID = "deepseek/deepseek-v3.2-exp"
	Model__Kilo__DeepSeek__V3__2__Speciale                                                   ModelID = "deepseek/deepseek-v3.2-speciale"
	Model__Kilo__DeepSeek__V4__Flash                                                         ModelID = "deepseek/deepseek-v4-flash"
	Model__Kilo__DeepSeek__V4__Pro                                                           ModelID = "deepseek/deepseek-v4-pro"
	Model__Kilo__Devstral__2512                                                              ModelID = "mistralai/devstral-2512"
	Model__Kilo__Devstral__Medium                                                            ModelID = "mistralai/devstral-medium"
	Model__Kilo__Devstral__Small                                                             ModelID = "mistralai/devstral-small"
	Model__Kilo__Ernie__4__5__21b__A3b__4_5                                                  ModelID = "baidu/ernie-4.5-21b-a3b"
	Model__Kilo__Ernie__4__5__21b__A3b__4_5__Thinking                                        ModelID = "baidu/ernie-4.5-21b-a3b-thinking"
	Model__Kilo__Ernie__4__5__300b__A47b__4_5                                                ModelID = "baidu/ernie-4.5-300b-a47b"
	Model__Kilo__Ernie__4__5__Vl__28b__A3b__4_5                                              ModelID = "baidu/ernie-4.5-vl-28b-a3b"
	Model__Kilo__Ernie__4__5__Vl__424b__A47b__4_5                                            ModelID = "baidu/ernie-4.5-vl-424b-a47b"
	Model__Kilo__Free__KiloAuto                                                              ModelID = "kilo-auto/free"
	Model__Kilo__Free__OpenRouter                                                            ModelID = "openrouter/free"
	Model__Kilo__Frontier                                                                    ModelID = "kilo-auto/frontier"
	Model__Kilo__GLM__4_5                                                                    ModelID = "z-ai/glm-4.5"
	Model__Kilo__GLM__4_6                                                                    ModelID = "z-ai/glm-4.6"
	Model__Kilo__GLM__4_7                                                                    ModelID = "z-ai/glm-4.7"
	Model__Kilo__GLM__4__32b__4                                                              ModelID = "z-ai/glm-4-32b"
	Model__Kilo__GLM__4__5__Air__4_5                                                         ModelID = "z-ai/glm-4.5-air"
	Model__Kilo__GLM__4__5v__4_5                                                             ModelID = "z-ai/glm-4.5v"
	Model__Kilo__GLM__4__6v__4_6                                                             ModelID = "z-ai/glm-4.6v"
	Model__Kilo__GLM__4__7__Flash__4_7                                                       ModelID = "z-ai/glm-4.7-flash"
	Model__Kilo__GLM__5                                                                      ModelID = "z-ai/glm-5"
	Model__Kilo__GLM__5_1                                                                    ModelID = "z-ai/glm-5.1"
	Model__Kilo__GLM__5__Turbo                                                               ModelID = "z-ai/glm-5-turbo"
	Model__Kilo__GLM__5v__5__Turbo                                                           ModelID = "z-ai/glm-5v-turbo"
	Model__Kilo__GPT__3_5__Turbo                                                             ModelID = "openai/gpt-3.5-turbo"
	Model__Kilo__GPT__3_5__TurboInstruct                                                     ModelID = "openai/gpt-3.5-turbo-instruct"
	Model__Kilo__GPT__3__5__Turbo__0613__3_5__Turbo                                          ModelID = "openai/gpt-3.5-turbo-0613"
	Model__Kilo__GPT__3__5__Turbo__16k__3_5__Turbo                                           ModelID = "openai/gpt-3.5-turbo-16k"
	Model__Kilo__GPT__4                                                                      ModelID = "openai/gpt-4"
	Model__Kilo__GPT__4_1                                                                    ModelID = "openai/gpt-4.1"
	Model__Kilo__GPT__4__0314__4                                                             ModelID = "openai/gpt-4-0314"
	Model__Kilo__GPT__4__1106__4__Preview                                                    ModelID = "openai/gpt-4-1106-preview"
	Model__Kilo__GPT__4__1__Mini__4_1                                                        ModelID = "openai/gpt-4.1-mini"
	Model__Kilo__GPT__4__1__Nano__4_1                                                        ModelID = "openai/gpt-4.1-nano"
	Model__Kilo__GPT__4__Turbo                                                               ModelID = "openai/gpt-4-turbo"
	Model__Kilo__GPT__4__TurboPreview                                                        ModelID = "openai/gpt-4-turbo-preview"
	Model__Kilo__GPT__4o                                                                     ModelID = "openai/gpt-4o"
	Model__Kilo__GPT__4o__20240513                                                           ModelID = "openai/gpt-4o-2024-05-13"
	Model__Kilo__GPT__4o__20240806                                                           ModelID = "openai/gpt-4o-2024-08-06"
	Model__Kilo__GPT__4o__20241120                                                           ModelID = "openai/gpt-4o-2024-11-20"
	Model__Kilo__GPT__4o__Audio__Preview                                                     ModelID = "openai/gpt-4o-audio-preview"
	Model__Kilo__GPT__4o__Mini                                                               ModelID = "openai/gpt-4o-mini"
	Model__Kilo__GPT__4o__Mini__Mini__20240718                                               ModelID = "openai/gpt-4o-mini-2024-07-18"
	Model__Kilo__GPT__4o__Mini__Search__PreviewMini                                          ModelID = "openai/gpt-4o-mini-search-preview"
	Model__Kilo__GPT__4o__Search__Preview                                                    ModelID = "openai/gpt-4o-search-preview"
	Model__Kilo__GPT__5                                                                      ModelID = "openai/gpt-5"
	Model__Kilo__GPT__5_1                                                                    ModelID = "openai/gpt-5.1"
	Model__Kilo__GPT__5_1__Chat                                                              ModelID = "openai/gpt-5.1-chat"
	Model__Kilo__GPT__5_2                                                                    ModelID = "openai/gpt-5.2"
	Model__Kilo__GPT__5_2__Chat                                                              ModelID = "openai/gpt-5.2-chat"
	Model__Kilo__GPT__5_3__Chat                                                              ModelID = "openai/gpt-5.3-chat"
	Model__Kilo__GPT__5_4                                                                    ModelID = "openai/gpt-5.4"
	Model__Kilo__GPT__5_5                                                                    ModelID = "openai/gpt-5.5"
	Model__Kilo__GPT__5__1__Codex__5_1                                                       ModelID = "openai/gpt-5.1-codex"
	Model__Kilo__GPT__5__1__Codex__Max__5_1                                                  ModelID = "openai/gpt-5.1-codex-max"
	Model__Kilo__GPT__5__1__Codex__Mini__5_1                                                 ModelID = "openai/gpt-5.1-codex-mini"
	Model__Kilo__GPT__5__2__Codex__5_2                                                       ModelID = "openai/gpt-5.2-codex"
	Model__Kilo__GPT__5__2__Pro__5_2                                                         ModelID = "openai/gpt-5.2-pro"
	Model__Kilo__GPT__5__3__Codex__5_3                                                       ModelID = "openai/gpt-5.3-codex"
	Model__Kilo__GPT__5__4__Image__2__5_4                                                    ModelID = "openai/gpt-5.4-image-2"
	Model__Kilo__GPT__5__4__Mini__5_4                                                        ModelID = "openai/gpt-5.4-mini"
	Model__Kilo__GPT__5__4__Nano__5_4                                                        ModelID = "openai/gpt-5.4-nano"
	Model__Kilo__GPT__5__4__Pro__5_4                                                         ModelID = "openai/gpt-5.4-pro"
	Model__Kilo__GPT__5__5__Pro__5_5                                                         ModelID = "openai/gpt-5.5-pro"
	Model__Kilo__GPT__5__Chat                                                                ModelID = "openai/gpt-5-chat"
	Model__Kilo__GPT__5__Codex__5                                                            ModelID = "openai/gpt-5-codex"
	Model__Kilo__GPT__5__Image__5                                                            ModelID = "openai/gpt-5-image"
	Model__Kilo__GPT__5__Image__Mini__5                                                      ModelID = "openai/gpt-5-image-mini"
	Model__Kilo__GPT__5__Mini__5                                                             ModelID = "openai/gpt-5-mini"
	Model__Kilo__GPT__5__Nano__5                                                             ModelID = "openai/gpt-5-nano"
	Model__Kilo__GPT__5__Pro__5                                                              ModelID = "openai/gpt-5-pro"
	Model__Kilo__GPT__Audio                                                                  ModelID = "openai/gpt-audio"
	Model__Kilo__GPT__Audio__Mini                                                            ModelID = "openai/gpt-audio-mini"
	Model__Kilo__GPT__ChatLatest                                                             ModelID = "openai/gpt-chat-latest"
	Model__Kilo__GPT__Latest                                                                 ModelID = "~openai/gpt-latest"
	Model__Kilo__GPT__Mini__Latest                                                           ModelID = "~openai/gpt-mini-latest"
	Model__Kilo__GPT__Oss__120b                                                              ModelID = "openai/gpt-oss-120b"
	Model__Kilo__GPT__Oss__20b                                                               ModelID = "openai/gpt-oss-20b"
	Model__Kilo__GPT__Oss__Safeguard__20b                                                    ModelID = "openai/gpt-oss-safeguard-20b"
	Model__Kilo__Gemini__2__0__Flash__001__2_0                                               ModelID = "google/gemini-2.0-flash-001"
	Model__Kilo__Gemini__2__0__Flash__Lite__001__2_0                                         ModelID = "google/gemini-2.0-flash-lite-001"
	Model__Kilo__Gemini__2__5__Flash__2_5                                                    ModelID = "google/gemini-2.5-flash"
	Model__Kilo__Gemini__2__5__Flash__Image__2_5                                             ModelID = "google/gemini-2.5-flash-image"
	Model__Kilo__Gemini__2__5__Flash__Lite__2_5                                              ModelID = "google/gemini-2.5-flash-lite"
	Model__Kilo__Gemini__2__5__Flash__Lite__Preview__2_5__Preview__20250925                  ModelID = "google/gemini-2.5-flash-lite-preview-09-2025"
	Model__Kilo__Gemini__2__5__Pro__2_5                                                      ModelID = "google/gemini-2.5-pro"
	Model__Kilo__Gemini__2__5__Pro__2_5__Preview                                             ModelID = "google/gemini-2.5-pro-preview"
	Model__Kilo__Gemini__2__5__Pro__Preview__2_5__20250506                                   ModelID = "google/gemini-2.5-pro-preview-05-06"
	Model__Kilo__Gemini__3__1__Flash__Image__3_1__Preview                                    ModelID = "google/gemini-3.1-flash-image-preview"
	Model__Kilo__Gemini__3__1__Flash__Lite__3_1                                              ModelID = "google/gemini-3.1-flash-lite"
	Model__Kilo__Gemini__3__1__Flash__Lite__3_1__Preview                                     ModelID = "google/gemini-3.1-flash-lite-preview"
	Model__Kilo__Gemini__3__1__Pro__3_1__Preview                                             ModelID = "google/gemini-3.1-pro-preview"
	Model__Kilo__Gemini__3__1__Pro__Preview__Customtools__3_1                                ModelID = "google/gemini-3.1-pro-preview-customtools"
	Model__Kilo__Gemini__3__5__Flash__3_5                                                    ModelID = "google/gemini-3.5-flash"
	Model__Kilo__Gemini__3__Flash__3__Preview                                                ModelID = "google/gemini-3-flash-preview"
	Model__Kilo__Gemini__3__Pro__Image__3__Preview                                           ModelID = "google/gemini-3-pro-image-preview"
	Model__Kilo__Gemini__Flash__Latest                                                       ModelID = "~google/gemini-flash-latest"
	Model__Kilo__Gemini__Pro__Latest                                                         ModelID = "~google/gemini-pro-latest"
	Model__Kilo__Gemma__2__27b__It__2                                                        ModelID = "google/gemma-2-27b-it"
	Model__Kilo__Gemma__3__12b__It__3                                                        ModelID = "google/gemma-3-12b-it"
	Model__Kilo__Gemma__3__27b__It__3                                                        ModelID = "google/gemma-3-27b-it"
	Model__Kilo__Gemma__3__4b__It__3                                                         ModelID = "google/gemma-3-4b-it"
	Model__Kilo__Gemma__3n__E4b__It                                                          ModelID = "google/gemma-3n-e4b-it"
	Model__Kilo__Gemma__4__26b__A4b__It__4                                                   ModelID = "google/gemma-4-26b-a4b-it"
	Model__Kilo__Gemma__4__31b__It__4                                                        ModelID = "google/gemma-4-31b-it"
	Model__Kilo__Granite__4__0__H__Micro__4_0                                                ModelID = "ibm-granite/granite-4.0-h-micro"
	Model__Kilo__Granite__4__1__8b__4_1                                                      ModelID = "ibm-granite/granite-4.1-8b"
	Model__Kilo__Grok__4_20                                                                  ModelID = "x-ai/grok-4.20"
	Model__Kilo__Grok__4_3                                                                   ModelID = "x-ai/grok-4.3"
	Model__Kilo__Grok__4__20__Multi__Agent__4_20                                             ModelID = "x-ai/grok-4.20-multi-agent"
	Model__Kilo__Grok__Build__0_1                                                            ModelID = "x-ai/grok-build-0.1"
	Model__Kilo__Hermes__2__Pro__Llama__3__8b__2                                             ModelID = "nousresearch/hermes-2-pro-llama-3-8b"
	Model__Kilo__Hermes__3__Llama__3__1__405b__3                                             ModelID = "nousresearch/hermes-3-llama-3.1-405b"
	Model__Kilo__Hermes__3__Llama__3__1__70b__3                                              ModelID = "nousresearch/hermes-3-llama-3.1-70b"
	Model__Kilo__Hermes__4__405b__4                                                          ModelID = "nousresearch/hermes-4-405b"
	Model__Kilo__Hermes__4__70b__4                                                           ModelID = "nousresearch/hermes-4-70b"
	Model__Kilo__Hunyuan__A13b__Instruct                                                     ModelID = "tencent/hunyuan-a13b-instruct"
	Model__Kilo__Hy3__3__Preview                                                             ModelID = "tencent/hy3-preview"
	Model__Kilo__Inflection__3__Pi__3                                                        ModelID = "inflection/inflection-3-pi"
	Model__Kilo__Inflection__3__Productivity__3                                              ModelID = "inflection/inflection-3-productivity"
	Model__Kilo__Intellect__3                                                                ModelID = "prime-intellect/intellect-3"
	Model__Kilo__Jamba__Large__1_7                                                           ModelID = "ai21/jamba-large-1.7"
	Model__Kilo__Kat__Coder__Pro__V2                                                         ModelID = "kwaipilot/kat-coder-pro-v2"
	Model__Kilo__Kimi__K2__0905__2                                                           ModelID = "moonshotai/kimi-k2-0905"
	Model__Kilo__Kimi__K2__2                                                                 ModelID = "moonshotai/kimi-k2"
	Model__Kilo__Kimi__K2__2__Thinking                                                       ModelID = "moonshotai/kimi-k2-thinking"
	Model__Kilo__Kimi__K2__5__2_5                                                            ModelID = "moonshotai/kimi-k2.5"
	Model__Kilo__Kimi__K2__6__2_6                                                            ModelID = "moonshotai/kimi-k2.6"
	Model__Kilo__Kimi__Latest                                                                ModelID = "~moonshotai/kimi-latest"
	Model__Kilo__L3__1__70b__Hanami__X1                                                      ModelID = "sao10k/l3.1-70b-hanami-x1"
	Model__Kilo__L3__1__Euryale__70b                                                         ModelID = "sao10k/l3.1-euryale-70b"
	Model__Kilo__L3__3__Euryale__70b                                                         ModelID = "sao10k/l3.3-euryale-70b"
	Model__Kilo__L3__Euryale__70b                                                            ModelID = "sao10k/l3-euryale-70b"
	Model__Kilo__L3__Lunaris__8b                                                             ModelID = "sao10k/l3-lunaris-8b"
	Model__Kilo__Laguna__M__1__Free__1                                                       ModelID = "poolside/laguna-m.1:free"
	Model__Kilo__Laguna__Xs__2__Free__2                                                      ModelID = "poolside/laguna-xs.2:free"
	Model__Kilo__Lfm__2__24b__A2b__2                                                         ModelID = "liquid/lfm-2-24b-a2b"
	Model__Kilo__Ling__2__6__1t__2_6                                                         ModelID = "inclusionai/ling-2.6-1t"
	Model__Kilo__Ling__2__6__Flash__2_6                                                      ModelID = "inclusionai/ling-2.6-flash"
	Model__Kilo__Llama__3__1__70b__3_1__Instruct                                             ModelID = "meta-llama/llama-3.1-70b-instruct"
	Model__Kilo__Llama__3__1__8b__3_1__Instruct                                              ModelID = "meta-llama/llama-3.1-8b-instruct"
	Model__Kilo__Llama__3__2__11b__3_2__VisionInstruct                                       ModelID = "meta-llama/llama-3.2-11b-vision-instruct"
	Model__Kilo__Llama__3__2__1b__3_2__Instruct                                              ModelID = "meta-llama/llama-3.2-1b-instruct"
	Model__Kilo__Llama__3__2__3b__3_2__Instruct                                              ModelID = "meta-llama/llama-3.2-3b-instruct"
	Model__Kilo__Llama__3__3__70b__3_3__Instruct                                             ModelID = "meta-llama/llama-3.3-70b-instruct"
	Model__Kilo__Llama__3__3__Nemotron__Super__49b__V1__5__3_3                               ModelID = "nvidia/llama-3.3-nemotron-super-49b-v1.5"
	Model__Kilo__Llama__3__70b__3__Instruct                                                  ModelID = "meta-llama/llama-3-70b-instruct"
	Model__Kilo__Llama__3__8b__3__Instruct                                                   ModelID = "meta-llama/llama-3-8b-instruct"
	Model__Kilo__Llama__4__Maverick__4                                                       ModelID = "meta-llama/llama-4-maverick"
	Model__Kilo__Llama__4__Scout__4                                                          ModelID = "meta-llama/llama-4-scout"
	Model__Kilo__Llama__Guard__3__8b__3                                                      ModelID = "meta-llama/llama-guard-3-8b"
	Model__Kilo__Llama__Guard__4__12b__4                                                     ModelID = "meta-llama/llama-guard-4-12b"
	Model__Kilo__Lyria__3__Clip__3__Preview                                                  ModelID = "google/lyria-3-clip-preview"
	Model__Kilo__Lyria__3__Pro__3__Preview                                                   ModelID = "google/lyria-3-pro-preview"
	Model__Kilo__Maestro__Reasoning                                                          ModelID = "arcee-ai/maestro-reasoning"
	Model__Kilo__Magnum__V4__72b                                                             ModelID = "anthracite-org/magnum-v4-72b"
	Model__Kilo__Mercury__2                                                                  ModelID = "inception/mercury-2"
	Model__Kilo__Mimo__V2__2__Omni                                                           ModelID = "xiaomi/mimo-v2-omni"
	Model__Kilo__Mimo__V2__2__Pro                                                            ModelID = "xiaomi/mimo-v2-pro"
	Model__Kilo__Mimo__V2__5__2_5                                                            ModelID = "xiaomi/mimo-v2.5"
	Model__Kilo__Mimo__V2__5__2_5__Pro                                                       ModelID = "xiaomi/mimo-v2.5-pro"
	Model__Kilo__Mimo__V2__Flash                                                             ModelID = "xiaomi/mimo-v2-flash"
	Model__Kilo__MiniMax__01                                                                 ModelID = "minimax/minimax-01"
	Model__Kilo__MiniMax__M1__1                                                              ModelID = "minimax/minimax-m1"
	Model__Kilo__MiniMax__M2__1__2_1                                                         ModelID = "minimax/minimax-m2.1"
	Model__Kilo__MiniMax__M2__2                                                              ModelID = "minimax/minimax-m2"
	Model__Kilo__MiniMax__M2__5__2_5                                                         ModelID = "minimax/minimax-m2.5"
	Model__Kilo__MiniMax__M2__7__2_7                                                         ModelID = "minimax/minimax-m2.7"
	Model__Kilo__MiniMax__M2__Her                                                            ModelID = "minimax/minimax-m2-her"
	Model__Kilo__MiniMax__M3__3                                                              ModelID = "minimax/minimax-m3"
	Model__Kilo__Ministral__14b__2512                                                        ModelID = "mistralai/ministral-14b-2512"
	Model__Kilo__Ministral__3b__2512                                                         ModelID = "mistralai/ministral-3b-2512"
	Model__Kilo__Ministral__8b__2512                                                         ModelID = "mistralai/ministral-8b-2512"
	Model__Kilo__Mistral__7b__Instruct__V0__1__0_1__Instruct                                 ModelID = "mistralai/mistral-7b-instruct-v0.1"
	Model__Kilo__Mistral__Large                                                              ModelID = "mistralai/mistral-large"
	Model__Kilo__Mistral__Large__2407                                                        ModelID = "mistralai/mistral-large-2407"
	Model__Kilo__Mistral__Large__2411                                                        ModelID = "mistralai/mistral-large-2411"
	Model__Kilo__Mistral__Large__2512                                                        ModelID = "mistralai/mistral-large-2512"
	Model__Kilo__Mistral__Medium__3                                                          ModelID = "mistralai/mistral-medium-3"
	Model__Kilo__Mistral__Medium__3_1                                                        ModelID = "mistralai/mistral-medium-3.1"
	Model__Kilo__Mistral__Medium__3_5                                                        ModelID = "mistralai/mistral-medium-3-5"
	Model__Kilo__Mistral__Nemo                                                               ModelID = "mistralai/mistral-nemo"
	Model__Kilo__Mistral__Saba                                                               ModelID = "mistralai/mistral-saba"
	Model__Kilo__Mistral__Small__24b__Instruct__2501__Instruct                               ModelID = "mistralai/mistral-small-24b-instruct-2501"
	Model__Kilo__Mistral__Small__2603                                                        ModelID = "mistralai/mistral-small-2603"
	Model__Kilo__Mistral__Small__3__1__24b__3_1__Instruct                                    ModelID = "mistralai/mistral-small-3.1-24b-instruct"
	Model__Kilo__Mistral__Small__3__2__24b__3_2__Instruct                                    ModelID = "mistralai/mistral-small-3.2-24b-instruct"
	Model__Kilo__Mixtral__8x22b__Instruct                                                    ModelID = "mistralai/mixtral-8x22b-instruct"
	Model__Kilo__Morph__V3__Fast                                                             ModelID = "morph/morph-v3-fast"
	Model__Kilo__Morph__V3__Large                                                            ModelID = "morph/morph-v3-large"
	Model__Kilo__Mythomax__L2__13b                                                           ModelID = "gryphe/mythomax-l2-13b"
	Model__Kilo__Nemotron__3__Nano__30b__A3b__3                                              ModelID = "nvidia/nemotron-3-nano-30b-a3b"
	Model__Kilo__Nemotron__3__Nano__Omni__30b__A3b__Reasoning__Free__3__ReasoningOmni        ModelID = "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free"
	Model__Kilo__Nemotron__3__Super__120b__A12b__3                                           ModelID = "nvidia/nemotron-3-super-120b-a12b"
	Model__Kilo__Nemotron__3__Super__120b__A12b__Free__3                                     ModelID = "nvidia/nemotron-3-super-120b-a12b:free"
	Model__Kilo__Nemotron__Nano__9b__V2                                                      ModelID = "nvidia/nemotron-nano-9b-v2"
	Model__Kilo__Nova__2__Lite__V1__2                                                        ModelID = "amazon/nova-2-lite-v1"
	Model__Kilo__Nova__Lite__V1                                                              ModelID = "amazon/nova-lite-v1"
	Model__Kilo__Nova__Micro__V1                                                             ModelID = "amazon/nova-micro-v1"
	Model__Kilo__Nova__Premier__V1                                                           ModelID = "amazon/nova-premier-v1"
	Model__Kilo__Nova__Pro__V1                                                               ModelID = "amazon/nova-pro-v1"
	Model__Kilo__O1__1                                                                       ModelID = "openai/o1"
	Model__Kilo__O1__1__Pro                                                                  ModelID = "openai/o1-pro"
	Model__Kilo__O3__3                                                                       ModelID = "openai/o3"
	Model__Kilo__O3__3__Mini                                                                 ModelID = "openai/o3-mini"
	Model__Kilo__O3__3__Pro                                                                  ModelID = "openai/o3-pro"
	Model__Kilo__O3__Deep__Research__3__Deep_Research                                        ModelID = "openai/o3-deep-research"
	Model__Kilo__O3__Mini__High__3__Mini                                                     ModelID = "openai/o3-mini-high"
	Model__Kilo__O4__4__Mini                                                                 ModelID = "openai/o4-mini"
	Model__Kilo__O4__Mini__Deep__Research__4__Mini                                           ModelID = "openai/o4-mini-deep-research"
	Model__Kilo__O4__Mini__High__4__Mini                                                     ModelID = "openai/o4-mini-high"
	Model__Kilo__OLMo__3__32b__3__Think                                                      ModelID = "allenai/olmo-3-32b-think"
	Model__Kilo__Owl__Alpha                                                                  ModelID = "openrouter/owl-alpha"
	Model__Kilo__Palmyra__X5                                                                 ModelID = "writer/palmyra-x5"
	Model__Kilo__Pareto__Code                                                                ModelID = "openrouter/pareto-code"
	Model__Kilo__Perceptron__Mk1                                                             ModelID = "perceptron/perceptron-mk1"
	Model__Kilo__Phi__4                                                                      ModelID = "microsoft/phi-4"
	Model__Kilo__Phi__4__Mini__4__Instruct                                                   ModelID = "microsoft/phi-4-mini-instruct"
	Model__Kilo__Pixtral__Large__2411                                                        ModelID = "mistralai/pixtral-large-2411"
	Model__Kilo__Qianfan__Ocr__Fast                                                          ModelID = "baidu/qianfan-ocr-fast"
	Model__Kilo__Qwen2__5__Vl__72b__2_5__Instruct                                            ModelID = "qwen/qwen2.5-vl-72b-instruct"
	Model__Kilo__Qwen3__14b__3                                                               ModelID = "qwen/qwen3-14b"
	Model__Kilo__Qwen3__235b__A22b__2507__3                                                  ModelID = "qwen/qwen3-235b-a22b-2507"
	Model__Kilo__Qwen3__235b__A22b__3                                                        ModelID = "qwen/qwen3-235b-a22b"
	Model__Kilo__Qwen3__235b__A22b__Thinking__2507__3__Thinking                              ModelID = "qwen/qwen3-235b-a22b-thinking-2507"
	Model__Kilo__Qwen3__30b__A3b__3                                                          ModelID = "qwen/qwen3-30b-a3b"
	Model__Kilo__Qwen3__30b__A3b__Instruct__2507__3__Instruct                                ModelID = "qwen/qwen3-30b-a3b-instruct-2507"
	Model__Kilo__Qwen3__30b__A3b__Thinking__2507__3__Thinking                                ModelID = "qwen/qwen3-30b-a3b-thinking-2507"
	Model__Kilo__Qwen3__32b__3                                                               ModelID = "qwen/qwen3-32b"
	Model__Kilo__Qwen3__5__122b__A10b__3_5                                                   ModelID = "qwen/qwen3.5-122b-a10b"
	Model__Kilo__Qwen3__5__27b__3_5                                                          ModelID = "qwen/qwen3.5-27b"
	Model__Kilo__Qwen3__5__35b__A3b__3_5                                                     ModelID = "qwen/qwen3.5-35b-a3b"
	Model__Kilo__Qwen3__5__397b__A17b__3_5                                                   ModelID = "qwen/qwen3.5-397b-a17b"
	Model__Kilo__Qwen3__5__9b__3_5                                                           ModelID = "qwen/qwen3.5-9b"
	Model__Kilo__Qwen3__5__Flash__02__23__3_5                                                ModelID = "qwen/qwen3.5-flash-02-23"
	Model__Kilo__Qwen3__5__Plus__3_5__20260215                                               ModelID = "qwen/qwen3.5-plus-02-15"
	Model__Kilo__Qwen3__5__Plus__3_5__20260420                                               ModelID = "qwen/qwen3.5-plus-20260420"
	Model__Kilo__Qwen3__6__27b__3_6                                                          ModelID = "qwen/qwen3.6-27b"
	Model__Kilo__Qwen3__6__35b__A3b__3_6                                                     ModelID = "qwen/qwen3.6-35b-a3b"
	Model__Kilo__Qwen3__6__Flash__3_6                                                        ModelID = "qwen/qwen3.6-flash"
	Model__Kilo__Qwen3__6__Max__3_6__Preview                                                 ModelID = "qwen/qwen3.6-max-preview"
	Model__Kilo__Qwen3__6__Plus__3_6                                                         ModelID = "qwen/qwen3.6-plus"
	Model__Kilo__Qwen3__7__Max__3_7                                                          ModelID = "qwen/qwen3.7-max"
	Model__Kilo__Qwen3__8b__3                                                                ModelID = "qwen/qwen3-8b"
	Model__Kilo__Qwen3__Coder__3                                                             ModelID = "qwen/qwen3-coder"
	Model__Kilo__Qwen3__Coder__30b__A3b__3__Instruct                                         ModelID = "qwen/qwen3-coder-30b-a3b-instruct"
	Model__Kilo__Qwen3__Coder__Flash__3                                                      ModelID = "qwen/qwen3-coder-flash"
	Model__Kilo__Qwen3__Coder__Next__3                                                       ModelID = "qwen/qwen3-coder-next"
	Model__Kilo__Qwen3__Coder__Plus__3                                                       ModelID = "qwen/qwen3-coder-plus"
	Model__Kilo__Qwen3__Max__3                                                               ModelID = "qwen/qwen3-max"
	Model__Kilo__Qwen3__Max__3__Thinking                                                     ModelID = "qwen/qwen3-max-thinking"
	Model__Kilo__Qwen3__Next__80b__A3b__3__Instruct                                          ModelID = "qwen/qwen3-next-80b-a3b-instruct"
	Model__Kilo__Qwen3__Next__80b__A3b__3__Thinking                                          ModelID = "qwen/qwen3-next-80b-a3b-thinking"
	Model__Kilo__Qwen3__Vl__235b__A22b__3__Instruct                                          ModelID = "qwen/qwen3-vl-235b-a22b-instruct"
	Model__Kilo__Qwen3__Vl__235b__A22b__3__Thinking                                          ModelID = "qwen/qwen3-vl-235b-a22b-thinking"
	Model__Kilo__Qwen3__Vl__30b__A3b__3__Instruct                                            ModelID = "qwen/qwen3-vl-30b-a3b-instruct"
	Model__Kilo__Qwen3__Vl__30b__A3b__3__Thinking                                            ModelID = "qwen/qwen3-vl-30b-a3b-thinking"
	Model__Kilo__Qwen3__Vl__32b__3__Instruct                                                 ModelID = "qwen/qwen3-vl-32b-instruct"
	Model__Kilo__Qwen3__Vl__8b__3__Instruct                                                  ModelID = "qwen/qwen3-vl-8b-instruct"
	Model__Kilo__Qwen3__Vl__8b__3__Thinking                                                  ModelID = "qwen/qwen3-vl-8b-thinking"
	Model__Kilo__Qwen__2__5__72b__2_5__Instruct                                              ModelID = "qwen/qwen-2.5-72b-instruct"
	Model__Kilo__Qwen__2__5__7b__2_5__Instruct                                               ModelID = "qwen/qwen-2.5-7b-instruct"
	Model__Kilo__Qwen__2__5__Coder__32b__2_5__Instruct                                       ModelID = "qwen/qwen-2.5-coder-32b-instruct"
	Model__Kilo__Qwen__Plus                                                                  ModelID = "qwen/qwen-plus"
	Model__Kilo__Qwen__Plus__20250728                                                        ModelID = "qwen/qwen-plus-2025-07-28"
	Model__Kilo__Qwen__Plus__2025__07__28__Thinking                                          ModelID = "qwen/qwen-plus-2025-07-28:thinking"
	Model__Kilo__Reka__Edge                                                                  ModelID = "rekaai/reka-edge"
	Model__Kilo__Reka__Flash__3                                                              ModelID = "rekaai/reka-flash-3"
	Model__Kilo__Relace__Apply__3                                                            ModelID = "relace/relace-apply-3"
	Model__Kilo__Relace__Search                                                              ModelID = "relace/relace-search"
	Model__Kilo__Remm__Slerp__L2__13b                                                        ModelID = "undi95/remm-slerp-l2-13b"
	Model__Kilo__Ring__2__6__1t__2_6                                                         ModelID = "inclusionai/ring-2.6-1t"
	Model__Kilo__Rnj__1__Instruct                                                            ModelID = "essentialai/rnj-1-instruct"
	Model__Kilo__Rocinante__12b                                                              ModelID = "thedrummer/rocinante-12b"
	Model__Kilo__Router                                                                      ModelID = "switchpoint/router"
	Model__Kilo__Seed__1_6                                                                   ModelID = "bytedance-seed/seed-1.6"
	Model__Kilo__Seed__1__6__Flash__1_6                                                      ModelID = "bytedance-seed/seed-1.6-flash"
	Model__Kilo__Seed__2__0__Lite__2_0                                                       ModelID = "bytedance-seed/seed-2.0-lite"
	Model__Kilo__Seed__2__0__Mini__2_0                                                       ModelID = "bytedance-seed/seed-2.0-mini"
	Model__Kilo__Skyfall__36b__V2                                                            ModelID = "thedrummer/skyfall-36b-v2"
	Model__Kilo__Small                                                                       ModelID = "kilo-auto/small"
	Model__Kilo__Solar__Pro__3                                                               ModelID = "upstage/solar-pro-3"
	Model__Kilo__Sonar                                                                       ModelID = "perplexity/sonar"
	Model__Kilo__Sonar__Deep__Research                                                       ModelID = "perplexity/sonar-deep-research"
	Model__Kilo__Sonar__Pro                                                                  ModelID = "perplexity/sonar-pro"
	Model__Kilo__Sonar__Pro__Search                                                          ModelID = "perplexity/sonar-pro-search"
	Model__Kilo__Sonar__Reasoning__Pro                                                       ModelID = "perplexity/sonar-reasoning-pro"
	Model__Kilo__Spotlight                                                                   ModelID = "arcee-ai/spotlight"
	Model__Kilo__Step__3__5__Flash__3_5                                                      ModelID = "stepfun/step-3.5-flash"
	Model__Kilo__Trinity__Large__Thinking                                                    ModelID = "arcee-ai/trinity-large-thinking"
	Model__Kilo__Trinity__Mini                                                               ModelID = "arcee-ai/trinity-mini"
	Model__Kilo__Ui__Tars__1__5__7b                                                          ModelID = "bytedance/ui-tars-1.5-7b"
	Model__Kilo__Unslopnemo__12b                                                             ModelID = "thedrummer/unslopnemo-12b"
	Model__Kilo__Virtuoso__Large                                                             ModelID = "arcee-ai/virtuoso-large"
	Model__Kilo__Voxtral__Small__24b__2507                                                   ModelID = "mistralai/voxtral-small-24b-2507"
	Model__Kilo__Weaver                                                                      ModelID = "mancer/weaver"
	Model__Kilo__WizardLM__2__8x22b__2                                                       ModelID = "microsoft/wizardlm-2-8x22b"
	Model__KimiForCoding__K2p5__2_5__Thinking                                                ModelID = "k2p5"
	Model__KimiForCoding__K2p6__2_6__Thinking                                                ModelID = "k2p6"
	Model__KimiForCoding__K2p7                                                               ModelID = "k2p7"
	Model__KimiForCoding__Kimi__K2__2__Thinking                                              ModelID = "kimi-k2-thinking"
	Model__LLMTR__Gemma__4                                                                   ModelID = "gemma-4"
	Model__LLMTR__Magibu__11b__V8                                                            ModelID = "magibu-11b-v8"
	Model__LLMTR__Medgemma__4b                                                               ModelID = "medgemma-4b"
	Model__LLMTR__Qwen3__6__35b__3                                                           ModelID = "qwen3-6-35b"
	Model__LLMTR__Sincap                                                                     ModelID = "sincap"
	Model__LLMTR__Trendyol__7b                                                               ModelID = "trendyol-7b"
	Model__LMStudio__GPT__Oss__20b                                                           ModelID = "openai/gpt-oss-20b"
	Model__LMStudio__Qwen3__30b__A3b__2507__3                                                ModelID = "qwen/qwen3-30b-a3b-2507"
	Model__LMStudio__Qwen3__Coder__30b__3                                                    ModelID = "qwen/qwen3-coder-30b"
	Model__Lilac__GLM__5_2                                                                   ModelID = "zai-org/glm-5.2"
	Model__Lilac__Gemma__4__31b__It__4                                                       ModelID = "google/gemma-4-31b-it"
	Model__Lilac__Kimi__K2__6__2_6                                                           ModelID = "moonshotai/kimi-k2.6"
	Model__Lilac__MiniMax__M3__3                                                             ModelID = "minimaxai/minimax-m3"
	Model__Llama__Cerebras__Llama__4__Maverick__17b__128e__4__Instruct                       ModelID = "cerebras-llama-4-maverick-17b-128e-instruct"
	Model__Llama__Cerebras__Llama__4__Scout__17b__16e__4__Instruct                           ModelID = "cerebras-llama-4-scout-17b-16e-instruct"
	Model__Llama__Groq__Llama__4__Maverick__17b__128e__4__Instruct                           ModelID = "groq-llama-4-maverick-17b-128e-instruct"
	Model__Llama__Llama__3__3__70b__3_3__Instruct                                            ModelID = "llama-3.3-70b-instruct"
	Model__Llama__Llama__3__3__8b__3_3__Instruct                                             ModelID = "llama-3.3-8b-instruct"
	Model__Llama__Llama__4__Maverick__17b__128e__Instruct__Fp8__4__Instruct                  ModelID = "llama-4-maverick-17b-128e-instruct-fp8"
	Model__Llama__Llama__4__Scout__17b__16e__Instruct__Fp8__4__Instruct                      ModelID = "llama-4-scout-17b-16e-instruct-fp8"
	Model__LlmGateway__Auto                                                                  ModelID = "auto"
	Model__LlmGateway__Claude__3__Opus__3                                                    ModelID = "claude-3-opus"
	Model__LlmGateway__Claude__Fable__5                                                      ModelID = "claude-fable-5"
	Model__LlmGateway__Claude__Haiku__4_5                                                    ModelID = "claude-haiku-4-5"
	Model__LlmGateway__Claude__Haiku__4_5__20251001                                          ModelID = "claude-haiku-4-5-20251001"
	Model__LlmGateway__Claude__Haiku__4__5__Free                                             ModelID = "claude-haiku-4-5-free"
	Model__LlmGateway__Claude__Opus__4_1__20250805                                           ModelID = "claude-opus-4-1-20250805"
	Model__LlmGateway__Claude__Opus__4_5__20251101                                           ModelID = "claude-opus-4-5-20251101"
	Model__LlmGateway__Claude__Opus__4_6                                                     ModelID = "claude-opus-4-6"
	Model__LlmGateway__Claude__Opus__4_7                                                     ModelID = "claude-opus-4-7"
	Model__LlmGateway__Claude__Opus__4_8                                                     ModelID = "claude-opus-4-8"
	Model__LlmGateway__Claude__Sonnet__4_5                                                   ModelID = "claude-sonnet-4-5"
	Model__LlmGateway__Claude__Sonnet__4_5__20250929                                         ModelID = "claude-sonnet-4-5-20250929"
	Model__LlmGateway__Claude__Sonnet__4_6                                                   ModelID = "claude-sonnet-4-6"
	Model__LlmGateway__Claude__Sonnet__5                                                     ModelID = "claude-sonnet-5"
	Model__LlmGateway__Codestral__2508                                                       ModelID = "codestral-2508"
	Model__LlmGateway__Custom                                                                ModelID = "custom"
	Model__LlmGateway__DeepSeek__V3__1                                                       ModelID = "deepseek-v3.1"
	Model__LlmGateway__DeepSeek__V3__2                                                       ModelID = "deepseek-v3.2"
	Model__LlmGateway__DeepSeek__V4__Flash                                                   ModelID = "deepseek-v4-flash"
	Model__LlmGateway__DeepSeek__V4__Pro__Thinking                                           ModelID = "deepseek-v4-pro"
	Model__LlmGateway__Devstral__2512                                                        ModelID = "devstral-2512"
	Model__LlmGateway__Devstral__Small__2507                                                 ModelID = "devstral-small-2507"
	Model__LlmGateway__Fugu__Ultra                                                           ModelID = "fugu-ultra"
	Model__LlmGateway__GLM__4_5                                                              ModelID = "glm-4.5"
	Model__LlmGateway__GLM__4_6                                                              ModelID = "glm-4.6"
	Model__LlmGateway__GLM__4_7                                                              ModelID = "glm-4.7"
	Model__LlmGateway__GLM__4__32b__0414__128k__4                                            ModelID = "glm-4-32b-0414-128k"
	Model__LlmGateway__GLM__4__5__Air__4_5                                                   ModelID = "glm-4.5-air"
	Model__LlmGateway__GLM__4__5__Airx__4_5                                                  ModelID = "glm-4.5-airx"
	Model__LlmGateway__GLM__4__5__X__4_5                                                     ModelID = "glm-4.5-x"
	Model__LlmGateway__GLM__4__5v__4_5                                                       ModelID = "glm-4.5v"
	Model__LlmGateway__GLM__4__6v__4_6                                                       ModelID = "glm-4.6v"
	Model__LlmGateway__GLM__4__6v__Flashx__4_6                                               ModelID = "glm-4.6v-flashx"
	Model__LlmGateway__GLM__4__7__Flash__4_7                                                 ModelID = "glm-4.7-flash"
	Model__LlmGateway__GLM__4__7__Flashx__4_7                                                ModelID = "glm-4.7-flashx"
	Model__LlmGateway__GLM__5                                                                ModelID = "glm-5"
	Model__LlmGateway__GLM__5_1                                                              ModelID = "glm-5.1"
	Model__LlmGateway__GLM__5_2                                                              ModelID = "glm-5.2"
	Model__LlmGateway__GPT__3_5__Turbo                                                       ModelID = "gpt-3.5-turbo"
	Model__LlmGateway__GPT__4                                                                ModelID = "gpt-4"
	Model__LlmGateway__GPT__4_1                                                              ModelID = "gpt-4.1"
	Model__LlmGateway__GPT__4__1__Mini__4_1                                                  ModelID = "gpt-4.1-mini"
	Model__LlmGateway__GPT__4__1__Nano__4_1                                                  ModelID = "gpt-4.1-nano"
	Model__LlmGateway__GPT__4__Turbo                                                         ModelID = "gpt-4-turbo"
	Model__LlmGateway__GPT__4o                                                               ModelID = "gpt-4o"
	Model__LlmGateway__GPT__4o__Mini                                                         ModelID = "gpt-4o-mini"
	Model__LlmGateway__GPT__4o__Mini__Search__PreviewMini                                    ModelID = "gpt-4o-mini-search-preview"
	Model__LlmGateway__GPT__4o__Search__Preview                                              ModelID = "gpt-4o-search-preview"
	Model__LlmGateway__GPT__5                                                                ModelID = "gpt-5"
	Model__LlmGateway__GPT__5_1                                                              ModelID = "gpt-5.1"
	Model__LlmGateway__GPT__5_2                                                              ModelID = "gpt-5.2"
	Model__LlmGateway__GPT__5_2__ChatLatest                                                  ModelID = "gpt-5.2-chat-latest"
	Model__LlmGateway__GPT__5_3__ChatLatest                                                  ModelID = "gpt-5.3-chat-latest"
	Model__LlmGateway__GPT__5_4                                                              ModelID = "gpt-5.4"
	Model__LlmGateway__GPT__5_5                                                              ModelID = "gpt-5.5"
	Model__LlmGateway__GPT__5__1__Codex__5_1                                                 ModelID = "gpt-5.1-codex"
	Model__LlmGateway__GPT__5__1__Codex__Mini__5_1                                           ModelID = "gpt-5.1-codex-mini"
	Model__LlmGateway__GPT__5__2__Codex__5_2                                                 ModelID = "gpt-5.2-codex"
	Model__LlmGateway__GPT__5__2__Pro__5_2                                                   ModelID = "gpt-5.2-pro"
	Model__LlmGateway__GPT__5__3__Codex__5_3                                                 ModelID = "gpt-5.3-codex"
	Model__LlmGateway__GPT__5__4__Mini__5_4                                                  ModelID = "gpt-5.4-mini"
	Model__LlmGateway__GPT__5__4__Nano__5_4                                                  ModelID = "gpt-5.4-nano"
	Model__LlmGateway__GPT__5__4__Pro__5_4                                                   ModelID = "gpt-5.4-pro"
	Model__LlmGateway__GPT__5__5__Pro__5_5                                                   ModelID = "gpt-5.5-pro"
	Model__LlmGateway__GPT__5__6__Luna__5_6                                                  ModelID = "gpt-5.6-luna"
	Model__LlmGateway__GPT__5__6__Sol__5_6                                                   ModelID = "gpt-5.6-sol"
	Model__LlmGateway__GPT__5__6__Terra__5_6                                                 ModelID = "gpt-5.6-terra"
	Model__LlmGateway__GPT__5__ChatLatest                                                    ModelID = "gpt-5-chat-latest"
	Model__LlmGateway__GPT__5__Mini__5                                                       ModelID = "gpt-5-mini"
	Model__LlmGateway__GPT__5__Nano__5                                                       ModelID = "gpt-5-nano"
	Model__LlmGateway__GPT__5__Pro__5                                                        ModelID = "gpt-5-pro"
	Model__LlmGateway__GPT__Oss__120b                                                        ModelID = "gpt-oss-120b"
	Model__LlmGateway__GPT__Oss__20b                                                         ModelID = "gpt-oss-20b"
	Model__LlmGateway__Gemini__2__5__Flash__2_5                                              ModelID = "gemini-2.5-flash"
	Model__LlmGateway__Gemini__2__5__Flash__Lite__2_5                                        ModelID = "gemini-2.5-flash-lite"
	Model__LlmGateway__Gemini__2__5__Pro__2_5                                                ModelID = "gemini-2.5-pro"
	Model__LlmGateway__Gemini__3__1__Flash__Lite__3_1                                        ModelID = "gemini-3.1-flash-lite"
	Model__LlmGateway__Gemini__3__1__Pro__3_1__Preview                                       ModelID = "gemini-3.1-pro-preview"
	Model__LlmGateway__Gemini__3__5__Flash__3_5                                              ModelID = "gemini-3.5-flash"
	Model__LlmGateway__Gemini__3__Flash__3__Preview                                          ModelID = "gemini-3-flash-preview"
	Model__LlmGateway__Gemini__Pro__Latest                                                   ModelID = "gemini-pro-latest"
	Model__LlmGateway__Gemma__4__26b__A4b__It__4                                             ModelID = "gemma-4-26b-a4b-it"
	Model__LlmGateway__Gemma__4__31b__It__4                                                  ModelID = "gemma-4-31b-it"
	Model__LlmGateway__Grok__4                                                               ModelID = "grok-4"
	Model__LlmGateway__Grok__4_1__ReasoningFast                                              ModelID = "grok-4-1-fast-reasoning"
	Model__LlmGateway__Grok__4_20__Reasoning                                                 ModelID = "grok-4-20-reasoning"
	Model__LlmGateway__Grok__4_3                                                             ModelID = "grok-4-3"
	Model__LlmGateway__Grok__4_5                                                             ModelID = "grok-4-5"
	Model__LlmGateway__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                  ModelID = "grok-4-1-fast-non-reasoning"
	Model__LlmGateway__Grok__4__20__Beta__0309__4_20__Reasoning                              ModelID = "grok-4-20-beta-0309-reasoning"
	Model__LlmGateway__Grok__4__20__Beta__0309__Non__Reasoning__4_20__Non_Reasoning          ModelID = "grok-4-20-beta-0309-non-reasoning"
	Model__LlmGateway__Grok__4__20__Non__Reasoning__4_20__Non_Reasoning                      ModelID = "grok-4-20-non-reasoning"
	Model__LlmGateway__Grok__Build__0_1                                                      ModelID = "grok-build-0-1"
	Model__LlmGateway__Kimi__K2__2                                                           ModelID = "kimi-k2"
	Model__LlmGateway__Kimi__K2__2__Thinking                                                 ModelID = "kimi-k2-thinking"
	Model__LlmGateway__Kimi__K2__5__2_5                                                      ModelID = "kimi-k2.5"
	Model__LlmGateway__Kimi__K2__6__2_6                                                      ModelID = "kimi-k2.6"
	Model__LlmGateway__Kimi__K2__7__2_7__Code                                                ModelID = "kimi-k2.7-code"
	Model__LlmGateway__Kimi__K2__7__Code__Highspeed__2_7                                     ModelID = "kimi-k2.7-code-highspeed"
	Model__LlmGateway__Llama__3__1__70b__3_1__Instruct                                       ModelID = "llama-3.1-70b-instruct"
	Model__LlmGateway__Llama__3__1__Nemotron__Ultra__253b                                    ModelID = "llama-3.1-nemotron-ultra-253b"
	Model__LlmGateway__Llama__3__2__11b__3_2__Instruct                                       ModelID = "llama-3.2-11b-instruct"
	Model__LlmGateway__Llama__3__2__3b__3_2__Instruct                                        ModelID = "llama-3.2-3b-instruct"
	Model__LlmGateway__Llama__3__3__70b__3_3__Instruct                                       ModelID = "llama-3.3-70b-instruct"
	Model__LlmGateway__Llama__3__70b__3__Instruct                                            ModelID = "llama-3-70b-instruct"
	Model__LlmGateway__Llama__3__8b__3__Instruct                                             ModelID = "llama-3-8b-instruct"
	Model__LlmGateway__Llama__4__Maverick__17b__4__Instruct                                  ModelID = "llama-4-maverick-17b-instruct"
	Model__LlmGateway__Llama__4__Scout__17b__4__Instruct                                     ModelID = "llama-4-scout-17b-instruct"
	Model__LlmGateway__Mimo__V2__5__2_5                                                      ModelID = "mimo-v2.5"
	Model__LlmGateway__Mimo__V2__5__2_5__Pro                                                 ModelID = "mimo-v2.5-pro"
	Model__LlmGateway__MiniMax__M2__1__2_1                                                   ModelID = "minimax-m2.1"
	Model__LlmGateway__MiniMax__M2__1__2_1__Lightning                                        ModelID = "minimax-m2.1-lightning"
	Model__LlmGateway__MiniMax__M2__2                                                        ModelID = "minimax-m2"
	Model__LlmGateway__MiniMax__M2__5__2_5                                                   ModelID = "minimax-m2.5"
	Model__LlmGateway__MiniMax__M2__5__2_5__Highspeed                                        ModelID = "minimax-m2.5-highspeed"
	Model__LlmGateway__MiniMax__M2__7__2_7                                                   ModelID = "minimax-m2.7"
	Model__LlmGateway__MiniMax__M2__7__2_7__Highspeed                                        ModelID = "minimax-m2.7-highspeed"
	Model__LlmGateway__MiniMax__M3__3                                                        ModelID = "minimax-m3"
	Model__LlmGateway__MiniMax__Text__01                                                     ModelID = "minimax-text-01"
	Model__LlmGateway__Ministral__14b__2512                                                  ModelID = "ministral-14b-2512"
	Model__LlmGateway__Ministral__3b__2512                                                   ModelID = "ministral-3b-2512"
	Model__LlmGateway__Ministral__8b__2512                                                   ModelID = "ministral-8b-2512"
	Model__LlmGateway__Mistral__Large__2512                                                  ModelID = "mistral-large-2512"
	Model__LlmGateway__Mistral__Large__Latest                                                ModelID = "mistral-large-latest"
	Model__LlmGateway__Mistral__Small__2506                                                  ModelID = "mistral-small-2506"
	Model__LlmGateway__Muse__Spark__1_1                                                      ModelID = "muse-spark-1.1"
	Model__LlmGateway__Nemotron__3__Ultra__550b__3                                           ModelID = "nemotron-3-ultra-550b"
	Model__LlmGateway__O1__1                                                                 ModelID = "o1"
	Model__LlmGateway__O3__3                                                                 ModelID = "o3"
	Model__LlmGateway__O3__3__Mini                                                           ModelID = "o3-mini"
	Model__LlmGateway__O4__4__Mini                                                           ModelID = "o4-mini"
	Model__LlmGateway__Pixtral__Large__Latest                                                ModelID = "pixtral-large-latest"
	Model__LlmGateway__Qwen2__5__Vl__32b__2__Instruct                                        ModelID = "qwen2-5-vl-32b-instruct"
	Model__LlmGateway__Qwen2__5__Vl__72b__2__Instruct                                        ModelID = "qwen2-5-vl-72b-instruct"
	Model__LlmGateway__Qwen35__397b__A17b__35                                                ModelID = "qwen35-397b-a17b"
	Model__LlmGateway__Qwen3__235b__A22b__Fp8__3                                             ModelID = "qwen3-235b-a22b-fp8"
	Model__LlmGateway__Qwen3__235b__A22b__Instruct__2507__3__Instruct                        ModelID = "qwen3-235b-a22b-instruct-2507"
	Model__LlmGateway__Qwen3__235b__A22b__Thinking__2507__3__Thinking                        ModelID = "qwen3-235b-a22b-thinking-2507"
	Model__LlmGateway__Qwen3__30b__A3b__Instruct__2507__3__Instruct                          ModelID = "qwen3-30b-a3b-instruct-2507"
	Model__LlmGateway__Qwen3__32b__3                                                         ModelID = "qwen3-32b"
	Model__LlmGateway__Qwen3__4b__Fp8__3                                                     ModelID = "qwen3-4b-fp8"
	Model__LlmGateway__Qwen3__5__9b__3_5                                                     ModelID = "qwen3.5-9b"
	Model__LlmGateway__Qwen3__6__35b__A3b__3_6                                               ModelID = "qwen3.6-35b-a3b"
	Model__LlmGateway__Qwen3__6__Flash__3_6                                                  ModelID = "qwen3.6-flash"
	Model__LlmGateway__Qwen3__6__Max__3_6__Preview                                           ModelID = "qwen3.6-max-preview"
	Model__LlmGateway__Qwen3__6__Plus__3_6                                                   ModelID = "qwen3.6-plus"
	Model__LlmGateway__Qwen3__7__Max__3_7                                                    ModelID = "qwen3.7-max"
	Model__LlmGateway__Qwen3__7__Plus__3_7                                                   ModelID = "qwen3.7-plus"
	Model__LlmGateway__Qwen3__Coder__30b__A3b__3__Instruct                                   ModelID = "qwen3-coder-30b-a3b-instruct"
	Model__LlmGateway__Qwen3__Coder__480b__A35b__3__Instruct                                 ModelID = "qwen3-coder-480b-a35b-instruct"
	Model__LlmGateway__Qwen3__Coder__Flash__3                                                ModelID = "qwen3-coder-flash"
	Model__LlmGateway__Qwen3__Coder__Next__3                                                 ModelID = "qwen3-coder-next"
	Model__LlmGateway__Qwen3__Coder__Plus__3                                                 ModelID = "qwen3-coder-plus"
	Model__LlmGateway__Qwen3__Max__3                                                         ModelID = "qwen3-max"
	Model__LlmGateway__Qwen3__Next__80b__A3b__3__Instruct                                    ModelID = "qwen3-next-80b-a3b-instruct"
	Model__LlmGateway__Qwen3__Next__80b__A3b__3__Thinking                                    ModelID = "qwen3-next-80b-a3b-thinking"
	Model__LlmGateway__Qwen3__Vl__235b__A22b__3__Instruct                                    ModelID = "qwen3-vl-235b-a22b-instruct"
	Model__LlmGateway__Qwen3__Vl__235b__A22b__3__Thinking                                    ModelID = "qwen3-vl-235b-a22b-thinking"
	Model__LlmGateway__Qwen3__Vl__30b__A3b__3__Instruct                                      ModelID = "qwen3-vl-30b-a3b-instruct"
	Model__LlmGateway__Qwen3__Vl__30b__A3b__3__Thinking                                      ModelID = "qwen3-vl-30b-a3b-thinking"
	Model__LlmGateway__Qwen3__Vl__8b__3__Instruct                                            ModelID = "qwen3-vl-8b-instruct"
	Model__LlmGateway__Qwen3__Vl__Flash__3                                                   ModelID = "qwen3-vl-flash"
	Model__LlmGateway__Qwen3__Vl__Plus__3                                                    ModelID = "qwen3-vl-plus"
	Model__LlmGateway__Qwen__Coder__Plus                                                     ModelID = "qwen-coder-plus"
	Model__LlmGateway__Qwen__Flash                                                           ModelID = "qwen-flash"
	Model__LlmGateway__Qwen__Max                                                             ModelID = "qwen-max"
	Model__LlmGateway__Qwen__Max__Latest                                                     ModelID = "qwen-max-latest"
	Model__LlmGateway__Qwen__Omni__Turbo__Omni                                               ModelID = "qwen-omni-turbo"
	Model__LlmGateway__Qwen__Plus                                                            ModelID = "qwen-plus"
	Model__LlmGateway__Qwen__Plus__Latest                                                    ModelID = "qwen-plus-latest"
	Model__LlmGateway__Qwen__Turbo                                                           ModelID = "qwen-turbo"
	Model__LlmGateway__Qwen__Vl__Max                                                         ModelID = "qwen-vl-max"
	Model__LlmGateway__Qwen__Vl__Plus                                                        ModelID = "qwen-vl-plus"
	Model__LlmGateway__Qwq__Plus                                                             ModelID = "qwq-plus"
	Model__LlmGateway__Seed__1__6__250615__1_6                                               ModelID = "seed-1-6-250615"
	Model__LlmGateway__Seed__1__6__250915__1_6                                               ModelID = "seed-1-6-250915"
	Model__LlmGateway__Seed__1__6__Flash__250715__1_6                                        ModelID = "seed-1-6-flash-250715"
	Model__LlmGateway__Seed__1__8__251228__1_8                                               ModelID = "seed-1-8-251228"
	Model__LlmGateway__Sonar                                                                 ModelID = "sonar"
	Model__LlmGateway__Sonar__Pro                                                            ModelID = "sonar-pro"
	Model__LlmGateway__Sonar__Reasoning__Pro                                                 ModelID = "sonar-reasoning-pro"
	Model__LongCat__Longcat__2_0                                                             ModelID = "LongCat-2.0"
	Model__LucidQuery__Lucidnova__Rf1__100b                                                  ModelID = "lucidnova-rf1-100b"
	Model__LucidQuery__Lucidquery__Agi__01__Frontier                                         ModelID = "lucidquery-agi-01-frontier"
	Model__LucidQuery__Lucidquery__Agi__01__Swift                                            ModelID = "lucidquery-agi-01-swift"
	Model__LucidQuery__Lucidquery__Nexus__Coder                                              ModelID = "lucidquery-nexus-coder"
	Model__Meganova__DeepSeek__R1__0528__Thinking                                            ModelID = "deepseek-ai/DeepSeek-R1-0528"
	Model__Meganova__DeepSeek__V3__0324                                                      ModelID = "deepseek-ai/DeepSeek-V3-0324"
	Model__Meganova__DeepSeek__V3__1                                                         ModelID = "deepseek-ai/DeepSeek-V3.1"
	Model__Meganova__DeepSeek__V3__2                                                         ModelID = "deepseek-ai/DeepSeek-V3.2"
	Model__Meganova__DeepSeek__V3__2__Exp                                                    ModelID = "deepseek-ai/DeepSeek-V3.2-Exp"
	Model__Meganova__GLM__4_6                                                                ModelID = "zai-org/GLM-4.6"
	Model__Meganova__GLM__4_7                                                                ModelID = "zai-org/GLM-4.7"
	Model__Meganova__GLM__5                                                                  ModelID = "zai-org/GLM-5"
	Model__Meganova__Kimi__K2__2__Thinking                                                   ModelID = "moonshotai/Kimi-K2-Thinking"
	Model__Meganova__Kimi__K2__5__2_5                                                        ModelID = "moonshotai/Kimi-K2.5"
	Model__Meganova__Llama__3__3__70B__3_3__Instruct                                         ModelID = "meta-llama/Llama-3.3-70B-Instruct"
	Model__Meganova__Mimo__V2__Flash                                                         ModelID = "XiaomiMiMo/MiMo-V2-Flash"
	Model__Meganova__MiniMax__M2__1__2_1                                                     ModelID = "MiniMaxAI/MiniMax-M2.1"
	Model__Meganova__MiniMax__M2__5__2_5                                                     ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__Meganova__Mistral__Nemo__Instruct__2407__Instruct                                 ModelID = "mistralai/Mistral-Nemo-Instruct-2407"
	Model__Meganova__Mistral__Small__3__2__24B__Instruct__2506__3_2__Instruct                ModelID = "mistralai/Mistral-Small-3.2-24B-Instruct-2506"
	Model__Meganova__Qwen2__5__Vl__32B__2_5__Instruct                                        ModelID = "Qwen/Qwen2.5-VL-32B-Instruct"
	Model__Meganova__Qwen3__235B__A22b__Instruct__2507__3__Instruct                          ModelID = "Qwen/Qwen3-235B-A22B-Instruct-2507"
	Model__Meganova__Qwen3__5__Plus__3_5                                                     ModelID = "Qwen/Qwen3.5-Plus"
	Model__MergeGateway__Claude__Haiku__4_5__20251001                                        ModelID = "anthropic/claude-haiku-4-5-20251001"
	Model__MergeGateway__Claude__Opus__4_1__20250805                                         ModelID = "anthropic/claude-opus-4-1-20250805"
	Model__MergeGateway__Claude__Opus__4_5__20251101                                         ModelID = "anthropic/claude-opus-4-5-20251101"
	Model__MergeGateway__Claude__Opus__4_6                                                   ModelID = "anthropic/claude-opus-4-6"
	Model__MergeGateway__Claude__Opus__4_7                                                   ModelID = "anthropic/claude-opus-4-7"
	Model__MergeGateway__Claude__Opus__4_8                                                   ModelID = "anthropic/claude-opus-4-8"
	Model__MergeGateway__Claude__Opus__4__20250514                                           ModelID = "anthropic/claude-opus-4-20250514"
	Model__MergeGateway__Claude__Sonnet__4_5__20250929                                       ModelID = "anthropic/claude-sonnet-4-5-20250929"
	Model__MergeGateway__Claude__Sonnet__4_6                                                 ModelID = "anthropic/claude-sonnet-4-6"
	Model__MergeGateway__Claude__Sonnet__4__20250514                                         ModelID = "anthropic/claude-sonnet-4-20250514"
	Model__MergeGateway__Codestral__Latest                                                   ModelID = "mistral/codestral-latest"
	Model__MergeGateway__Command__A__20250313                                                ModelID = "cohere/command-a-03-2025"
	Model__MergeGateway__Command__R7b__12__20241202                                          ModelID = "cohere/command-r7b-12-2024"
	Model__MergeGateway__Command__R__20240830                                                ModelID = "cohere/command-r-08-2024"
	Model__MergeGateway__Command__R__Plus__20240830                                          ModelID = "cohere/command-r-plus-08-2024"
	Model__MergeGateway__DeepSeek__V4__Flash                                                 ModelID = "deepseek/deepseek-v4-flash"
	Model__MergeGateway__DeepSeek__V4__Pro__Thinking                                         ModelID = "deepseek/deepseek-v4-pro"
	Model__MergeGateway__Devstral__2512                                                      ModelID = "mistral/devstral-2512"
	Model__MergeGateway__Devstral__Medium__2507                                              ModelID = "mistral/devstral-medium-2507"
	Model__MergeGateway__Devstral__Medium__Latest                                            ModelID = "mistral/devstral-medium-latest"
	Model__MergeGateway__Devstral__Small__2507                                               ModelID = "mistral/devstral-small-2507"
	Model__MergeGateway__GLM__4_5                                                            ModelID = "zai/glm-4.5"
	Model__MergeGateway__GLM__4_6                                                            ModelID = "zai/glm-4.6"
	Model__MergeGateway__GLM__4_7                                                            ModelID = "zai/glm-4.7"
	Model__MergeGateway__GLM__4__5__Air__4_5                                                 ModelID = "zai/glm-4.5-air"
	Model__MergeGateway__GLM__4__7__Flashx__4_7                                              ModelID = "zai/glm-4.7-flashx"
	Model__MergeGateway__GLM__5                                                              ModelID = "zai/glm-5"
	Model__MergeGateway__GLM__5_1                                                            ModelID = "zai/glm-5.1"
	Model__MergeGateway__GLM__5_2                                                            ModelID = "zai/glm-5.2"
	Model__MergeGateway__GLM__5__Turbo                                                       ModelID = "zai/glm-5-turbo"
	Model__MergeGateway__GPT__4_1                                                            ModelID = "openai/gpt-4.1"
	Model__MergeGateway__GPT__4__1__Mini__4_1                                                ModelID = "openai/gpt-4.1-mini"
	Model__MergeGateway__GPT__4__1__Nano__4_1                                                ModelID = "openai/gpt-4.1-nano"
	Model__MergeGateway__GPT__4o                                                             ModelID = "openai/gpt-4o"
	Model__MergeGateway__GPT__4o__20240513                                                   ModelID = "openai/gpt-4o-2024-05-13"
	Model__MergeGateway__GPT__4o__20240806                                                   ModelID = "openai/gpt-4o-2024-08-06"
	Model__MergeGateway__GPT__4o__20241120                                                   ModelID = "openai/gpt-4o-2024-11-20"
	Model__MergeGateway__GPT__4o__Mini                                                       ModelID = "openai/gpt-4o-mini"
	Model__MergeGateway__GPT__5                                                              ModelID = "openai/gpt-5"
	Model__MergeGateway__GPT__5_1                                                            ModelID = "openai/gpt-5.1"
	Model__MergeGateway__GPT__5_1__ChatLatest                                                ModelID = "openai/gpt-5.1-chat-latest"
	Model__MergeGateway__GPT__5_2                                                            ModelID = "openai/gpt-5.2"
	Model__MergeGateway__GPT__5_2__ChatLatest                                                ModelID = "openai/gpt-5.2-chat-latest"
	Model__MergeGateway__GPT__5_3__ChatLatest                                                ModelID = "openai/gpt-5.3-chat-latest"
	Model__MergeGateway__GPT__5_4                                                            ModelID = "openai/gpt-5.4"
	Model__MergeGateway__GPT__5_5                                                            ModelID = "openai/gpt-5.5"
	Model__MergeGateway__GPT__5__4__Mini__5_4                                                ModelID = "openai/gpt-5.4-mini"
	Model__MergeGateway__GPT__5__4__Nano__5_4                                                ModelID = "openai/gpt-5.4-nano"
	Model__MergeGateway__GPT__5__ChatLatest                                                  ModelID = "openai/gpt-5-chat-latest"
	Model__MergeGateway__GPT__5__Mini__5                                                     ModelID = "openai/gpt-5-mini"
	Model__MergeGateway__GPT__5__Nano__5                                                     ModelID = "openai/gpt-5-nano"
	Model__MergeGateway__Gemini__2__5__Flash__2_5                                            ModelID = "google/gemini-2.5-flash"
	Model__MergeGateway__Gemini__2__5__Flash__Lite__2_5                                      ModelID = "google/gemini-2.5-flash-lite"
	Model__MergeGateway__Gemini__2__5__Pro__2_5                                              ModelID = "google/gemini-2.5-pro"
	Model__MergeGateway__Gemini__3__1__Flash__Lite__3_1                                      ModelID = "google/gemini-3.1-flash-lite"
	Model__MergeGateway__Gemini__3__1__Flash__Lite__3_1__Preview                             ModelID = "google/gemini-3.1-flash-lite-preview"
	Model__MergeGateway__Gemini__3__1__Pro__3_1__Preview                                     ModelID = "google/gemini-3.1-pro-preview"
	Model__MergeGateway__Gemini__3__1__Pro__Preview__Customtools__3_1                        ModelID = "google/gemini-3.1-pro-preview-customtools"
	Model__MergeGateway__Gemini__3__5__Flash__3_5                                            ModelID = "google/gemini-3.5-flash"
	Model__MergeGateway__Gemini__3__Flash__3__Preview                                        ModelID = "google/gemini-3-flash-preview"
	Model__MergeGateway__Gemini__3__Pro__3__Preview                                          ModelID = "google/gemini-3-pro-preview"
	Model__MergeGateway__Gemini__Flash__Latest                                               ModelID = "google/gemini-flash-latest"
	Model__MergeGateway__Gemini__Flash__Lite__Latest                                         ModelID = "google/gemini-flash-lite-latest"
	Model__MergeGateway__Gemma__4__26b__A4b__It__4                                           ModelID = "google/gemma-4-26b-a4b-it"
	Model__MergeGateway__Gemma__4__31b__It__4                                                ModelID = "google/gemma-4-31b-it"
	Model__MergeGateway__Grok__4_3                                                           ModelID = "xai/grok-4.3"
	Model__MergeGateway__Grok__4__20__0309__4_20__Reasoning                                  ModelID = "xai/grok-4.20-0309-reasoning"
	Model__MergeGateway__Kimi__K2__2__Thinking                                               ModelID = "moonshotai/kimi-k2-thinking"
	Model__MergeGateway__Kimi__K2__5__2_5                                                    ModelID = "moonshotai/kimi-k2.5"
	Model__MergeGateway__Kimi__K2__6__2_6                                                    ModelID = "moonshotai/kimi-k2.6"
	Model__MergeGateway__Kimi__K2__7__2_7__Code                                              ModelID = "moonshotai/kimi-k2.7-code"
	Model__MergeGateway__Kimi__K2__7__Code__Highspeed__2_7                                   ModelID = "moonshotai/kimi-k2.7-code-highspeed"
	Model__MergeGateway__Magistral__Medium__Latest                                           ModelID = "mistral/magistral-medium-latest"
	Model__MergeGateway__MiniMax__M2__1__2_1                                                 ModelID = "minimax/minimax-m2.1"
	Model__MergeGateway__MiniMax__M2__2                                                      ModelID = "minimax/minimax-m2"
	Model__MergeGateway__MiniMax__M2__5__2_5                                                 ModelID = "minimax/minimax-m2.5"
	Model__MergeGateway__MiniMax__M2__5__2_5__Highspeed                                      ModelID = "minimax/minimax-m2.5-highspeed"
	Model__MergeGateway__MiniMax__M2__7__2_7                                                 ModelID = "minimax/minimax-m2.7"
	Model__MergeGateway__MiniMax__M2__7__2_7__Highspeed                                      ModelID = "minimax/minimax-m2.7-highspeed"
	Model__MergeGateway__MiniMax__M3__3                                                      ModelID = "minimax/minimax-m3"
	Model__MergeGateway__Mistral__Large__2411                                                ModelID = "mistral/mistral-large-2411"
	Model__MergeGateway__Mistral__Large__2512                                                ModelID = "mistral/mistral-large-2512"
	Model__MergeGateway__Mistral__Large__Latest                                              ModelID = "mistral/mistral-large-latest"
	Model__MergeGateway__Mistral__Medium__2505                                               ModelID = "mistral/mistral-medium-2505"
	Model__MergeGateway__Mistral__Medium__Latest                                             ModelID = "mistral/mistral-medium-latest"
	Model__MergeGateway__Mistral__Small__Latest                                              ModelID = "mistral/mistral-small-latest"
	Model__MergeGateway__O1__1                                                               ModelID = "openai/o1"
	Model__MergeGateway__O3__3                                                               ModelID = "openai/o3"
	Model__MergeGateway__O3__3__Mini                                                         ModelID = "openai/o3-mini"
	Model__MergeGateway__O4__4__Mini                                                         ModelID = "openai/o4-mini"
	Model__MergeGateway__Pixtral__Large__Latest                                              ModelID = "mistral/pixtral-large-latest"
	Model__MergeGateway__Qwen3__6__Plus__3_6                                                 ModelID = "alibaba/qwen3.6-plus"
	Model__MergeGateway__Qwen3__7__Max__3_7                                                  ModelID = "alibaba/qwen3.7-max"
	Model__Meta__Muse__Spark__1_1                                                            ModelID = "muse-spark-1.1"
	Model__MiniMaxCNCodingPlan__MiniMax__M2__1__2_1                                          ModelID = "MiniMax-M2.1"
	Model__MiniMaxCNCodingPlan__MiniMax__M2__2                                               ModelID = "MiniMax-M2"
	Model__MiniMaxCNCodingPlan__MiniMax__M2__5__2_5                                          ModelID = "MiniMax-M2.5"
	Model__MiniMaxCNCodingPlan__MiniMax__M2__5__2_5__Highspeed                               ModelID = "MiniMax-M2.5-highspeed"
	Model__MiniMaxCNCodingPlan__MiniMax__M2__7__2_7                                          ModelID = "MiniMax-M2.7"
	Model__MiniMaxCNCodingPlan__MiniMax__M2__7__2_7__Highspeed                               ModelID = "MiniMax-M2.7-highspeed"
	Model__MiniMaxCNCodingPlan__MiniMax__M3__3                                               ModelID = "MiniMax-M3"
	Model__MiniMaxCN__MiniMax__M2__1__2_1                                                    ModelID = "MiniMax-M2.1"
	Model__MiniMaxCN__MiniMax__M2__2                                                         ModelID = "MiniMax-M2"
	Model__MiniMaxCN__MiniMax__M2__5__2_5                                                    ModelID = "MiniMax-M2.5"
	Model__MiniMaxCN__MiniMax__M2__5__2_5__Highspeed                                         ModelID = "MiniMax-M2.5-highspeed"
	Model__MiniMaxCN__MiniMax__M2__7__2_7                                                    ModelID = "MiniMax-M2.7"
	Model__MiniMaxCN__MiniMax__M2__7__2_7__Highspeed                                         ModelID = "MiniMax-M2.7-highspeed"
	Model__MiniMaxCN__MiniMax__M3__3                                                         ModelID = "MiniMax-M3"
	Model__MiniMaxCodingPlan__MiniMax__M2__1__2_1                                            ModelID = "MiniMax-M2.1"
	Model__MiniMaxCodingPlan__MiniMax__M2__2                                                 ModelID = "MiniMax-M2"
	Model__MiniMaxCodingPlan__MiniMax__M2__5__2_5                                            ModelID = "MiniMax-M2.5"
	Model__MiniMaxCodingPlan__MiniMax__M2__5__2_5__Highspeed                                 ModelID = "MiniMax-M2.5-highspeed"
	Model__MiniMaxCodingPlan__MiniMax__M2__7__2_7                                            ModelID = "MiniMax-M2.7"
	Model__MiniMaxCodingPlan__MiniMax__M2__7__2_7__Highspeed                                 ModelID = "MiniMax-M2.7-highspeed"
	Model__MiniMaxCodingPlan__MiniMax__M3__3                                                 ModelID = "MiniMax-M3"
	Model__MiniMax__MiniMax__M2__1__2_1                                                      ModelID = "MiniMax-M2.1"
	Model__MiniMax__MiniMax__M2__2                                                           ModelID = "MiniMax-M2"
	Model__MiniMax__MiniMax__M2__5__2_5                                                      ModelID = "MiniMax-M2.5"
	Model__MiniMax__MiniMax__M2__5__2_5__Highspeed                                           ModelID = "MiniMax-M2.5-highspeed"
	Model__MiniMax__MiniMax__M2__7__2_7                                                      ModelID = "MiniMax-M2.7"
	Model__MiniMax__MiniMax__M2__7__2_7__Highspeed                                           ModelID = "MiniMax-M2.7-highspeed"
	Model__MiniMax__MiniMax__M3__3                                                           ModelID = "MiniMax-M3"
	Model__Mistral__Codestral__Latest                                                        ModelID = "codestral-latest"
	Model__Mistral__Devstral__2512                                                           ModelID = "devstral-2512"
	Model__Mistral__Devstral__Latest                                                         ModelID = "devstral-latest"
	Model__Mistral__Devstral__Medium__2507                                                   ModelID = "devstral-medium-2507"
	Model__Mistral__Devstral__Medium__Latest                                                 ModelID = "devstral-medium-latest"
	Model__Mistral__Devstral__Small__2505                                                    ModelID = "devstral-small-2505"
	Model__Mistral__Devstral__Small__2507                                                    ModelID = "devstral-small-2507"
	Model__Mistral__Labs__Devstral__Small__2512                                              ModelID = "labs-devstral-small-2512"
	Model__Mistral__Magistral__Medium__Latest                                                ModelID = "magistral-medium-latest"
	Model__Mistral__Magistral__Small                                                         ModelID = "magistral-small"
	Model__Mistral__Ministral__3b__Latest                                                    ModelID = "ministral-3b-latest"
	Model__Mistral__Ministral__8b__Latest                                                    ModelID = "ministral-8b-latest"
	Model__Mistral__Mistral__Embed                                                           ModelID = "mistral-embed"
	Model__Mistral__Mistral__Large__2411                                                     ModelID = "mistral-large-2411"
	Model__Mistral__Mistral__Large__2512                                                     ModelID = "mistral-large-2512"
	Model__Mistral__Mistral__Large__Latest                                                   ModelID = "mistral-large-latest"
	Model__Mistral__Mistral__Medium__2505                                                    ModelID = "mistral-medium-2505"
	Model__Mistral__Mistral__Medium__2508                                                    ModelID = "mistral-medium-2508"
	Model__Mistral__Mistral__Medium__2604                                                    ModelID = "mistral-medium-2604"
	Model__Mistral__Mistral__Medium__Latest                                                  ModelID = "mistral-medium-latest"
	Model__Mistral__Mistral__Nemo                                                            ModelID = "mistral-nemo"
	Model__Mistral__Mistral__Small__2506                                                     ModelID = "mistral-small-2506"
	Model__Mistral__Mistral__Small__2603                                                     ModelID = "mistral-small-2603"
	Model__Mistral__Mistral__Small__Latest                                                   ModelID = "mistral-small-latest"
	Model__Mistral__Open__Mistral__7b                                                        ModelID = "open-mistral-7b"
	Model__Mistral__Open__Mistral__Nemo                                                      ModelID = "open-mistral-nemo"
	Model__Mistral__Open__Mixtral__8x22b                                                     ModelID = "open-mixtral-8x22b"
	Model__Mistral__Open__Mixtral__8x7b                                                      ModelID = "open-mixtral-8x7b"
	Model__Mistral__Pixtral__12b                                                             ModelID = "pixtral-12b"
	Model__Mistral__Pixtral__Large__Latest                                                   ModelID = "pixtral-large-latest"
	Model__Mixlayer__Qwen3__5__122b__A10b__3_5                                               ModelID = "qwen/qwen3.5-122b-a10b"
	Model__Mixlayer__Qwen3__5__27b__3_5                                                      ModelID = "qwen/qwen3.5-27b"
	Model__Mixlayer__Qwen3__5__35b__A3b__3_5                                                 ModelID = "qwen/qwen3.5-35b-a3b"
	Model__Mixlayer__Qwen3__5__397b__A17b__3_5                                               ModelID = "qwen/qwen3.5-397b-a17b"
	Model__Mixlayer__Qwen3__5__9b__3_5                                                       ModelID = "qwen/qwen3.5-9b"
	Model__Moark__GLM__4_7                                                                   ModelID = "GLM-4.7"
	Model__Moark__MiniMax__M2__1__2_1                                                        ModelID = "MiniMax-M2.1"
	Model__ModelOracleAI__Auto                                                               ModelID = "auto"
	Model__ModelOracleAI__Claude__Fable__5                                                   ModelID = "claude-fable-5"
	Model__ModelOracleAI__Claude__Haiku__4_5                                                 ModelID = "claude-haiku-4.5"
	Model__ModelOracleAI__Claude__Opus__4_8                                                  ModelID = "claude-opus-4.8"
	Model__ModelOracleAI__Claude__Sonnet__5                                                  ModelID = "claude-sonnet-5"
	Model__ModelOracleAI__DeepSeek__V4__Pro__Thinking                                        ModelID = "deepseek-v4-pro"
	Model__ModelOracleAI__GLM__5_2                                                           ModelID = "glm-5.2"
	Model__ModelOracleAI__GPT__4_1                                                           ModelID = "gpt-4.1"
	Model__ModelOracleAI__GPT__4__1__Mini__4_1                                               ModelID = "gpt-4.1-mini"
	Model__ModelOracleAI__GPT__5                                                             ModelID = "gpt-5"
	Model__ModelOracleAI__GPT__5_4                                                           ModelID = "gpt-5.4"
	Model__ModelOracleAI__GPT__5_5                                                           ModelID = "gpt-5.5"
	Model__ModelOracleAI__GPT__5__4__Mini__5_4                                               ModelID = "gpt-5.4-mini"
	Model__ModelOracleAI__GPT__5__4__Nano__5_4                                               ModelID = "gpt-5.4-nano"
	Model__ModelOracleAI__O4__4__Mini                                                        ModelID = "o4-mini"
	Model__ModelScope__GLM__4_5                                                              ModelID = "ZhipuAI/GLM-4.5"
	Model__ModelScope__GLM__4_6                                                              ModelID = "ZhipuAI/GLM-4.6"
	Model__ModelScope__Qwen3__235B__A22b__Instruct__2507__3__Instruct                        ModelID = "Qwen/Qwen3-235B-A22B-Instruct-2507"
	Model__ModelScope__Qwen3__235B__A22b__Thinking__2507__3__Thinking                        ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507"
	Model__ModelScope__Qwen3__30B__A3b__Instruct__2507__3__Instruct                          ModelID = "Qwen/Qwen3-30B-A3B-Instruct-2507"
	Model__ModelScope__Qwen3__30B__A3b__Thinking__2507__3__Thinking                          ModelID = "Qwen/Qwen3-30B-A3B-Thinking-2507"
	Model__ModelScope__Qwen3__Coder__30B__A3b__3__Instruct                                   ModelID = "Qwen/Qwen3-Coder-30B-A3B-Instruct"
	Model__MoonshotAICN__Kimi__K2__0711__2__Preview                                          ModelID = "kimi-k2-0711-preview"
	Model__MoonshotAICN__Kimi__K2__0905__2__Preview                                          ModelID = "kimi-k2-0905-preview"
	Model__MoonshotAICN__Kimi__K2__2__Thinking                                               ModelID = "kimi-k2-thinking"
	Model__MoonshotAICN__Kimi__K2__2__ThinkingTurbo                                          ModelID = "kimi-k2-thinking-turbo"
	Model__MoonshotAICN__Kimi__K2__2__TurboPreview                                           ModelID = "kimi-k2-turbo-preview"
	Model__MoonshotAICN__Kimi__K2__5__2_5                                                    ModelID = "kimi-k2.5"
	Model__MoonshotAICN__Kimi__K2__6__2_6                                                    ModelID = "kimi-k2.6"
	Model__MoonshotAICN__Kimi__K2__7__2_7__Code                                              ModelID = "kimi-k2.7-code"
	Model__MoonshotAICN__Kimi__K2__7__Code__Highspeed__2_7                                   ModelID = "kimi-k2.7-code-highspeed"
	Model__MoonshotAI__Kimi__K2__0711__2__Preview                                            ModelID = "kimi-k2-0711-preview"
	Model__MoonshotAI__Kimi__K2__0905__2__Preview                                            ModelID = "kimi-k2-0905-preview"
	Model__MoonshotAI__Kimi__K2__2__Thinking                                                 ModelID = "kimi-k2-thinking"
	Model__MoonshotAI__Kimi__K2__2__ThinkingTurbo                                            ModelID = "kimi-k2-thinking-turbo"
	Model__MoonshotAI__Kimi__K2__2__TurboPreview                                             ModelID = "kimi-k2-turbo-preview"
	Model__MoonshotAI__Kimi__K2__5__2_5                                                      ModelID = "kimi-k2.5"
	Model__MoonshotAI__Kimi__K2__6__2_6                                                      ModelID = "kimi-k2.6"
	Model__MoonshotAI__Kimi__K2__7__2_7__Code                                                ModelID = "kimi-k2.7-code"
	Model__MoonshotAI__Kimi__K2__7__Code__Highspeed__2_7                                     ModelID = "kimi-k2.7-code-highspeed"
	Model__Morph__Auto                                                                       ModelID = "auto"
	Model__Morph__Morph__V3__Fast                                                            ModelID = "morph-v3-fast"
	Model__Morph__Morph__V3__Large                                                           ModelID = "morph-v3-large"
	Model__NanoGPT__Aion__1_0                                                                ModelID = "aion-labs/aion-1.0"
	Model__NanoGPT__Aion__1__0__Mini__1_0                                                    ModelID = "aion-labs/aion-1.0-mini"
	Model__NanoGPT__Aion__2_0                                                                ModelID = "aion-labs/aion-2.0"
	Model__NanoGPT__Aion__2_5                                                                ModelID = "aion-labs/aion-2.5"
	Model__NanoGPT__Aion__Rp__Llama__3__1__8b                                                ModelID = "aion-labs/aion-rp-llama-3.1-8b"
	Model__NanoGPT__Amoral__Gemma3__27B__V2                                                  ModelID = "soob3123/amoral-gemma3-27B-v2"
	Model__NanoGPT__Anubis__70B__V1                                                          ModelID = "TheDrummer/Anubis-70B-v1"
	Model__NanoGPT__Anubis__70B__V1__1                                                       ModelID = "TheDrummer/Anubis-70B-v1.1"
	Model__NanoGPT__Asi1__Mini                                                               ModelID = "asi1-mini"
	Model__NanoGPT__Auto__Model                                                              ModelID = "auto-model"
	Model__NanoGPT__Auto__Model__Basic                                                       ModelID = "auto-model-basic"
	Model__NanoGPT__Auto__Model__Premium                                                     ModelID = "auto-model-premium"
	Model__NanoGPT__Auto__Model__Standard                                                    ModelID = "auto-model-standard"
	Model__NanoGPT__Azure__GPT__4__Turbo                                                     ModelID = "azure-gpt-4-turbo"
	Model__NanoGPT__Azure__GPT__4o                                                           ModelID = "azure-gpt-4o"
	Model__NanoGPT__Azure__GPT__4o__Mini                                                     ModelID = "azure-gpt-4o-mini"
	Model__NanoGPT__Azure__O1__1                                                             ModelID = "azure-o1"
	Model__NanoGPT__Azure__O3__3__Mini                                                       ModelID = "azure-o3-mini"
	Model__NanoGPT__Baichuan4__Air                                                           ModelID = "Baichuan4-Air"
	Model__NanoGPT__Baichuan4__Turbo                                                         ModelID = "Baichuan4-Turbo"
	Model__NanoGPT__Baichuan__M2                                                             ModelID = "Baichuan-M2"
	Model__NanoGPT__Brave                                                                    ModelID = "brave"
	Model__NanoGPT__Brave__Pro                                                               ModelID = "brave-pro"
	Model__NanoGPT__Brave__Research                                                          ModelID = "brave-research"
	Model__NanoGPT__Claude__3__5__Haiku__3_5__20241022                                       ModelID = "claude-3-5-haiku-20241022"
	Model__NanoGPT__Claude__Haiku__4_5__20251001                                             ModelID = "claude-haiku-4-5-20251001"
	Model__NanoGPT__Claude__Haiku__4_5__Thinking__20251001                                   ModelID = "claude-haiku-4-5-20251001-thinking"
	Model__NanoGPT__Claude__Haiku__Latest                                                    ModelID = "anthropic/claude-haiku-latest"
	Model__NanoGPT__Claude__Opus__4_1__20250805                                              ModelID = "claude-opus-4-1-20250805"
	Model__NanoGPT__Claude__Opus__4_1__Thinking                                              ModelID = "claude-opus-4-1-thinking"
	Model__NanoGPT__Claude__Opus__4_5__20251101                                              ModelID = "claude-opus-4-5-20251101"
	Model__NanoGPT__Claude__Opus__4_6                                                        ModelID = "anthropic/claude-opus-4.6"
	Model__NanoGPT__Claude__Opus__4_7                                                        ModelID = "anthropic/claude-opus-4.7"
	Model__NanoGPT__Claude__Opus__4_8                                                        ModelID = "anthropic/claude-opus-4.8"
	Model__NanoGPT__Claude__Opus__4__1__Thinking__1024__4_1__Thinking                        ModelID = "claude-opus-4-1-thinking:1024"
	Model__NanoGPT__Claude__Opus__4__1__Thinking__32000__4_1__Thinking                       ModelID = "claude-opus-4-1-thinking:32000"
	Model__NanoGPT__Claude__Opus__4__1__Thinking__32768__4_1__Thinking                       ModelID = "claude-opus-4-1-thinking:32768"
	Model__NanoGPT__Claude__Opus__4__1__Thinking__8192__4_1__Thinking                        ModelID = "claude-opus-4-1-thinking:8192"
	Model__NanoGPT__Claude__Opus__4__20250514                                                ModelID = "claude-opus-4-20250514"
	Model__NanoGPT__Claude__Opus__4__5__20251101__Thinking__4_5                              ModelID = "claude-opus-4-5-20251101:thinking"
	Model__NanoGPT__Claude__Opus__4__6__Thinking                                             ModelID = "anthropic/claude-opus-4.6:thinking"
	Model__NanoGPT__Claude__Opus__4__6__Thinking__Low                                        ModelID = "anthropic/claude-opus-4.6:thinking:low"
	Model__NanoGPT__Claude__Opus__4__6__Thinking__Max                                        ModelID = "anthropic/claude-opus-4.6:thinking:max"
	Model__NanoGPT__Claude__Opus__4__6__Thinking__Medium                                     ModelID = "anthropic/claude-opus-4.6:thinking:medium"
	Model__NanoGPT__Claude__Opus__4__7__Thinking                                             ModelID = "anthropic/claude-opus-4.7:thinking"
	Model__NanoGPT__Claude__Opus__4__8__Thinking                                             ModelID = "anthropic/claude-opus-4.8:thinking"
	Model__NanoGPT__Claude__Opus__4__Thinking                                                ModelID = "claude-opus-4-thinking"
	Model__NanoGPT__Claude__Opus__4__Thinking__1024__4__Thinking                             ModelID = "claude-opus-4-thinking:1024"
	Model__NanoGPT__Claude__Opus__4__Thinking__32000__4__Thinking                            ModelID = "claude-opus-4-thinking:32000"
	Model__NanoGPT__Claude__Opus__4__Thinking__32768__4__Thinking                            ModelID = "claude-opus-4-thinking:32768"
	Model__NanoGPT__Claude__Opus__4__Thinking__8192__4__Thinking                             ModelID = "claude-opus-4-thinking:8192"
	Model__NanoGPT__Claude__Opus__Latest                                                     ModelID = "anthropic/claude-opus-latest"
	Model__NanoGPT__Claude__Sonnet__4_5__20250929                                            ModelID = "claude-sonnet-4-5-20250929"
	Model__NanoGPT__Claude__Sonnet__4_5__Thinking__20250929                                  ModelID = "claude-sonnet-4-5-20250929-thinking"
	Model__NanoGPT__Claude__Sonnet__4_6                                                      ModelID = "anthropic/claude-sonnet-4.6"
	Model__NanoGPT__Claude__Sonnet__4__20250514                                              ModelID = "claude-sonnet-4-20250514"
	Model__NanoGPT__Claude__Sonnet__4__6__Thinking                                           ModelID = "anthropic/claude-sonnet-4.6:thinking"
	Model__NanoGPT__Claude__Sonnet__4__Thinking                                              ModelID = "claude-sonnet-4-thinking"
	Model__NanoGPT__Claude__Sonnet__4__Thinking__1024__4__Thinking                           ModelID = "claude-sonnet-4-thinking:1024"
	Model__NanoGPT__Claude__Sonnet__4__Thinking__32768__4__Thinking                          ModelID = "claude-sonnet-4-thinking:32768"
	Model__NanoGPT__Claude__Sonnet__4__Thinking__64000__4__Thinking                          ModelID = "claude-sonnet-4-thinking:64000"
	Model__NanoGPT__Claude__Sonnet__4__Thinking__8192__4__Thinking                           ModelID = "claude-sonnet-4-thinking:8192"
	Model__NanoGPT__Claude__Sonnet__Latest                                                   ModelID = "anthropic/claude-sonnet-latest"
	Model__NanoGPT__Claw__High                                                               ModelID = "claw-high"
	Model__NanoGPT__Claw__Low                                                                ModelID = "claw-low"
	Model__NanoGPT__Claw__Medium                                                             ModelID = "claw-medium"
	Model__NanoGPT__Codestral__2508                                                          ModelID = "mistralai/codestral-2508"
	Model__NanoGPT__Coding__Router                                                           ModelID = "nanogpt/coding-router"
	Model__NanoGPT__Coding__Router__High                                                     ModelID = "nanogpt/coding-router:high"
	Model__NanoGPT__Coding__Router__Low                                                      ModelID = "nanogpt/coding-router:low"
	Model__NanoGPT__Coding__Router__Max                                                      ModelID = "nanogpt/coding-router:max"
	Model__NanoGPT__Coding__Router__Medium                                                   ModelID = "nanogpt/coding-router:medium"
	Model__NanoGPT__Cogito__V1__Preview__Qwen__32B                                           ModelID = "deepcogito/cogito-v1-preview-qwen-32B"
	Model__NanoGPT__Command__A__Plus__05__20260522                                           ModelID = "command-a-plus-05-2026"
	Model__NanoGPT__Command__A__Reasoning__Reasoning__20250822                               ModelID = "command-a-reasoning-08-2025"
	Model__NanoGPT__Command__R                                                               ModelID = "cohere/command-r"
	Model__NanoGPT__Command__R__Plus__20240830                                               ModelID = "cohere/command-r-plus-08-2024"
	Model__NanoGPT__Cydonia__24B__V2                                                         ModelID = "TheDrummer/Cydonia-24B-v2"
	Model__NanoGPT__Cydonia__24B__V4                                                         ModelID = "TheDrummer/Cydonia-24B-v4"
	Model__NanoGPT__Cydonia__24B__V4__1                                                      ModelID = "TheDrummer/Cydonia-24B-v4.1"
	Model__NanoGPT__Cydonia__24B__V4__3                                                      ModelID = "TheDrummer/Cydonia-24B-v4.3"
	Model__NanoGPT__DeepSeek__Chat                                                           ModelID = "deepseek-chat"
	Model__NanoGPT__DeepSeek__Chat__Cheaper                                                  ModelID = "deepseek-chat-cheaper"
	Model__NanoGPT__DeepSeek__Latest                                                         ModelID = "deepseek/deepseek-latest"
	Model__NanoGPT__DeepSeek__Math__V2                                                       ModelID = "deepseek-math-v2"
	Model__NanoGPT__DeepSeek__Prover__V2__671b                                               ModelID = "deepseek/deepseek-prover-v2-671b"
	Model__NanoGPT__DeepSeek__R1                                                             ModelID = "deepseek-r1"
	Model__NanoGPT__DeepSeek__R1__0528                                                       ModelID = "deepseek-ai/DeepSeek-R1-0528"
	Model__NanoGPT__DeepSeek__R1__Distill__Llama__70B__Abliterated                           ModelID = "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated"
	Model__NanoGPT__DeepSeek__R1__Distill__Qwen__32B__Abliterated                            ModelID = "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated"
	Model__NanoGPT__DeepSeek__R1__Sambanova                                                  ModelID = "deepseek-r1-sambanova"
	Model__NanoGPT__DeepSeek__Reasoner                                                       ModelID = "deepseek-reasoner"
	Model__NanoGPT__DeepSeek__Reasoner__Cheaper                                              ModelID = "deepseek-reasoner-cheaper"
	Model__NanoGPT__DeepSeek__V3__0324                                                       ModelID = "deepseek-v3-0324"
	Model__NanoGPT__DeepSeek__V3__1__DeepSeekAI                                              ModelID = "deepseek-ai/DeepSeek-V3.1"
	Model__NanoGPT__DeepSeek__V3__1__Nex__N1                                                 ModelID = "nex-agi/deepseek-v3.1-nex-n1"
	Model__NanoGPT__DeepSeek__V3__1__Tee                                                     ModelID = "TEE/deepseek-v3.1"
	Model__NanoGPT__DeepSeek__V3__1__Terminus                                                ModelID = "deepseek-ai/DeepSeek-V3.1-Terminus"
	Model__NanoGPT__DeepSeek__V3__1__Terminus__Thinking__Thinking                            ModelID = "deepseek-ai/DeepSeek-V3.1-Terminus:thinking"
	Model__NanoGPT__DeepSeek__V3__1__Thinking__Thinking                                      ModelID = "deepseek-ai/DeepSeek-V3.1:thinking"
	Model__NanoGPT__DeepSeek__V3__2__DeepSeek                                                ModelID = "deepseek/deepseek-v3.2"
	Model__NanoGPT__DeepSeek__V3__2__Exp                                                     ModelID = "deepseek-ai/deepseek-v3.2-exp"
	Model__NanoGPT__DeepSeek__V3__2__Exp__Thinking                                           ModelID = "deepseek-ai/deepseek-v3.2-exp-thinking"
	Model__NanoGPT__DeepSeek__V3__2__Speciale                                                ModelID = "deepseek/deepseek-v3.2-speciale"
	Model__NanoGPT__DeepSeek__V3__2__Tee                                                     ModelID = "TEE/deepseek-v3.2"
	Model__NanoGPT__DeepSeek__V3__2__Thinking                                                ModelID = "deepseek/deepseek-v3.2:thinking"
	Model__NanoGPT__DeepSeek__V4__Flash                                                      ModelID = "deepseek/deepseek-v4-flash"
	Model__NanoGPT__DeepSeek__V4__Flash__Thinking                                            ModelID = "deepseek/deepseek-v4-flash:thinking"
	Model__NanoGPT__DeepSeek__V4__Pro__Cheaper                                               ModelID = "deepseek/deepseek-v4-pro-cheaper"
	Model__NanoGPT__DeepSeek__V4__Pro__Cheaper__Thinking                                     ModelID = "deepseek/deepseek-v4-pro-cheaper:thinking"
	Model__NanoGPT__DeepSeek__V4__Pro__DeepSeek                                              ModelID = "deepseek/deepseek-v4-pro"
	Model__NanoGPT__DeepSeek__V4__Pro__Tee                                                   ModelID = "TEE/deepseek-v4-pro"
	Model__NanoGPT__DeepSeek__V4__Pro__Thinking__DeepSeek                                    ModelID = "deepseek/deepseek-v4-pro:thinking"
	Model__NanoGPT__DeepSeek__V4__Pro__Thinking__Tee                                         ModelID = "TEE/deepseek-v4-pro:thinking"
	Model__NanoGPT__Deepclaude                                                               ModelID = "deepclaude"
	Model__NanoGPT__Deephermes__3__Mistral__24B__3__Preview                                  ModelID = "NousResearch/DeepHermes-3-Mistral-24B-Preview"
	Model__NanoGPT__Devstral__2__123b__Instruct__2512__2__Instruct                           ModelID = "mistralai/devstral-2-123b-instruct-2512"
	Model__NanoGPT__Devstral__Small__2505                                                    ModelID = "mistralai/Devstral-Small-2505"
	Model__NanoGPT__Dmind__1                                                                 ModelID = "dmind/dmind-1"
	Model__NanoGPT__Dmind__1__Mini                                                           ModelID = "dmind/dmind-1-mini"
	Model__NanoGPT__Dolphin__2__9__2__Qwen2__72b                                             ModelID = "cognitivecomputations/dolphin-2.9.2-qwen2-72b"
	Model__NanoGPT__Doubao__1__5__Pro__256k__1_5                                             ModelID = "doubao-1.5-pro-256k"
	Model__NanoGPT__Doubao__1__5__Pro__32k__1_5                                              ModelID = "doubao-1.5-pro-32k"
	Model__NanoGPT__Doubao__1__5__Thinking__Pro__250415__1_5                                 ModelID = "doubao-1-5-thinking-pro-250415"
	Model__NanoGPT__Doubao__1__5__Thinking__Pro__Vision__250415__1_5__Vision                 ModelID = "doubao-1-5-thinking-pro-vision-250415"
	Model__NanoGPT__Doubao__1__5__Thinking__Vision__Pro__250428__1_5                         ModelID = "doubao-1-5-thinking-vision-pro-250428"
	Model__NanoGPT__Doubao__1__5__Vision__Pro__32k__1_5                                      ModelID = "doubao-1.5-vision-pro-32k"
	Model__NanoGPT__Doubao__Seed__1__6__250615__1_6                                          ModelID = "doubao-seed-1-6-250615"
	Model__NanoGPT__Doubao__Seed__1__6__Flash__250615__1_6                                   ModelID = "doubao-seed-1-6-flash-250615"
	Model__NanoGPT__Doubao__Seed__1__6__Thinking__250615__1_6__Thinking                      ModelID = "doubao-seed-1-6-thinking-250615"
	Model__NanoGPT__Doubao__Seed__1__8__251215__1_8                                          ModelID = "doubao-seed-1-8-251215"
	Model__NanoGPT__Doubao__Seed__2__0__Code__Preview__260215__2_0__PreviewCode              ModelID = "doubao-seed-2-0-code-preview-260215"
	Model__NanoGPT__Doubao__Seed__2__0__Lite__260215__2_0                                    ModelID = "doubao-seed-2-0-lite-260215"
	Model__NanoGPT__Doubao__Seed__2__0__Mini__260215__2_0                                    ModelID = "doubao-seed-2-0-mini-260215"
	Model__NanoGPT__Doubao__Seed__2__0__Pro__260215__2_0                                     ModelID = "doubao-seed-2-0-pro-260215"
	Model__NanoGPT__Dracarys__72B__Instruct                                                  ModelID = "abacusai/Dracarys-72B-Instruct"
	Model__NanoGPT__Ernie__4__5__8k__4_5__Preview                                            ModelID = "ernie-4.5-8k-preview"
	Model__NanoGPT__Ernie__4__5__Turbo__128k__4_5__Turbo                                     ModelID = "ernie-4.5-turbo-128k"
	Model__NanoGPT__Ernie__4__5__Turbo__Vl__32k__4_5                                         ModelID = "ernie-4.5-turbo-vl-32k"
	Model__NanoGPT__Ernie__4__5__Vl__28b__A3b__4_5                                           ModelID = "baidu/ernie-4.5-vl-28b-a3b"
	Model__NanoGPT__Ernie__5_0__ThinkingPreview                                              ModelID = "ernie-5.0-thinking-preview"
	Model__NanoGPT__Ernie__5_1                                                               ModelID = "ernie-5.1"
	Model__NanoGPT__Ernie__5__1__Thinking                                                    ModelID = "ernie-5.1:thinking"
	Model__NanoGPT__Ernie__X1__1__Preview                                                    ModelID = "ernie-x1.1-preview"
	Model__NanoGPT__Ernie__X1__32k                                                           ModelID = "ernie-x1-32k"
	Model__NanoGPT__Ernie__X1__32k__Preview                                                  ModelID = "ernie-x1-32k-preview"
	Model__NanoGPT__Ernie__X1__Turbo__32k__Turbo                                             ModelID = "ernie-x1-turbo-32k"
	Model__NanoGPT__Eva__Llama__3__33__70B__V0__0                                            ModelID = "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0"
	Model__NanoGPT__Eva__Llama__3__33__70B__V0__1                                            ModelID = "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1"
	Model__NanoGPT__Eva__Qwen2__5__32B__V0__2                                                ModelID = "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2"
	Model__NanoGPT__Eva__Qwen2__5__72B__V0__2                                                ModelID = "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2"
	Model__NanoGPT__Exa__Answer                                                              ModelID = "exa-answer"
	Model__NanoGPT__Exa__Research                                                            ModelID = "exa-research"
	Model__NanoGPT__Exa__Research__Pro                                                       ModelID = "exa-research-pro"
	Model__NanoGPT__Fastgpt                                                                  ModelID = "fastgpt"
	Model__NanoGPT__GLM__4                                                                   ModelID = "glm-4"
	Model__NanoGPT__GLM__4_5                                                                 ModelID = "zai-org/glm-4.5"
	Model__NanoGPT__GLM__4_6                                                                 ModelID = "z-ai/glm-4.6"
	Model__NanoGPT__GLM__4_6__Original                                                       ModelID = "zai-org/glm-4.6-original"
	Model__NanoGPT__GLM__4_6__Turbo                                                          ModelID = "zai-org/GLM-4.6-turbo"
	Model__NanoGPT__GLM__4_7__Original                                                       ModelID = "zai-org/glm-4.7-original"
	Model__NanoGPT__GLM__4_7__Tee                                                            ModelID = "TEE/glm-4.7"
	Model__NanoGPT__GLM__4_7__ZaiOrg                                                         ModelID = "zai-org/glm-4.7"
	Model__NanoGPT__GLM__4__1v__Thinking__Flash                                              ModelID = "glm-4.1v-thinking-flash"
	Model__NanoGPT__GLM__4__1v__Thinking__Flashx__4_1                                        ModelID = "glm-4.1v-thinking-flashx"
	Model__NanoGPT__GLM__4__32B__0414__4                                                     ModelID = "THUDM/GLM-4-32B-0414"
	Model__NanoGPT__GLM__4__5__Air__4_5                                                      ModelID = "zai-org/GLM-4.5-Air"
	Model__NanoGPT__GLM__4__5__Air__Thinking__4_5                                            ModelID = "zai-org/GLM-4.5-Air:thinking"
	Model__NanoGPT__GLM__4__5__Thinking                                                      ModelID = "zai-org/GLM-4.5:thinking"
	Model__NanoGPT__GLM__4__5v__4_5                                                          ModelID = "z-ai/glm-4.5v"
	Model__NanoGPT__GLM__4__5v__Thinking                                                     ModelID = "z-ai/glm-4.5v:thinking"
	Model__NanoGPT__GLM__4__6__Derestricted__V5__4_6                                         ModelID = "GLM-4.6-Derestricted-v5"
	Model__NanoGPT__GLM__4__6__Thinking                                                      ModelID = "z-ai/glm-4.6:thinking"
	Model__NanoGPT__GLM__4__6__Turbo__Thinking__4_6__Turbo                                   ModelID = "zai-org/GLM-4.6-turbo:thinking"
	Model__NanoGPT__GLM__4__6v__4_6                                                          ModelID = "zai-org/glm-4.6v"
	Model__NanoGPT__GLM__4__6v__4_6__Original                                                ModelID = "zai-org/glm-4.6v-original"
	Model__NanoGPT__GLM__4__6v__4_6__OriginalFlash                                           ModelID = "zai-org/glm-4.6v-flash-original"
	Model__NanoGPT__GLM__4__7__Flash__4_7__Original                                          ModelID = "zai-org/glm-4.7-flash-original"
	Model__NanoGPT__GLM__4__7__Flash__4_7__Tee                                               ModelID = "TEE/glm-4.7-flash"
	Model__NanoGPT__GLM__4__7__Flash__4_7__ZaiOrg                                            ModelID = "zai-org/glm-4.7-flash"
	Model__NanoGPT__GLM__4__7__Flash__Original__Thinking__4_7__Original                      ModelID = "zai-org/glm-4.7-flash-original:thinking"
	Model__NanoGPT__GLM__4__7__Flash__Thinking__4_7                                          ModelID = "zai-org/glm-4.7-flash:thinking"
	Model__NanoGPT__GLM__4__7__Original__Thinking__4_7__Original                             ModelID = "zai-org/glm-4.7-original:thinking"
	Model__NanoGPT__GLM__4__7__Thinking                                                      ModelID = "zai-org/glm-4.7:thinking"
	Model__NanoGPT__GLM__4__9B__0414__4                                                      ModelID = "THUDM/GLM-4-9B-0414"
	Model__NanoGPT__GLM__4__Air__0111__4                                                     ModelID = "glm-4-air-0111"
	Model__NanoGPT__GLM__4__Air__4                                                           ModelID = "glm-4-air"
	Model__NanoGPT__GLM__4__Airx__4                                                          ModelID = "glm-4-airx"
	Model__NanoGPT__GLM__4__Flash__4                                                         ModelID = "glm-4-flash"
	Model__NanoGPT__GLM__4__Long__4                                                          ModelID = "glm-4-long"
	Model__NanoGPT__GLM__4__Plus__0111__4                                                    ModelID = "glm-4-plus-0111"
	Model__NanoGPT__GLM__4__Plus__4                                                          ModelID = "glm-4-plus"
	Model__NanoGPT__GLM__5_1__Tee                                                            ModelID = "TEE/glm-5.1"
	Model__NanoGPT__GLM__5_1__Thinking                                                       ModelID = "TEE/glm-5.1-thinking"
	Model__NanoGPT__GLM__5_1__ZaiOrg                                                         ModelID = "zai-org/glm-5.1"
	Model__NanoGPT__GLM__5__1__Thinking                                                      ModelID = "zai-org/glm-5.1:thinking"
	Model__NanoGPT__GLM__5__Original                                                         ModelID = "zai-org/glm-5-original"
	Model__NanoGPT__GLM__5__Original__Thinking__5__Original                                  ModelID = "zai-org/glm-5-original:thinking"
	Model__NanoGPT__GLM__5__Tee                                                              ModelID = "TEE/glm-5"
	Model__NanoGPT__GLM__5__Thinking                                                         ModelID = "zai-org/glm-5:thinking"
	Model__NanoGPT__GLM__5__Turbo                                                            ModelID = "z-ai/glm-5-turbo"
	Model__NanoGPT__GLM__5__ZaiOrg                                                           ModelID = "zai-org/glm-5"
	Model__NanoGPT__GLM__5v__5__Turbo                                                        ModelID = "z-ai/glm-5v-turbo"
	Model__NanoGPT__GLM__5v__Turbo__Thinking__5__Turbo                                       ModelID = "z-ai/glm-5v-turbo:thinking"
	Model__NanoGPT__GLM__Latest                                                              ModelID = "zai-org/glm-latest"
	Model__NanoGPT__GLM__Z1__32B__0414                                                       ModelID = "THUDM/GLM-Z1-32B-0414"
	Model__NanoGPT__GLM__Z1__9B__0414                                                        ModelID = "THUDM/GLM-Z1-9B-0414"
	Model__NanoGPT__GLM__Z1__Air                                                             ModelID = "glm-z1-air"
	Model__NanoGPT__GLM__Z1__Airx                                                            ModelID = "glm-z1-airx"
	Model__NanoGPT__GLM__Zero__Preview                                                       ModelID = "glm-zero-preview"
	Model__NanoGPT__GPT__3_5__Turbo                                                          ModelID = "openai/gpt-3.5-turbo"
	Model__NanoGPT__GPT__4_1                                                                 ModelID = "openai/gpt-4.1"
	Model__NanoGPT__GPT__4__1__Mini__4_1                                                     ModelID = "openai/gpt-4.1-mini"
	Model__NanoGPT__GPT__4__1__Nano__4_1                                                     ModelID = "openai/gpt-4.1-nano"
	Model__NanoGPT__GPT__4__Turbo                                                            ModelID = "openai/gpt-4-turbo"
	Model__NanoGPT__GPT__4__TurboPreview                                                     ModelID = "openai/gpt-4-turbo-preview"
	Model__NanoGPT__GPT__4o                                                                  ModelID = "openai/gpt-4o"
	Model__NanoGPT__GPT__4o__20240806                                                        ModelID = "openai/gpt-4o-2024-08-06"
	Model__NanoGPT__GPT__4o__20241120                                                        ModelID = "openai/gpt-4o-2024-11-20"
	Model__NanoGPT__GPT__4o__Mini                                                            ModelID = "openai/gpt-4o-mini"
	Model__NanoGPT__GPT__4o__Mini__Search__PreviewMini                                       ModelID = "openai/gpt-4o-mini-search-preview"
	Model__NanoGPT__GPT__4o__Search__Preview                                                 ModelID = "openai/gpt-4o-search-preview"
	Model__NanoGPT__GPT__5                                                                   ModelID = "openai/gpt-5"
	Model__NanoGPT__GPT__5_1                                                                 ModelID = "openai/gpt-5.1"
	Model__NanoGPT__GPT__5_1__20251113                                                       ModelID = "openai/gpt-5.1-2025-11-13"
	Model__NanoGPT__GPT__5_2                                                                 ModelID = "openai/gpt-5.2"
	Model__NanoGPT__GPT__5_4                                                                 ModelID = "openai/gpt-5.4"
	Model__NanoGPT__GPT__5_5                                                                 ModelID = "openai/gpt-5.5"
	Model__NanoGPT__GPT__5__1__Codex__5_1                                                    ModelID = "openai/gpt-5.1-codex"
	Model__NanoGPT__GPT__5__1__Codex__Max__5_1                                               ModelID = "openai/gpt-5.1-codex-max"
	Model__NanoGPT__GPT__5__1__Codex__Mini__5_1                                              ModelID = "openai/gpt-5.1-codex-mini"
	Model__NanoGPT__GPT__5__2__Codex__5_2                                                    ModelID = "openai/gpt-5.2-codex"
	Model__NanoGPT__GPT__5__2__Pro__5_2                                                      ModelID = "openai/gpt-5.2-pro"
	Model__NanoGPT__GPT__5__3__Codex__5_3                                                    ModelID = "openai/gpt-5.3-codex"
	Model__NanoGPT__GPT__5__4__Mini__5_4                                                     ModelID = "openai/gpt-5.4-mini"
	Model__NanoGPT__GPT__5__4__Nano__5_4                                                     ModelID = "openai/gpt-5.4-nano"
	Model__NanoGPT__GPT__5__4__Pro__5_4                                                      ModelID = "openai/gpt-5.4-pro"
	Model__NanoGPT__GPT__5__Codex__5                                                         ModelID = "openai/gpt-5-codex"
	Model__NanoGPT__GPT__5__Mini__5                                                          ModelID = "openai/gpt-5-mini"
	Model__NanoGPT__GPT__5__Nano__5                                                          ModelID = "openai/gpt-5-nano"
	Model__NanoGPT__GPT__5__Pro__5                                                           ModelID = "openai/gpt-5-pro"
	Model__NanoGPT__GPT__ChatLatest                                                          ModelID = "openai/gpt-chat-latest"
	Model__NanoGPT__GPT__Latest                                                              ModelID = "openai/gpt-latest"
	Model__NanoGPT__GPT__Oss__120b__OpenAI                                                   ModelID = "openai/gpt-oss-120b"
	Model__NanoGPT__GPT__Oss__120b__Tee                                                      ModelID = "TEE/gpt-oss-120b"
	Model__NanoGPT__GPT__Oss__20b__OpenAI                                                    ModelID = "openai/gpt-oss-20b"
	Model__NanoGPT__GPT__Oss__20b__Tee                                                       ModelID = "TEE/gpt-oss-20b"
	Model__NanoGPT__GPT__Oss__Safeguard__20b                                                 ModelID = "openai/gpt-oss-safeguard-20b"
	Model__NanoGPT__Gemini__2__0__Flash__001__2_0                                            ModelID = "gemini-2.0-flash-001"
	Model__NanoGPT__Gemini__2__0__Flash__Exp__Image__Generation__2_0                         ModelID = "gemini-2.0-flash-exp-image-generation"
	Model__NanoGPT__Gemini__2__0__Flash__Thinking__Exp__1219__2_0                            ModelID = "gemini-2.0-flash-thinking-exp-1219"
	Model__NanoGPT__Gemini__2__0__Flash__Thinking__Exp__2_0__20250121                        ModelID = "gemini-2.0-flash-thinking-exp-01-21"
	Model__NanoGPT__Gemini__2__0__Pro__Exp__2_0__20250205                                    ModelID = "gemini-2.0-pro-exp-02-05"
	Model__NanoGPT__Gemini__2__0__Pro__Reasoner__2_0                                         ModelID = "gemini-2.0-pro-reasoner"
	Model__NanoGPT__Gemini__2__5__Flash__2_5                                                 ModelID = "gemini-2.5-flash"
	Model__NanoGPT__Gemini__2__5__Flash__Lite__2_5                                           ModelID = "gemini-2.5-flash-lite"
	Model__NanoGPT__Gemini__2__5__Flash__Lite__Preview__2_5__20250617                        ModelID = "gemini-2.5-flash-lite-preview-06-17"
	Model__NanoGPT__Gemini__2__5__Flash__Lite__Preview__2_5__Preview__20250925               ModelID = "gemini-2.5-flash-lite-preview-09-2025"
	Model__NanoGPT__Gemini__2__5__Flash__Lite__Preview__2_5__ThinkingPreview__20250925       ModelID = "gemini-2.5-flash-lite-preview-09-2025-thinking"
	Model__NanoGPT__Gemini__2__5__Flash__Nothinking__2_5                                     ModelID = "gemini-2.5-flash-nothinking"
	Model__NanoGPT__Gemini__2__5__Flash__Preview__04__17__Thinking__2_5                      ModelID = "gemini-2.5-flash-preview-04-17:thinking"
	Model__NanoGPT__Gemini__2__5__Flash__Preview__05__20__Thinking__2_5                      ModelID = "gemini-2.5-flash-preview-05-20:thinking"
	Model__NanoGPT__Gemini__2__5__Flash__Preview__2_5__20250417                              ModelID = "gemini-2.5-flash-preview-04-17"
	Model__NanoGPT__Gemini__2__5__Flash__Preview__2_5__20250520                              ModelID = "gemini-2.5-flash-preview-05-20"
	Model__NanoGPT__Gemini__2__5__Flash__Preview__2_5__Preview__20250925                     ModelID = "gemini-2.5-flash-preview-09-2025"
	Model__NanoGPT__Gemini__2__5__Flash__Preview__2_5__ThinkingPreview__20250925             ModelID = "gemini-2.5-flash-preview-09-2025-thinking"
	Model__NanoGPT__Gemini__2__5__Pro__2_5                                                   ModelID = "gemini-2.5-pro"
	Model__NanoGPT__Gemini__2__5__Pro__Exp__2_5__20250325                                    ModelID = "gemini-2.5-pro-exp-03-25"
	Model__NanoGPT__Gemini__2__5__Pro__Preview__2_5__20250325                                ModelID = "gemini-2.5-pro-preview-03-25"
	Model__NanoGPT__Gemini__2__5__Pro__Preview__2_5__20250506                                ModelID = "gemini-2.5-pro-preview-05-06"
	Model__NanoGPT__Gemini__2__5__Pro__Preview__2_5__20250605                                ModelID = "gemini-2.5-pro-preview-06-05"
	Model__NanoGPT__Gemini__3__1__Flash__Lite__3_1                                           ModelID = "google/gemini-3.1-flash-lite"
	Model__NanoGPT__Gemini__3__1__Pro__3_1__Preview                                          ModelID = "google/gemini-3.1-pro-preview"
	Model__NanoGPT__Gemini__3__1__Pro__Preview__Customtools__3_1                             ModelID = "google/gemini-3.1-pro-preview-customtools"
	Model__NanoGPT__Gemini__3__1__Pro__Preview__High__3_1                                    ModelID = "google/gemini-3.1-pro-preview-high"
	Model__NanoGPT__Gemini__3__1__Pro__Preview__Low__3_1                                     ModelID = "google/gemini-3.1-pro-preview-low"
	Model__NanoGPT__Gemini__3__5__Flash__3_5                                                 ModelID = "google/gemini-3.5-flash"
	Model__NanoGPT__Gemini__3__5__Flash__3_5__Thinking                                       ModelID = "google/gemini-3.5-flash-thinking"
	Model__NanoGPT__Gemini__3__Flash__3__Preview                                             ModelID = "google/gemini-3-flash-preview"
	Model__NanoGPT__Gemini__3__Flash__3__ThinkingPreview                                     ModelID = "google/gemini-3-flash-preview-thinking"
	Model__NanoGPT__Gemini__3__Pro__Image__3__Preview                                        ModelID = "gemini-3-pro-image-preview"
	Model__NanoGPT__Gemini__Exp__1206                                                        ModelID = "gemini-exp-1206"
	Model__NanoGPT__Gemini__Flash__1_5                                                       ModelID = "google/gemini-flash-1.5"
	Model__NanoGPT__Gemini__Flash__Latest                                                    ModelID = "google/gemini-flash-latest"
	Model__NanoGPT__Gemini__Flash__Lite__Latest                                              ModelID = "google/gemini-flash-lite-latest"
	Model__NanoGPT__Gemini__Pro__Latest                                                      ModelID = "google/gemini-pro-latest"
	Model__NanoGPT__Gemma4__31b                                                              ModelID = "TEE/gemma4-31b"
	Model__NanoGPT__Gemma4__31b__Thinking                                                    ModelID = "TEE/gemma4-31b:thinking"
	Model__NanoGPT__Gemma__3__12b__It                                                        ModelID = "unsloth/gemma-3-12b-it"
	Model__NanoGPT__Gemma__3__27b__It                                                        ModelID = "unsloth/gemma-3-27b-it"
	Model__NanoGPT__Gemma__3__27b__It__3                                                     ModelID = "TEE/gemma-3-27b-it"
	Model__NanoGPT__Gemma__3__4b__It                                                         ModelID = "unsloth/gemma-3-4b-it"
	Model__NanoGPT__Gemma__4__26b__A4b__It__4                                                ModelID = "google/gemma-4-26b-a4b-it"
	Model__NanoGPT__Gemma__4__26b__A4b__It__Thinking__4                                      ModelID = "google/gemma-4-26b-a4b-it:thinking"
	Model__NanoGPT__Gemma__4__26b__A4b__Uncensored__4                                        ModelID = "TEE/gemma-4-26b-a4b-uncensored"
	Model__NanoGPT__Gemma__4__31B__Claude__4__6__Opus__Reasoning__Distilled__4               ModelID = "Gemma-4-31B-Claude-4.6-Opus-Reasoning-Distilled"
	Model__NanoGPT__Gemma__4__31B__Cognitive__Unshackled__4                                  ModelID = "Gemma-4-31B-Cognitive-Unshackled"
	Model__NanoGPT__Gemma__4__31B__Darkidol__4                                               ModelID = "Gemma-4-31B-DarkIdol"
	Model__NanoGPT__Gemma__4__31B__Fabled__4                                                 ModelID = "gemma-4-31B-Fabled"
	Model__NanoGPT__Gemma__4__31B__Garnet__4                                                 ModelID = "gemma-4-31B-Garnet"
	Model__NanoGPT__Gemma__4__31B__Garnetv2__4                                               ModelID = "Gemma-4-31B-GarnetV2"
	Model__NanoGPT__Gemma__4__31B__Gemopus__4                                                ModelID = "Gemma-4-31B-Gemopus"
	Model__NanoGPT__Gemma__4__31B__It__4                                                     ModelID = "Gemma-4-31B-it"
	Model__NanoGPT__Gemma__4__31B__K1__V5__4                                                 ModelID = "gemma-4-31B-K1-v5"
	Model__NanoGPT__Gemma__4__31B__Larkspur__V0__5__4                                        ModelID = "gemma-4-31B-Larkspur-v0.5"
	Model__NanoGPT__Gemma__4__31B__Meromero__4                                               ModelID = "gemma-4-31B-MeroMero"
	Model__NanoGPT__Gemma__4__31B__Musica__V1__4                                             ModelID = "Gemma-4-31B-Musica-v1"
	Model__NanoGPT__Gemma__4__31B__Queen__4                                                  ModelID = "Gemma-4-31B-Queen"
	Model__NanoGPT__Gemma__4__31b__It__4__Google                                             ModelID = "google/gemma-4-31b-it"
	Model__NanoGPT__Gemma__4__31b__It__4__Tee                                                ModelID = "TEE/gemma-4-31b-it"
	Model__NanoGPT__Gemma__4__31b__It__Thinking__4                                           ModelID = "google/gemma-4-31b-it:thinking"
	Model__NanoGPT__Granite__4__1__8b__4_1                                                   ModelID = "ibm-granite/granite-4.1-8b"
	Model__NanoGPT__Grayline__Qwen3__8B                                                      ModelID = "soob3123/GrayLine-Qwen3-8B"
	Model__NanoGPT__Grok__4_20                                                               ModelID = "x-ai/grok-4.20"
	Model__NanoGPT__Grok__4_3                                                                ModelID = "x-ai/grok-4.3"
	Model__NanoGPT__Grok__4__20__Multi__Agent__4_20                                          ModelID = "x-ai/grok-4.20-multi-agent"
	Model__NanoGPT__Grok__Build__0_1                                                         ModelID = "x-ai/grok-build-0.1"
	Model__NanoGPT__Grok__Latest                                                             ModelID = "x-ai/grok-latest"
	Model__NanoGPT__Hermes__3__Llama__3__1__70b__3                                           ModelID = "NousResearch/hermes-3-llama-3.1-70b"
	Model__NanoGPT__Hermes__4__405b__4                                                       ModelID = "NousResearch/hermes-4-405b"
	Model__NanoGPT__Hermes__4__405b__Thinking__4                                             ModelID = "NousResearch/hermes-4-405b:thinking"
	Model__NanoGPT__Hermes__4__70B__Thinking__4                                              ModelID = "NousResearch/Hermes-4-70B:thinking"
	Model__NanoGPT__Hermes__4__70b__4                                                        ModelID = "NousResearch/hermes-4-70b"
	Model__NanoGPT__Hermes__High                                                             ModelID = "hermes-high"
	Model__NanoGPT__Hermes__Low                                                              ModelID = "hermes-low"
	Model__NanoGPT__Hermes__Medium                                                           ModelID = "hermes-medium"
	Model__NanoGPT__Holo3__35b__A3b                                                          ModelID = "holo3-35b-a3b"
	Model__NanoGPT__Holo3__35b__A3b__Thinking                                                ModelID = "holo3-35b-a3b:thinking"
	Model__NanoGPT__Hunyuan__Mt__7B                                                          ModelID = "tencent/Hunyuan-MT-7B"
	Model__NanoGPT__Hunyuan__Turbos__20250226                                                ModelID = "hunyuan-turbos-20250226"
	Model__NanoGPT__Hy3__3__Preview                                                          ModelID = "tencent/hy3-preview"
	Model__NanoGPT__Inflection__3__Pi__3                                                     ModelID = "inflection/inflection-3-pi"
	Model__NanoGPT__Inflection__3__Productivity__3                                           ModelID = "inflection/inflection-3-productivity"
	Model__NanoGPT__Jamba__Large                                                             ModelID = "jamba-large"
	Model__NanoGPT__Jamba__Large__1_6                                                        ModelID = "jamba-large-1.6"
	Model__NanoGPT__Jamba__Large__1_7                                                        ModelID = "jamba-large-1.7"
	Model__NanoGPT__Jamba__Mini                                                              ModelID = "jamba-mini"
	Model__NanoGPT__Jamba__Mini__1_6                                                         ModelID = "jamba-mini-1.6"
	Model__NanoGPT__Jamba__Mini__1_7                                                         ModelID = "jamba-mini-1.7"
	Model__NanoGPT__K2__2__ThinkingThink                                                     ModelID = "LLM360/K2-Think"
	Model__NanoGPT__Kat__Coder__Air__V1                                                      ModelID = "KAT-Coder-Air-V1"
	Model__NanoGPT__Kat__Coder__Exp__72B__1010                                               ModelID = "KAT-Coder-Exp-72B-1010"
	Model__NanoGPT__Kat__Coder__Pro__V2                                                      ModelID = "kwaipilot/kat-coder-pro-v2"
	Model__NanoGPT__Kimi__K2__2__FastInstruct                                                ModelID = "kimi-k2-instruct-fast"
	Model__NanoGPT__Kimi__K2__2__Instruct                                                    ModelID = "moonshotai/kimi-k2-instruct"
	Model__NanoGPT__Kimi__K2__2__Thinking                                                    ModelID = "moonshotai/kimi-k2-thinking"
	Model__NanoGPT__Kimi__K2__2__ThinkingOriginal                                            ModelID = "moonshotai/kimi-k2-thinking-original"
	Model__NanoGPT__Kimi__K2__2__ThinkingTurboOriginal                                       ModelID = "moonshotai/kimi-k2-thinking-turbo-original"
	Model__NanoGPT__Kimi__K2__5__2_5__MoonshotAI                                             ModelID = "moonshotai/kimi-k2.5"
	Model__NanoGPT__Kimi__K2__5__2_5__Tee                                                    ModelID = "TEE/kimi-k2.5"
	Model__NanoGPT__Kimi__K2__5__2_5__Thinking                                               ModelID = "TEE/kimi-k2.5-thinking"
	Model__NanoGPT__Kimi__K2__5__Thinking__2_5__Thinking                                     ModelID = "moonshotai/kimi-k2.5:thinking"
	Model__NanoGPT__Kimi__K2__6__2_6__MoonshotAI                                             ModelID = "moonshotai/kimi-k2.6"
	Model__NanoGPT__Kimi__K2__6__2_6__Tee                                                    ModelID = "TEE/kimi-k2.6"
	Model__NanoGPT__Kimi__K2__6__Thinking__2_6__Thinking                                     ModelID = "moonshotai/kimi-k2.6:thinking"
	Model__NanoGPT__Kimi__K2__Instruct__0711__2__Instruct                                    ModelID = "moonshotai/kimi-k2-instruct-0711"
	Model__NanoGPT__Kimi__K2__Instruct__0905__2__Instruct                                    ModelID = "moonshotai/Kimi-K2-Instruct-0905"
	Model__NanoGPT__Kimi__K2__Instruct__Fp4__Instruct                                        ModelID = "baseten/Kimi-K2-Instruct-FP4"
	Model__NanoGPT__Kimi__Latest                                                             ModelID = "moonshotai/kimi-latest"
	Model__NanoGPT__Kimi__ThinkingPreview                                                    ModelID = "kimi-thinking-preview"
	Model__NanoGPT__L3__1__70B__Celeste__V0__1__Bf16                                         ModelID = "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16"
	Model__NanoGPT__L3__1__70B__Euryale__V2__2                                               ModelID = "Sao10K/L3.1-70B-Euryale-v2.2"
	Model__NanoGPT__L3__1__70B__Hanami__X1                                                   ModelID = "Sao10K/L3.1-70B-Hanami-x1"
	Model__NanoGPT__L3__3__70B__Euryale__V2__3                                               ModelID = "Sao10K/L3.3-70B-Euryale-v2.3"
	Model__NanoGPT__L3__3__Cu__Mai__R1__70b                                                  ModelID = "Steelskull/L3.3-Cu-Mai-R1-70b"
	Model__NanoGPT__L3__3__Electra__R1__70b                                                  ModelID = "Steelskull/L3.3-Electra-R1-70b"
	Model__NanoGPT__L3__3__Ms__Evalebis__70b                                                 ModelID = "Steelskull/L3.3-MS-Evalebis-70b"
	Model__NanoGPT__L3__3__Ms__Evayale__70B                                                  ModelID = "Steelskull/L3.3-MS-Evayale-70B"
	Model__NanoGPT__L3__3__Ms__Nevoria__70b                                                  ModelID = "Steelskull/L3.3-MS-Nevoria-70b"
	Model__NanoGPT__L3__3__Nevoria__R1__70b                                                  ModelID = "Steelskull/L3.3-Nevoria-R1-70b"
	Model__NanoGPT__L3__8B__Stheno__V3__2                                                    ModelID = "Sao10K/L3-8B-Stheno-v3.2"
	Model__NanoGPT__Laguna__M__1                                                             ModelID = "poolside/laguna-m.1"
	Model__NanoGPT__Laguna__Xs__2                                                            ModelID = "poolside/laguna-xs.2"
	Model__NanoGPT__Learnlm__1__5__Pro__Experimental__1_5                                    ModelID = "learnlm-1.5-pro-experimental"
	Model__NanoGPT__Lfm__2__24b__A2b__2                                                      ModelID = "liquid/lfm-2-24b-a2b"
	Model__NanoGPT__Ling__2__6__1t__2_6                                                      ModelID = "inclusionai/ling-2.6-1t"
	Model__NanoGPT__Ling__2__6__Flash__2_6                                                   ModelID = "inclusionai/ling-2.6-flash"
	Model__NanoGPT__Llama3__3__70b                                                           ModelID = "TEE/llama3-3-70b"
	Model__NanoGPT__Llama__3__05__Nemotron__Tenyxchat__Storybreaker__70B                     ModelID = "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B"
	Model__NanoGPT__Llama__3__05__Nt__Storybreaker__Ministral__70B__3_05                     ModelID = "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B"
	Model__NanoGPT__Llama__3__1__8b__3_1__Instruct                                           ModelID = "meta-llama/llama-3.1-8b-instruct"
	Model__NanoGPT__Llama__3__1__Nemotron__70B__Instruct__Hf__Instruct                       ModelID = "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF"
	Model__NanoGPT__Llama__3__2__3b__3_2__Instruct                                           ModelID = "meta-llama/llama-3.2-3b-instruct"
	Model__NanoGPT__Llama__3__3__70B__Instruct__Abliterated__3_3__Instruct                   ModelID = "huihui-ai/Llama-3.3-70B-Instruct-abliterated"
	Model__NanoGPT__Llama__3__3__70b__3_3__Instruct                                          ModelID = "meta-llama/llama-3.3-70b-instruct"
	Model__NanoGPT__Llama__3__3__Nemotron__Super__49B__V1                                    ModelID = "nvidia/Llama-3.3-Nemotron-Super-49B-v1"
	Model__NanoGPT__Llama__3__3__Nemotron__Super__49B__V1__5                                 ModelID = "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5"
	Model__NanoGPT__Llama__4__Maverick__4                                                    ModelID = "meta-llama/llama-4-maverick"
	Model__NanoGPT__Llama__4__Scout__4                                                       ModelID = "meta-llama/llama-4-scout"
	Model__NanoGPT__Llama__Xlam__2__70b__Fc__R__2                                            ModelID = "Salesforce/Llama-xLAM-2-70b-fc-r"
	Model__NanoGPT__Lumimaid__V0__2__70B                                                     ModelID = "NeverSleep/Lumimaid-v0.2-70B"
	Model__NanoGPT__M__Prometheus__14B                                                       ModelID = "Unbabel/M-Prometheus-14B"
	Model__NanoGPT__Magidonia__24B__V4__3                                                    ModelID = "TheDrummer/Magidonia-24B-v4.3"
	Model__NanoGPT__Magistral__Small__2506                                                   ModelID = "Magistral-Small-2506"
	Model__NanoGPT__Magnum__V2__72b                                                          ModelID = "anthracite-org/magnum-v2-72b"
	Model__NanoGPT__Magnum__V4__72b                                                          ModelID = "anthracite-org/magnum-v4-72b"
	Model__NanoGPT__Manta__Flash__1__0                                                       ModelID = "meganova-ai/manta-flash-1.0"
	Model__NanoGPT__Manta__Mini__1__0                                                        ModelID = "meganova-ai/manta-mini-1.0"
	Model__NanoGPT__Manta__Pro__1__0                                                         ModelID = "meganova-ai/manta-pro-1.0"
	Model__NanoGPT__Mercury__2                                                               ModelID = "mercury-2"
	Model__NanoGPT__Meta__Llama__3__1__8B__Instruct__Fp8__3_1__Instruct                      ModelID = "Meta-Llama-3-1-8B-Instruct-FP8"
	Model__NanoGPT__Meta__Llama__3__70B__Instruct__Abliterated__V3__5__3__Instruct           ModelID = "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5"
	Model__NanoGPT__Mimo__V2__2__Omni                                                        ModelID = "xiaomi/mimo-v2-omni"
	Model__NanoGPT__Mimo__V2__2__Pro                                                         ModelID = "xiaomi/mimo-v2-pro"
	Model__NanoGPT__Mimo__V2__5__2_5                                                         ModelID = "xiaomi/mimo-v2.5"
	Model__NanoGPT__Mimo__V2__5__2_5__Pro                                                    ModelID = "xiaomi/mimo-v2.5-pro"
	Model__NanoGPT__Mimo__V2__Flash                                                          ModelID = "xiaomi/mimo-v2-flash"
	Model__NanoGPT__Mimo__V2__Flash__Original                                                ModelID = "xiaomi/mimo-v2-flash-original"
	Model__NanoGPT__Mimo__V2__Flash__Thinking                                                ModelID = "xiaomi/mimo-v2-flash-thinking"
	Model__NanoGPT__Mimo__V2__Flash__ThinkingOriginal                                        ModelID = "xiaomi/mimo-v2-flash-thinking-original"
	Model__NanoGPT__MiniMax__01                                                              ModelID = "minimax/minimax-01"
	Model__NanoGPT__MiniMax__Latest                                                          ModelID = "minimax/minimax-latest"
	Model__NanoGPT__MiniMax__M1__1                                                           ModelID = "MiniMax-M1"
	Model__NanoGPT__MiniMax__M1__80k__1                                                      ModelID = "MiniMaxAI/MiniMax-M1-80k"
	Model__NanoGPT__MiniMax__M2__1__2_1                                                      ModelID = "minimax/minimax-m2.1"
	Model__NanoGPT__MiniMax__M2__2                                                           ModelID = "MiniMax-M2"
	Model__NanoGPT__MiniMax__M2__5__2_5__MiniMax                                             ModelID = "minimax/minimax-m2.5"
	Model__NanoGPT__MiniMax__M2__5__2_5__Tee                                                 ModelID = "TEE/minimax-m2.5"
	Model__NanoGPT__MiniMax__M2__7__2_7                                                      ModelID = "minimax/minimax-m2.7"
	Model__NanoGPT__MiniMax__M2__7__2_7__Turbo                                               ModelID = "minimax/minimax-m2.7-turbo"
	Model__NanoGPT__MiniMax__M2__Her                                                         ModelID = "minimax/minimax-m2-her"
	Model__NanoGPT__MiniMax__M3__3                                                           ModelID = "minimax/minimax-m3"
	Model__NanoGPT__MiniMax__M3__Thinking__3                                                 ModelID = "minimax/minimax-m3:thinking"
	Model__NanoGPT__Ministral__14b__2512                                                     ModelID = "mistralai/ministral-14b-2512"
	Model__NanoGPT__Ministral__14b__Instruct__2512__Instruct                                 ModelID = "mistralai/ministral-14b-instruct-2512"
	Model__NanoGPT__Ministral__3b__2512                                                      ModelID = "mistralai/ministral-3b-2512"
	Model__NanoGPT__Ministral__8b__2512                                                      ModelID = "mistralai/ministral-8b-2512"
	Model__NanoGPT__Mirothinker__1__7__Deepresearch__1_7                                     ModelID = "mirothinker-1-7-deepresearch"
	Model__NanoGPT__Mirothinker__1__7__Deepresearch__Mini__1_7                               ModelID = "mirothinker-1-7-deepresearch-mini"
	Model__NanoGPT__Mistral__Code__Agent__Latest                                             ModelID = "mistral-code-agent-latest"
	Model__NanoGPT__Mistral__Large                                                           ModelID = "mistralai/mistral-large"
	Model__NanoGPT__Mistral__Large__3__675b__Instruct__2512__3__Instruct                     ModelID = "mistralai/mistral-large-3-675b-instruct-2512"
	Model__NanoGPT__Mistral__LatestCode                                                      ModelID = "mistral-code-latest"
	Model__NanoGPT__Mistral__Medium__3                                                       ModelID = "mistralai/mistral-medium-3"
	Model__NanoGPT__Mistral__Medium__3_1                                                     ModelID = "mistralai/mistral-medium-3.1"
	Model__NanoGPT__Mistral__Medium__3_5                                                     ModelID = "mistral/mistral-medium-3.5"
	Model__NanoGPT__Mistral__Medium__3__5__Thinking                                          ModelID = "mistral/mistral-medium-3.5:thinking"
	Model__NanoGPT__Mistral__Nemo__Instruct__2407__Instruct                                  ModelID = "mistralai/Mistral-Nemo-Instruct-2407"
	Model__NanoGPT__Mistral__Saba                                                            ModelID = "mistralai/mistral-saba"
	Model__NanoGPT__Mistral__Small__31__24b__31__Instruct                                    ModelID = "mistral-small-31-24b-instruct"
	Model__NanoGPT__Mistral__Small__3__2__24B__Instruct__2506__Instruct                      ModelID = "chutesai/Mistral-Small-3.2-24B-Instruct-2506"
	Model__NanoGPT__Mistral__Small__4__119b__2603__4                                         ModelID = "mistralai/mistral-small-4-119b-2603"
	Model__NanoGPT__Mistral__Small__4__119b__2603__Thinking__4                               ModelID = "mistralai/mistral-small-4-119b-2603:thinking"
	Model__NanoGPT__Mixtral__8x22b__Instruct__V0__1__0_1__Instruct                           ModelID = "mistralai/mixtral-8x22b-instruct-v0.1"
	Model__NanoGPT__Mixtral__8x7b__Instruct__V0__1__0_1__Instruct                            ModelID = "mistralai/mixtral-8x7b-instruct-v0.1"
	Model__NanoGPT__Mn__12B__Inferor__V0__0                                                  ModelID = "Infermatic/MN-12B-Inferor-v0.0"
	Model__NanoGPT__Mn__12B__Mag__Mell__R1                                                   ModelID = "inflatebot/MN-12B-Mag-Mell-R1"
	Model__NanoGPT__Mn__Loosecannon__12B__V1                                                 ModelID = "GalrionSoftworks/MN-LooseCannon-12B-v1"
	Model__NanoGPT__Ms3__2__24B__Magnum__Diamond                                             ModelID = "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond"
	Model__NanoGPT__Ms3__2__The__Omega__Directive__24B__Unslop__V2__0                        ModelID = "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0"
	Model__NanoGPT__Mythomax__L2__13b                                                        ModelID = "Gryphe/MythoMax-L2-13b"
	Model__NanoGPT__Nemomix__Unleashed__12B                                                  ModelID = "MarinaraSpaghetti/NemoMix-Unleashed-12B"
	Model__NanoGPT__Nemotron__3__Nano__30b__A3b__3                                           ModelID = "nvidia/nemotron-3-nano-30b-a3b"
	Model__NanoGPT__Nemotron__3__Nano__Omni__30b__A3b__3__ReasoningOmni                      ModelID = "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning"
	Model__NanoGPT__Nemotron__3__Super__120b__A12b__3                                        ModelID = "nvidia/nemotron-3-super-120b-a12b"
	Model__NanoGPT__Nemotron__3__Super__120b__A12b__Thinking__3                              ModelID = "nvidia/nemotron-3-super-120b-a12b:thinking"
	Model__NanoGPT__Neuraldaredevil__8B__Abliterated                                         ModelID = "mlabonne/NeuralDaredevil-8B-abliterated"
	Model__NanoGPT__Nova__2__Lite__V1__2                                                     ModelID = "amazon/nova-2-lite-v1"
	Model__NanoGPT__Nova__Lite__V1                                                           ModelID = "amazon/nova-lite-v1"
	Model__NanoGPT__Nova__Micro__V1                                                          ModelID = "amazon/nova-micro-v1"
	Model__NanoGPT__Nova__Pro__V1                                                            ModelID = "amazon/nova-pro-v1"
	Model__NanoGPT__Nvidia__Nemotron__Nano__9b__V2                                           ModelID = "nvidia/nvidia-nemotron-nano-9b-v2"
	Model__NanoGPT__O1__1                                                                    ModelID = "openai/o1"
	Model__NanoGPT__O1__1__Preview                                                           ModelID = "openai/o1-preview"
	Model__NanoGPT__O1__1__Pro                                                               ModelID = "openai/o1-pro"
	Model__NanoGPT__O3__3                                                                    ModelID = "openai/o3"
	Model__NanoGPT__O3__3__Mini                                                              ModelID = "openai/o3-mini"
	Model__NanoGPT__O3__Deep__Research__3__Deep_Research                                     ModelID = "openai/o3-deep-research"
	Model__NanoGPT__O3__Mini__High__3__Mini                                                  ModelID = "openai/o3-mini-high"
	Model__NanoGPT__O3__Mini__Low__3__Mini                                                   ModelID = "openai/o3-mini-low"
	Model__NanoGPT__O3__Pro__3__Pro__20250610                                                ModelID = "openai/o3-pro-2025-06-10"
	Model__NanoGPT__O4__4__Mini                                                              ModelID = "openai/o4-mini"
	Model__NanoGPT__O4__Mini__Deep__Research__4__Mini                                        ModelID = "openai/o4-mini-deep-research"
	Model__NanoGPT__O4__Mini__High__4__Mini                                                  ModelID = "openai/o4-mini-high"
	Model__NanoGPT__OLMo__3__32b__3__Think                                                   ModelID = "allenai/olmo-3-32b-think"
	Model__NanoGPT__Openreasoning__Nemotron__32B                                             ModelID = "pamanseau/OpenReasoning-Nemotron-32B"
	Model__NanoGPT__Owl                                                                      ModelID = "owl"
	Model__NanoGPT__Perceptron__Mk1                                                          ModelID = "perceptron/perceptron-mk1"
	Model__NanoGPT__Phi__4__Mini__4__Instruct                                                ModelID = "phi-4-mini-instruct"
	Model__NanoGPT__Phi__4__MultimodalInstruct                                               ModelID = "phi-4-multimodal-instruct"
	Model__NanoGPT__Qvq__Max                                                                 ModelID = "qvq-max"
	Model__NanoGPT__Qwen25__Vl__72b__25__Instruct                                            ModelID = "qwen25-vl-72b-instruct"
	Model__NanoGPT__Qwen2__5__32B__Eva__V0__2                                                ModelID = "Qwen2.5-32B-EVA-v0.2"
	Model__NanoGPT__Qwen2__5__32B__Instruct__Abliterated__2_5__Instruct                      ModelID = "huihui-ai/Qwen2.5-32B-Instruct-abliterated"
	Model__NanoGPT__Qwen2__5__Coder__32B__2_5__Instruct                                      ModelID = "qwen/Qwen2.5-Coder-32B-Instruct"
	Model__NanoGPT__Qwen2__5__Vl__72b__2_5__Instruct                                         ModelID = "TEE/qwen2.5-vl-72b-instruct"
	Model__NanoGPT__Qwen3__14b__3                                                            ModelID = "qwen/qwen3-14b"
	Model__NanoGPT__Qwen3__235B__A22b__Instruct__2507__3__Instruct                           ModelID = "qwen/Qwen3-235B-A22B-Instruct-2507"
	Model__NanoGPT__Qwen3__235B__A22b__Instruct__2507__Tee__3__Instruct                      ModelID = "qwen/Qwen3-235B-A22B-Instruct-2507-TEE"
	Model__NanoGPT__Qwen3__235B__A22b__Thinking__2507__3__Thinking                           ModelID = "qwen/Qwen3-235B-A22B-Thinking-2507"
	Model__NanoGPT__Qwen3__235b__A22b__3                                                     ModelID = "qwen/qwen3-235b-a22b"
	Model__NanoGPT__Qwen3__30b__A3b__3                                                       ModelID = "qwen/qwen3-30b-a3b"
	Model__NanoGPT__Qwen3__30b__A3b__Instruct__2507__3__Instruct                             ModelID = "qwen3-30b-a3b-instruct-2507"
	Model__NanoGPT__Qwen3__30b__A3b__Instruct__2507__3__Instruct__Tee                        ModelID = "TEE/qwen3-30b-a3b-instruct-2507"
	Model__NanoGPT__Qwen3__32b__3                                                            ModelID = "qwen/qwen3-32b"
	Model__NanoGPT__Qwen3__5__122b__A10b__3_5                                                ModelID = "qwen3.5-122b-a10b"
	Model__NanoGPT__Qwen3__5__122b__A10b__3_5__Tee                                           ModelID = "TEE/qwen3.5-122b-a10b"
	Model__NanoGPT__Qwen3__5__122b__A10b__Thinking__3_5                                      ModelID = "qwen3.5-122b-a10b:thinking"
	Model__NanoGPT__Qwen3__5__27B__Anko__3_5                                                 ModelID = "Qwen3.5-27B-Anko"
	Model__NanoGPT__Qwen3__5__27B__Bluestar__Derestricted__3_5                               ModelID = "Qwen3.5-27B-BlueStar-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Bluestar__Derestricted__Lite__3_5                         ModelID = "Qwen3.5-27B-BlueStar-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Bluestar__V2__Derestricted__3_5                           ModelID = "Qwen3.5-27B-BlueStar-v2-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Bluestar__V2__Derestricted__Lite__3_5                     ModelID = "Qwen3.5-27B-BlueStar-v2-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Bluestar__V3__Derestricted__3_5                           ModelID = "Qwen3.5-27B-BlueStar-v3-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Bluestar__V3__Derestricted__Lite__3_5                     ModelID = "Qwen3.5-27B-BlueStar-v3-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Derestricted__3_5                                         ModelID = "Qwen3.5-27B-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Earica__Derestricted__3_5                                 ModelID = "Qwen3.5-27B-earica-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Earica__Derestricted__Lite__3_5                           ModelID = "Qwen3.5-27B-earica-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Infracelestial__3_5                                       ModelID = "Qwen3.5-27B-Infracelestial"
	Model__NanoGPT__Qwen3__5__27B__Marvin__Dpo__V2__Derestricted__3_5                        ModelID = "Qwen3.5-27B-Marvin-DPO-V2-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Marvin__Dpo__V2__Derestricted__Lite__3_5                  ModelID = "Qwen3.5-27B-Marvin-DPO-V2-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Marvin__V2__Derestricted__3_5                             ModelID = "Qwen3.5-27B-Marvin-V2-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Marvin__V2__Derestricted__Lite__3_5                       ModelID = "Qwen3.5-27B-Marvin-V2-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Musica__V1__3_5                                           ModelID = "Qwen3.5-27B-Musica-v1"
	Model__NanoGPT__Qwen3__5__27B__Nanovel__Derestricted__3_5                                ModelID = "Qwen3.5-27B-NaNovel-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Nanovel__Derestricted__Lite__3_5                          ModelID = "Qwen3.5-27B-NaNovel-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Omega__Evolution__V2__0__Derestricted                     ModelID = "Qwen3.5-27B-Omega-Evolution-v2.0-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Omega__Evolution__V2__0__Derestricted__Lite               ModelID = "Qwen3.5-27B-Omega-Evolution-v2.0-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Omega__Evolution__V2__2__Derestricted                     ModelID = "Qwen3.5-27B-Omega-Evolution-v2.2-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Omega__Evolution__V2__2__Derestricted__Lite               ModelID = "Qwen3.5-27B-Omega-Evolution-v2.2-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Queen__Derestricted__3_5                                  ModelID = "Qwen3.5-27B-Queen-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Queen__Derestricted__Lite__3_5                            ModelID = "Qwen3.5-27B-Queen-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Rprmax__V1__3_5                                           ModelID = "Qwen3.5-27B-RpRMax-v1"
	Model__NanoGPT__Qwen3__5__27B__Vivid__Durian__3_5                                        ModelID = "Qwen3.5-27B-Vivid-Durian"
	Model__NanoGPT__Qwen3__5__27B__Writer__Derestricted__3_5                                 ModelID = "Qwen3.5-27B-Writer-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Writer__Derestricted__Lite__3_5                           ModelID = "Qwen3.5-27B-Writer-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27B__Writer__V2__Derestricted__3_5                             ModelID = "Qwen3.5-27B-Writer-V2-Derestricted"
	Model__NanoGPT__Qwen3__5__27B__Writer__V2__Derestricted__Lite__3_5                       ModelID = "Qwen3.5-27B-Writer-V2-Derestricted-Lite"
	Model__NanoGPT__Qwen3__5__27b__3_5                                                       ModelID = "qwen3.5-27b"
	Model__NanoGPT__Qwen3__5__27b__3_5__Tee                                                  ModelID = "TEE/qwen3.5-27b"
	Model__NanoGPT__Qwen3__5__27b__Thinking__3_5                                             ModelID = "qwen3.5-27b:thinking"
	Model__NanoGPT__Qwen3__5__35b__A3b__3_5                                                  ModelID = "qwen3.5-35b-a3b"
	Model__NanoGPT__Qwen3__5__35b__A3b__Thinking__3_5                                        ModelID = "qwen3.5-35b-a3b:thinking"
	Model__NanoGPT__Qwen3__5__397b__A17b__3_5__Qwen                                          ModelID = "qwen/qwen3.5-397b-a17b"
	Model__NanoGPT__Qwen3__5__397b__A17b__3_5__Tee                                           ModelID = "TEE/qwen3.5-397b-a17b"
	Model__NanoGPT__Qwen3__5__397b__A17b__3_5__Thinking                                      ModelID = "qwen/qwen3.5-397b-a17b-thinking"
	Model__NanoGPT__Qwen3__5__9b__3_5                                                        ModelID = "qwen/qwen3.5-9b"
	Model__NanoGPT__Qwen3__5__Flash__3_5                                                     ModelID = "qwen3.5-flash"
	Model__NanoGPT__Qwen3__5__Flash__Thinking__3_5                                           ModelID = "qwen3.5-flash:thinking"
	Model__NanoGPT__Qwen3__5__Omni__Flash__3_5__Omni                                         ModelID = "qwen3.5-omni-flash"
	Model__NanoGPT__Qwen3__5__Omni__Plus__3_5__Omni                                          ModelID = "qwen3.5-omni-plus"
	Model__NanoGPT__Qwen3__5__Plus__3_5                                                      ModelID = "qwen/qwen3.5-plus"
	Model__NanoGPT__Qwen3__5__Plus__3_5__Thinking                                            ModelID = "qwen/qwen3.5-plus-thinking"
	Model__NanoGPT__Qwen3__6__27b__3_6                                                       ModelID = "alibaba/qwen3.6-27b"
	Model__NanoGPT__Qwen3__6__27b__Thinking__3_6                                             ModelID = "alibaba/qwen3.6-27b:thinking"
	Model__NanoGPT__Qwen3__6__35B__A3b__3_6                                                  ModelID = "qwen/Qwen3.6-35B-A3B"
	Model__NanoGPT__Qwen3__6__35B__A3b__Thinking__3_6                                        ModelID = "qwen/Qwen3.6-35B-A3B:thinking"
	Model__NanoGPT__Qwen3__6__35b__A3b__Uncensored__3_6                                      ModelID = "TEE/qwen3.6-35b-a3b-uncensored"
	Model__NanoGPT__Qwen3__6__Flash__3_6                                                     ModelID = "alibaba/qwen3.6-flash"
	Model__NanoGPT__Qwen3__6__Max__3_6__Preview                                              ModelID = "qwen3.6-max-preview"
	Model__NanoGPT__Qwen3__7__Max__3_7                                                       ModelID = "qwen3.7-max"
	Model__NanoGPT__Qwen3__7__Max__Thinking__3_7                                             ModelID = "qwen3.7-max:thinking"
	Model__NanoGPT__Qwen3__7__Plus__3_7                                                      ModelID = "qwen3.7-plus"
	Model__NanoGPT__Qwen3__7__Plus__Thinking__3_7                                            ModelID = "qwen3.7-plus:thinking"
	Model__NanoGPT__Qwen3__8B__3                                                             ModelID = "qwen/Qwen3-8B"
	Model__NanoGPT__Qwen3__Coder__3                                                          ModelID = "qwen/qwen3-coder"
	Model__NanoGPT__Qwen3__Coder__30b__A3b__3__Instruct                                      ModelID = "qwen3-coder-30b-a3b-instruct"
	Model__NanoGPT__Qwen3__Coder__Flash__3                                                   ModelID = "qwen/qwen3-coder-flash"
	Model__NanoGPT__Qwen3__Coder__Next__3                                                    ModelID = "qwen/qwen3-coder-next"
	Model__NanoGPT__Qwen3__Coder__Plus__3                                                    ModelID = "qwen/qwen3-coder-plus"
	Model__NanoGPT__Qwen3__Max__3                                                            ModelID = "qwen/qwen3-max"
	Model__NanoGPT__Qwen3__Max__3__20260123                                                  ModelID = "qwen3-max-2026-01-23"
	Model__NanoGPT__Qwen3__Next__80B__A3b__3__Instruct                                       ModelID = "qwen/Qwen3-Next-80B-A3B-Instruct"
	Model__NanoGPT__Qwen3__Next__80b__A3b__3__Thinking                                       ModelID = "qwen/qwen3-next-80b-a3b-thinking"
	Model__NanoGPT__Qwen3__Vl__235B__A22b__3__Instruct                                       ModelID = "qwen/Qwen3-VL-235B-A22B-Instruct"
	Model__NanoGPT__Qwen3__Vl__235b__A22b__3__InstructOriginal                               ModelID = "qwen3-vl-235b-a22b-instruct-original"
	Model__NanoGPT__Qwen3__Vl__235b__A22b__3__Thinking                                       ModelID = "qwen3-vl-235b-a22b-thinking"
	Model__NanoGPT__Qwen__2__5__72b__2_5__Instruct                                           ModelID = "qwen/qwen-2.5-72b-instruct"
	Model__NanoGPT__Qwen__3__6__Plus__3_6                                                    ModelID = "qwen-3.6-plus"
	Model__NanoGPT__Qwen__Long                                                               ModelID = "qwen-long"
	Model__NanoGPT__Qwen__Max                                                                ModelID = "qwen-max"
	Model__NanoGPT__Qwen__Plus                                                               ModelID = "qwen-plus"
	Model__NanoGPT__Qwen__Turbo                                                              ModelID = "qwen-turbo"
	Model__NanoGPT__Qwenlong__L1__32B                                                        ModelID = "Tongyi-Zhiwen/QwenLong-L1-32B"
	Model__NanoGPT__Qwerky__72B                                                              ModelID = "featherless-ai/Qwerky-72B"
	Model__NanoGPT__Qwq__32b                                                                 ModelID = "qwq-32b"
	Model__NanoGPT__Qwq__32b__Preview                                                        ModelID = "qwen/qwq-32b-preview"
	Model__NanoGPT__Remm__Slerp__L2__13b                                                     ModelID = "undi95/remm-slerp-l2-13b"
	Model__NanoGPT__Ring__2__6__1t__2_6                                                      ModelID = "inclusionai/ring-2.6-1t"
	Model__NanoGPT__Rnj__1__Instruct                                                         ModelID = "essentialai/rnj-1-instruct"
	Model__NanoGPT__Rocinante__12B__V1__1                                                    ModelID = "TheDrummer/Rocinante-12B-v1.1"
	Model__NanoGPT__Sarvam__105b                                                             ModelID = "sarvam-105b"
	Model__NanoGPT__Sarvam__30b                                                              ModelID = "sarvam-30b"
	Model__NanoGPT__Seed__2__0__Lite__2_0                                                    ModelID = "bytedance-seed/seed-2.0-lite"
	Model__NanoGPT__Shisa__V2__1__Llama3__3__70b                                             ModelID = "shisa-ai/shisa-v2.1-llama3.3-70b"
	Model__NanoGPT__Shisa__V2__Llama3__3__70b                                                ModelID = "shisa-ai/shisa-v2-llama3.3-70b"
	Model__NanoGPT__Skyfall__31B__V4__2                                                      ModelID = "TheDrummer/Skyfall-31B-v4.2"
	Model__NanoGPT__Skyfall__36b__V2                                                         ModelID = "TheDrummer/skyfall-36b-v2"
	Model__NanoGPT__Solar__Pro__3                                                            ModelID = "upstage/solar-pro-3"
	Model__NanoGPT__Sonar                                                                    ModelID = "sonar"
	Model__NanoGPT__Sonar__Deep__Research                                                    ModelID = "sonar-deep-research"
	Model__NanoGPT__Sonar__Pro                                                               ModelID = "sonar-pro"
	Model__NanoGPT__Sonar__Reasoning__Pro                                                    ModelID = "sonar-reasoning-pro"
	Model__NanoGPT__Starcannon__Unleashed__12B__V1__0                                        ModelID = "VongolaChouko/Starcannon-Unleashed-12B-v1.0"
	Model__NanoGPT__Step__2__16k__Exp__2                                                     ModelID = "step-2-16k-exp"
	Model__NanoGPT__Step__2__Mini__2                                                         ModelID = "step-2-mini"
	Model__NanoGPT__Step__3                                                                  ModelID = "step-3"
	Model__NanoGPT__Step__3__5__Flash__2603__3_5                                             ModelID = "stepfun-ai/step-3.5-flash-2603"
	Model__NanoGPT__Step__3__5__Flash__3_5                                                   ModelID = "stepfun-ai/step-3.5-flash"
	Model__NanoGPT__Step__3__7__Flash__Thinking__3_7                                         ModelID = "stepfun/step-3.7-flash:thinking"
	Model__NanoGPT__Step__R1__V__Mini                                                        ModelID = "step-r1-v-mini"
	Model__NanoGPT__Tongyi__Deepresearch__30B__A3b                                           ModelID = "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B"
	Model__NanoGPT__Trinity__Large__Thinking                                                 ModelID = "arcee-ai/trinity-large-thinking"
	Model__NanoGPT__Trinity__Mini                                                            ModelID = "arcee-ai/trinity-mini"
	Model__NanoGPT__Universal__Summarizer                                                    ModelID = "universal-summarizer"
	Model__NanoGPT__Unslopnemo__12B__V4__1                                                   ModelID = "TheDrummer/UnslopNemo-12B-v4.1"
	Model__NanoGPT__V0__1__0__Md__1_0                                                        ModelID = "v0-1.0-md"
	Model__NanoGPT__V0__1__5__Lg__1_5                                                        ModelID = "v0-1.5-lg"
	Model__NanoGPT__V0__1__5__Md__1_5                                                        ModelID = "v0-1.5-md"
	Model__NanoGPT__Veiled__Calla__12B                                                       ModelID = "soob3123/Veiled-Calla-12B"
	Model__NanoGPT__Venice__Uncensored                                                       ModelID = "venice-uncensored"
	Model__NanoGPT__Venice__Uncensored__Web                                                  ModelID = "venice-uncensored:web"
	Model__NanoGPT__Wayfarer__Large__70B__Llama__3__3                                        ModelID = "LatitudeGames/Wayfarer-Large-70B-Llama-3.3"
	Model__NanoGPT__WizardLM__2__8x22b__2                                                    ModelID = "microsoft/wizardlm-2-8x22b"
	Model__NanoGPT__Yi__Large                                                                ModelID = "yi-large"
	Model__NanoGPT__Yi__Lightning                                                            ModelID = "yi-lightning"
	Model__NanoGPT__Yi__Medium__200k                                                         ModelID = "yi-medium-200k"
	Model__NearAI__Claude__Haiku__4_5                                                        ModelID = "anthropic/claude-haiku-4-5"
	Model__NearAI__Claude__Opus__4_6                                                         ModelID = "anthropic/claude-opus-4-6"
	Model__NearAI__Claude__Opus__4_7                                                         ModelID = "anthropic/claude-opus-4-7"
	Model__NearAI__Claude__Sonnet__4_5                                                       ModelID = "anthropic/claude-sonnet-4-5"
	Model__NearAI__Claude__Sonnet__4_6                                                       ModelID = "anthropic/claude-sonnet-4-6"
	Model__NearAI__Flux__2__Klein__4B                                                        ModelID = "black-forest-labs/FLUX.2-klein-4B"
	Model__NearAI__GLM__5__1__Fp8__5_1                                                       ModelID = "zai-org/GLM-5.1-FP8"
	Model__NearAI__GPT__4_1                                                                  ModelID = "openai/gpt-4.1"
	Model__NearAI__GPT__4__1__Mini__4_1                                                      ModelID = "openai/gpt-4.1-mini"
	Model__NearAI__GPT__4__1__Nano__4_1                                                      ModelID = "openai/gpt-4.1-nano"
	Model__NearAI__GPT__5                                                                    ModelID = "openai/gpt-5"
	Model__NearAI__GPT__5_1                                                                  ModelID = "openai/gpt-5.1"
	Model__NearAI__GPT__5_2                                                                  ModelID = "openai/gpt-5.2"
	Model__NearAI__GPT__5_4                                                                  ModelID = "openai/gpt-5.4"
	Model__NearAI__GPT__5_5                                                                  ModelID = "openai/gpt-5.5"
	Model__NearAI__GPT__5__4__Mini__5_4                                                      ModelID = "openai/gpt-5.4-mini"
	Model__NearAI__GPT__5__4__Nano__5_4                                                      ModelID = "openai/gpt-5.4-nano"
	Model__NearAI__GPT__5__Mini__5                                                           ModelID = "openai/gpt-5-mini"
	Model__NearAI__GPT__5__Nano__5                                                           ModelID = "openai/gpt-5-nano"
	Model__NearAI__GPT__Oss__120b                                                            ModelID = "openai/gpt-oss-120b"
	Model__NearAI__Gemini__2__5__Flash__2_5                                                  ModelID = "google/gemini-2.5-flash"
	Model__NearAI__Gemini__2__5__Flash__Lite__2_5                                            ModelID = "google/gemini-2.5-flash-lite"
	Model__NearAI__Gemini__2__5__Pro__2_5                                                    ModelID = "google/gemini-2.5-pro"
	Model__NearAI__Gemini__3__1__Flash__Lite__3_1                                            ModelID = "google/gemini-3.1-flash-lite"
	Model__NearAI__Gemini__3__5__Flash__3_5                                                  ModelID = "google/gemini-3.5-flash"
	Model__NearAI__Gemini__3__Pro__3                                                         ModelID = "google/gemini-3-pro"
	Model__NearAI__Gemma__4__31B__It__4                                                      ModelID = "google/gemma-4-31B-it"
	Model__NearAI__O3__3                                                                     ModelID = "openai/o3"
	Model__NearAI__O3__3__Mini                                                               ModelID = "openai/o3-mini"
	Model__NearAI__O4__4__Mini                                                               ModelID = "openai/o4-mini"
	Model__NearAI__Qwen3__30B__A3b__Instruct__2507__3__Instruct                              ModelID = "Qwen/Qwen3-30B-A3B-Instruct-2507"
	Model__NearAI__Qwen3__5__122B__A10b__3_5                                                 ModelID = "Qwen/Qwen3.5-122B-A10B"
	Model__NearAI__Qwen3__6__35B__A3b__Fp8__3_6                                              ModelID = "Qwen/Qwen3.6-35B-A3B-FP8"
	Model__NearAI__Qwen3__Embedding__0__6B__3                                                ModelID = "Qwen/Qwen3-Embedding-0.6B"
	Model__NearAI__Qwen3__Reranker__0__6B__3                                                 ModelID = "Qwen/Qwen3-Reranker-0.6B"
	Model__NearAI__Qwen3__Vl__30B__A3b__3__Instruct                                          ModelID = "Qwen/Qwen3-VL-30B-A3B-Instruct"
	Model__NearAI__Whisper__Large__V3__3                                                     ModelID = "openai/whisper-large-v3"
	Model__Nebius__DeepSeek__V3__2                                                           ModelID = "deepseek-ai/DeepSeek-V3.2"
	Model__Nebius__DeepSeek__V3__2__Fast                                                     ModelID = "deepseek-ai/DeepSeek-V3.2-fast"
	Model__Nebius__DeepSeek__V4__Pro__Thinking                                               ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__Nebius__GLM__5                                                                    ModelID = "zai-org/GLM-5"
	Model__Nebius__GLM__5_2                                                                  ModelID = "zai-org/GLM-5.2"
	Model__Nebius__GPT__Oss__120b                                                            ModelID = "openai/gpt-oss-120b"
	Model__Nebius__GPT__Oss__120b__Fast                                                      ModelID = "openai/gpt-oss-120b-fast"
	Model__Nebius__Gemma__3__27b__It__3                                                      ModelID = "google/gemma-3-27b-it"
	Model__Nebius__Hermes__4__405B__4                                                        ModelID = "NousResearch/Hermes-4-405B"
	Model__Nebius__Hermes__4__70B__4                                                         ModelID = "NousResearch/Hermes-4-70B"
	Model__Nebius__Intellect__3                                                              ModelID = "PrimeIntellect/INTELLECT-3"
	Model__Nebius__Kimi__K2__5__2_5                                                          ModelID = "moonshotai/Kimi-K2.5"
	Model__Nebius__Kimi__K2__5__2_5__Fast                                                    ModelID = "moonshotai/Kimi-K2.5-fast"
	Model__Nebius__Llama__3__1__Nemotron__Ultra__253B__V1                                    ModelID = "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1"
	Model__Nebius__Llama__3__3__70B__3_3__Instruct                                           ModelID = "meta-llama/Llama-3.3-70B-Instruct"
	Model__Nebius__MiniMax__M2__5__2_5                                                       ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__Nebius__MiniMax__M2__5__2_5__Fast                                                 ModelID = "MiniMaxAI/MiniMax-M2.5-fast"
	Model__Nebius__Nemotron__3__Nano__3__Omni                                                ModelID = "nvidia/Nemotron-3-Nano-Omni"
	Model__Nebius__Nemotron__3__Super__120b__A12b__3                                         ModelID = "nvidia/nemotron-3-super-120b-a12b"
	Model__Nebius__Nvidia__Nemotron__3__Nano__30B__A3b                                       ModelID = "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B"
	Model__Nebius__Qwen2__5__Vl__72B__2_5__Instruct                                          ModelID = "Qwen/Qwen2.5-VL-72B-Instruct"
	Model__Nebius__Qwen3__235B__A22b__Instruct__2507__3__Instruct                            ModelID = "Qwen/Qwen3-235B-A22B-Instruct-2507"
	Model__Nebius__Qwen3__235B__A22b__Thinking__2507__3__ThinkingFast                        ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507-fast"
	Model__Nebius__Qwen3__30B__A3b__Instruct__2507__3__Instruct                              ModelID = "Qwen/Qwen3-30B-A3B-Instruct-2507"
	Model__Nebius__Qwen3__32B__3                                                             ModelID = "Qwen/Qwen3-32B"
	Model__Nebius__Qwen3__5__397B__A17b__3_5                                                 ModelID = "Qwen/Qwen3.5-397B-A17B"
	Model__Nebius__Qwen3__5__397B__A17b__3_5__Fast                                           ModelID = "Qwen/Qwen3.5-397B-A17B-fast"
	Model__Nebius__Qwen3__Embedding__8B__3                                                   ModelID = "Qwen/Qwen3-Embedding-8B"
	Model__Nebius__Qwen3__Next__80B__A3b__3__Thinking                                        ModelID = "Qwen/Qwen3-Next-80B-A3B-Thinking"
	Model__Nebius__Qwen3__Next__80B__A3b__3__ThinkingFast                                    ModelID = "Qwen/Qwen3-Next-80B-A3B-Thinking-fast"
	Model__Neon__Claude__Haiku__4_5                                                          ModelID = "claude-haiku-4-5"
	Model__Neon__Claude__Opus__4_1                                                           ModelID = "claude-opus-4-1"
	Model__Neon__Claude__Opus__4_5                                                           ModelID = "claude-opus-4-5"
	Model__Neon__Claude__Opus__4_6                                                           ModelID = "claude-opus-4-6"
	Model__Neon__Claude__Opus__4_7                                                           ModelID = "claude-opus-4-7"
	Model__Neon__Claude__Opus__4_8                                                           ModelID = "claude-opus-4-8"
	Model__Neon__Claude__Sonnet__4                                                           ModelID = "claude-sonnet-4"
	Model__Neon__Claude__Sonnet__4_5                                                         ModelID = "claude-sonnet-4-5"
	Model__Neon__Claude__Sonnet__4_6                                                         ModelID = "claude-sonnet-4-6"
	Model__Neon__GPT__5                                                                      ModelID = "gpt-5"
	Model__Neon__GPT__5_1                                                                    ModelID = "gpt-5-1"
	Model__Neon__GPT__5_2                                                                    ModelID = "gpt-5-2"
	Model__Neon__GPT__5_4                                                                    ModelID = "gpt-5-4"
	Model__Neon__GPT__5__1__Codex__Max__5_1                                                  ModelID = "gpt-5-1-codex-max"
	Model__Neon__GPT__5__1__Codex__Mini__5_1                                                 ModelID = "gpt-5-1-codex-mini"
	Model__Neon__GPT__5__2__Codex__5_2                                                       ModelID = "gpt-5-2-codex"
	Model__Neon__GPT__5__3__Codex__5_3                                                       ModelID = "gpt-5-3-codex"
	Model__Neon__GPT__5__4__Mini__5_4                                                        ModelID = "gpt-5-4-mini"
	Model__Neon__GPT__5__4__Nano__5_4                                                        ModelID = "gpt-5-4-nano"
	Model__Neon__GPT__5__Mini__5                                                             ModelID = "gpt-5-mini"
	Model__Neon__GPT__5__Nano__5                                                             ModelID = "gpt-5-nano"
	Model__Neon__GPT__Oss__120b                                                              ModelID = "gpt-oss-120b"
	Model__Neon__GPT__Oss__20b                                                               ModelID = "gpt-oss-20b"
	Model__Neon__Gemini__2__5__Flash__2_5                                                    ModelID = "gemini-2-5-flash"
	Model__Neon__Gemini__2__5__Pro__2_5                                                      ModelID = "gemini-2-5-pro"
	Model__Neon__Gemini__3__1__Flash__Lite__3_1                                              ModelID = "gemini-3-1-flash-lite"
	Model__Neon__Gemini__3__1__Pro__3_1                                                      ModelID = "gemini-3-1-pro"
	Model__Neon__Gemini__3__5__Flash__3_5                                                    ModelID = "gemini-3-5-flash"
	Model__Neon__Gemini__3__Flash__3                                                         ModelID = "gemini-3-flash"
	Model__Neon__Gemini__3__Pro__3                                                           ModelID = "gemini-3-pro"
	Model__Neon__Gemma__3__12b__3                                                            ModelID = "gemma-3-12b"
	Model__Neon__Llama__4__Maverick__4                                                       ModelID = "llama-4-maverick"
	Model__Neon__Meta__Llama__3__1__8b__3_1__Instruct                                        ModelID = "meta-llama-3-1-8b-instruct"
	Model__Neon__Meta__Llama__3__3__70b__3_3__Instruct                                       ModelID = "meta-llama-3-3-70b-instruct"
	Model__Neon__Qwen35__122b__A10b__35                                                      ModelID = "qwen35-122b-a10b"
	Model__Neon__Qwen3__Next__80b__A3b__3__Instruct                                          ModelID = "qwen3-next-80b-a3b-instruct"
	Model__Neuralwatt__GLM__5_2                                                              ModelID = "glm-5.2"
	Model__Neuralwatt__GLM__5_2__Fast                                                        ModelID = "glm-5.2-fast"
	Model__Neuralwatt__GLM__5__2__Flex__5_2                                                  ModelID = "glm-5.2-flex"
	Model__Neuralwatt__GLM__5__2__Short__5_2                                                 ModelID = "glm-5.2-short"
	Model__Neuralwatt__GLM__5__2__Short__5_2__Fast                                           ModelID = "glm-5.2-short-fast"
	Model__Neuralwatt__GLM__5__2__Short__Fast__Flex__5_2                                     ModelID = "glm-5.2-short-fast-flex"
	Model__Neuralwatt__GLM__5__2__Short__Flex__5_2                                           ModelID = "glm-5.2-short-flex"
	Model__Neuralwatt__Kimi__K2__5__2_5                                                      ModelID = "moonshotai/Kimi-K2.5"
	Model__Neuralwatt__Kimi__K2__5__2_5__Fast                                                ModelID = "kimi-k2.5-fast"
	Model__Neuralwatt__Kimi__K2__6__2_6                                                      ModelID = "moonshotai/Kimi-K2.6"
	Model__Neuralwatt__Kimi__K2__6__2_6__Fast                                                ModelID = "kimi-k2.6-fast"
	Model__Neuralwatt__Kimi__K2__6__Flex                                                     ModelID = "kimi-k2.6-flex"
	Model__Neuralwatt__Kimi__K2__7__2_7__Code                                                ModelID = "moonshotai/Kimi-K2.7-Code"
	Model__Neuralwatt__Kimi__K2__7__Code__Flex                                               ModelID = "kimi-k2.7-code-flex"
	Model__Neuralwatt__Qwen3__5__397B__A17b__Fp8__3_5                                        ModelID = "Qwen/Qwen3.5-397B-A17B-FP8"
	Model__Neuralwatt__Qwen3__5__397b__3_5__Fast                                             ModelID = "qwen3.5-397b-fast"
	Model__Neuralwatt__Qwen3__6__35B__A3b__3_6                                               ModelID = "Qwen/Qwen3.6-35B-A3B"
	Model__Neuralwatt__Qwen3__6__35b__3_6__Fast                                              ModelID = "qwen3.6-35b-fast"
	Model__Nova__Nova__2__Lite__V1__2                                                        ModelID = "nova-2-lite-v1"
	Model__Nova__Nova__2__Pro__V1__2                                                         ModelID = "nova-2-pro-v1"
	Model__NovitaAI__Autoglm__Phone__9b__Multilingual                                        ModelID = "zai-org/autoglm-phone-9b-multilingual"
	Model__NovitaAI__Baichuan__M2__32b                                                       ModelID = "baichuan/baichuan-m2-32b"
	Model__NovitaAI__DeepSeek__Ocr                                                           ModelID = "deepseek/deepseek-ocr"
	Model__NovitaAI__DeepSeek__Ocr__2                                                        ModelID = "deepseek/deepseek-ocr-2"
	Model__NovitaAI__DeepSeek__Prover__V2__671b                                              ModelID = "deepseek/deepseek-prover-v2-671b"
	Model__NovitaAI__DeepSeek__R1__0528__Qwen3__8b                                           ModelID = "deepseek/deepseek-r1-0528-qwen3-8b"
	Model__NovitaAI__DeepSeek__R1__0528__Thinking                                            ModelID = "deepseek/deepseek-r1-0528"
	Model__NovitaAI__DeepSeek__R1__Distill__Llama__70b__Thinking                             ModelID = "deepseek/deepseek-r1-distill-llama-70b"
	Model__NovitaAI__DeepSeek__R1__Distill__Qwen__14b__Thinking                              ModelID = "deepseek/deepseek-r1-distill-qwen-14b"
	Model__NovitaAI__DeepSeek__R1__Distill__Qwen__32b__Thinking                              ModelID = "deepseek/deepseek-r1-distill-qwen-32b"
	Model__NovitaAI__DeepSeek__R1__Turbo                                                     ModelID = "deepseek/deepseek-r1-turbo"
	Model__NovitaAI__DeepSeek__V3__0324                                                      ModelID = "deepseek/deepseek-v3-0324"
	Model__NovitaAI__DeepSeek__V3__1                                                         ModelID = "deepseek/deepseek-v3.1"
	Model__NovitaAI__DeepSeek__V3__1__Terminus                                               ModelID = "deepseek/deepseek-v3.1-terminus"
	Model__NovitaAI__DeepSeek__V3__2                                                         ModelID = "deepseek/deepseek-v3.2"
	Model__NovitaAI__DeepSeek__V3__2__Exp                                                    ModelID = "deepseek/deepseek-v3.2-exp"
	Model__NovitaAI__DeepSeek__V3__Turbo                                                     ModelID = "deepseek/deepseek-v3-turbo"
	Model__NovitaAI__DeepSeek__V4__Flash                                                     ModelID = "deepseek/deepseek-v4-flash"
	Model__NovitaAI__DeepSeek__V4__Pro__Thinking                                             ModelID = "deepseek/deepseek-v4-pro"
	Model__NovitaAI__Ernie__4__5__21B__A3b__4_5                                              ModelID = "baidu/ernie-4.5-21B-a3b"
	Model__NovitaAI__Ernie__4__5__21B__A3b__4_5__Thinking                                    ModelID = "baidu/ernie-4.5-21B-a3b-thinking"
	Model__NovitaAI__Ernie__4__5__300b__A47b__Paddle__4_5                                    ModelID = "baidu/ernie-4.5-300b-a47b-paddle"
	Model__NovitaAI__Ernie__4__5__Vl__28b__A3b__4_5                                          ModelID = "baidu/ernie-4.5-vl-28b-a3b"
	Model__NovitaAI__Ernie__4__5__Vl__28b__A3b__4_5__Thinking                                ModelID = "baidu/ernie-4.5-vl-28b-a3b-thinking"
	Model__NovitaAI__Ernie__4__5__Vl__424b__A47b__4_5                                        ModelID = "baidu/ernie-4.5-vl-424b-a47b"
	Model__NovitaAI__GLM__4_5                                                                ModelID = "zai-org/glm-4.5"
	Model__NovitaAI__GLM__4_6                                                                ModelID = "zai-org/glm-4.6"
	Model__NovitaAI__GLM__4_7                                                                ModelID = "zai-org/glm-4.7"
	Model__NovitaAI__GLM__4__5__Air__4_5                                                     ModelID = "zai-org/glm-4.5-air"
	Model__NovitaAI__GLM__4__5v__4_5                                                         ModelID = "zai-org/glm-4.5v"
	Model__NovitaAI__GLM__4__6v__4_6                                                         ModelID = "zai-org/glm-4.6v"
	Model__NovitaAI__GLM__4__7__Flash__4_7                                                   ModelID = "zai-org/glm-4.7-flash"
	Model__NovitaAI__GLM__5                                                                  ModelID = "zai-org/glm-5"
	Model__NovitaAI__GLM__5_1                                                                ModelID = "zai-org/glm-5.1"
	Model__NovitaAI__GLM__5_2                                                                ModelID = "zai-org/glm-5.2"
	Model__NovitaAI__GPT__Oss__120b                                                          ModelID = "openai/gpt-oss-120b"
	Model__NovitaAI__GPT__Oss__20b                                                           ModelID = "openai/gpt-oss-20b"
	Model__NovitaAI__Gemma__3__12b__It__3                                                    ModelID = "google/gemma-3-12b-it"
	Model__NovitaAI__Gemma__3__27b__It__3                                                    ModelID = "google/gemma-3-27b-it"
	Model__NovitaAI__Gemma__4__26b__A4b__It__4                                               ModelID = "google/gemma-4-26b-a4b-it"
	Model__NovitaAI__Gemma__4__31b__It__4                                                    ModelID = "google/gemma-4-31b-it"
	Model__NovitaAI__Hermes__2__Pro__Llama__3__8b__2                                         ModelID = "nousresearch/hermes-2-pro-llama-3-8b"
	Model__NovitaAI__Kat__Coder__Pro                                                         ModelID = "kwaipilot/kat-coder-pro"
	Model__NovitaAI__Kimi__K2__0905__2                                                       ModelID = "moonshotai/kimi-k2-0905"
	Model__NovitaAI__Kimi__K2__2__Instruct                                                   ModelID = "moonshotai/kimi-k2-instruct"
	Model__NovitaAI__Kimi__K2__2__Thinking                                                   ModelID = "moonshotai/kimi-k2-thinking"
	Model__NovitaAI__Kimi__K2__5__2_5                                                        ModelID = "moonshotai/kimi-k2.5"
	Model__NovitaAI__Kimi__K2__6__2_6                                                        ModelID = "moonshotai/kimi-k2.6"
	Model__NovitaAI__L31__70b__Euryale__V2__2                                                ModelID = "sao10K/l31-70b-euryale-v2.2"
	Model__NovitaAI__L3__70b__Euryale__V2__1                                                 ModelID = "sao10K/l3-70b-euryale-v2.1"
	Model__NovitaAI__L3__8B__Stheno__V3__2                                                   ModelID = "sao10K/L3-8B-stheno-v3.2"
	Model__NovitaAI__L3__8b__Lunaris                                                         ModelID = "sao10K/l3-8b-lunaris"
	Model__NovitaAI__Ling__2__6__1t__2_6                                                     ModelID = "inclusionai/ling-2.6-1t"
	Model__NovitaAI__Ling__2__6__Flash__2_6                                                  ModelID = "inclusionai/ling-2.6-flash"
	Model__NovitaAI__Llama__3__1__8b__3_1__Instruct                                          ModelID = "meta-llama/llama-3.1-8b-instruct"
	Model__NovitaAI__Llama__3__2__3b__3_2__Instruct                                          ModelID = "meta-llama/llama-3.2-3b-instruct"
	Model__NovitaAI__Llama__3__3__70b__3_3__Instruct                                         ModelID = "meta-llama/llama-3.3-70b-instruct"
	Model__NovitaAI__Llama__3__70b__3__Instruct                                              ModelID = "meta-llama/llama-3-70b-instruct"
	Model__NovitaAI__Llama__3__8b__3__Instruct                                               ModelID = "meta-llama/llama-3-8b-instruct"
	Model__NovitaAI__Llama__4__Maverick__17b__128e__Instruct__Fp8__4__Instruct               ModelID = "meta-llama/llama-4-maverick-17b-128e-instruct-fp8"
	Model__NovitaAI__Llama__4__Scout__17b__16e__4__Instruct                                  ModelID = "meta-llama/llama-4-scout-17b-16e-instruct"
	Model__NovitaAI__Mimo__V2__2__Pro                                                        ModelID = "xiaomimimo/mimo-v2-pro"
	Model__NovitaAI__Mimo__V2__5__2_5__Pro                                                   ModelID = "xiaomimimo/mimo-v2.5-pro"
	Model__NovitaAI__Mimo__V2__Flash                                                         ModelID = "xiaomimimo/mimo-v2-flash"
	Model__NovitaAI__MiniMax__M1__80k__1                                                     ModelID = "minimaxai/minimax-m1-80k"
	Model__NovitaAI__MiniMax__M2__1__2_1                                                     ModelID = "minimax/minimax-m2.1"
	Model__NovitaAI__MiniMax__M2__2                                                          ModelID = "minimax/minimax-m2"
	Model__NovitaAI__MiniMax__M2__5__2_5                                                     ModelID = "minimax/minimax-m2.5"
	Model__NovitaAI__MiniMax__M2__5__2_5__Highspeed                                          ModelID = "minimax/minimax-m2.5-highspeed"
	Model__NovitaAI__MiniMax__M2__7__2_7                                                     ModelID = "minimax/minimax-m2.7"
	Model__NovitaAI__MiniMax__M2__7__2_7__Highspeed                                          ModelID = "minimax/minimax-m2.7-highspeed"
	Model__NovitaAI__Mistral__Nemo                                                           ModelID = "mistralai/mistral-nemo"
	Model__NovitaAI__Mythomax__L2__13b                                                       ModelID = "gryphe/mythomax-l2-13b"
	Model__NovitaAI__Paddleocr__Vl                                                           ModelID = "paddlepaddle/paddleocr-vl"
	Model__NovitaAI__Qwen2__5__7b__2_5__Instruct                                             ModelID = "qwen/qwen2.5-7b-instruct"
	Model__NovitaAI__Qwen2__5__Vl__72b__2_5__Instruct                                        ModelID = "qwen/qwen2.5-vl-72b-instruct"
	Model__NovitaAI__Qwen3__235b__A22b__Fp8__3                                               ModelID = "qwen/qwen3-235b-a22b-fp8"
	Model__NovitaAI__Qwen3__235b__A22b__Instruct__2507__3__Instruct                          ModelID = "qwen/qwen3-235b-a22b-instruct-2507"
	Model__NovitaAI__Qwen3__235b__A22b__Thinking__2507__3__Thinking                          ModelID = "qwen/qwen3-235b-a22b-thinking-2507"
	Model__NovitaAI__Qwen3__30b__A3b__Fp8__3                                                 ModelID = "qwen/qwen3-30b-a3b-fp8"
	Model__NovitaAI__Qwen3__32b__Fp8__3                                                      ModelID = "qwen/qwen3-32b-fp8"
	Model__NovitaAI__Qwen3__4b__Fp8__3                                                       ModelID = "qwen/qwen3-4b-fp8"
	Model__NovitaAI__Qwen3__5__122b__A10b__3_5                                               ModelID = "qwen/qwen3.5-122b-a10b"
	Model__NovitaAI__Qwen3__5__27b__3_5                                                      ModelID = "qwen/qwen3.5-27b"
	Model__NovitaAI__Qwen3__5__35b__A3b__3_5                                                 ModelID = "qwen/qwen3.5-35b-a3b"
	Model__NovitaAI__Qwen3__5__397b__A17b__3_5                                               ModelID = "qwen/qwen3.5-397b-a17b"
	Model__NovitaAI__Qwen3__7__Max__3_7                                                      ModelID = "qwen/qwen3.7-max"
	Model__NovitaAI__Qwen3__8b__Fp8__3                                                       ModelID = "qwen/qwen3-8b-fp8"
	Model__NovitaAI__Qwen3__Coder__30b__A3b__3__Instruct                                     ModelID = "qwen/qwen3-coder-30b-a3b-instruct"
	Model__NovitaAI__Qwen3__Coder__480b__A35b__3__Instruct                                   ModelID = "qwen/qwen3-coder-480b-a35b-instruct"
	Model__NovitaAI__Qwen3__Coder__Next__3                                                   ModelID = "qwen/qwen3-coder-next"
	Model__NovitaAI__Qwen3__Max__3                                                           ModelID = "qwen/qwen3-max"
	Model__NovitaAI__Qwen3__Next__80b__A3b__3__Instruct                                      ModelID = "qwen/qwen3-next-80b-a3b-instruct"
	Model__NovitaAI__Qwen3__Next__80b__A3b__3__Thinking                                      ModelID = "qwen/qwen3-next-80b-a3b-thinking"
	Model__NovitaAI__Qwen3__Omni__30b__A3b__3__InstructOmni                                  ModelID = "qwen/qwen3-omni-30b-a3b-instruct"
	Model__NovitaAI__Qwen3__Omni__30b__A3b__3__ThinkingOmni                                  ModelID = "qwen/qwen3-omni-30b-a3b-thinking"
	Model__NovitaAI__Qwen3__Vl__235b__A22b__3__Instruct                                      ModelID = "qwen/qwen3-vl-235b-a22b-instruct"
	Model__NovitaAI__Qwen3__Vl__235b__A22b__3__Thinking                                      ModelID = "qwen/qwen3-vl-235b-a22b-thinking"
	Model__NovitaAI__Qwen3__Vl__30b__A3b__3__Instruct                                        ModelID = "qwen/qwen3-vl-30b-a3b-instruct"
	Model__NovitaAI__Qwen3__Vl__30b__A3b__3__Thinking                                        ModelID = "qwen/qwen3-vl-30b-a3b-thinking"
	Model__NovitaAI__Qwen3__Vl__8b__3__Instruct                                              ModelID = "qwen/qwen3-vl-8b-instruct"
	Model__NovitaAI__Qwen__2__5__72b__2_5__Instruct                                          ModelID = "qwen/qwen-2.5-72b-instruct"
	Model__NovitaAI__Qwen__Mt__Plus                                                          ModelID = "qwen/qwen-mt-plus"
	Model__NovitaAI__Ring__2__6__1t__2_6                                                     ModelID = "inclusionai/ring-2.6-1t"
	Model__NovitaAI__WizardLM__2__8x22b__2                                                   ModelID = "microsoft/wizardlm-2-8x22b"
	Model__Nvidia__Active__Speaker__Detection                                                ModelID = "nvidia/active-speaker-detection"
	Model__Nvidia__Bevformer                                                                 ModelID = "nvidia/bevformer"
	Model__Nvidia__Bge__M3                                                                   ModelID = "baai/bge-m3"
	Model__Nvidia__Cosmos__Predict1__5b                                                      ModelID = "nvidia/cosmos-predict1-5b"
	Model__Nvidia__Cosmos__Transfer1__7b                                                     ModelID = "nvidia/cosmos-transfer1-7b"
	Model__Nvidia__Cosmos__Transfer2__5__2b                                                  ModelID = "nvidia/cosmos-transfer2_5-2b"
	Model__Nvidia__DeepSeek__V4__Flash                                                       ModelID = "deepseek-ai/deepseek-v4-flash"
	Model__Nvidia__DeepSeek__V4__Pro__Thinking                                               ModelID = "deepseek-ai/deepseek-v4-pro"
	Model__Nvidia__Dracarys__Llama__3__1__70b__Instruct                                      ModelID = "abacusai/dracarys-llama-3_1-70b-instruct"
	Model__Nvidia__Esm2__650m                                                                ModelID = "meta/esm2-650m"
	Model__Nvidia__Esmfold                                                                   ModelID = "meta/esmfold"
	Model__Nvidia__Flux__1__Dev                                                              ModelID = "black-forest-labs/flux.1-dev"
	Model__Nvidia__Flux__1__Kontext__Dev                                                     ModelID = "black-forest-labs/flux_1-kontext-dev"
	Model__Nvidia__Flux__1__Schnell                                                          ModelID = "black-forest-labs/flux_1-schnell"
	Model__Nvidia__Flux__2__Klein__4b                                                        ModelID = "black-forest-labs/flux_2-klein-4b"
	Model__Nvidia__GLM__5_2                                                                  ModelID = "z-ai/glm-5.2"
	Model__Nvidia__GPT__Oss__120b                                                            ModelID = "openai/gpt-oss-120b"
	Model__Nvidia__GPT__Oss__20b                                                             ModelID = "openai/gpt-oss-20b"
	Model__Nvidia__Gemma__2__2b__It__2                                                       ModelID = "google/gemma-2-2b-it"
	Model__Nvidia__Gemma__3n__E2b__It                                                        ModelID = "google/gemma-3n-e2b-it"
	Model__Nvidia__Gemma__3n__E4b__It                                                        ModelID = "google/gemma-3n-e4b-it"
	Model__Nvidia__Gemma__4__31b__It__4                                                      ModelID = "google/gemma-4-31b-it"
	Model__Nvidia__Gliner__Pii                                                               ModelID = "nvidia/gliner-pii"
	Model__Nvidia__Google__Paligemma                                                         ModelID = "google/google-paligemma"
	Model__Nvidia__Kimi__K2__6__2_6                                                          ModelID = "moonshotai/kimi-k2.6"
	Model__Nvidia__Kimi__K2__Instruct__0905__2__Instruct                                     ModelID = "moonshotai/kimi-k2-instruct-0905"
	Model__Nvidia__Llama__3__1__70b__3_1__Instruct                                           ModelID = "meta/llama-3.1-70b-instruct"
	Model__Nvidia__Llama__3__1__8b__3_1__Instruct                                            ModelID = "meta/llama-3.1-8b-instruct"
	Model__Nvidia__Llama__3__1__Nemotron__Safety__Guard__8b__V3                              ModelID = "nvidia/llama-3_1-nemotron-safety-guard-8b-v3"
	Model__Nvidia__Llama__3__2__11b__3_2__VisionInstruct                                     ModelID = "meta/llama-3.2-11b-vision-instruct"
	Model__Nvidia__Llama__3__2__1b__3_2__Instruct                                            ModelID = "meta/llama-3.2-1b-instruct"
	Model__Nvidia__Llama__3__2__3b__3_2__Instruct                                            ModelID = "meta/llama-3.2-3b-instruct"
	Model__Nvidia__Llama__3__2__90b__3_2__VisionInstruct                                     ModelID = "meta/llama-3.2-90b-vision-instruct"
	Model__Nvidia__Llama__3__2__Nemoretriever__300m__Embed__V1                               ModelID = "nvidia/llama-3_2-nemoretriever-300m-embed-v1"
	Model__Nvidia__Llama__3__3__70b__3_3__Instruct                                           ModelID = "meta/llama-3.3-70b-instruct"
	Model__Nvidia__Llama__4__Maverick__17b__128e__4__Instruct                                ModelID = "meta/llama-4-maverick-17b-128e-instruct"
	Model__Nvidia__Llama__Guard__4__12b__4                                                   ModelID = "meta/llama-guard-4-12b"
	Model__Nvidia__Llama__Nemotron__Embed__Vl__1b__V2                                        ModelID = "nvidia/llama-nemotron-embed-vl-1b-v2"
	Model__Nvidia__Llama__Nemotron__Rerank__Vl__1b__V2                                       ModelID = "nvidia/llama-nemotron-rerank-vl-1b-v2"
	Model__Nvidia__Magistral__Small__2506                                                    ModelID = "mistralai/magistral-small-2506"
	Model__Nvidia__Magpie__Tts__Zeroshot                                                     ModelID = "nvidia/magpie-tts-zeroshot"
	Model__Nvidia__MiniMax__M2__7__2_7                                                       ModelID = "minimaxai/minimax-m2.7"
	Model__Nvidia__MiniMax__M3__3                                                            ModelID = "minimaxai/minimax-m3"
	Model__Nvidia__Mistral__7b__Instruct__V03__Instruct                                      ModelID = "mistralai/mistral-7b-instruct-v03"
	Model__Nvidia__Mistral__Large__3__675b__Instruct__2512__3__Instruct                      ModelID = "mistralai/mistral-large-3-675b-instruct-2512"
	Model__Nvidia__Mistral__Medium__3__Instruct                                              ModelID = "mistralai/mistral-medium-3-instruct"
	Model__Nvidia__Mistral__Nemotron                                                         ModelID = "mistralai/mistral-nemotron"
	Model__Nvidia__Mistral__Small__4__119b__2603__4                                          ModelID = "mistralai/mistral-small-4-119b-2603"
	Model__Nvidia__Mixtral__8x22b__Instruct                                                  ModelID = "mistralai/mixtral-8x22b-instruct"
	Model__Nvidia__Mixtral__8x7b__Instruct                                                   ModelID = "mistralai/mixtral-8x7b-instruct"
	Model__Nvidia__Nemotron__3__Content__Safety__3                                           ModelID = "nvidia/nemotron-3-content-safety"
	Model__Nvidia__Nemotron__3__Nano__30b__A3b__3                                            ModelID = "nvidia/nemotron-3-nano-30b-a3b"
	Model__Nvidia__Nemotron__3__Nano__Omni__30b__A3b__3__ReasoningOmni                       ModelID = "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning"
	Model__Nvidia__Nemotron__3__Super__120b__A12b__3                                         ModelID = "nvidia/nemotron-3-super-120b-a12b"
	Model__Nvidia__Nemotron__3__Ultra__550b__A55b__3                                         ModelID = "nvidia/nemotron-3-ultra-550b-a55b"
	Model__Nvidia__Nemotron__Content__Safety__Reasoning__4b__Reasoning                       ModelID = "nvidia/nemotron-content-safety-reasoning-4b"
	Model__Nvidia__Nemotron__Mini__4b__Instruct                                              ModelID = "nvidia/nemotron-mini-4b-instruct"
	Model__Nvidia__Nemotron__Voicechat                                                       ModelID = "nvidia/nemotron-voicechat"
	Model__Nvidia__Nv__Embed__V1                                                             ModelID = "nvidia/nv-embed-v1"
	Model__Nvidia__Nv__Embedcode__7b__V1                                                     ModelID = "nvidia/nv-embedcode-7b-v1"
	Model__Nvidia__Nvidia__Nemotron__Nano__9b__V2                                            ModelID = "nvidia/nvidia-nemotron-nano-9b-v2"
	Model__Nvidia__Phi__4__Mini__4__Instruct                                                 ModelID = "microsoft/phi-4-mini-instruct"
	Model__Nvidia__Phi__4__MultimodalInstruct                                                ModelID = "microsoft/phi-4-multimodal-instruct"
	Model__Nvidia__Qwen2__5__Coder__32b__2_5__Instruct                                       ModelID = "qwen/qwen2.5-coder-32b-instruct"
	Model__Nvidia__Qwen3__5__122b__A10b__3_5                                                 ModelID = "qwen/qwen3.5-122b-a10b"
	Model__Nvidia__Qwen3__5__397b__A17b__3_5                                                 ModelID = "qwen/qwen3.5-397b-a17b"
	Model__Nvidia__Qwen3__Coder__480b__A35b__3__Instruct                                     ModelID = "qwen/qwen3-coder-480b-a35b-instruct"
	Model__Nvidia__Qwen3__Next__80b__A3b__3__Instruct                                        ModelID = "qwen/qwen3-next-80b-a3b-instruct"
	Model__Nvidia__Qwen__Image                                                               ModelID = "qwen/qwen-image"
	Model__Nvidia__Qwen__Image__Edit                                                         ModelID = "qwen/qwen-image-edit"
	Model__Nvidia__Rerank__Qa__Mistral__4b                                                   ModelID = "nvidia/rerank-qa-mistral-4b"
	Model__Nvidia__Riva__Translate__4b__Instruct__V1__1__Instruct                            ModelID = "nvidia/riva-translate-4b-instruct-v1_1"
	Model__Nvidia__Sarvam__M                                                                 ModelID = "sarvamai/sarvam-m"
	Model__Nvidia__Seed__Oss__36b__Instruct                                                  ModelID = "bytedance/seed-oss-36b-instruct"
	Model__Nvidia__Solar__10__7b__Instruct                                                   ModelID = "upstage/solar-10_7b-instruct"
	Model__Nvidia__Sparsedrive                                                               ModelID = "nvidia/sparsedrive"
	Model__Nvidia__Step__3__5__Flash__3_5                                                    ModelID = "stepfun-ai/step-3.5-flash"
	Model__Nvidia__Step__3__7__Flash__3_7                                                    ModelID = "stepfun-ai/step-3.7-flash"
	Model__Nvidia__Streampetr                                                                ModelID = "nvidia/streampetr"
	Model__Nvidia__Studiovoice                                                               ModelID = "nvidia/studiovoice"
	Model__Nvidia__Synthetic__Video__Detector                                                ModelID = "nvidia/synthetic-video-detector"
	Model__Nvidia__Usdcode                                                                   ModelID = "nvidia/usdcode"
	Model__Nvidia__Usdvalidate                                                               ModelID = "nvidia/usdvalidate"
	Model__Nvidia__Whisper__Large__V3__3                                                     ModelID = "openai/whisper-large-v3"
	Model__OVHcloud__GPT__Oss__120b                                                          ModelID = "gpt-oss-120b"
	Model__OVHcloud__GPT__Oss__20b                                                           ModelID = "gpt-oss-20b"
	Model__OVHcloud__Meta__Llama__3__3__70b__Instruct                                        ModelID = "meta-llama-3_3-70b-instruct"
	Model__OVHcloud__Mistral__7b__Instruct__V0__3__0_3__Instruct                             ModelID = "mistral-7b-instruct-v0.3"
	Model__OVHcloud__Mistral__Nemo__Instruct__2407__Instruct                                 ModelID = "mistral-nemo-instruct-2407"
	Model__OVHcloud__Mistral__Small__3__2__24b__Instruct__2506__3_2__Instruct                ModelID = "mistral-small-3.2-24b-instruct-2506"
	Model__OVHcloud__Qwen2__5__Vl__72b__2_5__Instruct                                        ModelID = "qwen2.5-vl-72b-instruct"
	Model__OVHcloud__Qwen3__32b__3                                                           ModelID = "qwen3-32b"
	Model__OVHcloud__Qwen3__5__397b__A17b__3_5                                               ModelID = "qwen3.5-397b-a17b"
	Model__OVHcloud__Qwen3__5__9b__3_5                                                       ModelID = "qwen3.5-9b"
	Model__OVHcloud__Qwen3__6__27b__3_6                                                      ModelID = "qwen3.6-27b"
	Model__OVHcloud__Qwen3__Coder__30b__A3b__3__Instruct                                     ModelID = "qwen3-coder-30b-a3b-instruct"
	Model__OVHcloud__Qwen3guard__Gen__0__6b                                                  ModelID = "qwen3guard-gen-0.6b"
	Model__OVHcloud__Qwen3guard__Gen__8b                                                     ModelID = "qwen3guard-gen-8b"
	Model__OllamaCloud__Cogito__2__1__671b                                                   ModelID = "cogito-2.1:671b"
	Model__OllamaCloud__DeepSeek__V3__1__671b                                                ModelID = "deepseek-v3.1:671b"
	Model__OllamaCloud__DeepSeek__V3__2                                                      ModelID = "deepseek-v3.2"
	Model__OllamaCloud__DeepSeek__V4__Flash                                                  ModelID = "deepseek-v4-flash"
	Model__OllamaCloud__DeepSeek__V4__Pro__Thinking                                          ModelID = "deepseek-v4-pro"
	Model__OllamaCloud__Devstral__2__123b                                                    ModelID = "devstral-2:123b"
	Model__OllamaCloud__Devstral__Small__2__24b                                              ModelID = "devstral-small-2:24b"
	Model__OllamaCloud__GLM__4_6                                                             ModelID = "glm-4.6"
	Model__OllamaCloud__GLM__4_7                                                             ModelID = "glm-4.7"
	Model__OllamaCloud__GLM__5                                                               ModelID = "glm-5"
	Model__OllamaCloud__GLM__5_1                                                             ModelID = "glm-5.1"
	Model__OllamaCloud__GLM__5_2                                                             ModelID = "glm-5.2"
	Model__OllamaCloud__GPT__Oss__120b                                                       ModelID = "gpt-oss:120b"
	Model__OllamaCloud__GPT__Oss__20b                                                        ModelID = "gpt-oss:20b"
	Model__OllamaCloud__Gemini__3__Flash__3__Preview                                         ModelID = "gemini-3-flash-preview"
	Model__OllamaCloud__Gemma3__12b                                                          ModelID = "gemma3:12b"
	Model__OllamaCloud__Gemma3__27b                                                          ModelID = "gemma3:27b"
	Model__OllamaCloud__Gemma3__4b                                                           ModelID = "gemma3:4b"
	Model__OllamaCloud__Gemma4__31b                                                          ModelID = "gemma4:31b"
	Model__OllamaCloud__Kimi__K2__1t__2                                                      ModelID = "kimi-k2:1t"
	Model__OllamaCloud__Kimi__K2__2__Thinking                                                ModelID = "kimi-k2-thinking"
	Model__OllamaCloud__Kimi__K2__5__2_5                                                     ModelID = "kimi-k2.5"
	Model__OllamaCloud__Kimi__K2__6__2_6                                                     ModelID = "kimi-k2.6"
	Model__OllamaCloud__Kimi__K2__7__2_7__Code                                               ModelID = "kimi-k2.7-code"
	Model__OllamaCloud__MiniMax__M2__1__2_1                                                  ModelID = "minimax-m2.1"
	Model__OllamaCloud__MiniMax__M2__2                                                       ModelID = "minimax-m2"
	Model__OllamaCloud__MiniMax__M2__5__2_5                                                  ModelID = "minimax-m2.5"
	Model__OllamaCloud__MiniMax__M2__7__2_7                                                  ModelID = "minimax-m2.7"
	Model__OllamaCloud__MiniMax__M3__3                                                       ModelID = "minimax-m3"
	Model__OllamaCloud__Ministral__3__14b                                                    ModelID = "ministral-3:14b"
	Model__OllamaCloud__Ministral__3__3b                                                     ModelID = "ministral-3:3b"
	Model__OllamaCloud__Ministral__3__8b                                                     ModelID = "ministral-3:8b"
	Model__OllamaCloud__Mistral__Large__3__675b                                              ModelID = "mistral-large-3:675b"
	Model__OllamaCloud__Nemotron__3__Nano__30b__3                                            ModelID = "nemotron-3-nano:30b"
	Model__OllamaCloud__Nemotron__3__Super__3                                                ModelID = "nemotron-3-super"
	Model__OllamaCloud__Nemotron__3__Ultra__3                                                ModelID = "nemotron-3-ultra"
	Model__OllamaCloud__Qwen3__5__397b                                                       ModelID = "qwen3.5:397b"
	Model__OllamaCloud__Qwen3__Coder__480b__3                                                ModelID = "qwen3-coder:480b"
	Model__OllamaCloud__Qwen3__Coder__Next__3                                                ModelID = "qwen3-coder-next"
	Model__OllamaCloud__Qwen3__Next__80b__3                                                  ModelID = "qwen3-next:80b"
	Model__OllamaCloud__Qwen3__Vl__235b__3                                                   ModelID = "qwen3-vl:235b"
	Model__OllamaCloud__Qwen3__Vl__235b__3__Instruct                                         ModelID = "qwen3-vl:235b-instruct"
	Model__OllamaCloud__Rnj__1__8b                                                           ModelID = "rnj-1:8b"
	Model__OpenAI__ChatGPT__Image__Latest                                                    ModelID = "chatgpt-image-latest"
	Model__OpenAI__GPT__3_5__Turbo                                                           ModelID = "gpt-3.5-turbo"
	Model__OpenAI__GPT__4                                                                    ModelID = "gpt-4"
	Model__OpenAI__GPT__4_1                                                                  ModelID = "gpt-4.1"
	Model__OpenAI__GPT__4__1__Mini__4_1                                                      ModelID = "gpt-4.1-mini"
	Model__OpenAI__GPT__4__1__Nano__4_1                                                      ModelID = "gpt-4.1-nano"
	Model__OpenAI__GPT__4__Turbo                                                             ModelID = "gpt-4-turbo"
	Model__OpenAI__GPT__4o                                                                   ModelID = "gpt-4o"
	Model__OpenAI__GPT__4o__20240513                                                         ModelID = "gpt-4o-2024-05-13"
	Model__OpenAI__GPT__4o__20240806                                                         ModelID = "gpt-4o-2024-08-06"
	Model__OpenAI__GPT__4o__20241120                                                         ModelID = "gpt-4o-2024-11-20"
	Model__OpenAI__GPT__4o__Mini                                                             ModelID = "gpt-4o-mini"
	Model__OpenAI__GPT__5                                                                    ModelID = "gpt-5"
	Model__OpenAI__GPT__5_1                                                                  ModelID = "gpt-5.1"
	Model__OpenAI__GPT__5_1__ChatLatest                                                      ModelID = "gpt-5.1-chat-latest"
	Model__OpenAI__GPT__5_2                                                                  ModelID = "gpt-5.2"
	Model__OpenAI__GPT__5_2__ChatLatest                                                      ModelID = "gpt-5.2-chat-latest"
	Model__OpenAI__GPT__5_3__ChatLatest                                                      ModelID = "gpt-5.3-chat-latest"
	Model__OpenAI__GPT__5_4                                                                  ModelID = "gpt-5.4"
	Model__OpenAI__GPT__5_5                                                                  ModelID = "gpt-5.5"
	Model__OpenAI__GPT__5_6                                                                  ModelID = "gpt-5.6"
	Model__OpenAI__GPT__5__1__Codex__5_1                                                     ModelID = "gpt-5.1-codex"
	Model__OpenAI__GPT__5__1__Codex__Max__5_1                                                ModelID = "gpt-5.1-codex-max"
	Model__OpenAI__GPT__5__1__Codex__Mini__5_1                                               ModelID = "gpt-5.1-codex-mini"
	Model__OpenAI__GPT__5__2__Codex__5_2                                                     ModelID = "gpt-5.2-codex"
	Model__OpenAI__GPT__5__2__Pro__5_2                                                       ModelID = "gpt-5.2-pro"
	Model__OpenAI__GPT__5__3__Codex__5_3                                                     ModelID = "gpt-5.3-codex"
	Model__OpenAI__GPT__5__3__Codex__Spark__5_3                                              ModelID = "gpt-5.3-codex-spark"
	Model__OpenAI__GPT__5__4__Mini__5_4                                                      ModelID = "gpt-5.4-mini"
	Model__OpenAI__GPT__5__4__Nano__5_4                                                      ModelID = "gpt-5.4-nano"
	Model__OpenAI__GPT__5__4__Pro__5_4                                                       ModelID = "gpt-5.4-pro"
	Model__OpenAI__GPT__5__5__Pro__5_5                                                       ModelID = "gpt-5.5-pro"
	Model__OpenAI__GPT__5__6__Luna__5_6                                                      ModelID = "gpt-5.6-luna"
	Model__OpenAI__GPT__5__6__Sol__5_6                                                       ModelID = "gpt-5.6-sol"
	Model__OpenAI__GPT__5__6__Terra__5_6                                                     ModelID = "gpt-5.6-terra"
	Model__OpenAI__GPT__5__ChatLatest                                                        ModelID = "gpt-5-chat-latest"
	Model__OpenAI__GPT__5__Codex__5                                                          ModelID = "gpt-5-codex"
	Model__OpenAI__GPT__5__Mini__5                                                           ModelID = "gpt-5-mini"
	Model__OpenAI__GPT__5__Nano__5                                                           ModelID = "gpt-5-nano"
	Model__OpenAI__GPT__5__Pro__5                                                            ModelID = "gpt-5-pro"
	Model__OpenAI__GPT__Image__1                                                             ModelID = "gpt-image-1"
	Model__OpenAI__GPT__Image__1_5                                                           ModelID = "gpt-image-1.5"
	Model__OpenAI__GPT__Image__1__Mini                                                       ModelID = "gpt-image-1-mini"
	Model__OpenAI__GPT__Image__2                                                             ModelID = "gpt-image-2"
	Model__OpenAI__GPT__Realtime__2_1__Realtime                                              ModelID = "gpt-realtime-2.1"
	Model__OpenAI__O1__1                                                                     ModelID = "o1"
	Model__OpenAI__O1__1__Pro                                                                ModelID = "o1-pro"
	Model__OpenAI__O3__3                                                                     ModelID = "o3"
	Model__OpenAI__O3__3__Mini                                                               ModelID = "o3-mini"
	Model__OpenAI__O3__3__Pro                                                                ModelID = "o3-pro"
	Model__OpenAI__O3__Deep__Research__3__Deep_Research                                      ModelID = "o3-deep-research"
	Model__OpenAI__O4__4__Mini                                                               ModelID = "o4-mini"
	Model__OpenAI__O4__Mini__Deep__Research__4__Mini                                         ModelID = "o4-mini-deep-research"
	Model__OpenAI__Text__Embedding__3__Large__3                                              ModelID = "text-embedding-3-large"
	Model__OpenAI__Text__Embedding__3__Small__3                                              ModelID = "text-embedding-3-small"
	Model__OpenAI__Text__Embedding__Ada__002                                                 ModelID = "text-embedding-ada-002"
	Model__OpenCodeGo__DeepSeek__V4__Flash                                                   ModelID = "deepseek-v4-flash"
	Model__OpenCodeGo__DeepSeek__V4__Pro__Thinking                                           ModelID = "deepseek-v4-pro"
	Model__OpenCodeGo__GLM__5                                                                ModelID = "glm-5"
	Model__OpenCodeGo__GLM__5_1                                                              ModelID = "glm-5.1"
	Model__OpenCodeGo__GLM__5_2                                                              ModelID = "glm-5.2"
	Model__OpenCodeGo__Kimi__K2__5__2_5                                                      ModelID = "kimi-k2.5"
	Model__OpenCodeGo__Kimi__K2__6__2_6                                                      ModelID = "kimi-k2.6"
	Model__OpenCodeGo__Kimi__K2__7__2_7__Code                                                ModelID = "kimi-k2.7-code"
	Model__OpenCodeGo__Mimo__V2__2__Omni                                                     ModelID = "mimo-v2-omni"
	Model__OpenCodeGo__Mimo__V2__2__Pro                                                      ModelID = "mimo-v2-pro"
	Model__OpenCodeGo__Mimo__V2__5__2_5                                                      ModelID = "mimo-v2.5"
	Model__OpenCodeGo__Mimo__V2__5__2_5__Pro                                                 ModelID = "mimo-v2.5-pro"
	Model__OpenCodeGo__MiniMax__M2__5__2_5                                                   ModelID = "minimax-m2.5"
	Model__OpenCodeGo__MiniMax__M2__7__2_7                                                   ModelID = "minimax-m2.7"
	Model__OpenCodeGo__MiniMax__M3__3                                                        ModelID = "minimax-m3"
	Model__OpenCodeGo__Qwen3__5__Plus__3_5                                                   ModelID = "qwen3.5-plus"
	Model__OpenCodeGo__Qwen3__6__Plus__3_6                                                   ModelID = "qwen3.6-plus"
	Model__OpenCodeGo__Qwen3__7__Max__3_7                                                    ModelID = "qwen3.7-max"
	Model__OpenCodeGo__Qwen3__7__Plus__3_7                                                   ModelID = "qwen3.7-plus"
	Model__OpenCode__Big__Pickle                                                             ModelID = "big-pickle"
	Model__OpenCode__Claude__3__5__Haiku__3_5                                                ModelID = "claude-3-5-haiku"
	Model__OpenCode__Claude__Fable__5                                                        ModelID = "claude-fable-5"
	Model__OpenCode__Claude__Haiku__4_5                                                      ModelID = "claude-haiku-4-5"
	Model__OpenCode__Claude__Opus__4_1                                                       ModelID = "claude-opus-4-1"
	Model__OpenCode__Claude__Opus__4_5                                                       ModelID = "claude-opus-4-5"
	Model__OpenCode__Claude__Opus__4_6                                                       ModelID = "claude-opus-4-6"
	Model__OpenCode__Claude__Opus__4_7                                                       ModelID = "claude-opus-4-7"
	Model__OpenCode__Claude__Opus__4_8                                                       ModelID = "claude-opus-4-8"
	Model__OpenCode__Claude__Sonnet__4                                                       ModelID = "claude-sonnet-4"
	Model__OpenCode__Claude__Sonnet__4_5                                                     ModelID = "claude-sonnet-4-5"
	Model__OpenCode__Claude__Sonnet__4_6                                                     ModelID = "claude-sonnet-4-6"
	Model__OpenCode__Claude__Sonnet__5                                                       ModelID = "claude-sonnet-5"
	Model__OpenCode__DeepSeek__V4__Flash                                                     ModelID = "deepseek-v4-flash"
	Model__OpenCode__DeepSeek__V4__Flash__Free                                               ModelID = "deepseek-v4-flash-free"
	Model__OpenCode__DeepSeek__V4__Pro__Thinking                                             ModelID = "deepseek-v4-pro"
	Model__OpenCode__GLM__4_6                                                                ModelID = "glm-4.6"
	Model__OpenCode__GLM__4_7                                                                ModelID = "glm-4.7"
	Model__OpenCode__GLM__4__7__Free__4_7                                                    ModelID = "glm-4.7-free"
	Model__OpenCode__GLM__5                                                                  ModelID = "glm-5"
	Model__OpenCode__GLM__5_1                                                                ModelID = "glm-5.1"
	Model__OpenCode__GLM__5_2                                                                ModelID = "glm-5.2"
	Model__OpenCode__GLM__5__Free__5                                                         ModelID = "glm-5-free"
	Model__OpenCode__GPT__5                                                                  ModelID = "gpt-5"
	Model__OpenCode__GPT__5_1                                                                ModelID = "gpt-5.1"
	Model__OpenCode__GPT__5_2                                                                ModelID = "gpt-5.2"
	Model__OpenCode__GPT__5_4                                                                ModelID = "gpt-5.4"
	Model__OpenCode__GPT__5_5                                                                ModelID = "gpt-5.5"
	Model__OpenCode__GPT__5__1__Codex__5_1                                                   ModelID = "gpt-5.1-codex"
	Model__OpenCode__GPT__5__1__Codex__Max__5_1                                              ModelID = "gpt-5.1-codex-max"
	Model__OpenCode__GPT__5__1__Codex__Mini__5_1                                             ModelID = "gpt-5.1-codex-mini"
	Model__OpenCode__GPT__5__2__Codex__5_2                                                   ModelID = "gpt-5.2-codex"
	Model__OpenCode__GPT__5__3__Codex__5_3                                                   ModelID = "gpt-5.3-codex"
	Model__OpenCode__GPT__5__3__Codex__Spark__5_3                                            ModelID = "gpt-5.3-codex-spark"
	Model__OpenCode__GPT__5__4__Mini__5_4                                                    ModelID = "gpt-5.4-mini"
	Model__OpenCode__GPT__5__4__Nano__5_4                                                    ModelID = "gpt-5.4-nano"
	Model__OpenCode__GPT__5__4__Pro__5_4                                                     ModelID = "gpt-5.4-pro"
	Model__OpenCode__GPT__5__5__Pro__5_5                                                     ModelID = "gpt-5.5-pro"
	Model__OpenCode__GPT__5__6__Luna__5_6                                                    ModelID = "gpt-5.6-luna"
	Model__OpenCode__GPT__5__6__Sol__5_6                                                     ModelID = "gpt-5.6-sol"
	Model__OpenCode__GPT__5__6__Terra__5_6                                                   ModelID = "gpt-5.6-terra"
	Model__OpenCode__GPT__5__Codex__5                                                        ModelID = "gpt-5-codex"
	Model__OpenCode__GPT__5__Nano__5                                                         ModelID = "gpt-5-nano"
	Model__OpenCode__Gemini__3__1__Pro__3_1                                                  ModelID = "gemini-3.1-pro"
	Model__OpenCode__Gemini__3__5__Flash__3_5                                                ModelID = "gemini-3.5-flash"
	Model__OpenCode__Gemini__3__Flash__3                                                     ModelID = "gemini-3-flash"
	Model__OpenCode__Gemini__3__Pro__3                                                       ModelID = "gemini-3-pro"
	Model__OpenCode__Grok__4_5                                                               ModelID = "grok-4.5"
	Model__OpenCode__Grok__Build__0_1                                                        ModelID = "grok-build-0.1"
	Model__OpenCode__Grok__Code                                                              ModelID = "grok-code"
	Model__OpenCode__Hy3__Free__3                                                            ModelID = "hy3-free"
	Model__OpenCode__Hy3__Preview__Free__3                                                   ModelID = "hy3-preview-free"
	Model__OpenCode__Kimi__K2__2                                                             ModelID = "kimi-k2"
	Model__OpenCode__Kimi__K2__2__Thinking                                                   ModelID = "kimi-k2-thinking"
	Model__OpenCode__Kimi__K2__5__2_5                                                        ModelID = "kimi-k2.5"
	Model__OpenCode__Kimi__K2__5__Free                                                       ModelID = "kimi-k2.5-free"
	Model__OpenCode__Kimi__K2__6__2_6                                                        ModelID = "kimi-k2.6"
	Model__OpenCode__Kimi__K2__7__2_7__Code                                                  ModelID = "kimi-k2.7-code"
	Model__OpenCode__Ling__2__6__Flash__Free__2_6                                            ModelID = "ling-2.6-flash-free"
	Model__OpenCode__Mimo__V2__5__Free                                                       ModelID = "mimo-v2.5-free"
	Model__OpenCode__Mimo__V2__Flash__Free                                                   ModelID = "mimo-v2-flash-free"
	Model__OpenCode__Mimo__V2__Omni__Free                                                    ModelID = "mimo-v2-omni-free"
	Model__OpenCode__Mimo__V2__Pro__Free                                                     ModelID = "mimo-v2-pro-free"
	Model__OpenCode__MiniMax__M2__1__2_1                                                     ModelID = "minimax-m2.1"
	Model__OpenCode__MiniMax__M2__1__Free                                                    ModelID = "minimax-m2.1-free"
	Model__OpenCode__MiniMax__M2__5__2_5                                                     ModelID = "minimax-m2.5"
	Model__OpenCode__MiniMax__M2__5__Free                                                    ModelID = "minimax-m2.5-free"
	Model__OpenCode__MiniMax__M2__7__2_7                                                     ModelID = "minimax-m2.7"
	Model__OpenCode__MiniMax__M3__3                                                          ModelID = "minimax-m3"
	Model__OpenCode__MiniMax__M3__Free                                                       ModelID = "minimax-m3-free"
	Model__OpenCode__Nemotron__3__Super__Free__3                                             ModelID = "nemotron-3-super-free"
	Model__OpenCode__Nemotron__3__Ultra__Free__3                                             ModelID = "nemotron-3-ultra-free"
	Model__OpenCode__North__Mini__Code__Free                                                 ModelID = "north-mini-code-free"
	Model__OpenCode__Qwen3__5__Plus__3_5                                                     ModelID = "qwen3.5-plus"
	Model__OpenCode__Qwen3__6__Plus__3_6                                                     ModelID = "qwen3.6-plus"
	Model__OpenCode__Qwen3__6__Plus__Free__3_6                                               ModelID = "qwen3.6-plus-free"
	Model__OpenCode__Qwen3__Coder__3                                                         ModelID = "qwen3-coder"
	Model__OpenCode__Ring__2__6__1t__Free__2_6                                               ModelID = "ring-2.6-1t-free"
	Model__OpenCode__Trinity__Large__Preview__Free                                           ModelID = "trinity-large-preview-free"
	Model__OpenRouter__Aion__2_0                                                             ModelID = "aion-labs/aion-2.0"
	Model__OpenRouter__Aion__3_0                                                             ModelID = "aion-labs/aion-3.0"
	Model__OpenRouter__Aion__3__0__Mini__3_0                                                 ModelID = "aion-labs/aion-3.0-mini"
	Model__OpenRouter__Aion__Rp__Llama__3__1__8b                                             ModelID = "aion-labs/aion-rp-llama-3.1-8b"
	Model__OpenRouter__Auto                                                                  ModelID = "openrouter/auto"
	Model__OpenRouter__Bodybuilder                                                           ModelID = "openrouter/bodybuilder"
	Model__OpenRouter__Claude__3__Haiku__3                                                   ModelID = "anthropic/claude-3-haiku"
	Model__OpenRouter__Claude__Fable__5                                                      ModelID = "anthropic/claude-fable-5"
	Model__OpenRouter__Claude__Fable__Latest                                                 ModelID = "~anthropic/claude-fable-latest"
	Model__OpenRouter__Claude__Haiku__4_5                                                    ModelID = "anthropic/claude-haiku-4.5"
	Model__OpenRouter__Claude__Haiku__Latest                                                 ModelID = "~anthropic/claude-haiku-latest"
	Model__OpenRouter__Claude__Opus__4                                                       ModelID = "anthropic/claude-opus-4"
	Model__OpenRouter__Claude__Opus__4_1                                                     ModelID = "anthropic/claude-opus-4.1"
	Model__OpenRouter__Claude__Opus__4_5                                                     ModelID = "anthropic/claude-opus-4.5"
	Model__OpenRouter__Claude__Opus__4_6                                                     ModelID = "anthropic/claude-opus-4.6"
	Model__OpenRouter__Claude__Opus__4_7                                                     ModelID = "anthropic/claude-opus-4.7"
	Model__OpenRouter__Claude__Opus__4_7__Fast                                               ModelID = "anthropic/claude-opus-4.7-fast"
	Model__OpenRouter__Claude__Opus__4_8                                                     ModelID = "anthropic/claude-opus-4.8"
	Model__OpenRouter__Claude__Opus__4_8__Fast                                               ModelID = "anthropic/claude-opus-4.8-fast"
	Model__OpenRouter__Claude__Opus__Latest                                                  ModelID = "~anthropic/claude-opus-latest"
	Model__OpenRouter__Claude__Sonnet__4                                                     ModelID = "anthropic/claude-sonnet-4"
	Model__OpenRouter__Claude__Sonnet__4_5                                                   ModelID = "anthropic/claude-sonnet-4.5"
	Model__OpenRouter__Claude__Sonnet__4_6                                                   ModelID = "anthropic/claude-sonnet-4.6"
	Model__OpenRouter__Claude__Sonnet__5                                                     ModelID = "anthropic/claude-sonnet-5"
	Model__OpenRouter__Claude__Sonnet__Latest                                                ModelID = "~anthropic/claude-sonnet-latest"
	Model__OpenRouter__Coder__Large                                                          ModelID = "arcee-ai/coder-large"
	Model__OpenRouter__Codestral__2508                                                       ModelID = "mistralai/codestral-2508"
	Model__OpenRouter__Cogito__V2__1__671b                                                   ModelID = "deepcogito/cogito-v2.1-671b"
	Model__OpenRouter__Command__A                                                            ModelID = "cohere/command-a"
	Model__OpenRouter__Command__R7b__12__20241202                                            ModelID = "cohere/command-r7b-12-2024"
	Model__OpenRouter__Command__R__20240830                                                  ModelID = "cohere/command-r-08-2024"
	Model__OpenRouter__Command__R__Plus__20240830                                            ModelID = "cohere/command-r-plus-08-2024"
	Model__OpenRouter__Cydonia__24b__V4__1                                                   ModelID = "thedrummer/cydonia-24b-v4.1"
	Model__OpenRouter__DeepSeek__Chat                                                        ModelID = "deepseek/deepseek-chat"
	Model__OpenRouter__DeepSeek__Chat__V3__0324                                              ModelID = "deepseek/deepseek-chat-v3-0324"
	Model__OpenRouter__DeepSeek__Chat__V3__1__3_1                                            ModelID = "deepseek/deepseek-chat-v3.1"
	Model__OpenRouter__DeepSeek__R1__0528                                                    ModelID = "deepseek/deepseek-r1-0528"
	Model__OpenRouter__DeepSeek__R1__Distill__Llama__70b__Thinking                           ModelID = "deepseek/deepseek-r1-distill-llama-70b"
	Model__OpenRouter__DeepSeek__R1__Thinking                                                ModelID = "deepseek/deepseek-r1"
	Model__OpenRouter__DeepSeek__V3__1__Terminus                                             ModelID = "deepseek/deepseek-v3.1-terminus"
	Model__OpenRouter__DeepSeek__V3__2                                                       ModelID = "deepseek/deepseek-v3.2"
	Model__OpenRouter__DeepSeek__V3__2__Exp                                                  ModelID = "deepseek/deepseek-v3.2-exp"
	Model__OpenRouter__DeepSeek__V4__Flash                                                   ModelID = "deepseek/deepseek-v4-flash"
	Model__OpenRouter__DeepSeek__V4__Pro__Thinking                                           ModelID = "deepseek/deepseek-v4-pro"
	Model__OpenRouter__Devstral__2512                                                        ModelID = "mistralai/devstral-2512"
	Model__OpenRouter__Dolphin__Mistral__24b__Venice__Edition                                ModelID = "cognitivecomputations/dolphin-mistral-24b-venice-edition"
	Model__OpenRouter__Dolphin__Mistral__24b__Venice__Edition__Free                          ModelID = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free"
	Model__OpenRouter__Ernie__4__5__Vl__424b__A47b__4_5                                      ModelID = "baidu/ernie-4.5-vl-424b-a47b"
	Model__OpenRouter__Free                                                                  ModelID = "openrouter/free"
	Model__OpenRouter__Fugu__Ultra                                                           ModelID = "sakana/fugu-ultra"
	Model__OpenRouter__Fusion                                                                ModelID = "openrouter/fusion"
	Model__OpenRouter__GLM__4_5                                                              ModelID = "z-ai/glm-4.5"
	Model__OpenRouter__GLM__4_6                                                              ModelID = "z-ai/glm-4.6"
	Model__OpenRouter__GLM__4_7                                                              ModelID = "z-ai/glm-4.7"
	Model__OpenRouter__GLM__4__5__Air__4_5                                                   ModelID = "z-ai/glm-4.5-air"
	Model__OpenRouter__GLM__4__5v__4_5                                                       ModelID = "z-ai/glm-4.5v"
	Model__OpenRouter__GLM__4__6v__4_6                                                       ModelID = "z-ai/glm-4.6v"
	Model__OpenRouter__GLM__4__7__Flash__4_7                                                 ModelID = "z-ai/glm-4.7-flash"
	Model__OpenRouter__GLM__5                                                                ModelID = "z-ai/glm-5"
	Model__OpenRouter__GLM__5_1                                                              ModelID = "z-ai/glm-5.1"
	Model__OpenRouter__GLM__5_2                                                              ModelID = "z-ai/glm-5.2"
	Model__OpenRouter__GLM__5__Turbo                                                         ModelID = "z-ai/glm-5-turbo"
	Model__OpenRouter__GLM__5v__5__Turbo                                                     ModelID = "z-ai/glm-5v-turbo"
	Model__OpenRouter__GPT__3_5__Turbo                                                       ModelID = "openai/gpt-3.5-turbo"
	Model__OpenRouter__GPT__3_5__TurboInstruct                                               ModelID = "openai/gpt-3.5-turbo-instruct"
	Model__OpenRouter__GPT__3__5__Turbo__0613__3_5__Turbo                                    ModelID = "openai/gpt-3.5-turbo-0613"
	Model__OpenRouter__GPT__3__5__Turbo__16k__3_5__Turbo                                     ModelID = "openai/gpt-3.5-turbo-16k"
	Model__OpenRouter__GPT__4                                                                ModelID = "openai/gpt-4"
	Model__OpenRouter__GPT__4_1                                                              ModelID = "openai/gpt-4.1"
	Model__OpenRouter__GPT__4__1__Mini__4_1                                                  ModelID = "openai/gpt-4.1-mini"
	Model__OpenRouter__GPT__4__1__Nano__4_1                                                  ModelID = "openai/gpt-4.1-nano"
	Model__OpenRouter__GPT__4__Turbo                                                         ModelID = "openai/gpt-4-turbo"
	Model__OpenRouter__GPT__4__TurboPreview                                                  ModelID = "openai/gpt-4-turbo-preview"
	Model__OpenRouter__GPT__4o                                                               ModelID = "openai/gpt-4o"
	Model__OpenRouter__GPT__4o__20240513                                                     ModelID = "openai/gpt-4o-2024-05-13"
	Model__OpenRouter__GPT__4o__20240806                                                     ModelID = "openai/gpt-4o-2024-08-06"
	Model__OpenRouter__GPT__4o__20241120                                                     ModelID = "openai/gpt-4o-2024-11-20"
	Model__OpenRouter__GPT__4o__Mini                                                         ModelID = "openai/gpt-4o-mini"
	Model__OpenRouter__GPT__4o__Mini__Mini__20240718                                         ModelID = "openai/gpt-4o-mini-2024-07-18"
	Model__OpenRouter__GPT__4o__Mini__Search__PreviewMini                                    ModelID = "openai/gpt-4o-mini-search-preview"
	Model__OpenRouter__GPT__4o__Search__Preview                                              ModelID = "openai/gpt-4o-search-preview"
	Model__OpenRouter__GPT__5                                                                ModelID = "openai/gpt-5"
	Model__OpenRouter__GPT__5_1                                                              ModelID = "openai/gpt-5.1"
	Model__OpenRouter__GPT__5_1__Chat                                                        ModelID = "openai/gpt-5.1-chat"
	Model__OpenRouter__GPT__5_2                                                              ModelID = "openai/gpt-5.2"
	Model__OpenRouter__GPT__5_2__Chat                                                        ModelID = "openai/gpt-5.2-chat"
	Model__OpenRouter__GPT__5_3__Chat                                                        ModelID = "openai/gpt-5.3-chat"
	Model__OpenRouter__GPT__5_4                                                              ModelID = "openai/gpt-5.4"
	Model__OpenRouter__GPT__5_5                                                              ModelID = "openai/gpt-5.5"
	Model__OpenRouter__GPT__5__1__Codex__5_1                                                 ModelID = "openai/gpt-5.1-codex"
	Model__OpenRouter__GPT__5__1__Codex__Max__5_1                                            ModelID = "openai/gpt-5.1-codex-max"
	Model__OpenRouter__GPT__5__1__Codex__Mini__5_1                                           ModelID = "openai/gpt-5.1-codex-mini"
	Model__OpenRouter__GPT__5__2__Codex__5_2                                                 ModelID = "openai/gpt-5.2-codex"
	Model__OpenRouter__GPT__5__2__Pro__5_2                                                   ModelID = "openai/gpt-5.2-pro"
	Model__OpenRouter__GPT__5__3__Codex__5_3                                                 ModelID = "openai/gpt-5.3-codex"
	Model__OpenRouter__GPT__5__4__Image__2__5_4                                              ModelID = "openai/gpt-5.4-image-2"
	Model__OpenRouter__GPT__5__4__Mini__5_4                                                  ModelID = "openai/gpt-5.4-mini"
	Model__OpenRouter__GPT__5__4__Nano__5_4                                                  ModelID = "openai/gpt-5.4-nano"
	Model__OpenRouter__GPT__5__4__Pro__5_4                                                   ModelID = "openai/gpt-5.4-pro"
	Model__OpenRouter__GPT__5__5__Pro__5_5                                                   ModelID = "openai/gpt-5.5-pro"
	Model__OpenRouter__GPT__5__6__Luna__5_6                                                  ModelID = "openai/gpt-5.6-luna"
	Model__OpenRouter__GPT__5__6__Luna__Pro__5_6                                             ModelID = "openai/gpt-5.6-luna-pro"
	Model__OpenRouter__GPT__5__6__Sol__5_6                                                   ModelID = "openai/gpt-5.6-sol"
	Model__OpenRouter__GPT__5__6__Sol__Pro__5_6                                              ModelID = "openai/gpt-5.6-sol-pro"
	Model__OpenRouter__GPT__5__6__Terra__5_6                                                 ModelID = "openai/gpt-5.6-terra"
	Model__OpenRouter__GPT__5__6__Terra__Pro__5_6                                            ModelID = "openai/gpt-5.6-terra-pro"
	Model__OpenRouter__GPT__5__Chat                                                          ModelID = "openai/gpt-5-chat"
	Model__OpenRouter__GPT__5__Codex__5                                                      ModelID = "openai/gpt-5-codex"
	Model__OpenRouter__GPT__5__Image__5                                                      ModelID = "openai/gpt-5-image"
	Model__OpenRouter__GPT__5__Image__Mini__5                                                ModelID = "openai/gpt-5-image-mini"
	Model__OpenRouter__GPT__5__Mini__5                                                       ModelID = "openai/gpt-5-mini"
	Model__OpenRouter__GPT__5__Nano__5                                                       ModelID = "openai/gpt-5-nano"
	Model__OpenRouter__GPT__5__Pro__5                                                        ModelID = "openai/gpt-5-pro"
	Model__OpenRouter__GPT__Audio                                                            ModelID = "openai/gpt-audio"
	Model__OpenRouter__GPT__Audio__Mini                                                      ModelID = "openai/gpt-audio-mini"
	Model__OpenRouter__GPT__ChatLatest                                                       ModelID = "openai/gpt-chat-latest"
	Model__OpenRouter__GPT__Latest                                                           ModelID = "~openai/gpt-latest"
	Model__OpenRouter__GPT__Mini__Latest                                                     ModelID = "~openai/gpt-mini-latest"
	Model__OpenRouter__GPT__Oss__120b                                                        ModelID = "openai/gpt-oss-120b"
	Model__OpenRouter__GPT__Oss__120b__Free                                                  ModelID = "openai/gpt-oss-120b:free"
	Model__OpenRouter__GPT__Oss__20b                                                         ModelID = "openai/gpt-oss-20b"
	Model__OpenRouter__GPT__Oss__20b__Free                                                   ModelID = "openai/gpt-oss-20b:free"
	Model__OpenRouter__GPT__Oss__Safeguard__20b                                              ModelID = "openai/gpt-oss-safeguard-20b"
	Model__OpenRouter__Gemini__2__5__Flash__2_5                                              ModelID = "google/gemini-2.5-flash"
	Model__OpenRouter__Gemini__2__5__Flash__Image__2_5                                       ModelID = "google/gemini-2.5-flash-image"
	Model__OpenRouter__Gemini__2__5__Flash__Lite__2_5                                        ModelID = "google/gemini-2.5-flash-lite"
	Model__OpenRouter__Gemini__2__5__Pro__2_5                                                ModelID = "google/gemini-2.5-pro"
	Model__OpenRouter__Gemini__2__5__Pro__2_5__Preview                                       ModelID = "google/gemini-2.5-pro-preview"
	Model__OpenRouter__Gemini__2__5__Pro__Preview__05__06__2_5                               ModelID = "google/gemini-2.5-pro-preview-05-06"
	Model__OpenRouter__Gemini__3__1__Flash__Image__3_1                                       ModelID = "google/gemini-3.1-flash-image"
	Model__OpenRouter__Gemini__3__1__Flash__Image__3_1__Preview                              ModelID = "google/gemini-3.1-flash-image-preview"
	Model__OpenRouter__Gemini__3__1__Flash__Lite__3_1                                        ModelID = "google/gemini-3.1-flash-lite"
	Model__OpenRouter__Gemini__3__1__Flash__Lite__3_1__Preview                               ModelID = "google/gemini-3.1-flash-lite-preview"
	Model__OpenRouter__Gemini__3__1__Flash__Lite__Image__3_1                                 ModelID = "google/gemini-3.1-flash-lite-image"
	Model__OpenRouter__Gemini__3__1__Pro__3_1__Preview                                       ModelID = "google/gemini-3.1-pro-preview"
	Model__OpenRouter__Gemini__3__1__Pro__Preview__Customtools__3_1                          ModelID = "google/gemini-3.1-pro-preview-customtools"
	Model__OpenRouter__Gemini__3__5__Flash__3_5                                              ModelID = "google/gemini-3.5-flash"
	Model__OpenRouter__Gemini__3__Flash__3__Preview                                          ModelID = "google/gemini-3-flash-preview"
	Model__OpenRouter__Gemini__3__Pro__Image__3                                              ModelID = "google/gemini-3-pro-image"
	Model__OpenRouter__Gemini__3__Pro__Image__3__Preview                                     ModelID = "google/gemini-3-pro-image-preview"
	Model__OpenRouter__Gemini__Flash__Latest                                                 ModelID = "~google/gemini-flash-latest"
	Model__OpenRouter__Gemini__Pro__Latest                                                   ModelID = "~google/gemini-pro-latest"
	Model__OpenRouter__Gemma__2__27b__It__2                                                  ModelID = "google/gemma-2-27b-it"
	Model__OpenRouter__Gemma__3__12b__It__3                                                  ModelID = "google/gemma-3-12b-it"
	Model__OpenRouter__Gemma__3__27b__It__3                                                  ModelID = "google/gemma-3-27b-it"
	Model__OpenRouter__Gemma__3__4b__It__3                                                   ModelID = "google/gemma-3-4b-it"
	Model__OpenRouter__Gemma__3n__E4b__It                                                    ModelID = "google/gemma-3n-e4b-it"
	Model__OpenRouter__Gemma__4__26b__A4b__It__4                                             ModelID = "google/gemma-4-26b-a4b-it"
	Model__OpenRouter__Gemma__4__26b__A4b__It__Free__4                                       ModelID = "google/gemma-4-26b-a4b-it:free"
	Model__OpenRouter__Gemma__4__31b__It__4                                                  ModelID = "google/gemma-4-31b-it"
	Model__OpenRouter__Gemma__4__31b__It__Free__4                                            ModelID = "google/gemma-4-31b-it:free"
	Model__OpenRouter__Granite__4__0__H__Micro__4_0                                          ModelID = "ibm-granite/granite-4.0-h-micro"
	Model__OpenRouter__Granite__4__1__8b__4_1                                                ModelID = "ibm-granite/granite-4.1-8b"
	Model__OpenRouter__Grok__4_20                                                            ModelID = "x-ai/grok-4.20"
	Model__OpenRouter__Grok__4_3                                                             ModelID = "x-ai/grok-4.3"
	Model__OpenRouter__Grok__4_5                                                             ModelID = "x-ai/grok-4.5"
	Model__OpenRouter__Grok__4__20__Multi__Agent__4_20                                       ModelID = "x-ai/grok-4.20-multi-agent"
	Model__OpenRouter__Grok__Build__0_1                                                      ModelID = "x-ai/grok-build-0.1"
	Model__OpenRouter__Grok__Latest                                                          ModelID = "~x-ai/grok-latest"
	Model__OpenRouter__Hermes__3__Llama__3__1__405b__3                                       ModelID = "nousresearch/hermes-3-llama-3.1-405b"
	Model__OpenRouter__Hermes__3__Llama__3__1__405b__Free__3                                 ModelID = "nousresearch/hermes-3-llama-3.1-405b:free"
	Model__OpenRouter__Hermes__3__Llama__3__1__70b__3                                        ModelID = "nousresearch/hermes-3-llama-3.1-70b"
	Model__OpenRouter__Hermes__4__405b__4                                                    ModelID = "nousresearch/hermes-4-405b"
	Model__OpenRouter__Hermes__4__70b__4                                                     ModelID = "nousresearch/hermes-4-70b"
	Model__OpenRouter__Hunyuan__A13b__Instruct                                               ModelID = "tencent/hunyuan-a13b-instruct"
	Model__OpenRouter__Hy3__3                                                                ModelID = "tencent/hy3"
	Model__OpenRouter__Hy3__3__Preview                                                       ModelID = "tencent/hy3-preview"
	Model__OpenRouter__Hy3__Free__3                                                          ModelID = "tencent/hy3:free"
	Model__OpenRouter__Inflection__3__Pi__3                                                  ModelID = "inflection/inflection-3-pi"
	Model__OpenRouter__Inflection__3__Productivity__3                                        ModelID = "inflection/inflection-3-productivity"
	Model__OpenRouter__Jamba__Large__1_7                                                     ModelID = "ai21/jamba-large-1.7"
	Model__OpenRouter__Kat__Coder__Pro__V2                                                   ModelID = "kwaipilot/kat-coder-pro-v2"
	Model__OpenRouter__Kimi__K2__0905__2                                                     ModelID = "moonshotai/kimi-k2-0905"
	Model__OpenRouter__Kimi__K2__2                                                           ModelID = "moonshotai/kimi-k2"
	Model__OpenRouter__Kimi__K2__2__Thinking                                                 ModelID = "moonshotai/kimi-k2-thinking"
	Model__OpenRouter__Kimi__K2__5__2_5                                                      ModelID = "moonshotai/kimi-k2.5"
	Model__OpenRouter__Kimi__K2__6__2_6                                                      ModelID = "moonshotai/kimi-k2.6"
	Model__OpenRouter__Kimi__K2__7__2_7__Code                                                ModelID = "moonshotai/kimi-k2.7-code"
	Model__OpenRouter__Kimi__Latest                                                          ModelID = "~moonshotai/kimi-latest"
	Model__OpenRouter__L3__1__70b__Hanami__X1                                                ModelID = "sao10k/l3.1-70b-hanami-x1"
	Model__OpenRouter__L3__1__Euryale__70b                                                   ModelID = "sao10k/l3.1-euryale-70b"
	Model__OpenRouter__L3__3__Euryale__70b                                                   ModelID = "sao10k/l3.3-euryale-70b"
	Model__OpenRouter__L3__Lunaris__8b                                                       ModelID = "sao10k/l3-lunaris-8b"
	Model__OpenRouter__Laguna__M__1                                                          ModelID = "poolside/laguna-m.1"
	Model__OpenRouter__Laguna__M__1__Free__1                                                 ModelID = "poolside/laguna-m.1:free"
	Model__OpenRouter__Laguna__Xs__2_1                                                       ModelID = "poolside/laguna-xs-2.1"
	Model__OpenRouter__Laguna__Xs__2__1__Free__2_1                                           ModelID = "poolside/laguna-xs-2.1:free"
	Model__OpenRouter__Lfm__2__5__1__2b__Instruct__Free__2_5__Instruct                       ModelID = "liquid/lfm-2.5-1.2b-instruct:free"
	Model__OpenRouter__Lfm__2__5__1__2b__Thinking__Free__2_5__Thinking                       ModelID = "liquid/lfm-2.5-1.2b-thinking:free"
	Model__OpenRouter__Ling__2__6__1t__2_6                                                   ModelID = "inclusionai/ling-2.6-1t"
	Model__OpenRouter__Ling__2__6__Flash__2_6                                                ModelID = "inclusionai/ling-2.6-flash"
	Model__OpenRouter__Llama__3__1__70b__3_1__Instruct                                       ModelID = "meta-llama/llama-3.1-70b-instruct"
	Model__OpenRouter__Llama__3__1__8b__3_1__Instruct                                        ModelID = "meta-llama/llama-3.1-8b-instruct"
	Model__OpenRouter__Llama__3__2__11b__3_2__VisionInstruct                                 ModelID = "meta-llama/llama-3.2-11b-vision-instruct"
	Model__OpenRouter__Llama__3__2__1b__3_2__Instruct                                        ModelID = "meta-llama/llama-3.2-1b-instruct"
	Model__OpenRouter__Llama__3__2__3b__3_2__Instruct                                        ModelID = "meta-llama/llama-3.2-3b-instruct"
	Model__OpenRouter__Llama__3__2__3b__Instruct__Free__3_2__Instruct                        ModelID = "meta-llama/llama-3.2-3b-instruct:free"
	Model__OpenRouter__Llama__3__3__70b__3_3__Instruct                                       ModelID = "meta-llama/llama-3.3-70b-instruct"
	Model__OpenRouter__Llama__3__3__70b__Instruct__Free__3_3__Instruct                       ModelID = "meta-llama/llama-3.3-70b-instruct:free"
	Model__OpenRouter__Llama__3__3__Nemotron__Super__49b__V1__5__3_3                         ModelID = "nvidia/llama-3.3-nemotron-super-49b-v1.5"
	Model__OpenRouter__Llama__4__Maverick__4                                                 ModelID = "meta-llama/llama-4-maverick"
	Model__OpenRouter__Llama__4__Scout__4                                                    ModelID = "meta-llama/llama-4-scout"
	Model__OpenRouter__Llama__Guard__4__12b__4                                               ModelID = "meta-llama/llama-guard-4-12b"
	Model__OpenRouter__Lyria__3__Clip__3__Preview                                            ModelID = "google/lyria-3-clip-preview"
	Model__OpenRouter__Lyria__3__Pro__3__Preview                                             ModelID = "google/lyria-3-pro-preview"
	Model__OpenRouter__Magnum__V4__72b                                                       ModelID = "anthracite-org/magnum-v4-72b"
	Model__OpenRouter__Mercury__2                                                            ModelID = "inception/mercury-2"
	Model__OpenRouter__Mimo__V2__5__2_5                                                      ModelID = "xiaomi/mimo-v2.5"
	Model__OpenRouter__Mimo__V2__5__2_5__Pro                                                 ModelID = "xiaomi/mimo-v2.5-pro"
	Model__OpenRouter__MiniMax__01                                                           ModelID = "minimax/minimax-01"
	Model__OpenRouter__MiniMax__M1__1                                                        ModelID = "minimax/minimax-m1"
	Model__OpenRouter__MiniMax__M2__1__2_1                                                   ModelID = "minimax/minimax-m2.1"
	Model__OpenRouter__MiniMax__M2__2                                                        ModelID = "minimax/minimax-m2"
	Model__OpenRouter__MiniMax__M2__5__2_5                                                   ModelID = "minimax/minimax-m2.5"
	Model__OpenRouter__MiniMax__M2__7__2_7                                                   ModelID = "minimax/minimax-m2.7"
	Model__OpenRouter__MiniMax__M2__Her                                                      ModelID = "minimax/minimax-m2-her"
	Model__OpenRouter__MiniMax__M3__3                                                        ModelID = "minimax/minimax-m3"
	Model__OpenRouter__Ministral__14b__2512                                                  ModelID = "mistralai/ministral-14b-2512"
	Model__OpenRouter__Ministral__3b__2512                                                   ModelID = "mistralai/ministral-3b-2512"
	Model__OpenRouter__Ministral__8b__2512                                                   ModelID = "mistralai/ministral-8b-2512"
	Model__OpenRouter__Mistral__Large                                                        ModelID = "mistralai/mistral-large"
	Model__OpenRouter__Mistral__Large__2407                                                  ModelID = "mistralai/mistral-large-2407"
	Model__OpenRouter__Mistral__Large__2512                                                  ModelID = "mistralai/mistral-large-2512"
	Model__OpenRouter__Mistral__Medium__3                                                    ModelID = "mistralai/mistral-medium-3"
	Model__OpenRouter__Mistral__Medium__3_1                                                  ModelID = "mistralai/mistral-medium-3.1"
	Model__OpenRouter__Mistral__Medium__3_5                                                  ModelID = "mistralai/mistral-medium-3-5"
	Model__OpenRouter__Mistral__Nemo                                                         ModelID = "mistralai/mistral-nemo"
	Model__OpenRouter__Mistral__Saba                                                         ModelID = "mistralai/mistral-saba"
	Model__OpenRouter__Mistral__Small__24b__Instruct__2501__Instruct                         ModelID = "mistralai/mistral-small-24b-instruct-2501"
	Model__OpenRouter__Mistral__Small__2603                                                  ModelID = "mistralai/mistral-small-2603"
	Model__OpenRouter__Mistral__Small__3__1__24b__3_1__Instruct                              ModelID = "mistralai/mistral-small-3.1-24b-instruct"
	Model__OpenRouter__Mistral__Small__3__2__24b__3_2__Instruct                              ModelID = "mistralai/mistral-small-3.2-24b-instruct"
	Model__OpenRouter__Mixtral__8x22b__Instruct                                              ModelID = "mistralai/mixtral-8x22b-instruct"
	Model__OpenRouter__Morph__V3__Fast                                                       ModelID = "morph/morph-v3-fast"
	Model__OpenRouter__Morph__V3__Large                                                      ModelID = "morph/morph-v3-large"
	Model__OpenRouter__Mythomax__L2__13b                                                     ModelID = "gryphe/mythomax-l2-13b"
	Model__OpenRouter__Nemotron__3__5__Content__Safety__Free__3_5                            ModelID = "nvidia/nemotron-3.5-content-safety:free"
	Model__OpenRouter__Nemotron__3__Nano__30b__A3b__3                                        ModelID = "nvidia/nemotron-3-nano-30b-a3b"
	Model__OpenRouter__Nemotron__3__Nano__30b__A3b__Free__3                                  ModelID = "nvidia/nemotron-3-nano-30b-a3b:free"
	Model__OpenRouter__Nemotron__3__Nano__Omni__30b__A3b__Reasoning__Free__3__ReasoningOmni  ModelID = "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free"
	Model__OpenRouter__Nemotron__3__Super__120b__A12b__3                                     ModelID = "nvidia/nemotron-3-super-120b-a12b"
	Model__OpenRouter__Nemotron__3__Super__120b__A12b__Free__3                               ModelID = "nvidia/nemotron-3-super-120b-a12b:free"
	Model__OpenRouter__Nemotron__3__Ultra__550b__A55b__3                                     ModelID = "nvidia/nemotron-3-ultra-550b-a55b"
	Model__OpenRouter__Nemotron__3__Ultra__550b__A55b__Free__3                               ModelID = "nvidia/nemotron-3-ultra-550b-a55b:free"
	Model__OpenRouter__Nemotron__Nano__12b__V2__Vl__Free                                     ModelID = "nvidia/nemotron-nano-12b-v2-vl:free"
	Model__OpenRouter__Nemotron__Nano__9b__V2__Free                                          ModelID = "nvidia/nemotron-nano-9b-v2:free"
	Model__OpenRouter__Nex__N2__Mini                                                         ModelID = "nex-agi/nex-n2-mini"
	Model__OpenRouter__Nex__N2__Pro                                                          ModelID = "nex-agi/nex-n2-pro"
	Model__OpenRouter__North__Mini__Code__Free__Code                                         ModelID = "cohere/north-mini-code:free"
	Model__OpenRouter__Nova__2__Lite__V1__2                                                  ModelID = "amazon/nova-2-lite-v1"
	Model__OpenRouter__Nova__Lite__V1                                                        ModelID = "amazon/nova-lite-v1"
	Model__OpenRouter__Nova__Micro__V1                                                       ModelID = "amazon/nova-micro-v1"
	Model__OpenRouter__Nova__Premier__V1                                                     ModelID = "amazon/nova-premier-v1"
	Model__OpenRouter__Nova__Pro__V1                                                         ModelID = "amazon/nova-pro-v1"
	Model__OpenRouter__O1__1                                                                 ModelID = "openai/o1"
	Model__OpenRouter__O1__1__Pro                                                            ModelID = "openai/o1-pro"
	Model__OpenRouter__O3__3                                                                 ModelID = "openai/o3"
	Model__OpenRouter__O3__3__Mini                                                           ModelID = "openai/o3-mini"
	Model__OpenRouter__O3__3__Pro                                                            ModelID = "openai/o3-pro"
	Model__OpenRouter__O3__Deep__Research__3__Deep_Research                                  ModelID = "openai/o3-deep-research"
	Model__OpenRouter__O3__Mini__High__3__Mini                                               ModelID = "openai/o3-mini-high"
	Model__OpenRouter__O4__4__Mini                                                           ModelID = "openai/o4-mini"
	Model__OpenRouter__O4__Mini__Deep__Research__4__Mini                                     ModelID = "openai/o4-mini-deep-research"
	Model__OpenRouter__O4__Mini__High__4__Mini                                               ModelID = "openai/o4-mini-high"
	Model__OpenRouter__OLMo__3__32b__3__Think                                                ModelID = "allenai/olmo-3-32b-think"
	Model__OpenRouter__Palmyra__X5                                                           ModelID = "writer/palmyra-x5"
	Model__OpenRouter__Pareto__Code                                                          ModelID = "openrouter/pareto-code"
	Model__OpenRouter__Perceptron__Mk1                                                       ModelID = "perceptron/perceptron-mk1"
	Model__OpenRouter__Phi__4                                                                ModelID = "microsoft/phi-4"
	Model__OpenRouter__Qwen2__5__Vl__72b__2_5__Instruct                                      ModelID = "qwen/qwen2.5-vl-72b-instruct"
	Model__OpenRouter__Qwen3__14b__3                                                         ModelID = "qwen/qwen3-14b"
	Model__OpenRouter__Qwen3__235b__A22b__2507__3                                            ModelID = "qwen/qwen3-235b-a22b-2507"
	Model__OpenRouter__Qwen3__235b__A22b__3                                                  ModelID = "qwen/qwen3-235b-a22b"
	Model__OpenRouter__Qwen3__235b__A22b__Thinking__2507__3__Thinking                        ModelID = "qwen/qwen3-235b-a22b-thinking-2507"
	Model__OpenRouter__Qwen3__30b__A3b__3                                                    ModelID = "qwen/qwen3-30b-a3b"
	Model__OpenRouter__Qwen3__30b__A3b__Instruct__2507__3__Instruct                          ModelID = "qwen/qwen3-30b-a3b-instruct-2507"
	Model__OpenRouter__Qwen3__30b__A3b__Thinking__2507__3__Thinking                          ModelID = "qwen/qwen3-30b-a3b-thinking-2507"
	Model__OpenRouter__Qwen3__32b__3                                                         ModelID = "qwen/qwen3-32b"
	Model__OpenRouter__Qwen3__5__122b__A10b__3_5                                             ModelID = "qwen/qwen3.5-122b-a10b"
	Model__OpenRouter__Qwen3__5__27b__3_5                                                    ModelID = "qwen/qwen3.5-27b"
	Model__OpenRouter__Qwen3__5__35b__A3b__3_5                                               ModelID = "qwen/qwen3.5-35b-a3b"
	Model__OpenRouter__Qwen3__5__397b__A17b__3_5                                             ModelID = "qwen/qwen3.5-397b-a17b"
	Model__OpenRouter__Qwen3__5__9b__3_5                                                     ModelID = "qwen/qwen3.5-9b"
	Model__OpenRouter__Qwen3__5__Flash__02__23__3_5                                          ModelID = "qwen/qwen3.5-flash-02-23"
	Model__OpenRouter__Qwen3__5__Plus__02__15__3_5                                           ModelID = "qwen/qwen3.5-plus-02-15"
	Model__OpenRouter__Qwen3__5__Plus__3_5__20260420                                         ModelID = "qwen/qwen3.5-plus-20260420"
	Model__OpenRouter__Qwen3__6__27b__3_6                                                    ModelID = "qwen/qwen3.6-27b"
	Model__OpenRouter__Qwen3__6__35b__A3b__3_6                                               ModelID = "qwen/qwen3.6-35b-a3b"
	Model__OpenRouter__Qwen3__6__Flash__3_6                                                  ModelID = "qwen/qwen3.6-flash"
	Model__OpenRouter__Qwen3__6__Max__3_6__Preview                                           ModelID = "qwen/qwen3.6-max-preview"
	Model__OpenRouter__Qwen3__6__Plus__3_6                                                   ModelID = "qwen/qwen3.6-plus"
	Model__OpenRouter__Qwen3__7__Max__3_7                                                    ModelID = "qwen/qwen3.7-max"
	Model__OpenRouter__Qwen3__7__Plus__3_7                                                   ModelID = "qwen/qwen3.7-plus"
	Model__OpenRouter__Qwen3__8b__3                                                          ModelID = "qwen/qwen3-8b"
	Model__OpenRouter__Qwen3__Coder__3                                                       ModelID = "qwen/qwen3-coder"
	Model__OpenRouter__Qwen3__Coder__30b__A3b__3__Instruct                                   ModelID = "qwen/qwen3-coder-30b-a3b-instruct"
	Model__OpenRouter__Qwen3__Coder__Flash__3                                                ModelID = "qwen/qwen3-coder-flash"
	Model__OpenRouter__Qwen3__Coder__Free__3                                                 ModelID = "qwen/qwen3-coder:free"
	Model__OpenRouter__Qwen3__Coder__Next__3                                                 ModelID = "qwen/qwen3-coder-next"
	Model__OpenRouter__Qwen3__Coder__Plus__3                                                 ModelID = "qwen/qwen3-coder-plus"
	Model__OpenRouter__Qwen3__Max__3                                                         ModelID = "qwen/qwen3-max"
	Model__OpenRouter__Qwen3__Max__3__Thinking                                               ModelID = "qwen/qwen3-max-thinking"
	Model__OpenRouter__Qwen3__Next__80b__A3b__3__Instruct                                    ModelID = "qwen/qwen3-next-80b-a3b-instruct"
	Model__OpenRouter__Qwen3__Next__80b__A3b__3__Thinking                                    ModelID = "qwen/qwen3-next-80b-a3b-thinking"
	Model__OpenRouter__Qwen3__Next__80b__A3b__Instruct__Free__3__Instruct                    ModelID = "qwen/qwen3-next-80b-a3b-instruct:free"
	Model__OpenRouter__Qwen3__Vl__235b__A22b__3__Instruct                                    ModelID = "qwen/qwen3-vl-235b-a22b-instruct"
	Model__OpenRouter__Qwen3__Vl__235b__A22b__3__Thinking                                    ModelID = "qwen/qwen3-vl-235b-a22b-thinking"
	Model__OpenRouter__Qwen3__Vl__30b__A3b__3__Instruct                                      ModelID = "qwen/qwen3-vl-30b-a3b-instruct"
	Model__OpenRouter__Qwen3__Vl__30b__A3b__3__Thinking                                      ModelID = "qwen/qwen3-vl-30b-a3b-thinking"
	Model__OpenRouter__Qwen3__Vl__32b__3__Instruct                                           ModelID = "qwen/qwen3-vl-32b-instruct"
	Model__OpenRouter__Qwen3__Vl__8b__3__Instruct                                            ModelID = "qwen/qwen3-vl-8b-instruct"
	Model__OpenRouter__Qwen3__Vl__8b__3__Thinking                                            ModelID = "qwen/qwen3-vl-8b-thinking"
	Model__OpenRouter__Qwen__2__5__72b__2_5__Instruct                                        ModelID = "qwen/qwen-2.5-72b-instruct"
	Model__OpenRouter__Qwen__2__5__7b__2_5__Instruct                                         ModelID = "qwen/qwen-2.5-7b-instruct"
	Model__OpenRouter__Qwen__2__5__Coder__32b__2_5__Instruct                                 ModelID = "qwen/qwen-2.5-coder-32b-instruct"
	Model__OpenRouter__Qwen__Plus                                                            ModelID = "qwen/qwen-plus"
	Model__OpenRouter__Qwen__Plus__20250728                                                  ModelID = "qwen/qwen-plus-2025-07-28"
	Model__OpenRouter__Qwen__Plus__2025__07__28__Thinking                                    ModelID = "qwen/qwen-plus-2025-07-28:thinking"
	Model__OpenRouter__Reka__Edge                                                            ModelID = "rekaai/reka-edge"
	Model__OpenRouter__Reka__Flash__3                                                        ModelID = "rekaai/reka-flash-3"
	Model__OpenRouter__Relace__Apply__3                                                      ModelID = "relace/relace-apply-3"
	Model__OpenRouter__Relace__Search                                                        ModelID = "relace/relace-search"
	Model__OpenRouter__Remm__Slerp__L2__13b                                                  ModelID = "undi95/remm-slerp-l2-13b"
	Model__OpenRouter__Ring__2__6__1t__2_6                                                   ModelID = "inclusionai/ring-2.6-1t"
	Model__OpenRouter__Rocinante__12b                                                        ModelID = "thedrummer/rocinante-12b"
	Model__OpenRouter__Seed__1_6                                                             ModelID = "bytedance-seed/seed-1.6"
	Model__OpenRouter__Seed__1__6__Flash__1_6                                                ModelID = "bytedance-seed/seed-1.6-flash"
	Model__OpenRouter__Seed__2__0__Lite__2_0                                                 ModelID = "bytedance-seed/seed-2.0-lite"
	Model__OpenRouter__Seed__2__0__Mini__2_0                                                 ModelID = "bytedance-seed/seed-2.0-mini"
	Model__OpenRouter__Skyfall__36b__V2                                                      ModelID = "thedrummer/skyfall-36b-v2"
	Model__OpenRouter__Solar__Pro__3                                                         ModelID = "upstage/solar-pro-3"
	Model__OpenRouter__Sonar                                                                 ModelID = "perplexity/sonar"
	Model__OpenRouter__Sonar__Deep__Research                                                 ModelID = "perplexity/sonar-deep-research"
	Model__OpenRouter__Sonar__Pro                                                            ModelID = "perplexity/sonar-pro"
	Model__OpenRouter__Sonar__Pro__Search                                                    ModelID = "perplexity/sonar-pro-search"
	Model__OpenRouter__Sonar__Reasoning__Pro                                                 ModelID = "perplexity/sonar-reasoning-pro"
	Model__OpenRouter__Step__3__5__Flash__3_5                                                ModelID = "stepfun/step-3.5-flash"
	Model__OpenRouter__Step__3__7__Flash__3_7                                                ModelID = "stepfun/step-3.7-flash"
	Model__OpenRouter__Trinity__Large__Thinking                                              ModelID = "arcee-ai/trinity-large-thinking"
	Model__OpenRouter__Ui__Tars__1__5__7b                                                    ModelID = "bytedance/ui-tars-1.5-7b"
	Model__OpenRouter__Unslopnemo__12b                                                       ModelID = "thedrummer/unslopnemo-12b"
	Model__OpenRouter__Virtuoso__Large                                                       ModelID = "arcee-ai/virtuoso-large"
	Model__OpenRouter__Voxtral__Small__24b__2507                                             ModelID = "mistralai/voxtral-small-24b-2507"
	Model__OpenRouter__Weaver                                                                ModelID = "mancer/weaver"
	Model__OpenRouter__WizardLM__2__8x22b__2                                                 ModelID = "microsoft/wizardlm-2-8x22b"
	Model__OrcaRouter__Auto                                                                  ModelID = "orcarouter/auto"
	Model__OrcaRouter__Claude__Haiku__4_5                                                    ModelID = "anthropic/claude-haiku-4.5"
	Model__OrcaRouter__Claude__Opus__4                                                       ModelID = "anthropic/claude-opus-4"
	Model__OrcaRouter__Claude__Opus__4_1                                                     ModelID = "anthropic/claude-opus-4.1"
	Model__OrcaRouter__Claude__Opus__4_5                                                     ModelID = "anthropic/claude-opus-4.5"
	Model__OrcaRouter__Claude__Opus__4_6                                                     ModelID = "anthropic/claude-opus-4.6"
	Model__OrcaRouter__Claude__Opus__4_7                                                     ModelID = "anthropic/claude-opus-4.7"
	Model__OrcaRouter__Claude__Sonnet__4                                                     ModelID = "anthropic/claude-sonnet-4"
	Model__OrcaRouter__Claude__Sonnet__4_5                                                   ModelID = "anthropic/claude-sonnet-4.5"
	Model__OrcaRouter__Claude__Sonnet__4_6                                                   ModelID = "anthropic/claude-sonnet-4.6"
	Model__OrcaRouter__DeepSeek__Chat                                                        ModelID = "deepseek/deepseek-chat"
	Model__OrcaRouter__DeepSeek__Reasoner__Thinking                                          ModelID = "deepseek/deepseek-reasoner"
	Model__OrcaRouter__DeepSeek__V4__Flash                                                   ModelID = "deepseek/deepseek-v4-flash"
	Model__OrcaRouter__DeepSeek__V4__Pro__Thinking                                           ModelID = "deepseek/deepseek-v4-pro"
	Model__OrcaRouter__GLM__4_5                                                              ModelID = "z-ai/glm-4.5"
	Model__OrcaRouter__GLM__4_6                                                              ModelID = "z-ai/glm-4.6"
	Model__OrcaRouter__GLM__4_7                                                              ModelID = "z-ai/glm-4.7"
	Model__OrcaRouter__GLM__4__5__Air__4_5                                                   ModelID = "z-ai/glm-4.5-air"
	Model__OrcaRouter__GLM__5                                                                ModelID = "z-ai/glm-5"
	Model__OrcaRouter__GLM__5_1                                                              ModelID = "z-ai/glm-5.1"
	Model__OrcaRouter__GPT__3_5__Turbo                                                       ModelID = "openai/gpt-3.5-turbo"
	Model__OrcaRouter__GPT__4                                                                ModelID = "openai/gpt-4"
	Model__OrcaRouter__GPT__4_1                                                              ModelID = "openai/gpt-4.1"
	Model__OrcaRouter__GPT__4__1__Mini__4_1                                                  ModelID = "openai/gpt-4.1-mini"
	Model__OrcaRouter__GPT__4__1__Nano__4_1                                                  ModelID = "openai/gpt-4.1-nano"
	Model__OrcaRouter__GPT__4__Turbo                                                         ModelID = "openai/gpt-4-turbo"
	Model__OrcaRouter__GPT__4o                                                               ModelID = "openai/gpt-4o"
	Model__OrcaRouter__GPT__4o__20240513                                                     ModelID = "openai/gpt-4o-2024-05-13"
	Model__OrcaRouter__GPT__4o__20240806                                                     ModelID = "openai/gpt-4o-2024-08-06"
	Model__OrcaRouter__GPT__4o__20241120                                                     ModelID = "openai/gpt-4o-2024-11-20"
	Model__OrcaRouter__GPT__4o__Mini                                                         ModelID = "openai/gpt-4o-mini"
	Model__OrcaRouter__GPT__5                                                                ModelID = "openai/gpt-5"
	Model__OrcaRouter__GPT__5_1                                                              ModelID = "openai/gpt-5.1"
	Model__OrcaRouter__GPT__5_1__ChatLatest                                                  ModelID = "openai/gpt-5.1-chat-latest"
	Model__OrcaRouter__GPT__5_2                                                              ModelID = "openai/gpt-5.2"
	Model__OrcaRouter__GPT__5_2__ChatLatest                                                  ModelID = "openai/gpt-5.2-chat-latest"
	Model__OrcaRouter__GPT__5_3__ChatLatest                                                  ModelID = "openai/gpt-5.3-chat-latest"
	Model__OrcaRouter__GPT__5_4                                                              ModelID = "openai/gpt-5.4"
	Model__OrcaRouter__GPT__5_5                                                              ModelID = "openai/gpt-5.5"
	Model__OrcaRouter__GPT__5__1__Codex__5_1                                                 ModelID = "openai/gpt-5.1-codex"
	Model__OrcaRouter__GPT__5__1__Codex__Max__5_1                                            ModelID = "openai/gpt-5.1-codex-max"
	Model__OrcaRouter__GPT__5__1__Codex__Mini__5_1                                           ModelID = "openai/gpt-5.1-codex-mini"
	Model__OrcaRouter__GPT__5__2__Codex__5_2                                                 ModelID = "openai/gpt-5.2-codex"
	Model__OrcaRouter__GPT__5__2__Pro__5_2                                                   ModelID = "openai/gpt-5.2-pro"
	Model__OrcaRouter__GPT__5__3__Codex__5_3                                                 ModelID = "openai/gpt-5.3-codex"
	Model__OrcaRouter__GPT__5__4__Mini__5_4                                                  ModelID = "openai/gpt-5.4-mini"
	Model__OrcaRouter__GPT__5__4__Nano__5_4                                                  ModelID = "openai/gpt-5.4-nano"
	Model__OrcaRouter__GPT__5__4__Pro__5_4                                                   ModelID = "openai/gpt-5.4-pro"
	Model__OrcaRouter__GPT__5__5__Pro__5_5                                                   ModelID = "openai/gpt-5.5-pro"
	Model__OrcaRouter__GPT__5__ChatLatest                                                    ModelID = "openai/gpt-5-chat-latest"
	Model__OrcaRouter__GPT__5__Codex__5                                                      ModelID = "openai/gpt-5-codex"
	Model__OrcaRouter__GPT__5__Mini__5                                                       ModelID = "openai/gpt-5-mini"
	Model__OrcaRouter__GPT__5__Nano__5                                                       ModelID = "openai/gpt-5-nano"
	Model__OrcaRouter__GPT__5__Pro__5                                                        ModelID = "openai/gpt-5-pro"
	Model__OrcaRouter__Gemini__2__5__Flash__2_5                                              ModelID = "google/gemini-2.5-flash"
	Model__OrcaRouter__Gemini__2__5__Flash__Lite__2_5                                        ModelID = "google/gemini-2.5-flash-lite"
	Model__OrcaRouter__Gemini__2__5__Pro__2_5                                                ModelID = "google/gemini-2.5-pro"
	Model__OrcaRouter__Gemini__3__1__Flash__Lite__3_1__Preview                               ModelID = "google/gemini-3.1-flash-lite-preview"
	Model__OrcaRouter__Gemini__3__1__Pro__3_1__Preview                                       ModelID = "google/gemini-3.1-pro-preview"
	Model__OrcaRouter__Gemini__3__1__Pro__Preview__Customtools__3_1                          ModelID = "google/gemini-3.1-pro-preview-customtools"
	Model__OrcaRouter__Gemini__3__Flash__3__Preview                                          ModelID = "google/gemini-3-flash-preview"
	Model__OrcaRouter__Gemini__3__Pro__3__Preview                                            ModelID = "google/gemini-3-pro-preview"
	Model__OrcaRouter__Gemini__Flash__Latest                                                 ModelID = "google/gemini-flash-latest"
	Model__OrcaRouter__Gemini__Flash__Lite__Latest                                           ModelID = "google/gemini-flash-lite-latest"
	Model__OrcaRouter__Gemma__4__26b__A4b__It__4                                             ModelID = "google/gemma-4-26b-a4b-it"
	Model__OrcaRouter__Gemma__4__31b__It__4                                                  ModelID = "google/gemma-4-31b-it"
	Model__OrcaRouter__Grok__4_3                                                             ModelID = "grok/grok-4.3"
	Model__OrcaRouter__Kimi__K2__5__2_5                                                      ModelID = "kimi/kimi-k2.5"
	Model__OrcaRouter__Kimi__K2__6__2_6                                                      ModelID = "kimi/kimi-k2.6"
	Model__OrcaRouter__MiniMax__M2__5__2_5                                                   ModelID = "minimax/minimax-m2.5"
	Model__OrcaRouter__MiniMax__M2__5__2_5__Highspeed                                        ModelID = "minimax/minimax-m2.5-highspeed"
	Model__OrcaRouter__MiniMax__M2__7__2_7                                                   ModelID = "minimax/minimax-m2.7"
	Model__OrcaRouter__MiniMax__M2__7__2_7__Highspeed                                        ModelID = "minimax/minimax-m2.7-highspeed"
	Model__OrcaRouter__Qwen3__5__122b__A10b__3_5                                             ModelID = "qwen/qwen3.5-122b-a10b"
	Model__OrcaRouter__Qwen3__5__27b__3_5                                                    ModelID = "qwen/qwen3.5-27b"
	Model__OrcaRouter__Qwen3__5__35b__A3b__3_5                                               ModelID = "qwen/qwen3.5-35b-a3b"
	Model__OrcaRouter__Qwen3__5__397b__A17b__3_5                                             ModelID = "qwen/qwen3.5-397b-a17b"
	Model__OrcaRouter__Qwen3__5__Plus__3_5                                                   ModelID = "qwen/qwen3.5-plus"
	Model__OrcaRouter__Qwen3__6__35b__A3b__3_6                                               ModelID = "qwen/qwen3.6-35b-a3b"
	Model__OrcaRouter__Qwen3__6__Plus__3_6                                                   ModelID = "qwen/qwen3.6-plus"
	Model__OrcaRouter__Qwen3__Max__3                                                         ModelID = "qwen/qwen3-max"
	Model__PerplexityAgent__Claude__Haiku__4_5                                               ModelID = "anthropic/claude-haiku-4-5"
	Model__PerplexityAgent__Claude__Opus__4_5                                                ModelID = "anthropic/claude-opus-4-5"
	Model__PerplexityAgent__Claude__Opus__4_6                                                ModelID = "anthropic/claude-opus-4-6"
	Model__PerplexityAgent__Claude__Opus__4_7                                                ModelID = "anthropic/claude-opus-4-7"
	Model__PerplexityAgent__Claude__Sonnet__4_5                                              ModelID = "anthropic/claude-sonnet-4-5"
	Model__PerplexityAgent__Claude__Sonnet__4_6                                              ModelID = "anthropic/claude-sonnet-4-6"
	Model__PerplexityAgent__GPT__5_1                                                         ModelID = "openai/gpt-5.1"
	Model__PerplexityAgent__GPT__5_2                                                         ModelID = "openai/gpt-5.2"
	Model__PerplexityAgent__GPT__5_4                                                         ModelID = "openai/gpt-5.4"
	Model__PerplexityAgent__GPT__5_5                                                         ModelID = "openai/gpt-5.5"
	Model__PerplexityAgent__GPT__5__Mini__5                                                  ModelID = "openai/gpt-5-mini"
	Model__PerplexityAgent__Gemini__2__5__Flash__2_5                                         ModelID = "google/gemini-2.5-flash"
	Model__PerplexityAgent__Gemini__2__5__Pro__2_5                                           ModelID = "google/gemini-2.5-pro"
	Model__PerplexityAgent__Gemini__3__1__Pro__3_1__Preview                                  ModelID = "google/gemini-3.1-pro-preview"
	Model__PerplexityAgent__Gemini__3__Flash__3__Preview                                     ModelID = "google/gemini-3-flash-preview"
	Model__PerplexityAgent__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning             ModelID = "xai/grok-4-1-fast-non-reasoning"
	Model__PerplexityAgent__Nemotron__3__Super__120b__A12b__3                                ModelID = "nvidia/nemotron-3-super-120b-a12b"
	Model__PerplexityAgent__Sonar                                                            ModelID = "perplexity/sonar"
	Model__Perplexity__Sonar                                                                 ModelID = "sonar"
	Model__Perplexity__Sonar__Deep__Research                                                 ModelID = "sonar-deep-research"
	Model__Perplexity__Sonar__Pro                                                            ModelID = "sonar-pro"
	Model__Perplexity__Sonar__Reasoning__Pro                                                 ModelID = "sonar-reasoning-pro"
	Model__Pioneer__Auto                                                                     ModelID = "pioneer/auto"
	Model__Pioneer__Claude__Haiku__4_5                                                       ModelID = "claude-haiku-4-5"
	Model__Pioneer__Claude__Opus__4_1                                                        ModelID = "claude-opus-4-1"
	Model__Pioneer__Claude__Opus__4_5                                                        ModelID = "claude-opus-4-5"
	Model__Pioneer__Claude__Opus__4_6                                                        ModelID = "claude-opus-4-6"
	Model__Pioneer__Claude__Opus__4_7                                                        ModelID = "claude-opus-4-7"
	Model__Pioneer__Claude__Opus__4_8                                                        ModelID = "claude-opus-4-8"
	Model__Pioneer__Claude__Sonnet__4_5                                                      ModelID = "claude-sonnet-4-5"
	Model__Pioneer__Claude__Sonnet__4_6                                                      ModelID = "claude-sonnet-4-6"
	Model__Pioneer__DeepSeek__V4__Flash                                                      ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__Pioneer__DeepSeek__V4__Pro__Thinking                                              ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__Pioneer__Diffusiongemma__26B__A4b__It                                             ModelID = "google/diffusiongemma-26B-A4B-it"
	Model__Pioneer__Fugu__Ultra                                                              ModelID = "sakana/fugu-ultra"
	Model__Pioneer__GLM__5_1                                                                 ModelID = "zai-org/GLM-5.1"
	Model__Pioneer__GLM__5_2                                                                 ModelID = "zai-org/GLM-5.2"
	Model__Pioneer__GPT__4_1                                                                 ModelID = "gpt-4.1"
	Model__Pioneer__GPT__4__1__Mini__4_1                                                     ModelID = "gpt-4.1-mini"
	Model__Pioneer__GPT__4__1__Nano__4_1                                                     ModelID = "gpt-4.1-nano"
	Model__Pioneer__GPT__4o                                                                  ModelID = "gpt-4o"
	Model__Pioneer__GPT__4o__Mini                                                            ModelID = "gpt-4o-mini"
	Model__Pioneer__GPT__5_1                                                                 ModelID = "gpt-5.1"
	Model__Pioneer__GPT__5_4                                                                 ModelID = "gpt-5.4"
	Model__Pioneer__GPT__5_5                                                                 ModelID = "gpt-5.5"
	Model__Pioneer__GPT__5__3__Codex__5_3                                                    ModelID = "gpt-5.3-codex"
	Model__Pioneer__GPT__5__4__Mini__5_4                                                     ModelID = "gpt-5.4-mini"
	Model__Pioneer__GPT__5__4__Nano__5_4                                                     ModelID = "gpt-5.4-nano"
	Model__Pioneer__GPT__5__Mini__5                                                          ModelID = "gpt-5-mini"
	Model__Pioneer__GPT__5__Nano__5                                                          ModelID = "gpt-5-nano"
	Model__Pioneer__GPT__Oss__120b                                                           ModelID = "openai/gpt-oss-120b"
	Model__Pioneer__GPT__Oss__20b                                                            ModelID = "openai/gpt-oss-20b"
	Model__Pioneer__Gemini__3__1__Pro__3_1                                                   ModelID = "gemini-3.1-pro"
	Model__Pioneer__Gemini__3__5__Flash__3_5                                                 ModelID = "gemini-3.5-flash"
	Model__Pioneer__Gemini__3__Flash__3                                                      ModelID = "gemini-3-flash"
	Model__Pioneer__Gemma__3__4b__Pt__3                                                      ModelID = "google/gemma-3-4b-pt"
	Model__Pioneer__Gemma__4__12B__It__4                                                     ModelID = "google/gemma-4-12B-it"
	Model__Pioneer__Gemma__4__31B__It__4                                                     ModelID = "google/gemma-4-31B-it"
	Model__Pioneer__Gemma__4__E2b__It__4                                                     ModelID = "google/gemma-4-E2B-it"
	Model__Pioneer__Gemma__4__E4b__It__4                                                     ModelID = "google/gemma-4-E4B-it"
	Model__Pioneer__Gliguard__Llmguardrails__300M                                            ModelID = "fastino/gliguard-LLMGuardrails-300M"
	Model__Pioneer__Gliner2__Base__V1__Base                                                  ModelID = "fastino/gliner2-base-v1"
	Model__Pioneer__Gliner2__Large__V1                                                       ModelID = "fastino/gliner2-large-v1"
	Model__Pioneer__Gliner2__Multi__Large__V1                                                ModelID = "fastino/gliner2-multi-large-v1"
	Model__Pioneer__Gliner2__Multi__V1                                                       ModelID = "fastino/gliner2-multi-v1"
	Model__Pioneer__Gliner2__Privacy__Filter__Pii__Multi                                     ModelID = "fastino/gliner2-privacy-filter-PII-multi"
	Model__Pioneer__Kimi__K2__6__2_6                                                         ModelID = "moonshotai/Kimi-K2.6"
	Model__Pioneer__Kimi__K2__7__2_7__Code                                                   ModelID = "moonshotai/Kimi-K2.7-Code"
	Model__Pioneer__Lfm2__24B__A2b                                                           ModelID = "LiquidAI/LFM2-24B-A2B"
	Model__Pioneer__Llama__3__1__8B__3_1__Instruct                                           ModelID = "meta-llama/Llama-3.1-8B-Instruct"
	Model__Pioneer__Llama__3__2__1B__3_2__Instruct                                           ModelID = "meta-llama/Llama-3.2-1B-Instruct"
	Model__Pioneer__Llama__3__2__3B__3_2__Instruct                                           ModelID = "meta-llama/Llama-3.2-3B-Instruct"
	Model__Pioneer__Llama__3__3__70B__3_3__Instruct                                          ModelID = "meta-llama/Llama-3.3-70B-Instruct"
	Model__Pioneer__Mimo__V2__5__2_5                                                         ModelID = "XiaomiMiMo/MiMo-V2.5"
	Model__Pioneer__Mimo__V2__5__2_5__Pro                                                    ModelID = "XiaomiMiMo/MiMo-V2.5-Pro"
	Model__Pioneer__MiniMax__M2__7__2_7                                                      ModelID = "MiniMaxAI/MiniMax-M2.7"
	Model__Pioneer__MiniMax__M3__3                                                           ModelID = "MiniMaxAI/MiniMax-M3"
	Model__Pioneer__Mistral__7B__Instruct__V0__3__0_3__Instruct                              ModelID = "mistralai/Mistral-7B-Instruct-v0.3"
	Model__Pioneer__Mistral__Medium__3_5                                                     ModelID = "mistral-medium-3.5"
	Model__Pioneer__Mistral__Nemo__Instruct__2407__Instruct                                  ModelID = "mistralai/Mistral-Nemo-Instruct-2407"
	Model__Pioneer__Mistral__Small__4__119B__2603                                            ModelID = "mistralai/Mistral-Small-4-119B-2603"
	Model__Pioneer__Nvidia__Nemotron__3__Nano__30B__A3b__Bf16                                ModelID = "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16"
	Model__Pioneer__Nvidia__Nemotron__3__Super__120B__A12b__Fp8                              ModelID = "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8"
	Model__Pioneer__Nvidia__Nemotron__3__Ultra__550B__A55b__Bf16                             ModelID = "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16"
	Model__Pioneer__Qwen3__1__7B__3__Base                                                    ModelID = "Qwen/Qwen3-1.7B-Base"
	Model__Pioneer__Qwen3__32B__3                                                            ModelID = "Qwen/Qwen3-32B"
	Model__Pioneer__Qwen3__4B__3__Base                                                       ModelID = "Qwen/Qwen3-4B-Base"
	Model__Pioneer__Qwen3__4B__Instruct__2507__3__Instruct                                   ModelID = "Qwen/Qwen3-4B-Instruct-2507"
	Model__Pioneer__Qwen3__5__9B__3_5                                                        ModelID = "Qwen/Qwen3.5-9B"
	Model__Pioneer__Qwen3__6__27B__3_6                                                       ModelID = "Qwen/Qwen3.6-27B"
	Model__Pioneer__Qwen3__6__35B__A3b__3_6                                                  ModelID = "Qwen/Qwen3.6-35B-A3B"
	Model__Pioneer__Qwen3__6__Flash__3_6                                                     ModelID = "qwen3.6-flash"
	Model__Pioneer__Qwen3__6__Max__3_6__Preview                                              ModelID = "qwen3.6-max-preview"
	Model__Pioneer__Qwen3__6__Plus__3_6                                                      ModelID = "qwen3.6-plus"
	Model__Pioneer__Qwen3__7__Max__3_7                                                       ModelID = "qwen3.7-max"
	Model__Pioneer__Qwen3__7__Plus__3_7                                                      ModelID = "qwen3.7-plus"
	Model__Pioneer__Qwen3__8B__3                                                             ModelID = "Qwen/Qwen3-8B"
	Model__Pioneer__Smollm3__3B__Base                                                        ModelID = "HuggingFaceTB/SmolLM3-3B-Base"
	Model__Poe__ChatGPT__4o__Latest                                                          ModelID = "openai/chatgpt-4o-latest"
	Model__Poe__Claude__Code                                                                 ModelID = "poetools/claude-code"
	Model__Poe__Claude__Haiku__3                                                             ModelID = "anthropic/claude-haiku-3"
	Model__Poe__Claude__Haiku__3_5                                                           ModelID = "anthropic/claude-haiku-3.5"
	Model__Poe__Claude__Haiku__4_5                                                           ModelID = "anthropic/claude-haiku-4.5"
	Model__Poe__Claude__Opus__4                                                              ModelID = "anthropic/claude-opus-4"
	Model__Poe__Claude__Opus__4_1                                                            ModelID = "anthropic/claude-opus-4.1"
	Model__Poe__Claude__Opus__4_5                                                            ModelID = "anthropic/claude-opus-4.5"
	Model__Poe__Claude__Opus__4_6                                                            ModelID = "anthropic/claude-opus-4.6"
	Model__Poe__Claude__Opus__4_7                                                            ModelID = "anthropic/claude-opus-4.7"
	Model__Poe__Claude__Opus__4_8                                                            ModelID = "anthropic/claude-opus-4.8"
	Model__Poe__Claude__Sonnet__3_5                                                          ModelID = "anthropic/claude-sonnet-3.5"
	Model__Poe__Claude__Sonnet__3_7                                                          ModelID = "anthropic/claude-sonnet-3.7"
	Model__Poe__Claude__Sonnet__3__5__June__3_5                                              ModelID = "anthropic/claude-sonnet-3.5-june"
	Model__Poe__Claude__Sonnet__4                                                            ModelID = "anthropic/claude-sonnet-4"
	Model__Poe__Claude__Sonnet__4_5                                                          ModelID = "anthropic/claude-sonnet-4.5"
	Model__Poe__Claude__Sonnet__4_6                                                          ModelID = "anthropic/claude-sonnet-4.6"
	Model__Poe__Dall__E__3                                                                   ModelID = "openai/dall-e-3"
	Model__Poe__DeepSeek__V3__2                                                              ModelID = "novita/deepseek-v3.2"
	Model__Poe__DeepSeek__V4__Flash__El                                                      ModelID = "empiriolabs/deepseek-v4-flash-el"
	Model__Poe__DeepSeek__V4__Pro__El                                                        ModelID = "empiriolabs/deepseek-v4-pro-el"
	Model__Poe__Elevenlabs__Music                                                            ModelID = "elevenlabs/elevenlabs-music"
	Model__Poe__Elevenlabs__V2__5__Turbo                                                     ModelID = "elevenlabs/elevenlabs-v2.5-turbo"
	Model__Poe__Elevenlabs__V3                                                               ModelID = "elevenlabs/elevenlabs-v3"
	Model__Poe__GLM__4_6                                                                     ModelID = "novita/glm-4.6"
	Model__Poe__GLM__4_7                                                                     ModelID = "novita/glm-4.7"
	Model__Poe__GLM__4__6v__4_6                                                              ModelID = "novita/glm-4.6v"
	Model__Poe__GLM__4__7__Flash__4_7                                                        ModelID = "novita/glm-4.7-flash"
	Model__Poe__GLM__4__7__N__4_7                                                            ModelID = "novita/glm-4.7-n"
	Model__Poe__GLM__5                                                                       ModelID = "novita/glm-5"
	Model__Poe__GPT__3_5__Turbo                                                              ModelID = "openai/gpt-3.5-turbo"
	Model__Poe__GPT__3_5__TurboInstruct                                                      ModelID = "openai/gpt-3.5-turbo-instruct"
	Model__Poe__GPT__3__5__Turbo__Raw__3_5__Turbo                                            ModelID = "openai/gpt-3.5-turbo-raw"
	Model__Poe__GPT__4_1                                                                     ModelID = "openai/gpt-4.1"
	Model__Poe__GPT__4__1__Mini__4_1                                                         ModelID = "openai/gpt-4.1-mini"
	Model__Poe__GPT__4__1__Nano__4_1                                                         ModelID = "openai/gpt-4.1-nano"
	Model__Poe__GPT__4__Classic__0314__4                                                     ModelID = "openai/gpt-4-classic-0314"
	Model__Poe__GPT__4__Classic__4                                                           ModelID = "openai/gpt-4-classic"
	Model__Poe__GPT__4__Turbo                                                                ModelID = "openai/gpt-4-turbo"
	Model__Poe__GPT__4o                                                                      ModelID = "openai/gpt-4o"
	Model__Poe__GPT__4o__Aug                                                                 ModelID = "openai/gpt-4o-aug"
	Model__Poe__GPT__4o__Mini                                                                ModelID = "openai/gpt-4o-mini"
	Model__Poe__GPT__4o__Mini__Search__Mini                                                  ModelID = "openai/gpt-4o-mini-search"
	Model__Poe__GPT__4o__Search                                                              ModelID = "openai/gpt-4o-search"
	Model__Poe__GPT__5                                                                       ModelID = "openai/gpt-5"
	Model__Poe__GPT__5_1                                                                     ModelID = "openai/gpt-5.1"
	Model__Poe__GPT__5_2                                                                     ModelID = "openai/gpt-5.2"
	Model__Poe__GPT__5_4                                                                     ModelID = "openai/gpt-5.4"
	Model__Poe__GPT__5_5                                                                     ModelID = "openai/gpt-5.5"
	Model__Poe__GPT__5__1__Codex__5_1                                                        ModelID = "openai/gpt-5.1-codex"
	Model__Poe__GPT__5__1__Codex__Max__5_1                                                   ModelID = "openai/gpt-5.1-codex-max"
	Model__Poe__GPT__5__1__Codex__Mini__5_1                                                  ModelID = "openai/gpt-5.1-codex-mini"
	Model__Poe__GPT__5__1__Instant__5_1                                                      ModelID = "openai/gpt-5.1-instant"
	Model__Poe__GPT__5__2__Codex__5_2                                                        ModelID = "openai/gpt-5.2-codex"
	Model__Poe__GPT__5__2__Instant__5_2                                                      ModelID = "openai/gpt-5.2-instant"
	Model__Poe__GPT__5__2__Pro__5_2                                                          ModelID = "openai/gpt-5.2-pro"
	Model__Poe__GPT__5__3__Codex__5_3                                                        ModelID = "openai/gpt-5.3-codex"
	Model__Poe__GPT__5__3__Codex__Spark__5_3                                                 ModelID = "openai/gpt-5.3-codex-spark"
	Model__Poe__GPT__5__3__Instant__5_3                                                      ModelID = "openai/gpt-5.3-instant"
	Model__Poe__GPT__5__4__Mini__5_4                                                         ModelID = "openai/gpt-5.4-mini"
	Model__Poe__GPT__5__4__Nano__5_4                                                         ModelID = "openai/gpt-5.4-nano"
	Model__Poe__GPT__5__4__Pro__5_4                                                          ModelID = "openai/gpt-5.4-pro"
	Model__Poe__GPT__5__5__Pro__5_5                                                          ModelID = "openai/gpt-5.5-pro"
	Model__Poe__GPT__5__Chat                                                                 ModelID = "openai/gpt-5-chat"
	Model__Poe__GPT__5__Codex__5                                                             ModelID = "openai/gpt-5-codex"
	Model__Poe__GPT__5__Mini__5                                                              ModelID = "openai/gpt-5-mini"
	Model__Poe__GPT__5__Nano__5                                                              ModelID = "openai/gpt-5-nano"
	Model__Poe__GPT__5__Pro__5                                                               ModelID = "openai/gpt-5-pro"
	Model__Poe__GPT__Image__1                                                                ModelID = "openai/gpt-image-1"
	Model__Poe__GPT__Image__1_5                                                              ModelID = "openai/gpt-image-1.5"
	Model__Poe__GPT__Image__1__Mini                                                          ModelID = "openai/gpt-image-1-mini"
	Model__Poe__GPT__Image__2                                                                ModelID = "openai/gpt-image-2"
	Model__Poe__GPT__Oss__120b__Cs                                                           ModelID = "cerebras/gpt-oss-120b-cs"
	Model__Poe__Gemini__2__0__Flash__2_0                                                     ModelID = "google/gemini-2.0-flash"
	Model__Poe__Gemini__2__0__Flash__Lite__2_0                                               ModelID = "google/gemini-2.0-flash-lite"
	Model__Poe__Gemini__2__5__Flash__2_5                                                     ModelID = "google/gemini-2.5-flash"
	Model__Poe__Gemini__2__5__Flash__Lite__2_5                                               ModelID = "google/gemini-2.5-flash-lite"
	Model__Poe__Gemini__2__5__Pro__2_5                                                       ModelID = "google/gemini-2.5-pro"
	Model__Poe__Gemini__3__1__Flash__Lite__3_1                                               ModelID = "google/gemini-3.1-flash-lite"
	Model__Poe__Gemini__3__1__Pro__3_1                                                       ModelID = "google/gemini-3.1-pro"
	Model__Poe__Gemini__3__5__Flash__3_5                                                     ModelID = "google/gemini-3.5-flash"
	Model__Poe__Gemini__3__Flash__3                                                          ModelID = "google/gemini-3-flash"
	Model__Poe__Gemini__3__Pro__3                                                            ModelID = "google/gemini-3-pro"
	Model__Poe__Gemini__Deep__Research                                                       ModelID = "google/gemini-deep-research"
	Model__Poe__Gemma__4__31b__4                                                             ModelID = "google/gemma-4-31b"
	Model__Poe__Grok__3                                                                      ModelID = "xai/grok-3"
	Model__Poe__Grok__3__Mini__3                                                             ModelID = "xai/grok-3-mini"
	Model__Poe__Grok__4                                                                      ModelID = "xai/grok-4"
	Model__Poe__Grok__4_1__ReasoningFast                                                     ModelID = "xai/grok-4.1-fast-reasoning"
	Model__Poe__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                         ModelID = "xai/grok-4.1-fast-non-reasoning"
	Model__Poe__Grok__4__20__Multi__Agent__4_20                                              ModelID = "xai/grok-4.20-multi-agent"
	Model__Poe__Grok__4__Fast__Non__Reasoning__4__Non_Reasoning                              ModelID = "xai/grok-4-fast-non-reasoning"
	Model__Poe__Grok__4__ReasoningFast                                                       ModelID = "xai/grok-4-fast-reasoning"
	Model__Poe__Grok__Code__Fast__1                                                          ModelID = "xai/grok-code-fast-1"
	Model__Poe__Ideogram                                                                     ModelID = "ideogramai/ideogram"
	Model__Poe__Ideogram__V2                                                                 ModelID = "ideogramai/ideogram-v2"
	Model__Poe__Ideogram__V2a                                                                ModelID = "ideogramai/ideogram-v2a"
	Model__Poe__Ideogram__V2a__Turbo                                                         ModelID = "ideogramai/ideogram-v2a-turbo"
	Model__Poe__Imagen__3                                                                    ModelID = "google/imagen-3"
	Model__Poe__Imagen__3__Fast                                                              ModelID = "google/imagen-3-fast"
	Model__Poe__Imagen__4                                                                    ModelID = "google/imagen-4"
	Model__Poe__Imagen__4__Fast                                                              ModelID = "google/imagen-4-fast"
	Model__Poe__Imagen__4__Ultra__4                                                          ModelID = "google/imagen-4-ultra"
	Model__Poe__Kimi__K2__2__Thinking                                                        ModelID = "novita/kimi-k2-thinking"
	Model__Poe__Kimi__K2__5__2_5                                                             ModelID = "novita/kimi-k2.5"
	Model__Poe__Kimi__K2__5__Fw                                                              ModelID = "fireworks-ai/kimi-k2.5-fw"
	Model__Poe__Kimi__K2__6__2_6                                                             ModelID = "novita/kimi-k2.6"
	Model__Poe__Llama__3__1__8b__Cs__3_1                                                     ModelID = "cerebras/llama-3.1-8b-cs"
	Model__Poe__Llama__3__3__70b__Cs__3_3                                                    ModelID = "cerebras/llama-3.3-70b-cs"
	Model__Poe__Lyria                                                                        ModelID = "google/lyria"
	Model__Poe__MiniMax__M2__1__2_1                                                          ModelID = "novita/minimax-m2.1"
	Model__Poe__Nano__Banana                                                                 ModelID = "google/nano-banana"
	Model__Poe__Nano__Banana__Pro                                                            ModelID = "google/nano-banana-pro"
	Model__Poe__O1__1                                                                        ModelID = "openai/o1"
	Model__Poe__O1__1__Pro                                                                   ModelID = "openai/o1-pro"
	Model__Poe__O3__3                                                                        ModelID = "openai/o3"
	Model__Poe__O3__3__Mini                                                                  ModelID = "openai/o3-mini"
	Model__Poe__O3__3__Pro                                                                   ModelID = "openai/o3-pro"
	Model__Poe__O3__Deep__Research__3__Deep_Research                                         ModelID = "openai/o3-deep-research"
	Model__Poe__O3__Mini__High__3__Mini                                                      ModelID = "openai/o3-mini-high"
	Model__Poe__O4__4__Mini                                                                  ModelID = "openai/o4-mini"
	Model__Poe__O4__Mini__Deep__Research__4__Mini                                            ModelID = "openai/o4-mini-deep-research"
	Model__Poe__Qwen3__235b__2507__Cs__3                                                     ModelID = "cerebras/qwen3-235b-2507-cs"
	Model__Poe__Qwen3__32b__Cs__3                                                            ModelID = "cerebras/qwen3-32b-cs"
	Model__Poe__Ray2                                                                         ModelID = "lumalabs/ray2"
	Model__Poe__Runway                                                                       ModelID = "runwayml/runway"
	Model__Poe__Runway__Gen__4__Turbo                                                        ModelID = "runwayml/runway-gen-4-turbo"
	Model__Poe__Sora__2                                                                      ModelID = "openai/sora-2"
	Model__Poe__Sora__2__Pro__2                                                              ModelID = "openai/sora-2-pro"
	Model__Poe__Stablediffusionxl                                                            ModelID = "stabilityai/stablediffusionxl"
	Model__Poe__Tako                                                                         ModelID = "trytako/tako"
	Model__Poe__Topazlabs                                                                    ModelID = "topazlabs-co/topazlabs"
	Model__Poe__Veo__2                                                                       ModelID = "google/veo-2"
	Model__Poe__Veo__3                                                                       ModelID = "google/veo-3"
	Model__Poe__Veo__3_1                                                                     ModelID = "google/veo-3.1"
	Model__Poe__Veo__3_1__Fast                                                               ModelID = "google/veo-3.1-fast"
	Model__Poe__Veo__3__Fast                                                                 ModelID = "google/veo-3-fast"
	Model__Poolside__Laguna__M__1                                                            ModelID = "poolside/laguna-m.1"
	Model__Poolside__Laguna__Xs__2                                                           ModelID = "poolside/laguna-xs.2"
	Model__Poolside__Laguna__Xs__2_1                                                         ModelID = "poolside/laguna-xs-2.1"
	Model__PrivatemodeAI__GPT__Oss__120b                                                     ModelID = "gpt-oss-120b"
	Model__PrivatemodeAI__Gemma__3__27b__3                                                   ModelID = "gemma-3-27b"
	Model__PrivatemodeAI__Qwen3__Coder__30b__A3b__3                                          ModelID = "qwen3-coder-30b-a3b"
	Model__PrivatemodeAI__Qwen3__Embedding__4b__3                                            ModelID = "qwen3-embedding-4b"
	Model__PrivatemodeAI__Whisper__Large__V3__3                                              ModelID = "whisper-large-v3"
	Model__QiHangAI__Claude__Haiku__4_5__20251001                                            ModelID = "claude-haiku-4-5-20251001"
	Model__QiHangAI__Claude__Opus__4_5__20251101                                             ModelID = "claude-opus-4-5-20251101"
	Model__QiHangAI__Claude__Sonnet__4_5__20250929                                           ModelID = "claude-sonnet-4-5-20250929"
	Model__QiHangAI__GPT__5_2                                                                ModelID = "gpt-5.2"
	Model__QiHangAI__GPT__5__2__Codex__5_2                                                   ModelID = "gpt-5.2-codex"
	Model__QiHangAI__GPT__5__Mini__5                                                         ModelID = "gpt-5-mini"
	Model__QiHangAI__Gemini__2__5__Flash__2_5                                                ModelID = "gemini-2.5-flash"
	Model__QiHangAI__Gemini__3__Flash__3__Preview                                            ModelID = "gemini-3-flash-preview"
	Model__QiHangAI__Gemini__3__Pro__3__Preview                                              ModelID = "gemini-3-pro-preview"
	Model__QiniuAI__Autoglm__Phone__9b                                                       ModelID = "z-ai/autoglm-phone-9b"
	Model__QiniuAI__Claude__3__5__Haiku__3_5                                                 ModelID = "claude-3.5-haiku"
	Model__QiniuAI__Claude__3__5__Sonnet__3_5                                                ModelID = "claude-3.5-sonnet"
	Model__QiniuAI__Claude__3__7__Sonnet__3_7                                                ModelID = "claude-3.7-sonnet"
	Model__QiniuAI__Claude__4__0__Opus__4_0                                                  ModelID = "claude-4.0-opus"
	Model__QiniuAI__Claude__4__0__Sonnet__4_0                                                ModelID = "claude-4.0-sonnet"
	Model__QiniuAI__Claude__4__1__Opus__4_1                                                  ModelID = "claude-4.1-opus"
	Model__QiniuAI__Claude__4__5__Haiku__4_5                                                 ModelID = "claude-4.5-haiku"
	Model__QiniuAI__Claude__4__5__Opus__4_5                                                  ModelID = "claude-4.5-opus"
	Model__QiniuAI__Claude__4__5__Sonnet__4_5                                                ModelID = "claude-4.5-sonnet"
	Model__QiniuAI__DeepSeek__Math__V2                                                       ModelID = "deepseek/deepseek-math-v2"
	Model__QiniuAI__DeepSeek__R1                                                             ModelID = "deepseek-r1"
	Model__QiniuAI__DeepSeek__R1__0528                                                       ModelID = "deepseek-r1-0528"
	Model__QiniuAI__DeepSeek__V3                                                             ModelID = "deepseek-v3"
	Model__QiniuAI__DeepSeek__V3__0324                                                       ModelID = "deepseek-v3-0324"
	Model__QiniuAI__DeepSeek__V3__1                                                          ModelID = "deepseek-v3.1"
	Model__QiniuAI__DeepSeek__V3__1__Terminus                                                ModelID = "deepseek/deepseek-v3.1-terminus"
	Model__QiniuAI__DeepSeek__V3__1__Terminus__Thinking                                      ModelID = "deepseek/deepseek-v3.1-terminus-thinking"
	Model__QiniuAI__DeepSeek__V3__2__251201                                                  ModelID = "deepseek/deepseek-v3.2-251201"
	Model__QiniuAI__DeepSeek__V3__2__Exp                                                     ModelID = "deepseek/deepseek-v3.2-exp"
	Model__QiniuAI__DeepSeek__V3__2__Exp__Thinking                                           ModelID = "deepseek/deepseek-v3.2-exp-thinking"
	Model__QiniuAI__Doubao__1__5__Pro__32k__1_5                                              ModelID = "doubao-1.5-pro-32k"
	Model__QiniuAI__Doubao__1__5__Thinking__Pro__1_5                                         ModelID = "doubao-1.5-thinking-pro"
	Model__QiniuAI__Doubao__1__5__Vision__Pro__1_5                                           ModelID = "doubao-1.5-vision-pro"
	Model__QiniuAI__Doubao__Seed__1_6                                                        ModelID = "doubao-seed-1.6"
	Model__QiniuAI__Doubao__Seed__1_6__Thinking                                              ModelID = "doubao-seed-1.6-thinking"
	Model__QiniuAI__Doubao__Seed__1__6__Flash__1_6                                           ModelID = "doubao-seed-1.6-flash"
	Model__QiniuAI__Doubao__Seed__2_0__Code                                                  ModelID = "doubao-seed-2.0-code"
	Model__QiniuAI__Doubao__Seed__2__0__Lite__2_0                                            ModelID = "doubao-seed-2.0-lite"
	Model__QiniuAI__Doubao__Seed__2__0__Mini__2_0                                            ModelID = "doubao-seed-2.0-mini"
	Model__QiniuAI__Doubao__Seed__2__0__Pro__2_0                                             ModelID = "doubao-seed-2.0-pro"
	Model__QiniuAI__GLM__4_5                                                                 ModelID = "glm-4.5"
	Model__QiniuAI__GLM__4_6                                                                 ModelID = "z-ai/glm-4.6"
	Model__QiniuAI__GLM__4_7                                                                 ModelID = "z-ai/glm-4.7"
	Model__QiniuAI__GLM__4__5__Air__4_5                                                      ModelID = "glm-4.5-air"
	Model__QiniuAI__GLM__5                                                                   ModelID = "z-ai/glm-5"
	Model__QiniuAI__GPT__5                                                                   ModelID = "openai/gpt-5"
	Model__QiniuAI__GPT__5_2                                                                 ModelID = "openai/gpt-5.2"
	Model__QiniuAI__GPT__Oss__120b                                                           ModelID = "gpt-oss-120b"
	Model__QiniuAI__GPT__Oss__20b                                                            ModelID = "gpt-oss-20b"
	Model__QiniuAI__Gelab__Zero__4b__Preview                                                 ModelID = "stepfun-ai/gelab-zero-4b-preview"
	Model__QiniuAI__Gemini__2__0__Flash__2_0                                                 ModelID = "gemini-2.0-flash"
	Model__QiniuAI__Gemini__2__0__Flash__Lite__2_0                                           ModelID = "gemini-2.0-flash-lite"
	Model__QiniuAI__Gemini__2__5__Flash__2_5                                                 ModelID = "gemini-2.5-flash"
	Model__QiniuAI__Gemini__2__5__Flash__Image__2_5                                          ModelID = "gemini-2.5-flash-image"
	Model__QiniuAI__Gemini__2__5__Flash__Lite__2_5                                           ModelID = "gemini-2.5-flash-lite"
	Model__QiniuAI__Gemini__2__5__Pro__2_5                                                   ModelID = "gemini-2.5-pro"
	Model__QiniuAI__Gemini__3__0__Flash__3_0__Preview                                        ModelID = "gemini-3.0-flash-preview"
	Model__QiniuAI__Gemini__3__0__Pro__3_0__Preview                                          ModelID = "gemini-3.0-pro-preview"
	Model__QiniuAI__Gemini__3__0__Pro__Image__3_0__Preview                                   ModelID = "gemini-3.0-pro-image-preview"
	Model__QiniuAI__Grok__4_1__Fast                                                          ModelID = "x-ai/grok-4.1-fast"
	Model__QiniuAI__Grok__4_1__ReasoningFast                                                 ModelID = "x-ai/grok-4.1-fast-reasoning"
	Model__QiniuAI__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                     ModelID = "x-ai/grok-4.1-fast-non-reasoning"
	Model__QiniuAI__Grok__4__Fast                                                            ModelID = "x-ai/grok-4-fast"
	Model__QiniuAI__Grok__4__Fast__Non__Reasoning__4__Non_Reasoning                          ModelID = "x-ai/grok-4-fast-non-reasoning"
	Model__QiniuAI__Grok__4__ReasoningFast                                                   ModelID = "x-ai/grok-4-fast-reasoning"
	Model__QiniuAI__Grok__Code__Fast__1                                                      ModelID = "x-ai/grok-code-fast-1"
	Model__QiniuAI__Kimi__K2__0905__2                                                        ModelID = "moonshotai/kimi-k2-0905"
	Model__QiniuAI__Kimi__K2__2                                                              ModelID = "kimi-k2"
	Model__QiniuAI__Kimi__K2__2__Thinking                                                    ModelID = "moonshotai/kimi-k2-thinking"
	Model__QiniuAI__Kimi__K2__5__2_5                                                         ModelID = "moonshotai/kimi-k2.5"
	Model__QiniuAI__Kling__V2__6                                                             ModelID = "kling-v2-6"
	Model__QiniuAI__Longcat__Flash__Chat                                                     ModelID = "meituan/longcat-flash-chat"
	Model__QiniuAI__Longcat__Flash__Lite                                                     ModelID = "meituan/longcat-flash-lite"
	Model__QiniuAI__Mimo__V2__Flash                                                          ModelID = "mimo-v2-flash"
	Model__QiniuAI__Mimo__V2__Flash__Xiaomi                                                  ModelID = "xiaomi/mimo-v2-flash"
	Model__QiniuAI__MiniMax__M1__1                                                           ModelID = "MiniMax-M1"
	Model__QiniuAI__MiniMax__M2__1__2_1                                                      ModelID = "minimax/minimax-m2.1"
	Model__QiniuAI__MiniMax__M2__2                                                           ModelID = "minimax/minimax-m2"
	Model__QiniuAI__MiniMax__M2__5__2_5                                                      ModelID = "minimax/minimax-m2.5"
	Model__QiniuAI__MiniMax__M2__5__2_5__Highspeed                                           ModelID = "minimax/minimax-m2.5-highspeed"
	Model__QiniuAI__Qwen2__5__Vl__72b__2_5__Instruct                                         ModelID = "qwen2.5-vl-72b-instruct"
	Model__QiniuAI__Qwen2__5__Vl__7b__2_5__Instruct                                          ModelID = "qwen2.5-vl-7b-instruct"
	Model__QiniuAI__Qwen3__235b__A22b__3                                                     ModelID = "qwen3-235b-a22b"
	Model__QiniuAI__Qwen3__235b__A22b__Instruct__2507__3__Instruct                           ModelID = "qwen3-235b-a22b-instruct-2507"
	Model__QiniuAI__Qwen3__235b__A22b__Thinking__2507__3__Thinking                           ModelID = "qwen3-235b-a22b-thinking-2507"
	Model__QiniuAI__Qwen3__30b__A3b__3                                                       ModelID = "qwen3-30b-a3b"
	Model__QiniuAI__Qwen3__30b__A3b__Instruct__2507__3__Instruct                             ModelID = "qwen3-30b-a3b-instruct-2507"
	Model__QiniuAI__Qwen3__30b__A3b__Thinking__2507__3__Thinking                             ModelID = "qwen3-30b-a3b-thinking-2507"
	Model__QiniuAI__Qwen3__32b__3                                                            ModelID = "qwen3-32b"
	Model__QiniuAI__Qwen3__5__397b__A17b__3_5                                                ModelID = "qwen3.5-397b-a17b"
	Model__QiniuAI__Qwen3__Coder__480b__A35b__3__Instruct                                    ModelID = "qwen3-coder-480b-a35b-instruct"
	Model__QiniuAI__Qwen3__Max__3                                                            ModelID = "qwen3-max"
	Model__QiniuAI__Qwen3__Max__3__Preview                                                   ModelID = "qwen3-max-preview"
	Model__QiniuAI__Qwen3__Next__80b__A3b__3__Instruct                                       ModelID = "qwen3-next-80b-a3b-instruct"
	Model__QiniuAI__Qwen3__Next__80b__A3b__3__Thinking                                       ModelID = "qwen3-next-80b-a3b-thinking"
	Model__QiniuAI__Qwen3__Vl__30b__A3b__3__Thinking                                         ModelID = "qwen3-vl-30b-a3b-thinking"
	Model__QiniuAI__Qwen__Max__20250125                                                      ModelID = "qwen-max-2025-01-25"
	Model__QiniuAI__Qwen__Turbo                                                              ModelID = "qwen-turbo"
	Model__QiniuAI__Qwen__Vl__Max__20250125                                                  ModelID = "qwen-vl-max-2025-01-25"
	Model__QiniuAI__Step__3__5__Flash__3_5                                                   ModelID = "stepfun/step-3.5-flash"
	Model__RegoloAI__GPT__Oss__120b                                                          ModelID = "gpt-oss-120b"
	Model__RegoloAI__GPT__Oss__20b                                                           ModelID = "gpt-oss-20b"
	Model__RegoloAI__Llama__3__1__8b__3_1__Instruct                                          ModelID = "llama-3.1-8b-instruct"
	Model__RegoloAI__Llama__3__3__70b__3_3__Instruct                                         ModelID = "llama-3.3-70b-instruct"
	Model__RegoloAI__MiniMax__M2__5__2_5                                                     ModelID = "minimax-m2.5"
	Model__RegoloAI__Mistral__Small3__2                                                      ModelID = "mistral-small3.2"
	Model__RegoloAI__Mistral__Small__4__119b__4                                              ModelID = "mistral-small-4-119b"
	Model__RegoloAI__Qwen3__5__122b__3_5                                                     ModelID = "qwen3.5-122b"
	Model__RegoloAI__Qwen3__5__9b__3_5                                                       ModelID = "qwen3.5-9b"
	Model__RegoloAI__Qwen3__Coder__Next__3                                                   ModelID = "qwen3-coder-next"
	Model__RegoloAI__Qwen3__Embedding__8b__3                                                 ModelID = "qwen3-embedding-8b"
	Model__RegoloAI__Qwen3__Reranker__4b__3                                                  ModelID = "qwen3-reranker-4b"
	Model__RegoloAI__Qwen__Image                                                             ModelID = "qwen-image"
	Model__Requesty__Claude__3__7__Sonnet__3_7                                               ModelID = "anthropic/claude-3-7-sonnet"
	Model__Requesty__Claude__Haiku__4_5                                                      ModelID = "anthropic/claude-haiku-4-5"
	Model__Requesty__Claude__Opus__4                                                         ModelID = "anthropic/claude-opus-4"
	Model__Requesty__Claude__Opus__4_1                                                       ModelID = "anthropic/claude-opus-4-1"
	Model__Requesty__Claude__Opus__4_5                                                       ModelID = "anthropic/claude-opus-4-5"
	Model__Requesty__Claude__Opus__4_6                                                       ModelID = "anthropic/claude-opus-4-6"
	Model__Requesty__Claude__Sonnet__4                                                       ModelID = "anthropic/claude-sonnet-4"
	Model__Requesty__Claude__Sonnet__4_5                                                     ModelID = "anthropic/claude-sonnet-4-5"
	Model__Requesty__Claude__Sonnet__4_6                                                     ModelID = "anthropic/claude-sonnet-4-6"
	Model__Requesty__GPT__4_1                                                                ModelID = "openai/gpt-4.1"
	Model__Requesty__GPT__4__1__Mini__4_1                                                    ModelID = "openai/gpt-4.1-mini"
	Model__Requesty__GPT__4o__Mini                                                           ModelID = "openai/gpt-4o-mini"
	Model__Requesty__GPT__5                                                                  ModelID = "openai/gpt-5"
	Model__Requesty__GPT__5_1                                                                ModelID = "openai/gpt-5.1"
	Model__Requesty__GPT__5_1__Chat                                                          ModelID = "openai/gpt-5.1-chat"
	Model__Requesty__GPT__5_2                                                                ModelID = "openai/gpt-5.2"
	Model__Requesty__GPT__5_2__Chat                                                          ModelID = "openai/gpt-5.2-chat"
	Model__Requesty__GPT__5_4                                                                ModelID = "openai/gpt-5.4"
	Model__Requesty__GPT__5__1__Codex__5_1                                                   ModelID = "openai/gpt-5.1-codex"
	Model__Requesty__GPT__5__1__Codex__Max__5_1                                              ModelID = "openai/gpt-5.1-codex-max"
	Model__Requesty__GPT__5__1__Codex__Mini__5_1                                             ModelID = "openai/gpt-5.1-codex-mini"
	Model__Requesty__GPT__5__2__Codex__5_2                                                   ModelID = "openai/gpt-5.2-codex"
	Model__Requesty__GPT__5__2__Pro__5_2                                                     ModelID = "openai/gpt-5.2-pro"
	Model__Requesty__GPT__5__3__Codex__5_3                                                   ModelID = "openai/gpt-5.3-codex"
	Model__Requesty__GPT__5__4__Pro__5_4                                                     ModelID = "openai/gpt-5.4-pro"
	Model__Requesty__GPT__5__Chat                                                            ModelID = "openai/gpt-5-chat"
	Model__Requesty__GPT__5__Codex__5                                                        ModelID = "openai/gpt-5-codex"
	Model__Requesty__GPT__5__Image__5                                                        ModelID = "openai/gpt-5-image"
	Model__Requesty__GPT__5__Mini__5                                                         ModelID = "openai/gpt-5-mini"
	Model__Requesty__GPT__5__Nano__5                                                         ModelID = "openai/gpt-5-nano"
	Model__Requesty__GPT__5__Pro__5                                                          ModelID = "openai/gpt-5-pro"
	Model__Requesty__Gemini__2__5__Flash__2_5                                                ModelID = "google/gemini-2.5-flash"
	Model__Requesty__Gemini__2__5__Pro__2_5                                                  ModelID = "google/gemini-2.5-pro"
	Model__Requesty__Gemini__3__Flash__3__Preview                                            ModelID = "google/gemini-3-flash-preview"
	Model__Requesty__Gemini__3__Pro__3__Preview                                              ModelID = "google/gemini-3-pro-preview"
	Model__Requesty__Grok__4                                                                 ModelID = "xai/grok-4"
	Model__Requesty__Grok__4__Fast                                                           ModelID = "xai/grok-4-fast"
	Model__Requesty__O4__4__Mini                                                             ModelID = "openai/o4-mini"
	Model__RoutingRun__Claude__Opus__4_8                                                     ModelID = "claude-opus-4-8"
	Model__RoutingRun__Claude__Sonnet__4_6                                                   ModelID = "claude-sonnet-4-6"
	Model__RoutingRun__DeepSeek__V4__Flash                                                   ModelID = "deepseek-v4-flash"
	Model__RoutingRun__DeepSeek__V4__Pro__Thinking                                           ModelID = "deepseek-v4-pro"
	Model__RoutingRun__GLM__5_2                                                              ModelID = "glm-5.2"
	Model__RoutingRun__GLM__5__2__Nitro__5_2                                                 ModelID = "glm-5.2-nitro"
	Model__RoutingRun__GPT__5__6__Luna__5_6                                                  ModelID = "gpt-5.6-luna"
	Model__RoutingRun__GPT__5__6__Sol__5_6                                                   ModelID = "gpt-5.6-sol"
	Model__RoutingRun__GPT__5__6__Terra__5_6                                                 ModelID = "gpt-5.6-terra"
	Model__RoutingRun__Kimi__K2__6__2_6                                                      ModelID = "kimi-k2.6"
	Model__RoutingRun__Kimi__K2__6__Nitro                                                    ModelID = "kimi-k2.6-nitro"
	Model__RoutingRun__Kimi__K2__7__2_7__Code                                                ModelID = "kimi-k2.7-code"
	Model__RoutingRun__Kimi__K2__7__Code__Nitro                                              ModelID = "kimi-k2.7-code-nitro"
	Model__RoutingRun__Nemotron__3__Ultra__3                                                 ModelID = "nemotron-3-ultra"
	Model__RoutingRun__Qwen3__5__9b__3_5                                                     ModelID = "qwen3.5-9b"
	Model__SAPAICore__Anthropic__Claude__3__5__Sonnet                                        ModelID = "anthropic--claude-3.5-sonnet"
	Model__SAPAICore__Anthropic__Claude__3__7__Sonnet                                        ModelID = "anthropic--claude-3.7-sonnet"
	Model__SAPAICore__Anthropic__Claude__3__Haiku                                            ModelID = "anthropic--claude-3-haiku"
	Model__SAPAICore__Anthropic__Claude__3__Opus                                             ModelID = "anthropic--claude-3-opus"
	Model__SAPAICore__Anthropic__Claude__3__Sonnet                                           ModelID = "anthropic--claude-3-sonnet"
	Model__SAPAICore__Anthropic__Claude__4__5__Haiku                                         ModelID = "anthropic--claude-4.5-haiku"
	Model__SAPAICore__Anthropic__Claude__4__5__Opus                                          ModelID = "anthropic--claude-4.5-opus"
	Model__SAPAICore__Anthropic__Claude__4__5__Sonnet                                        ModelID = "anthropic--claude-4.5-sonnet"
	Model__SAPAICore__Anthropic__Claude__4__6__Opus                                          ModelID = "anthropic--claude-4.6-opus"
	Model__SAPAICore__Anthropic__Claude__4__6__Sonnet                                        ModelID = "anthropic--claude-4.6-sonnet"
	Model__SAPAICore__Anthropic__Claude__4__7__Opus                                          ModelID = "anthropic--claude-4.7-opus"
	Model__SAPAICore__Anthropic__Claude__4__8__Opus                                          ModelID = "anthropic--claude-4.8-opus"
	Model__SAPAICore__Anthropic__Claude__4__Opus                                             ModelID = "anthropic--claude-4-opus"
	Model__SAPAICore__Anthropic__Claude__4__Sonnet                                           ModelID = "anthropic--claude-4-sonnet"
	Model__SAPAICore__GPT__4_1                                                               ModelID = "gpt-4.1"
	Model__SAPAICore__GPT__4__1__Mini__4_1                                                   ModelID = "gpt-4.1-mini"
	Model__SAPAICore__GPT__5                                                                 ModelID = "gpt-5"
	Model__SAPAICore__GPT__5_4                                                               ModelID = "gpt-5.4"
	Model__SAPAICore__GPT__5_5                                                               ModelID = "gpt-5.5"
	Model__SAPAICore__GPT__5__Mini__5                                                        ModelID = "gpt-5-mini"
	Model__SAPAICore__GPT__5__Nano__5                                                        ModelID = "gpt-5-nano"
	Model__SAPAICore__Gemini__2__5__Flash__2_5                                               ModelID = "gemini-2.5-flash"
	Model__SAPAICore__Gemini__2__5__Flash__Lite__2_5                                         ModelID = "gemini-2.5-flash-lite"
	Model__SAPAICore__Gemini__2__5__Pro__2_5                                                 ModelID = "gemini-2.5-pro"
	Model__SAPAICore__Gemini__3__1__Flash__Lite__3_1                                         ModelID = "gemini-3.1-flash-lite"
	Model__SAPAICore__Gemini__3__5__Flash__3_5                                               ModelID = "gemini-3.5-flash"
	Model__SAPAICore__Sonar                                                                  ModelID = "sonar"
	Model__SAPAICore__Sonar__Deep__Research                                                  ModelID = "sonar-deep-research"
	Model__SAPAICore__Sonar__Pro                                                             ModelID = "sonar-pro"
	Model__STACKIT__E5__Mistral__7b__Instruct                                                ModelID = "intfloat/e5-mistral-7b-instruct"
	Model__STACKIT__GPT__Oss__120b                                                           ModelID = "openai/gpt-oss-120b"
	Model__STACKIT__GPT__Oss__20b                                                            ModelID = "openai/gpt-oss-20b"
	Model__STACKIT__Gemma__3__27b__It__3                                                     ModelID = "google/gemma-3-27b-it"
	Model__STACKIT__Llama__3__3__70B__Instruct__Fp8__Dynamic__3_3__Instruct                  ModelID = "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic"
	Model__STACKIT__Qwen3__6__27B__3_6                                                       ModelID = "Qwen/Qwen3.6-27B"
	Model__STACKIT__Qwen3__Vl__235B__A22b__Instruct__Fp8__3__Instruct                        ModelID = "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8"
	Model__STACKIT__Qwen3__Vl__Embedding__8B__3                                              ModelID = "Qwen/Qwen3-VL-Embedding-8B"
	Model__Sakana__Fugu                                                                      ModelID = "fugu"
	Model__Sakana__Fugu__Ultra                                                               ModelID = "fugu-ultra"
	Model__Sakana__Fugu__Ultra__20260615                                                     ModelID = "fugu-ultra-20260615"
	Model__Sarvam__Sarvam__105b                                                              ModelID = "sarvam-105b"
	Model__Sarvam__Sarvam__30b                                                               ModelID = "sarvam-30b"
	Model__Scaleway__Bge__Multilingual__Gemma2                                               ModelID = "bge-multilingual-gemma2"
	Model__Scaleway__Devstral__2__123b__Instruct__2512__2__Instruct                          ModelID = "devstral-2-123b-instruct-2512"
	Model__Scaleway__GLM__5_2                                                                ModelID = "glm-5.2"
	Model__Scaleway__GPT__Oss__120b                                                          ModelID = "gpt-oss-120b"
	Model__Scaleway__Gemma__3__27b__It__3                                                    ModelID = "gemma-3-27b-it"
	Model__Scaleway__Gemma__4__26b__A4b__It__4                                               ModelID = "gemma-4-26b-a4b-it"
	Model__Scaleway__Llama__3__3__70b__3_3__Instruct                                         ModelID = "llama-3.3-70b-instruct"
	Model__Scaleway__Mistral__Medium__3__5__128b__3_5                                        ModelID = "mistral-medium-3.5-128b"
	Model__Scaleway__Mistral__Small__3__2__24b__Instruct__2506__3_2__Instruct                ModelID = "mistral-small-3.2-24b-instruct-2506"
	Model__Scaleway__Pixtral__12b__2409                                                      ModelID = "pixtral-12b-2409"
	Model__Scaleway__Qwen3__235b__A22b__Instruct__2507__3__Instruct                          ModelID = "qwen3-235b-a22b-instruct-2507"
	Model__Scaleway__Qwen3__5__397b__A17b__3_5                                               ModelID = "qwen3.5-397b-a17b"
	Model__Scaleway__Qwen3__6__35b__A3b__3_6                                                 ModelID = "qwen3.6-35b-a3b"
	Model__Scaleway__Qwen3__Coder__30b__A3b__3__Instruct                                     ModelID = "qwen3-coder-30b-a3b-instruct"
	Model__Scaleway__Qwen3__Embedding__8b__3                                                 ModelID = "qwen3-embedding-8b"
	Model__Scaleway__Voxtral__Small__24b__2507                                               ModelID = "voxtral-small-24b-2507"
	Model__Scaleway__Whisper__Large__V3__3                                                   ModelID = "whisper-large-v3"
	Model__SiliconFlowCN__DeepSeek__Ocr                                                      ModelID = "deepseek-ai/DeepSeek-OCR"
	Model__SiliconFlowCN__DeepSeek__R1__Thinking__DeepSeekAI                                 ModelID = "deepseek-ai/DeepSeek-R1"
	Model__SiliconFlowCN__DeepSeek__R1__Thinking__ProDeepSeekAI                              ModelID = "Pro/deepseek-ai/DeepSeek-R1"
	Model__SiliconFlowCN__DeepSeek__V3__1__Terminus__DeepSeekAI                              ModelID = "deepseek-ai/DeepSeek-V3.1-Terminus"
	Model__SiliconFlowCN__DeepSeek__V3__1__Terminus__ProDeepSeekAI                           ModelID = "Pro/deepseek-ai/DeepSeek-V3.1-Terminus"
	Model__SiliconFlowCN__DeepSeek__V3__2__DeepSeekAI                                        ModelID = "deepseek-ai/DeepSeek-V3.2"
	Model__SiliconFlowCN__DeepSeek__V3__2__ProDeepSeekAI                                     ModelID = "Pro/deepseek-ai/DeepSeek-V3.2"
	Model__SiliconFlowCN__DeepSeek__V3__DeepSeekAI                                           ModelID = "deepseek-ai/DeepSeek-V3"
	Model__SiliconFlowCN__DeepSeek__V3__ProDeepSeekAI                                        ModelID = "Pro/deepseek-ai/DeepSeek-V3"
	Model__SiliconFlowCN__DeepSeek__V4__Flash                                                ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__SiliconFlowCN__DeepSeek__V4__Pro__Thinking                                        ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__SiliconFlowCN__Ernie__4__5__300B__A47b__4_5                                       ModelID = "baidu/ERNIE-4.5-300B-A47B"
	Model__SiliconFlowCN__GLM__4__5__Air__4_5                                                ModelID = "zai-org/GLM-4.5-Air"
	Model__SiliconFlowCN__GLM__5                                                             ModelID = "Pro/zai-org/GLM-5"
	Model__SiliconFlowCN__GLM__5_1                                                           ModelID = "Pro/zai-org/GLM-5.1"
	Model__SiliconFlowCN__GLM__5_2                                                           ModelID = "zai-org/GLM-5.2"
	Model__SiliconFlowCN__Hunyuan__A13b__Instruct                                            ModelID = "tencent/Hunyuan-A13B-Instruct"
	Model__SiliconFlowCN__Kimi__K2__5__2_5                                                   ModelID = "Pro/moonshotai/Kimi-K2.5"
	Model__SiliconFlowCN__Kimi__K2__6__2_6                                                   ModelID = "Pro/moonshotai/Kimi-K2.6"
	Model__SiliconFlowCN__Ling__Flash__2_0                                                   ModelID = "inclusionAI/Ling-flash-2.0"
	Model__SiliconFlowCN__MiniMax__M2__5__2_5                                                ModelID = "Pro/MiniMaxAI/MiniMax-M2.5"
	Model__SiliconFlowCN__Paddleocr__Vl__1_5                                                 ModelID = "PaddlePaddle/PaddleOCR-VL-1.5"
	Model__SiliconFlowCN__Qwen2__5__72B__2_5__Instruct                                       ModelID = "Qwen/Qwen2.5-72B-Instruct"
	Model__SiliconFlowCN__Qwen2__5__7B__2_5__Instruct                                        ModelID = "Qwen/Qwen2.5-7B-Instruct"
	Model__SiliconFlowCN__Qwen3__14B__3                                                      ModelID = "Qwen/Qwen3-14B"
	Model__SiliconFlowCN__Qwen3__235B__A22b__Thinking__2507__3__Thinking                     ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507"
	Model__SiliconFlowCN__Qwen3__30B__A3b__Instruct__2507__3__Instruct                       ModelID = "Qwen/Qwen3-30B-A3B-Instruct-2507"
	Model__SiliconFlowCN__Qwen3__32B__3                                                      ModelID = "Qwen/Qwen3-32B"
	Model__SiliconFlowCN__Qwen3__5__122B__A10b__3_5                                          ModelID = "Qwen/Qwen3.5-122B-A10B"
	Model__SiliconFlowCN__Qwen3__5__27B__3_5                                                 ModelID = "Qwen/Qwen3.5-27B"
	Model__SiliconFlowCN__Qwen3__5__35B__A3b__3_5                                            ModelID = "Qwen/Qwen3.5-35B-A3B"
	Model__SiliconFlowCN__Qwen3__5__397B__A17b__3_5                                          ModelID = "Qwen/Qwen3.5-397B-A17B"
	Model__SiliconFlowCN__Qwen3__5__4B__3_5                                                  ModelID = "Qwen/Qwen3.5-4B"
	Model__SiliconFlowCN__Qwen3__5__9B__3_5                                                  ModelID = "Qwen/Qwen3.5-9B"
	Model__SiliconFlowCN__Qwen3__6__35B__A3b__3_6                                            ModelID = "Qwen/Qwen3.6-35B-A3B"
	Model__SiliconFlowCN__Qwen3__8B__3                                                       ModelID = "Qwen/Qwen3-8B"
	Model__SiliconFlowCN__Qwen3__Coder__30B__A3b__3__Instruct                                ModelID = "Qwen/Qwen3-Coder-30B-A3B-Instruct"
	Model__SiliconFlowCN__Qwen3__Coder__480B__A35b__3__Instruct                              ModelID = "Qwen/Qwen3-Coder-480B-A35B-Instruct"
	Model__SiliconFlowCN__Qwen3__Vl__235B__A22b__3__Instruct                                 ModelID = "Qwen/Qwen3-VL-235B-A22B-Instruct"
	Model__SiliconFlowCN__Qwen3__Vl__235B__A22b__3__Thinking                                 ModelID = "Qwen/Qwen3-VL-235B-A22B-Thinking"
	Model__SiliconFlowCN__Qwen3__Vl__30B__A3b__3__Instruct                                   ModelID = "Qwen/Qwen3-VL-30B-A3B-Instruct"
	Model__SiliconFlowCN__Qwen3__Vl__30B__A3b__3__Thinking                                   ModelID = "Qwen/Qwen3-VL-30B-A3B-Thinking"
	Model__SiliconFlowCN__Qwen3__Vl__32B__3__Instruct                                        ModelID = "Qwen/Qwen3-VL-32B-Instruct"
	Model__SiliconFlowCN__Qwen3__Vl__32B__3__Thinking                                        ModelID = "Qwen/Qwen3-VL-32B-Thinking"
	Model__SiliconFlowCN__Qwen3__Vl__8B__3__Instruct                                         ModelID = "Qwen/Qwen3-VL-8B-Instruct"
	Model__SiliconFlowCN__Seed__Oss__36B__Instruct                                           ModelID = "ByteDance-Seed/Seed-OSS-36B-Instruct"
	Model__SiliconFlowCN__Step__3__5__Flash__3_5                                             ModelID = "stepfun-ai/Step-3.5-Flash"
	Model__SiliconFlow__DeepSeek__R1__Thinking                                               ModelID = "deepseek-ai/DeepSeek-R1"
	Model__SiliconFlow__DeepSeek__V3                                                         ModelID = "deepseek-ai/DeepSeek-V3"
	Model__SiliconFlow__DeepSeek__V3__1                                                      ModelID = "deepseek-ai/DeepSeek-V3.1"
	Model__SiliconFlow__DeepSeek__V3__1__Terminus                                            ModelID = "deepseek-ai/DeepSeek-V3.1-Terminus"
	Model__SiliconFlow__DeepSeek__V3__2                                                      ModelID = "deepseek-ai/DeepSeek-V3.2"
	Model__SiliconFlow__DeepSeek__V3__2__Exp                                                 ModelID = "deepseek-ai/DeepSeek-V3.2-Exp"
	Model__SiliconFlow__DeepSeek__V4__Flash                                                  ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__SiliconFlow__DeepSeek__V4__Pro__Thinking                                          ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__SiliconFlow__Ernie__4__5__300B__A47b__4_5                                         ModelID = "baidu/ERNIE-4.5-300B-A47B"
	Model__SiliconFlow__GLM__4__5__Air__4_5                                                  ModelID = "zai-org/GLM-4.5-Air"
	Model__SiliconFlow__GLM__5                                                               ModelID = "zai-org/GLM-5"
	Model__SiliconFlow__GLM__5V__5__Turbo                                                    ModelID = "zai-org/GLM-5V-Turbo"
	Model__SiliconFlow__GLM__5_1                                                             ModelID = "zai-org/GLM-5.1"
	Model__SiliconFlow__GLM__5_2                                                             ModelID = "zai-org/GLM-5.2"
	Model__SiliconFlow__GPT__Oss__120b                                                       ModelID = "openai/gpt-oss-120b"
	Model__SiliconFlow__GPT__Oss__20b                                                        ModelID = "openai/gpt-oss-20b"
	Model__SiliconFlow__Gemma__4__26B__A4b__It__4                                            ModelID = "google/gemma-4-26B-A4B-it"
	Model__SiliconFlow__Gemma__4__31B__It__4                                                 ModelID = "google/gemma-4-31B-it"
	Model__SiliconFlow__Hunyuan__A13b__Instruct                                              ModelID = "tencent/Hunyuan-A13B-Instruct"
	Model__SiliconFlow__Hy3__3__Preview                                                      ModelID = "tencent/Hy3-preview"
	Model__SiliconFlow__Kimi__K2__5__2_5                                                     ModelID = "moonshotai/Kimi-K2.5"
	Model__SiliconFlow__Kimi__K2__6__2_6                                                     ModelID = "moonshotai/Kimi-K2.6"
	Model__SiliconFlow__Ling__Flash__2_0                                                     ModelID = "inclusionAI/Ling-flash-2.0"
	Model__SiliconFlow__MiniMax__M2__5__2_5                                                  ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__SiliconFlow__Qwen2__5__72B__2_5__Instruct                                         ModelID = "Qwen/Qwen2.5-72B-Instruct"
	Model__SiliconFlow__Qwen2__5__7B__2_5__Instruct                                          ModelID = "Qwen/Qwen2.5-7B-Instruct"
	Model__SiliconFlow__Qwen3__14B__3                                                        ModelID = "Qwen/Qwen3-14B"
	Model__SiliconFlow__Qwen3__235B__A22b__Thinking__2507__3__Thinking                       ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507"
	Model__SiliconFlow__Qwen3__30B__A3b__Instruct__2507__3__Instruct                         ModelID = "Qwen/Qwen3-30B-A3B-Instruct-2507"
	Model__SiliconFlow__Qwen3__32B__3                                                        ModelID = "Qwen/Qwen3-32B"
	Model__SiliconFlow__Qwen3__5__122B__A10b__3_5                                            ModelID = "Qwen/Qwen3.5-122B-A10B"
	Model__SiliconFlow__Qwen3__5__27B__3_5                                                   ModelID = "Qwen/Qwen3.5-27B"
	Model__SiliconFlow__Qwen3__5__35B__A3b__3_5                                              ModelID = "Qwen/Qwen3.5-35B-A3B"
	Model__SiliconFlow__Qwen3__5__397B__A17b__3_5                                            ModelID = "Qwen/Qwen3.5-397B-A17B"
	Model__SiliconFlow__Qwen3__5__9B__3_5                                                    ModelID = "Qwen/Qwen3.5-9B"
	Model__SiliconFlow__Qwen3__6__27B__3_6                                                   ModelID = "Qwen/Qwen3.6-27B"
	Model__SiliconFlow__Qwen3__6__35B__A3b__3_6                                              ModelID = "Qwen/Qwen3.6-35B-A3B"
	Model__SiliconFlow__Qwen3__8B__3                                                         ModelID = "Qwen/Qwen3-8B"
	Model__SiliconFlow__Qwen3__Coder__30B__A3b__3__Instruct                                  ModelID = "Qwen/Qwen3-Coder-30B-A3B-Instruct"
	Model__SiliconFlow__Qwen3__Coder__480B__A35b__3__Instruct                                ModelID = "Qwen/Qwen3-Coder-480B-A35B-Instruct"
	Model__SiliconFlow__Qwen3__Vl__235B__A22b__3__Instruct                                   ModelID = "Qwen/Qwen3-VL-235B-A22B-Instruct"
	Model__SiliconFlow__Qwen3__Vl__235B__A22b__3__Thinking                                   ModelID = "Qwen/Qwen3-VL-235B-A22B-Thinking"
	Model__SiliconFlow__Qwen3__Vl__30B__A3b__3__Instruct                                     ModelID = "Qwen/Qwen3-VL-30B-A3B-Instruct"
	Model__SiliconFlow__Qwen3__Vl__30B__A3b__3__Thinking                                     ModelID = "Qwen/Qwen3-VL-30B-A3B-Thinking"
	Model__SiliconFlow__Qwen3__Vl__32B__3__Instruct                                          ModelID = "Qwen/Qwen3-VL-32B-Instruct"
	Model__SiliconFlow__Qwen3__Vl__32B__3__Thinking                                          ModelID = "Qwen/Qwen3-VL-32B-Thinking"
	Model__SiliconFlow__Qwen3__Vl__8B__3__Instruct                                           ModelID = "Qwen/Qwen3-VL-8B-Instruct"
	Model__SiliconFlow__Seed__Oss__36B__Instruct                                             ModelID = "ByteDance-Seed/Seed-OSS-36B-Instruct"
	Model__SiliconFlow__Step__3__5__Flash__3_5                                               ModelID = "stepfun-ai/Step-3.5-Flash"
	Model__SnowflakeCortex__Claude__Fable__5                                                 ModelID = "claude-fable-5"
	Model__SnowflakeCortex__Claude__Haiku__4_5                                               ModelID = "claude-haiku-4-5"
	Model__SnowflakeCortex__Claude__Opus__4_7                                                ModelID = "claude-opus-4-7"
	Model__SnowflakeCortex__Claude__Opus__4_8                                                ModelID = "claude-opus-4-8"
	Model__SnowflakeCortex__Claude__Sonnet__4_5                                              ModelID = "claude-sonnet-4-5"
	Model__SnowflakeCortex__Claude__Sonnet__4_6                                              ModelID = "claude-sonnet-4-6"
	Model__SnowflakeCortex__DeepSeek__R1__Thinking                                           ModelID = "deepseek-r1"
	Model__SnowflakeCortex__Gemini__3__1__Pro__3_1                                           ModelID = "gemini-3.1-pro"
	Model__SnowflakeCortex__Mistral__Large2                                                  ModelID = "mistral-large2"
	Model__SnowflakeCortex__OpenAI__GPT__4__1                                                ModelID = "openai-gpt-4.1"
	Model__SnowflakeCortex__OpenAI__GPT__5                                                   ModelID = "openai-gpt-5"
	Model__SnowflakeCortex__OpenAI__GPT__5__1                                                ModelID = "openai-gpt-5.1"
	Model__SnowflakeCortex__OpenAI__GPT__5__2                                                ModelID = "openai-gpt-5.2"
	Model__SnowflakeCortex__OpenAI__GPT__5__4                                                ModelID = "openai-gpt-5.4"
	Model__SnowflakeCortex__OpenAI__GPT__5__5                                                ModelID = "openai-gpt-5.5"
	Model__SnowflakeCortex__OpenAI__GPT__5__Mini                                             ModelID = "openai-gpt-5-mini"
	Model__SnowflakeCortex__OpenAI__GPT__5__Nano                                             ModelID = "openai-gpt-5-nano"
	Model__SnowflakeCortex__Snowflake__Llama3__3__70b                                        ModelID = "snowflake-llama3.3-70b"
	Model__StepFunAI__Step__1__32k__1                                                        ModelID = "step-1-32k"
	Model__StepFunAI__Step__2__16k__2                                                        ModelID = "step-2-16k"
	Model__StepFunAI__Step__3__5__Flash__2603__3_5                                           ModelID = "step-3.5-flash-2603"
	Model__StepFunAI__Step__3__5__Flash__3_5                                                 ModelID = "step-3.5-flash"
	Model__StepFunAI__Step__3__7__Flash__3_7                                                 ModelID = "step-3.7-flash"
	Model__StepFunAI__Step__Tts__2                                                           ModelID = "step-tts-2"
	Model__StepFunAI__Stepaudio__2__5__Asr                                                   ModelID = "stepaudio-2.5-asr"
	Model__StepFunAI__Stepaudio__2__5__Tts                                                   ModelID = "stepaudio-2.5-tts"
	Model__StepFun__Step__1__32k__1                                                          ModelID = "step-1-32k"
	Model__StepFun__Step__2__16k__2                                                          ModelID = "step-2-16k"
	Model__StepFun__Step__3__5__Flash__2603__3_5                                             ModelID = "step-3.5-flash-2603"
	Model__StepFun__Step__3__5__Flash__3_5                                                   ModelID = "step-3.5-flash"
	Model__StepFun__Step__3__7__Flash__3_7                                                   ModelID = "step-3.7-flash"
	Model__StepFun__Step__Tts__2                                                             ModelID = "step-tts-2"
	Model__StepFun__Stepaudio__2__5__Asr                                                     ModelID = "stepaudio-2.5-asr"
	Model__StepFun__Stepaudio__2__5__Tts                                                     ModelID = "stepaudio-2.5-tts"
	Model__Subconscious__GLM__5_2                                                            ModelID = "subconscious/glm-5.2"
	Model__Subconscious__Tim__Qwen3__6__27b                                                  ModelID = "subconscious/tim-qwen3.6-27b"
	Model__Submodel__DeepSeek__R1__0528__Thinking                                            ModelID = "deepseek-ai/DeepSeek-R1-0528"
	Model__Submodel__DeepSeek__V3__0324                                                      ModelID = "deepseek-ai/DeepSeek-V3-0324"
	Model__Submodel__DeepSeek__V3__1                                                         ModelID = "deepseek-ai/DeepSeek-V3.1"
	Model__Submodel__GLM__4__5__Air__4_5                                                     ModelID = "zai-org/GLM-4.5-Air"
	Model__Submodel__GLM__4__5__Fp8__4_5                                                     ModelID = "zai-org/GLM-4.5-FP8"
	Model__Submodel__GPT__Oss__120b                                                          ModelID = "openai/gpt-oss-120b"
	Model__Submodel__Qwen3__235B__A22b__Instruct__2507__3__Instruct                          ModelID = "Qwen/Qwen3-235B-A22B-Instruct-2507"
	Model__Submodel__Qwen3__235B__A22b__Thinking__2507__3__Thinking                          ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507"
	Model__Submodel__Qwen3__Coder__480B__A35b__Instruct__Fp8__3__Instruct                    ModelID = "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8"
	Model__Synthetic__GLM__4__7__Flash__4_7                                                  ModelID = "hf:zai-org/GLM-4.7-Flash"
	Model__Synthetic__GLM__5_2                                                               ModelID = "hf:zai-org/GLM-5.2"
	Model__Synthetic__GPT__Oss__120b                                                         ModelID = "hf:openai/gpt-oss-120b"
	Model__Synthetic__Kimi__K2__7__2_7__Code                                                 ModelID = "hf:moonshotai/Kimi-K2.7-Code"
	Model__Synthetic__MiniMax__M3__3                                                         ModelID = "hf:MiniMaxAI/MiniMax-M3"
	Model__Synthetic__Nvidia__Nemotron__3__Super__120B__A12b__Nvfp4                          ModelID = "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4"
	Model__Synthetic__Qwen3__6__27B__3_6                                                     ModelID = "hf:Qwen/Qwen3.6-27B"
	Model__TencentCodingPlan__GLM__5                                                         ModelID = "glm-5"
	Model__TencentCodingPlan__Hunyuan__2_0__Instruct                                         ModelID = "hunyuan-2.0-instruct"
	Model__TencentCodingPlan__Hunyuan__2_0__Thinking                                         ModelID = "hunyuan-2.0-thinking"
	Model__TencentCodingPlan__Hunyuan__T1                                                    ModelID = "hunyuan-t1"
	Model__TencentCodingPlan__Hunyuan__Turbos                                                ModelID = "hunyuan-turbos"
	Model__TencentCodingPlan__Kimi__K2__5__2_5                                               ModelID = "kimi-k2.5"
	Model__TencentCodingPlan__MiniMax__M2__5__2_5                                            ModelID = "minimax-m2.5"
	Model__TencentCodingPlan__Tc__LatestCode                                                 ModelID = "tc-code-latest"
	Model__TencentTokenHub__Hy3__3                                                           ModelID = "hy3"
	Model__TencentTokenHub__Hy3__3__Preview                                                  ModelID = "hy3-preview"
	Model__TencentTokenPlan__Hy3__3                                                          ModelID = "hy3"
	Model__TheGridAI__Agent__Max                                                             ModelID = "agent-max"
	Model__TheGridAI__Agent__Prime                                                           ModelID = "agent-prime"
	Model__TheGridAI__Agent__Standard                                                        ModelID = "agent-standard"
	Model__TheGridAI__Code__Max                                                              ModelID = "code-max"
	Model__TheGridAI__Code__Prime                                                            ModelID = "code-prime"
	Model__TheGridAI__Code__Standard                                                         ModelID = "code-standard"
	Model__TheGridAI__Text__Max                                                              ModelID = "text-max"
	Model__TheGridAI__Text__Prime                                                            ModelID = "text-prime"
	Model__TheGridAI__Text__Standard                                                         ModelID = "text-standard"
	Model__Tinfoil__GLM__5_2                                                                 ModelID = "glm-5-2"
	Model__Tinfoil__GPT__Oss__120b                                                           ModelID = "gpt-oss-120b"
	Model__Tinfoil__GPT__Oss__Safeguard__120b                                                ModelID = "gpt-oss-safeguard-120b"
	Model__Tinfoil__Gemma4__31b                                                              ModelID = "gemma4-31b"
	Model__Tinfoil__Kimi__K2__6__2_6                                                         ModelID = "kimi-k2-6"
	Model__Tinfoil__Llama3__3__70b                                                           ModelID = "llama3-3-70b"
	Model__Tinfoil__Nomic__Embed__Text                                                       ModelID = "nomic-embed-text"
	Model__TogetherAI__Cogito__V2__1__671b__1                                                ModelID = "deepcogito/cogito-v2-1-671b"
	Model__TogetherAI__DeepSeek__R1__Thinking                                                ModelID = "deepseek-ai/DeepSeek-R1"
	Model__TogetherAI__DeepSeek__V3                                                          ModelID = "deepseek-ai/DeepSeek-V3"
	Model__TogetherAI__DeepSeek__V3__1                                                       ModelID = "deepseek-ai/DeepSeek-V3-1"
	Model__TogetherAI__DeepSeek__V4__Pro                                                     ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__TogetherAI__GLM__5                                                                ModelID = "zai-org/GLM-5"
	Model__TogetherAI__GLM__5_1                                                              ModelID = "zai-org/GLM-5.1"
	Model__TogetherAI__GLM__5_2                                                              ModelID = "zai-org/GLM-5.2"
	Model__TogetherAI__GPT__Oss__120b                                                        ModelID = "openai/gpt-oss-120b"
	Model__TogetherAI__GPT__Oss__20b                                                         ModelID = "openai/gpt-oss-20b"
	Model__TogetherAI__Gemma__3n__E4b__It                                                    ModelID = "google/gemma-3n-E4B-it"
	Model__TogetherAI__Gemma__4__31B__It__4                                                  ModelID = "google/gemma-4-31B-it"
	Model__TogetherAI__Gemma__4__31b__It__4                                                  ModelID = "pearl-ai/gemma-4-31b-it"
	Model__TogetherAI__Kimi__K2__5__2_5                                                      ModelID = "moonshotai/Kimi-K2.5"
	Model__TogetherAI__Kimi__K2__6__2_6                                                      ModelID = "moonshotai/Kimi-K2.6"
	Model__TogetherAI__Kimi__K2__7__2_7__Code                                                ModelID = "moonshotai/Kimi-K2.7-Code"
	Model__TogetherAI__Lfm2__24B__A2b                                                        ModelID = "LiquidAI/LFM2-24B-A2B"
	Model__TogetherAI__Llama__3__3__70B__3_3__TurboInstruct                                  ModelID = "meta-llama/Llama-3.3-70B-Instruct-Turbo"
	Model__TogetherAI__Meta__Llama__3__8B__Instruct__Lite__3                                 ModelID = "meta-llama/Meta-Llama-3-8B-Instruct-Lite"
	Model__TogetherAI__MiniMax__M2__5__2_5                                                   ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__TogetherAI__MiniMax__M2__7__2_7                                                   ModelID = "MiniMaxAI/MiniMax-M2.7"
	Model__TogetherAI__MiniMax__M3__3                                                        ModelID = "MiniMaxAI/MiniMax-M3"
	Model__TogetherAI__Nemotron__3__Ultra__550b__A55b__3                                     ModelID = "nvidia/nemotron-3-ultra-550b-a55b"
	Model__TogetherAI__Qwen2__5__7B__Instruct__Turbo__2_5                                    ModelID = "Qwen/Qwen2.5-7B-Instruct-Turbo"
	Model__TogetherAI__Qwen3__235B__A22b__Instruct__2507__Tput__3__Instruct                  ModelID = "Qwen/Qwen3-235B-A22B-Instruct-2507-tput"
	Model__TogetherAI__Qwen3__5__397B__A17b__3_5                                             ModelID = "Qwen/Qwen3.5-397B-A17B"
	Model__TogetherAI__Qwen3__5__9B__3_5                                                     ModelID = "Qwen/Qwen3.5-9B"
	Model__TogetherAI__Qwen3__6__Plus__3_6                                                   ModelID = "Qwen/Qwen3.6-Plus"
	Model__TogetherAI__Qwen3__7__Max__3_7                                                    ModelID = "Qwen/Qwen3.7-Max"
	Model__TogetherAI__Qwen3__Coder__480B__A35b__Instruct__Fp8__3__Instruct                  ModelID = "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8"
	Model__TogetherAI__Qwen3__Coder__Next__Fp8__3                                            ModelID = "Qwen/Qwen3-Coder-Next-FP8"
	Model__TogetherAI__Rnj__1__Instruct                                                      ModelID = "essentialai/Rnj-1-Instruct"
	Model__TrustedRouter__Auto                                                               ModelID = "auto"
	Model__TrustedRouter__Cheap                                                              ModelID = "cheap"
	Model__TrustedRouter__E2e                                                                ModelID = "e2e"
	Model__TrustedRouter__Fast__Fast                                                         ModelID = "fast"
	Model__TrustedRouter__Synth                                                              ModelID = "synth"
	Model__TrustedRouter__Synth__Code                                                        ModelID = "synth-code"
	Model__TrustedRouter__Zdr                                                                ModelID = "zdr"
	Model__UmansAICodingPlan__Umans__Coder                                                   ModelID = "umans-coder"
	Model__UmansAICodingPlan__Umans__Flash                                                   ModelID = "umans-flash"
	Model__UmansAICodingPlan__Umans__GLM__5__1                                               ModelID = "umans-glm-5.1"
	Model__UmansAICodingPlan__Umans__GLM__5__2                                               ModelID = "umans-glm-5.2"
	Model__UmansAICodingPlan__Umans__Kimi__K2__7                                             ModelID = "umans-kimi-k2.7"
	Model__UmansAICodingPlan__Umans__Qwen3__6__35b__A3b                                      ModelID = "umans-qwen3.6-35b-a3b"
	Model__UmansAI__Umans__Coder                                                             ModelID = "umans-coder"
	Model__UmansAI__Umans__Flash                                                             ModelID = "umans-flash"
	Model__UmansAI__Umans__GLM__5__1                                                         ModelID = "umans-glm-5.1"
	Model__UmansAI__Umans__GLM__5__2                                                         ModelID = "umans-glm-5.2"
	Model__UmansAI__Umans__Kimi__K2__7                                                       ModelID = "umans-kimi-k2.7"
	Model__UnoRouter__Claude__Haiku__4_5__20251001                                           ModelID = "claude-haiku-4-5-20251001"
	Model__UnoRouter__Claude__Opus__4_8                                                      ModelID = "claude-opus-4-8"
	Model__UnoRouter__Claude__Sonnet__5                                                      ModelID = "claude-sonnet-5"
	Model__UnoRouter__DeepSeek__V4__Flash                                                    ModelID = "deepseek-v4-flash"
	Model__UnoRouter__DeepSeek__V4__Flash__Free                                              ModelID = "deepseek-v4-flash:free"
	Model__UnoRouter__DeepSeek__V4__Pro__Free__Thinking                                      ModelID = "deepseek-v4-pro:free"
	Model__UnoRouter__DeepSeek__V4__Pro__Thinking                                            ModelID = "deepseek-v4-pro"
	Model__UnoRouter__GLM__4__5__Flash__Free__4_5                                            ModelID = "glm-4.5-flash:free"
	Model__UnoRouter__GLM__5_2                                                               ModelID = "glm-5.2"
	Model__UnoRouter__GLM__5__2__Free                                                        ModelID = "glm-5.2:free"
	Model__UnoRouter__GPT__5_2                                                               ModelID = "gpt-5.2"
	Model__UnoRouter__GPT__5_4                                                               ModelID = "gpt-5.4"
	Model__UnoRouter__GPT__5_5                                                               ModelID = "gpt-5.5"
	Model__UnoRouter__GPT__5__4__Free                                                        ModelID = "gpt-5.4:free"
	Model__UnoRouter__GPT__5__5__Free                                                        ModelID = "gpt-5.5:free"
	Model__UnoRouter__Gemini__3__5__Flash__3_5                                               ModelID = "gemini-3.5-flash"
	Model__UnoRouter__Gemma__4__31b__It__Free__4                                             ModelID = "gemma-4-31b-it:free"
	Model__UnoRouter__Kimi__K2__6__2_6                                                       ModelID = "kimi-k2.6"
	Model__UnoRouter__MiniMax__M2__7__2_7                                                    ModelID = "minimax-m2.7"
	Model__UnoRouter__MiniMax__M2__7__Free__2_7                                              ModelID = "minimax-m2.7:free"
	Model__UnoRouter__Nemotron__3__Ultra__550b__A55b__Free__3                                ModelID = "nemotron-3-ultra-550b-a55b:free"
	Model__UnoRouter__Qwen3__5__397b__A17b__Free__3_5                                        ModelID = "qwen3.5-397b-a17b:free"
	Model__UnoRouter__Step__3__7__Flash__Free__3_7                                           ModelID = "step-3.7-flash:free"
	Model__Upstage__Solar__Mini                                                              ModelID = "solar-mini"
	Model__Upstage__Solar__Pro2                                                              ModelID = "solar-pro2"
	Model__Upstage__Solar__Pro3                                                              ModelID = "solar-pro3"
	Model__V0__V0__1__0__Md__1_0                                                             ModelID = "v0-1.0-md"
	Model__V0__V0__1__5__Lg__1_5                                                             ModelID = "v0-1.5-lg"
	Model__V0__V0__1__5__Md__1_5                                                             ModelID = "v0-1.5-md"
	Model__Venice__Aion__Labs__Aion__2_0                                                     ModelID = "aion-labs-aion-2-0"
	Model__Venice__Aion__Labs__Aion__3_0                                                     ModelID = "aion-labs-aion-3-0"
	Model__Venice__Aion__Labs__Aion__3__0__Mini__3_0                                         ModelID = "aion-labs-aion-3-0-mini"
	Model__Venice__Claude__Fable__5                                                          ModelID = "claude-fable-5"
	Model__Venice__Claude__Opus__4_5                                                         ModelID = "claude-opus-4-5"
	Model__Venice__Claude__Opus__4_6                                                         ModelID = "claude-opus-4-6"
	Model__Venice__Claude__Opus__4_7                                                         ModelID = "claude-opus-4-7"
	Model__Venice__Claude__Opus__4_7__Fast                                                   ModelID = "claude-opus-4-7-fast"
	Model__Venice__Claude__Opus__4_8                                                         ModelID = "claude-opus-4-8"
	Model__Venice__Claude__Opus__4_8__Fast                                                   ModelID = "claude-opus-4-8-fast"
	Model__Venice__Claude__Sonnet__4_5                                                       ModelID = "claude-sonnet-4-5"
	Model__Venice__Claude__Sonnet__4_6                                                       ModelID = "claude-sonnet-4-6"
	Model__Venice__Claude__Sonnet__5                                                         ModelID = "claude-sonnet-5"
	Model__Venice__DeepSeek__V3__2                                                           ModelID = "deepseek-v3.2"
	Model__Venice__DeepSeek__V4__Flash                                                       ModelID = "deepseek-v4-flash"
	Model__Venice__DeepSeek__V4__Pro                                                         ModelID = "deepseek-v4-pro"
	Model__Venice__Gemini__3__1__Pro__3_1__Preview                                           ModelID = "gemini-3-1-pro-preview"
	Model__Venice__Gemini__3__5__Flash__3_5                                                  ModelID = "gemini-3-5-flash"
	Model__Venice__Gemini__3__Flash__3__Preview                                              ModelID = "gemini-3-flash-preview"
	Model__Venice__Gemma__4__Uncensored__4                                                   ModelID = "gemma-4-uncensored"
	Model__Venice__Google__Gemma__3__27b__It                                                 ModelID = "google-gemma-3-27b-it"
	Model__Venice__Google__Gemma__4__26b__A4b__It                                            ModelID = "google-gemma-4-26b-a4b-it"
	Model__Venice__Google__Gemma__4__31b__It                                                 ModelID = "google-gemma-4-31b-it"
	Model__Venice__Grok__4_20                                                                ModelID = "grok-4-20"
	Model__Venice__Grok__4_3                                                                 ModelID = "grok-4-3"
	Model__Venice__Grok__4_5                                                                 ModelID = "grok-4-5"
	Model__Venice__Grok__4__20__Multi__Agent__4_20                                           ModelID = "grok-4-20-multi-agent"
	Model__Venice__Grok__Build__0_1                                                          ModelID = "grok-build-0-1"
	Model__Venice__Hermes__3__Llama__3__1__405b__3                                           ModelID = "hermes-3-llama-3.1-405b"
	Model__Venice__Kimi__K2__5__2_5                                                          ModelID = "kimi-k2-5"
	Model__Venice__Kimi__K2__6__2_6                                                          ModelID = "kimi-k2-6"
	Model__Venice__Kimi__K2__7__2_7__Code                                                    ModelID = "kimi-k2-7-code"
	Model__Venice__Llama__3__2__3b__3_2                                                      ModelID = "llama-3.2-3b"
	Model__Venice__Llama__3__3__70b__3_3                                                     ModelID = "llama-3.3-70b"
	Model__Venice__Mercury__2                                                                ModelID = "mercury-2"
	Model__Venice__MiniMax__M25__25                                                          ModelID = "minimax-m25"
	Model__Venice__MiniMax__M27__27                                                          ModelID = "minimax-m27"
	Model__Venice__MiniMax__M3__3__Preview                                                   ModelID = "minimax-m3-preview"
	Model__Venice__Mistral__Small__2603                                                      ModelID = "mistral-small-2603"
	Model__Venice__Mistral__Small__3__2__24b__3_2__Instruct                                  ModelID = "mistral-small-3-2-24b-instruct"
	Model__Venice__Nvidia__Nemotron__3__Nano__30b__A3b                                       ModelID = "nvidia-nemotron-3-nano-30b-a3b"
	Model__Venice__Nvidia__Nemotron__3__Ultra__550b__A55b                                    ModelID = "nvidia-nemotron-3-ultra-550b-a55b"
	Model__Venice__Nvidia__Nemotron__Cascade__2__30b__A3b                                    ModelID = "nvidia-nemotron-cascade-2-30b-a3b"
	Model__Venice__Olafangensan__GLM__4__7__Flash__Heretic                                   ModelID = "olafangensan-glm-4.7-flash-heretic"
	Model__Venice__OpenAI__GPT__4o__20241120                                                 ModelID = "openai-gpt-4o-2024-11-20"
	Model__Venice__OpenAI__GPT__4o__Mini__Mini__20240718                                     ModelID = "openai-gpt-4o-mini-2024-07-18"
	Model__Venice__OpenAI__GPT__52                                                           ModelID = "openai-gpt-52"
	Model__Venice__OpenAI__GPT__52__Codex                                                    ModelID = "openai-gpt-52-codex"
	Model__Venice__OpenAI__GPT__53__Codex                                                    ModelID = "openai-gpt-53-codex"
	Model__Venice__OpenAI__GPT__54                                                           ModelID = "openai-gpt-54"
	Model__Venice__OpenAI__GPT__54__Mini                                                     ModelID = "openai-gpt-54-mini"
	Model__Venice__OpenAI__GPT__54__Pro                                                      ModelID = "openai-gpt-54-pro"
	Model__Venice__OpenAI__GPT__55                                                           ModelID = "openai-gpt-55"
	Model__Venice__OpenAI__GPT__55__Pro                                                      ModelID = "openai-gpt-55-pro"
	Model__Venice__OpenAI__GPT__56__Luna                                                     ModelID = "openai-gpt-56-luna"
	Model__Venice__OpenAI__GPT__56__Luna__Pro                                                ModelID = "openai-gpt-56-luna-pro"
	Model__Venice__OpenAI__GPT__56__Sol                                                      ModelID = "openai-gpt-56-sol"
	Model__Venice__OpenAI__GPT__56__Sol__Pro                                                 ModelID = "openai-gpt-56-sol-pro"
	Model__Venice__OpenAI__GPT__56__Terra                                                    ModelID = "openai-gpt-56-terra"
	Model__Venice__OpenAI__GPT__56__Terra__Pro                                               ModelID = "openai-gpt-56-terra-pro"
	Model__Venice__OpenAI__GPT__Oss__120b                                                    ModelID = "openai-gpt-oss-120b"
	Model__Venice__Qwen3__235b__A22b__Instruct__2507__3__Instruct                            ModelID = "qwen3-235b-a22b-instruct-2507"
	Model__Venice__Qwen3__235b__A22b__Thinking__2507__3__Thinking                            ModelID = "qwen3-235b-a22b-thinking-2507"
	Model__Venice__Qwen3__5__35b__A3b__3                                                     ModelID = "qwen3-5-35b-a3b"
	Model__Venice__Qwen3__5__397b__A17b__3                                                   ModelID = "qwen3-5-397b-a17b"
	Model__Venice__Qwen3__5__9b__3                                                           ModelID = "qwen3-5-9b"
	Model__Venice__Qwen3__6__27b__3                                                          ModelID = "qwen3-6-27b"
	Model__Venice__Qwen3__Coder__480b__A35b__Instruct__Turbo__3                              ModelID = "qwen3-coder-480b-a35b-instruct-turbo"
	Model__Venice__Qwen3__Next__80b__3                                                       ModelID = "qwen3-next-80b"
	Model__Venice__Qwen3__Vl__235b__A22b__3                                                  ModelID = "qwen3-vl-235b-a22b"
	Model__Venice__Qwen__3__6__Plus__3_6                                                     ModelID = "qwen-3-6-plus"
	Model__Venice__Qwen__3__7__Max__3_7                                                      ModelID = "qwen-3-7-max"
	Model__Venice__Qwen__3__7__Plus__3_7                                                     ModelID = "qwen-3-7-plus"
	Model__Venice__Venice__Uncensored__1_2                                                   ModelID = "venice-uncensored-1-2"
	Model__Venice__Venice__Uncensored__Role__Play                                            ModelID = "venice-uncensored-role-play"
	Model__Venice__Xiaomi__Mimo__V2__5__2_5                                                  ModelID = "xiaomi-mimo-v2-5"
	Model__Venice__Z__AI__GLM__5__Turbo                                                      ModelID = "z-ai-glm-5-turbo"
	Model__Venice__Z__AI__GLM__5v__5__TurboZ                                                 ModelID = "z-ai-glm-5v-turbo"
	Model__Venice__Zai__Org__GLM__4__6                                                       ModelID = "zai-org-glm-4.6"
	Model__Venice__Zai__Org__GLM__4__7                                                       ModelID = "zai-org-glm-4.7"
	Model__Venice__Zai__Org__GLM__4__7__Flash                                                ModelID = "zai-org-glm-4.7-flash"
	Model__Venice__Zai__Org__GLM__5                                                          ModelID = "zai-org-glm-5"
	Model__Venice__Zai__Org__GLM__5__1                                                       ModelID = "zai-org-glm-5-1"
	Model__Venice__Zai__Org__GLM__5__2                                                       ModelID = "zai-org-glm-5-2"
	Model__Vercel__Arrow__1__1                                                               ModelID = "quiverai/arrow-1.1"
	Model__Vercel__Claude__3__5__Haiku__3_5                                                  ModelID = "anthropic/claude-3.5-haiku"
	Model__Vercel__Claude__3__Haiku__3                                                       ModelID = "anthropic/claude-3-haiku"
	Model__Vercel__Claude__Fable__5                                                          ModelID = "anthropic/claude-fable-5"
	Model__Vercel__Claude__Haiku__4_5                                                        ModelID = "anthropic/claude-haiku-4.5"
	Model__Vercel__Claude__Opus__4                                                           ModelID = "anthropic/claude-opus-4"
	Model__Vercel__Claude__Opus__4_1                                                         ModelID = "anthropic/claude-opus-4.1"
	Model__Vercel__Claude__Opus__4_5                                                         ModelID = "anthropic/claude-opus-4.5"
	Model__Vercel__Claude__Opus__4_6                                                         ModelID = "anthropic/claude-opus-4.6"
	Model__Vercel__Claude__Opus__4_7                                                         ModelID = "anthropic/claude-opus-4.7"
	Model__Vercel__Claude__Opus__4_8                                                         ModelID = "anthropic/claude-opus-4.8"
	Model__Vercel__Claude__Sonnet__4                                                         ModelID = "anthropic/claude-sonnet-4"
	Model__Vercel__Claude__Sonnet__4_5                                                       ModelID = "anthropic/claude-sonnet-4.5"
	Model__Vercel__Claude__Sonnet__4_6                                                       ModelID = "anthropic/claude-sonnet-4.6"
	Model__Vercel__Claude__Sonnet__5                                                         ModelID = "anthropic/claude-sonnet-5"
	Model__Vercel__Codestral                                                                 ModelID = "mistral/codestral"
	Model__Vercel__Codestral__Embed                                                          ModelID = "mistral/codestral-embed"
	Model__Vercel__Command__A                                                                ModelID = "cohere/command-a"
	Model__Vercel__DeepSeek__R1__Thinking                                                    ModelID = "deepseek/deepseek-r1"
	Model__Vercel__DeepSeek__V3                                                              ModelID = "deepseek/deepseek-v3"
	Model__Vercel__DeepSeek__V3__1                                                           ModelID = "deepseek/deepseek-v3.1"
	Model__Vercel__DeepSeek__V3__1__Terminus                                                 ModelID = "deepseek/deepseek-v3.1-terminus"
	Model__Vercel__DeepSeek__V3__2                                                           ModelID = "deepseek/deepseek-v3.2"
	Model__Vercel__DeepSeek__V3__2__Thinking                                                 ModelID = "deepseek/deepseek-v3.2-thinking"
	Model__Vercel__DeepSeek__V4__Flash                                                       ModelID = "deepseek/deepseek-v4-flash"
	Model__Vercel__DeepSeek__V4__Pro                                                         ModelID = "deepseek/deepseek-v4-pro"
	Model__Vercel__Devstral__2                                                               ModelID = "mistral/devstral-2"
	Model__Vercel__Devstral__Small                                                           ModelID = "mistral/devstral-small"
	Model__Vercel__Devstral__Small__2                                                        ModelID = "mistral/devstral-small-2"
	Model__Vercel__Embed__V4__0                                                              ModelID = "cohere/embed-v4.0"
	Model__Vercel__Flux__2__Flex__2                                                          ModelID = "bfl/flux-2-flex"
	Model__Vercel__Flux__2__Klein__4b__2                                                     ModelID = "bfl/flux-2-klein-4b"
	Model__Vercel__Flux__2__Klein__9b__2                                                     ModelID = "bfl/flux-2-klein-9b"
	Model__Vercel__Flux__2__Max__2                                                           ModelID = "bfl/flux-2-max"
	Model__Vercel__Flux__2__Pro__2                                                           ModelID = "bfl/flux-2-pro"
	Model__Vercel__Flux__Fast__Schnell                                                       ModelID = "prodia/flux-fast-schnell"
	Model__Vercel__Flux__Kontext__Max                                                        ModelID = "bfl/flux-kontext-max"
	Model__Vercel__Flux__Kontext__Pro                                                        ModelID = "bfl/flux-kontext-pro"
	Model__Vercel__Flux__Pro__1_1                                                            ModelID = "bfl/flux-pro-1.1"
	Model__Vercel__Flux__Pro__1__0__Fill                                                     ModelID = "bfl/flux-pro-1.0-fill"
	Model__Vercel__Flux__Pro__1__1__Ultra__1_1                                               ModelID = "bfl/flux-pro-1.1-ultra"
	Model__Vercel__Fugu__Ultra                                                               ModelID = "sakana/fugu-ultra"
	Model__Vercel__GLM__4_5                                                                  ModelID = "zai/glm-4.5"
	Model__Vercel__GLM__4_6                                                                  ModelID = "zai/glm-4.6"
	Model__Vercel__GLM__4_7                                                                  ModelID = "zai/glm-4.7"
	Model__Vercel__GLM__4__5__Air__4_5                                                       ModelID = "zai/glm-4.5-air"
	Model__Vercel__GLM__4__5v__4_5                                                           ModelID = "zai/glm-4.5v"
	Model__Vercel__GLM__4__6v__4_6                                                           ModelID = "zai/glm-4.6v"
	Model__Vercel__GLM__4__6v__4_6__Flash                                                    ModelID = "zai/glm-4.6v-flash"
	Model__Vercel__GLM__4__7__Flash__4_7                                                     ModelID = "zai/glm-4.7-flash"
	Model__Vercel__GLM__4__7__Flashx__4_7                                                    ModelID = "zai/glm-4.7-flashx"
	Model__Vercel__GLM__5                                                                    ModelID = "zai/glm-5"
	Model__Vercel__GLM__5_1                                                                  ModelID = "zai/glm-5.1"
	Model__Vercel__GLM__5_2                                                                  ModelID = "zai/glm-5.2"
	Model__Vercel__GLM__5_2__Fast                                                            ModelID = "zai/glm-5.2-fast"
	Model__Vercel__GLM__5__Turbo                                                             ModelID = "zai/glm-5-turbo"
	Model__Vercel__GLM__5v__5__Turbo                                                         ModelID = "zai/glm-5v-turbo"
	Model__Vercel__GPT__3_5__Turbo                                                           ModelID = "openai/gpt-3.5-turbo"
	Model__Vercel__GPT__3_5__TurboInstruct                                                   ModelID = "openai/gpt-3.5-turbo-instruct"
	Model__Vercel__GPT__4_1                                                                  ModelID = "openai/gpt-4.1"
	Model__Vercel__GPT__4__1__Mini__4_1                                                      ModelID = "openai/gpt-4.1-mini"
	Model__Vercel__GPT__4__1__Nano__4_1                                                      ModelID = "openai/gpt-4.1-nano"
	Model__Vercel__GPT__4__Turbo                                                             ModelID = "openai/gpt-4-turbo"
	Model__Vercel__GPT__4o                                                                   ModelID = "openai/gpt-4o"
	Model__Vercel__GPT__4o__Mini                                                             ModelID = "openai/gpt-4o-mini"
	Model__Vercel__GPT__4o__Mini__Search__PreviewMini                                        ModelID = "openai/gpt-4o-mini-search-preview"
	Model__Vercel__GPT__4o__Mini__Transcribe__Mini                                           ModelID = "openai/gpt-4o-mini-transcribe"
	Model__Vercel__GPT__4o__Transcribe                                                       ModelID = "openai/gpt-4o-transcribe"
	Model__Vercel__GPT__5                                                                    ModelID = "openai/gpt-5"
	Model__Vercel__GPT__5_1__Thinking                                                        ModelID = "openai/gpt-5.1-thinking"
	Model__Vercel__GPT__5_2                                                                  ModelID = "openai/gpt-5.2"
	Model__Vercel__GPT__5_2__Chat                                                            ModelID = "openai/gpt-5.2-chat"
	Model__Vercel__GPT__5_3__Chat                                                            ModelID = "openai/gpt-5.3-chat"
	Model__Vercel__GPT__5_4                                                                  ModelID = "openai/gpt-5.4"
	Model__Vercel__GPT__5_5                                                                  ModelID = "openai/gpt-5.5"
	Model__Vercel__GPT__5__1__Codex__5_1                                                     ModelID = "openai/gpt-5.1-codex"
	Model__Vercel__GPT__5__1__Codex__Max__5_1                                                ModelID = "openai/gpt-5.1-codex-max"
	Model__Vercel__GPT__5__1__Codex__Mini__5_1                                               ModelID = "openai/gpt-5.1-codex-mini"
	Model__Vercel__GPT__5__1__Instant__5_1                                                   ModelID = "openai/gpt-5.1-instant"
	Model__Vercel__GPT__5__2__Codex__5_2                                                     ModelID = "openai/gpt-5.2-codex"
	Model__Vercel__GPT__5__2__Pro__5_2                                                       ModelID = "openai/gpt-5.2-pro"
	Model__Vercel__GPT__5__3__Codex__5_3                                                     ModelID = "openai/gpt-5.3-codex"
	Model__Vercel__GPT__5__4__Mini__5_4                                                      ModelID = "openai/gpt-5.4-mini"
	Model__Vercel__GPT__5__4__Nano__5_4                                                      ModelID = "openai/gpt-5.4-nano"
	Model__Vercel__GPT__5__4__Pro__5_4                                                       ModelID = "openai/gpt-5.4-pro"
	Model__Vercel__GPT__5__5__Pro__5_5                                                       ModelID = "openai/gpt-5.5-pro"
	Model__Vercel__GPT__5__6__Luna__5_6                                                      ModelID = "openai/gpt-5.6-luna"
	Model__Vercel__GPT__5__6__Sol__5_6                                                       ModelID = "openai/gpt-5.6-sol"
	Model__Vercel__GPT__5__6__Terra__5_6                                                     ModelID = "openai/gpt-5.6-terra"
	Model__Vercel__GPT__5__Chat                                                              ModelID = "openai/gpt-5-chat"
	Model__Vercel__GPT__5__Codex__5                                                          ModelID = "openai/gpt-5-codex"
	Model__Vercel__GPT__5__Mini__5                                                           ModelID = "openai/gpt-5-mini"
	Model__Vercel__GPT__5__Nano__5                                                           ModelID = "openai/gpt-5-nano"
	Model__Vercel__GPT__5__Pro__5                                                            ModelID = "openai/gpt-5-pro"
	Model__Vercel__GPT__Image__1                                                             ModelID = "openai/gpt-image-1"
	Model__Vercel__GPT__Image__1_5                                                           ModelID = "openai/gpt-image-1.5"
	Model__Vercel__GPT__Image__1__Mini                                                       ModelID = "openai/gpt-image-1-mini"
	Model__Vercel__GPT__Image__2                                                             ModelID = "openai/gpt-image-2"
	Model__Vercel__GPT__Oss__120b                                                            ModelID = "openai/gpt-oss-120b"
	Model__Vercel__GPT__Oss__20b                                                             ModelID = "openai/gpt-oss-20b"
	Model__Vercel__GPT__Oss__Safeguard__20b                                                  ModelID = "openai/gpt-oss-safeguard-20b"
	Model__Vercel__GPT__Realtime__1_5__Realtime                                              ModelID = "openai/gpt-realtime-1.5"
	Model__Vercel__GPT__Realtime__2_1__Realtime                                              ModelID = "openai/gpt-realtime-2.1"
	Model__Vercel__GPT__Realtime__2__Realtime                                                ModelID = "openai/gpt-realtime-2"
	Model__Vercel__GPT__Realtime__Mini__Realtime                                             ModelID = "openai/gpt-realtime-mini"
	Model__Vercel__Gemini__2__5__Flash__2_5                                                  ModelID = "google/gemini-2.5-flash"
	Model__Vercel__Gemini__2__5__Flash__Image__2_5                                           ModelID = "google/gemini-2.5-flash-image"
	Model__Vercel__Gemini__2__5__Flash__Lite__2_5                                            ModelID = "google/gemini-2.5-flash-lite"
	Model__Vercel__Gemini__2__5__Pro__2_5                                                    ModelID = "google/gemini-2.5-pro"
	Model__Vercel__Gemini__3__1__Flash__Image__3_1                                           ModelID = "google/gemini-3.1-flash-image"
	Model__Vercel__Gemini__3__1__Flash__Image__3_1__Preview                                  ModelID = "google/gemini-3.1-flash-image-preview"
	Model__Vercel__Gemini__3__1__Flash__Lite__3_1                                            ModelID = "google/gemini-3.1-flash-lite"
	Model__Vercel__Gemini__3__1__Flash__Lite__3_1__Preview                                   ModelID = "google/gemini-3.1-flash-lite-preview"
	Model__Vercel__Gemini__3__1__Flash__Lite__Image__3_1                                     ModelID = "google/gemini-3.1-flash-lite-image"
	Model__Vercel__Gemini__3__1__Pro__3_1__Preview                                           ModelID = "google/gemini-3.1-pro-preview"
	Model__Vercel__Gemini__3__5__Flash__3_5                                                  ModelID = "google/gemini-3.5-flash"
	Model__Vercel__Gemini__3__Flash__3                                                       ModelID = "google/gemini-3-flash"
	Model__Vercel__Gemini__3__Pro__3__Preview                                                ModelID = "google/gemini-3-pro-preview"
	Model__Vercel__Gemini__3__Pro__Image__3                                                  ModelID = "google/gemini-3-pro-image"
	Model__Vercel__Gemini__Embedding__001                                                    ModelID = "google/gemini-embedding-001"
	Model__Vercel__Gemini__Embedding__2                                                      ModelID = "google/gemini-embedding-2"
	Model__Vercel__Gemini__Omni__Flash__PreviewOmni                                          ModelID = "google/gemini-omni-flash-preview"
	Model__Vercel__Gemma__4__26b__A4b__It__4                                                 ModelID = "google/gemma-4-26b-a4b-it"
	Model__Vercel__Gemma__4__31b__It__4                                                      ModelID = "google/gemma-4-31b-it"
	Model__Vercel__Grok__4_1__ReasoningFast                                                  ModelID = "xai/grok-4.1-fast-reasoning"
	Model__Vercel__Grok__4_20__Reasoning                                                     ModelID = "xai/grok-4.20-reasoning"
	Model__Vercel__Grok__4_3                                                                 ModelID = "xai/grok-4.3"
	Model__Vercel__Grok__4_5                                                                 ModelID = "xai/grok-4.5"
	Model__Vercel__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                      ModelID = "xai/grok-4.1-fast-non-reasoning"
	Model__Vercel__Grok__4__20__Multi__Agent__4_20                                           ModelID = "xai/grok-4.20-multi-agent"
	Model__Vercel__Grok__4__20__Multi__Agent__Beta__4_20                                     ModelID = "xai/grok-4.20-multi-agent-beta"
	Model__Vercel__Grok__4__20__Non__Reasoning__4_20__Non_Reasoning                          ModelID = "xai/grok-4.20-non-reasoning"
	Model__Vercel__Grok__4__20__Non__Reasoning__Beta__4_20__Non_Reasoning                    ModelID = "xai/grok-4.20-non-reasoning-beta"
	Model__Vercel__Grok__4__20__Reasoning__Beta__4_20__Reasoning                             ModelID = "xai/grok-4.20-reasoning-beta"
	Model__Vercel__Grok__Build__0_1                                                          ModelID = "xai/grok-build-0.1"
	Model__Vercel__Grok__Imagine__Image                                                      ModelID = "xai/grok-imagine-image"
	Model__Vercel__Grok__Imagine__Video                                                      ModelID = "xai/grok-imagine-video"
	Model__Vercel__Grok__Imagine__Video__1__5                                                ModelID = "xai/grok-imagine-video-1.5"
	Model__Vercel__Grok__Imagine__Video__1__5__Preview                                       ModelID = "xai/grok-imagine-video-1.5-preview"
	Model__Vercel__Grok__Stt                                                                 ModelID = "xai/grok-stt"
	Model__Vercel__Grok__Tts                                                                 ModelID = "xai/grok-tts"
	Model__Vercel__Grok__Voice__Think__Fast__1__0                                            ModelID = "xai/grok-voice-think-fast-1.0"
	Model__Vercel__Imagen__4__0__Fast__Generate__001__4_0                                    ModelID = "google/imagen-4.0-fast-generate-001"
	Model__Vercel__Imagen__4__0__Generate__001__4_0                                          ModelID = "google/imagen-4.0-generate-001"
	Model__Vercel__Imagen__4__0__Ultra__Generate__001__4_0                                   ModelID = "google/imagen-4.0-ultra-generate-001"
	Model__Vercel__Interfaze__Beta                                                           ModelID = "interfaze/interfaze-beta"
	Model__Vercel__Kat__Coder__Air__V2__5                                                    ModelID = "kwaipilot/kat-coder-air-v2.5"
	Model__Vercel__Kat__Coder__Pro__V1                                                       ModelID = "kwaipilot/kat-coder-pro-v1"
	Model__Vercel__Kat__Coder__Pro__V2                                                       ModelID = "kwaipilot/kat-coder-pro-v2"
	Model__Vercel__Kat__Coder__Pro__V2__5                                                    ModelID = "kwaipilot/kat-coder-pro-v2.5"
	Model__Vercel__Kimi__K2__2                                                               ModelID = "moonshotai/kimi-k2"
	Model__Vercel__Kimi__K2__2__Thinking                                                     ModelID = "moonshotai/kimi-k2-thinking"
	Model__Vercel__Kimi__K2__5__2_5                                                          ModelID = "moonshotai/kimi-k2.5"
	Model__Vercel__Kimi__K2__6__2_6                                                          ModelID = "moonshotai/kimi-k2.6"
	Model__Vercel__Kimi__K2__7__2_7__Code                                                    ModelID = "moonshotai/kimi-k2.7-code"
	Model__Vercel__Kimi__K2__7__Code__Highspeed__2_7                                         ModelID = "moonshotai/kimi-k2.7-code-highspeed"
	Model__Vercel__Kling__V2__5__Turbo__I2v                                                  ModelID = "klingai/kling-v2.5-turbo-i2v"
	Model__Vercel__Kling__V2__5__Turbo__T2v                                                  ModelID = "klingai/kling-v2.5-turbo-t2v"
	Model__Vercel__Kling__V2__6__I2v                                                         ModelID = "klingai/kling-v2.6-i2v"
	Model__Vercel__Kling__V2__6__Motion__Control                                             ModelID = "klingai/kling-v2.6-motion-control"
	Model__Vercel__Kling__V2__6__T2v                                                         ModelID = "klingai/kling-v2.6-t2v"
	Model__Vercel__Kling__V3__0__I2v                                                         ModelID = "klingai/kling-v3.0-i2v"
	Model__Vercel__Kling__V3__0__Motion__Control                                             ModelID = "klingai/kling-v3.0-motion-control"
	Model__Vercel__Kling__V3__0__T2v                                                         ModelID = "klingai/kling-v3.0-t2v"
	Model__Vercel__Llama__3__1__70b__3_1                                                     ModelID = "meta/llama-3.1-70b"
	Model__Vercel__Llama__3__1__8b__3_1                                                      ModelID = "meta/llama-3.1-8b"
	Model__Vercel__Llama__3__2__11b__3_2                                                     ModelID = "meta/llama-3.2-11b"
	Model__Vercel__Llama__3__2__1b__3_2                                                      ModelID = "meta/llama-3.2-1b"
	Model__Vercel__Llama__3__2__3b__3_2                                                      ModelID = "meta/llama-3.2-3b"
	Model__Vercel__Llama__3__2__90b__3_2                                                     ModelID = "meta/llama-3.2-90b"
	Model__Vercel__Llama__3__3__70b__3_3                                                     ModelID = "meta/llama-3.3-70b"
	Model__Vercel__Llama__4__Maverick__4                                                     ModelID = "meta/llama-4-maverick"
	Model__Vercel__Llama__4__Scout__4                                                        ModelID = "meta/llama-4-scout"
	Model__Vercel__Longcat__Flash__Chat                                                      ModelID = "meituan/longcat-flash-chat"
	Model__Vercel__Longcat__Flash__Thinking__2601__Thinking                                  ModelID = "meituan/longcat-flash-thinking-2601"
	Model__Vercel__Magistral__Medium                                                         ModelID = "mistral/magistral-medium"
	Model__Vercel__Magistral__Small                                                          ModelID = "mistral/magistral-small"
	Model__Vercel__Mercury__2                                                                ModelID = "inception/mercury-2"
	Model__Vercel__Mercury__Coder__Small                                                     ModelID = "inception/mercury-coder-small"
	Model__Vercel__Mimo__V2__2__Pro                                                          ModelID = "xiaomi/mimo-v2-pro"
	Model__Vercel__Mimo__V2__5__2_5                                                          ModelID = "xiaomi/mimo-v2.5"
	Model__Vercel__Mimo__V2__5__2_5__Pro                                                     ModelID = "xiaomi/mimo-v2.5-pro"
	Model__Vercel__Mimo__V2__Flash                                                           ModelID = "xiaomi/mimo-v2-flash"
	Model__Vercel__MiniMax__M2__1__2_1                                                       ModelID = "minimax/minimax-m2.1"
	Model__Vercel__MiniMax__M2__1__2_1__Lightning                                            ModelID = "minimax/minimax-m2.1-lightning"
	Model__Vercel__MiniMax__M2__2                                                            ModelID = "minimax/minimax-m2"
	Model__Vercel__MiniMax__M2__5__2_5                                                       ModelID = "minimax/minimax-m2.5"
	Model__Vercel__MiniMax__M2__5__2_5__Highspeed                                            ModelID = "minimax/minimax-m2.5-highspeed"
	Model__Vercel__MiniMax__M2__7__2_7                                                       ModelID = "minimax/minimax-m2.7"
	Model__Vercel__MiniMax__M2__7__2_7__Highspeed                                            ModelID = "minimax/minimax-m2.7-highspeed"
	Model__Vercel__MiniMax__M3__3                                                            ModelID = "minimax/minimax-m3"
	Model__Vercel__Ministral__14b                                                            ModelID = "mistral/ministral-14b"
	Model__Vercel__Ministral__3b                                                             ModelID = "mistral/ministral-3b"
	Model__Vercel__Ministral__8b                                                             ModelID = "mistral/ministral-8b"
	Model__Vercel__Mistral__Embed                                                            ModelID = "mistral/mistral-embed"
	Model__Vercel__Mistral__Large__3                                                         ModelID = "mistral/mistral-large-3"
	Model__Vercel__Mistral__Medium                                                           ModelID = "mistral/mistral-medium"
	Model__Vercel__Mistral__Medium__3_5                                                      ModelID = "mistral/mistral-medium-3.5"
	Model__Vercel__Mistral__Nemo                                                             ModelID = "mistral/mistral-nemo"
	Model__Vercel__Mistral__Small                                                            ModelID = "mistral/mistral-small"
	Model__Vercel__Morph__V3__Fast                                                           ModelID = "morph/morph-v3-fast"
	Model__Vercel__Morph__V3__Large                                                          ModelID = "morph/morph-v3-large"
	Model__Vercel__Muse__Spark__1_1                                                          ModelID = "meta/muse-spark-1.1"
	Model__Vercel__Nemotron__3__Nano__30b__A3b__3                                            ModelID = "nvidia/nemotron-3-nano-30b-a3b"
	Model__Vercel__Nemotron__3__Super__120b__A12b__3                                         ModelID = "nvidia/nemotron-3-super-120b-a12b"
	Model__Vercel__Nemotron__3__Ultra__550b__A55b__3                                         ModelID = "nvidia/nemotron-3-ultra-550b-a55b"
	Model__Vercel__Nemotron__Nano__12b__V2__Vl                                               ModelID = "nvidia/nemotron-nano-12b-v2-vl"
	Model__Vercel__Nemotron__Nano__9b__V2                                                    ModelID = "nvidia/nemotron-nano-9b-v2"
	Model__Vercel__Nova__2__Lite__2                                                          ModelID = "amazon/nova-2-lite"
	Model__Vercel__Nova__Lite                                                                ModelID = "amazon/nova-lite"
	Model__Vercel__Nova__Micro                                                               ModelID = "amazon/nova-micro"
	Model__Vercel__Nova__Pro                                                                 ModelID = "amazon/nova-pro"
	Model__Vercel__O1__1                                                                     ModelID = "openai/o1"
	Model__Vercel__O3__3                                                                     ModelID = "openai/o3"
	Model__Vercel__O3__3__Mini                                                               ModelID = "openai/o3-mini"
	Model__Vercel__O3__3__Pro                                                                ModelID = "openai/o3-pro"
	Model__Vercel__O3__Deep__Research__3__Deep_Research                                      ModelID = "openai/o3-deep-research"
	Model__Vercel__O4__4__Mini                                                               ModelID = "openai/o4-mini"
	Model__Vercel__Pixtral__12b                                                              ModelID = "mistral/pixtral-12b"
	Model__Vercel__Pixtral__Large                                                            ModelID = "mistral/pixtral-large"
	Model__Vercel__Qwen3__235b__A22b__3__Thinking                                            ModelID = "alibaba/qwen3-235b-a22b-thinking"
	Model__Vercel__Qwen3__5__Flash__3_5                                                      ModelID = "alibaba/qwen3.5-flash"
	Model__Vercel__Qwen3__5__Plus__3_5                                                       ModelID = "alibaba/qwen3.5-plus"
	Model__Vercel__Qwen3__6__27b__3_6                                                        ModelID = "alibaba/qwen3.6-27b"
	Model__Vercel__Qwen3__6__Plus__3_6                                                       ModelID = "alibaba/qwen3.6-plus"
	Model__Vercel__Qwen3__7__Max__3_7                                                        ModelID = "alibaba/qwen3.7-max"
	Model__Vercel__Qwen3__7__Plus__3_7                                                       ModelID = "alibaba/qwen3.7-plus"
	Model__Vercel__Qwen3__Coder__3                                                           ModelID = "alibaba/qwen3-coder"
	Model__Vercel__Qwen3__Coder__30b__A3b__3                                                 ModelID = "alibaba/qwen3-coder-30b-a3b"
	Model__Vercel__Qwen3__Coder__Next__3                                                     ModelID = "alibaba/qwen3-coder-next"
	Model__Vercel__Qwen3__Coder__Plus__3                                                     ModelID = "alibaba/qwen3-coder-plus"
	Model__Vercel__Qwen3__Embedding__0__6b__3                                                ModelID = "alibaba/qwen3-embedding-0.6b"
	Model__Vercel__Qwen3__Embedding__4b__3                                                   ModelID = "alibaba/qwen3-embedding-4b"
	Model__Vercel__Qwen3__Embedding__8b__3                                                   ModelID = "alibaba/qwen3-embedding-8b"
	Model__Vercel__Qwen3__Max__3                                                             ModelID = "alibaba/qwen3-max"
	Model__Vercel__Qwen3__Max__3__Preview                                                    ModelID = "alibaba/qwen3-max-preview"
	Model__Vercel__Qwen3__Max__3__Thinking                                                   ModelID = "alibaba/qwen3-max-thinking"
	Model__Vercel__Qwen3__Next__80b__A3b__3__Instruct                                        ModelID = "alibaba/qwen3-next-80b-a3b-instruct"
	Model__Vercel__Qwen3__Next__80b__A3b__3__Thinking                                        ModelID = "alibaba/qwen3-next-80b-a3b-thinking"
	Model__Vercel__Qwen3__Vl__235b__A22b__3__Instruct                                        ModelID = "alibaba/qwen3-vl-235b-a22b-instruct"
	Model__Vercel__Qwen3__Vl__3__Instruct                                                    ModelID = "alibaba/qwen3-vl-instruct"
	Model__Vercel__Qwen3__Vl__3__Thinking                                                    ModelID = "alibaba/qwen3-vl-thinking"
	Model__Vercel__Qwen__3__14b__3                                                           ModelID = "alibaba/qwen-3-14b"
	Model__Vercel__Qwen__3__235b__3                                                          ModelID = "alibaba/qwen-3-235b"
	Model__Vercel__Qwen__3__30b__3                                                           ModelID = "alibaba/qwen-3-30b"
	Model__Vercel__Qwen__3__32b__3                                                           ModelID = "alibaba/qwen-3-32b"
	Model__Vercel__Qwen__3__6__Max__3_6__Preview                                             ModelID = "alibaba/qwen-3.6-max-preview"
	Model__Vercel__Recraft__V2                                                               ModelID = "recraft/recraft-v2"
	Model__Vercel__Recraft__V3                                                               ModelID = "recraft/recraft-v3"
	Model__Vercel__Recraft__V4                                                               ModelID = "recraft/recraft-v4"
	Model__Vercel__Recraft__V4__1                                                            ModelID = "recraft/recraft-v4.1"
	Model__Vercel__Recraft__V4__1__Pro                                                       ModelID = "recraft/recraft-v4.1-pro"
	Model__Vercel__Recraft__V4__1__Utility                                                   ModelID = "recraft/recraft-v4.1-utility"
	Model__Vercel__Recraft__V4__1__Utility__Pro                                              ModelID = "recraft/recraft-v4.1-utility-pro"
	Model__Vercel__Recraft__V4__Pro                                                          ModelID = "recraft/recraft-v4-pro"
	Model__Vercel__Rerank__2__5                                                              ModelID = "voyage/rerank-2.5"
	Model__Vercel__Rerank__2__5__Lite                                                        ModelID = "voyage/rerank-2.5-lite"
	Model__Vercel__Rerank__V3__5                                                             ModelID = "cohere/rerank-v3.5"
	Model__Vercel__Rerank__V4__Fast                                                          ModelID = "cohere/rerank-v4-fast"
	Model__Vercel__Rerank__V4__Pro                                                           ModelID = "cohere/rerank-v4-pro"
	Model__Vercel__Seed__1_6                                                                 ModelID = "bytedance/seed-1.6"
	Model__Vercel__Seed__1_8                                                                 ModelID = "bytedance/seed-1.8"
	Model__Vercel__Seedance__2__0                                                            ModelID = "bytedance/seedance-2.0"
	Model__Vercel__Seedance__2__0__Fast                                                      ModelID = "bytedance/seedance-2.0-fast"
	Model__Vercel__Seedance__V1__0__Pro                                                      ModelID = "bytedance/seedance-v1.0-pro"
	Model__Vercel__Seedance__V1__0__Pro__Fast                                                ModelID = "bytedance/seedance-v1.0-pro-fast"
	Model__Vercel__Seedance__V1__5__Pro                                                      ModelID = "bytedance/seedance-v1.5-pro"
	Model__Vercel__Seedream__4__0                                                            ModelID = "bytedance/seedream-4.0"
	Model__Vercel__Seedream__4__5                                                            ModelID = "bytedance/seedream-4.5"
	Model__Vercel__Seedream__5__0__Lite                                                      ModelID = "bytedance/seedream-5.0-lite"
	Model__Vercel__Seedream__5__0__Pro                                                       ModelID = "bytedance/seedream-5.0-pro"
	Model__Vercel__Sonar                                                                     ModelID = "perplexity/sonar"
	Model__Vercel__Sonar__Pro                                                                ModelID = "perplexity/sonar-pro"
	Model__Vercel__Sonar__Reasoning__Pro                                                     ModelID = "perplexity/sonar-reasoning-pro"
	Model__Vercel__Step__3__5__Flash__3_5                                                    ModelID = "stepfun/step-3.5-flash"
	Model__Vercel__Step__3__7__Flash__3_7                                                    ModelID = "stepfun/step-3.7-flash"
	Model__Vercel__Text__Embedding__005                                                      ModelID = "google/text-embedding-005"
	Model__Vercel__Text__Embedding__3__Large__3                                              ModelID = "openai/text-embedding-3-large"
	Model__Vercel__Text__Embedding__3__Small__3                                              ModelID = "openai/text-embedding-3-small"
	Model__Vercel__Text__Embedding__Ada__002                                                 ModelID = "openai/text-embedding-ada-002"
	Model__Vercel__Text__Multilingual__Embedding__002                                        ModelID = "google/text-multilingual-embedding-002"
	Model__Vercel__Titan__Embed__Text__V2                                                    ModelID = "amazon/titan-embed-text-v2"
	Model__Vercel__Trinity__Large__Preview                                                   ModelID = "arcee-ai/trinity-large-preview"
	Model__Vercel__Trinity__Large__Thinking                                                  ModelID = "arcee-ai/trinity-large-thinking"
	Model__Vercel__Trinity__Mini                                                             ModelID = "arcee-ai/trinity-mini"
	Model__Vercel__Tts__1                                                                    ModelID = "openai/tts-1"
	Model__Vercel__Tts__1__Hd                                                                ModelID = "openai/tts-1-hd"
	Model__Vercel__Veo__3__0__Fast__Generate__001__3_0                                       ModelID = "google/veo-3.0-fast-generate-001"
	Model__Vercel__Veo__3__0__Generate__001__3_0                                             ModelID = "google/veo-3.0-generate-001"
	Model__Vercel__Veo__3__1__Fast__Generate__001__3_1                                       ModelID = "google/veo-3.1-fast-generate-001"
	Model__Vercel__Veo__3__1__Generate__001__3_1                                             ModelID = "google/veo-3.1-generate-001"
	Model__Vercel__Voyage__3_5                                                               ModelID = "voyage/voyage-3.5"
	Model__Vercel__Voyage__3__5__Lite__3_5                                                   ModelID = "voyage/voyage-3.5-lite"
	Model__Vercel__Voyage__3__Large__3                                                       ModelID = "voyage/voyage-3-large"
	Model__Vercel__Voyage__4                                                                 ModelID = "voyage/voyage-4"
	Model__Vercel__Voyage__4__Large__4                                                       ModelID = "voyage/voyage-4-large"
	Model__Vercel__Voyage__4__Lite__4                                                        ModelID = "voyage/voyage-4-lite"
	Model__Vercel__Voyage__Code__2                                                           ModelID = "voyage/voyage-code-2"
	Model__Vercel__Voyage__Code__3                                                           ModelID = "voyage/voyage-code-3"
	Model__Vercel__Voyage__Finance__2                                                        ModelID = "voyage/voyage-finance-2"
	Model__Vercel__Voyage__Law__2                                                            ModelID = "voyage/voyage-law-2"
	Model__Vercel__Wan__V2__5__T2v__Preview                                                  ModelID = "alibaba/wan-v2.5-t2v-preview"
	Model__Vercel__Wan__V2__6__I2v                                                           ModelID = "alibaba/wan-v2.6-i2v"
	Model__Vercel__Wan__V2__6__I2v__Flash                                                    ModelID = "alibaba/wan-v2.6-i2v-flash"
	Model__Vercel__Wan__V2__6__R2v                                                           ModelID = "alibaba/wan-v2.6-r2v"
	Model__Vercel__Wan__V2__6__R2v__Flash                                                    ModelID = "alibaba/wan-v2.6-r2v-flash"
	Model__Vercel__Wan__V2__6__T2v                                                           ModelID = "alibaba/wan-v2.6-t2v"
	Model__Vercel__Wan__V2__7__R2v                                                           ModelID = "alibaba/wan-v2.7-r2v"
	Model__Vercel__Wan__V2__7__T2v                                                           ModelID = "alibaba/wan-v2.7-t2v"
	Model__Vercel__Whisper__1                                                                ModelID = "openai/whisper-1"
	Model__Vivgrid__DeepSeek__V3__2                                                          ModelID = "deepseek-v3.2"
	Model__Vivgrid__DeepSeek__V4__Pro__Thinking                                              ModelID = "deepseek-v4-pro"
	Model__Vivgrid__GLM__5_2                                                                 ModelID = "glm-5.2"
	Model__Vivgrid__GPT__5_4                                                                 ModelID = "gpt-5.4"
	Model__Vivgrid__GPT__5_5                                                                 ModelID = "gpt-5.5"
	Model__Vivgrid__GPT__5__1__Codex__5_1                                                    ModelID = "gpt-5.1-codex"
	Model__Vivgrid__GPT__5__1__Codex__Max__5_1                                               ModelID = "gpt-5.1-codex-max"
	Model__Vivgrid__GPT__5__2__Codex__5_2                                                    ModelID = "gpt-5.2-codex"
	Model__Vivgrid__GPT__5__3__Codex__5_3                                                    ModelID = "gpt-5.3-codex"
	Model__Vivgrid__GPT__5__4__Mini__5_4                                                     ModelID = "gpt-5.4-mini"
	Model__Vivgrid__GPT__5__4__Nano__5_4                                                     ModelID = "gpt-5.4-nano"
	Model__Vivgrid__GPT__5__6__Luna__5_6                                                     ModelID = "gpt-5.6-luna"
	Model__Vivgrid__GPT__5__6__Sol__5_6                                                      ModelID = "gpt-5.6-sol"
	Model__Vivgrid__GPT__5__6__Terra__5_6                                                    ModelID = "gpt-5.6-terra"
	Model__Vivgrid__GPT__5__Mini__5                                                          ModelID = "gpt-5-mini"
	Model__Vivgrid__Gemini__3__1__Flash__Lite__3_1__Preview                                  ModelID = "gemini-3.1-flash-lite-preview"
	Model__Vivgrid__Gemini__3__1__Pro__3_1__Preview                                          ModelID = "gemini-3.1-pro-preview"
	Model__Vultr__DeepSeek__V3__2__Nvfp4                                                     ModelID = "nvidia/DeepSeek-V3.2-NVFP4"
	Model__Vultr__DeepSeek__V4__Flash                                                        ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__Vultr__GLM__5__2__Fp8__5_2                                                        ModelID = "zai-org/GLM-5.2-FP8"
	Model__Vultr__Kimi__K2__6__2_6                                                           ModelID = "moonshotai/Kimi-K2.6"
	Model__Vultr__Mimo__V2__5__2_5__Pro                                                      ModelID = "XiaomiMiMo/MiMo-V2.5-Pro"
	Model__Vultr__MiniMax__M2__7__2_7                                                        ModelID = "MiniMaxAI/MiniMax-M2.7"
	Model__Vultr__Nemotron__3__Nano__Omni__30B__A3b__Reasoning__Bf16__3__ReasoningOmni       ModelID = "nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16"
	Model__Vultr__Nemotron__Cascade__2__30B__A3b__2                                          ModelID = "nvidia/Nemotron-Cascade-2-30B-A3B"
	Model__Vultr__Qwen3__5__397B__A17b__3_5                                                  ModelID = "Qwen/Qwen3.5-397B-A17B"
	Model__Vultr__Qwen3__6__27B__3_6                                                         ModelID = "Qwen/Qwen3.6-27B"
	Model__WaferAI__GLM__5_1                                                                 ModelID = "GLM-5.1"
	Model__WaferAI__GLM__5_2                                                                 ModelID = "GLM-5.2"
	Model__WaferAI__Glm5__2__5_2__Fast                                                       ModelID = "glm5.2-fast"
	Model__WaferAI__Kimi__K2__6__2_6                                                         ModelID = "Kimi-K2.6"
	Model__WaferAI__MiniMax__M3__3                                                           ModelID = "MiniMax-M3"
	Model__Wandb__DeepSeek__V3__1                                                            ModelID = "deepseek-ai/DeepSeek-V3.1"
	Model__Wandb__DeepSeek__V4__Flash                                                        ModelID = "deepseek-ai/DeepSeek-V4-Flash"
	Model__Wandb__DeepSeek__V4__Pro                                                          ModelID = "deepseek-ai/DeepSeek-V4-Pro"
	Model__Wandb__GLM__5_1                                                                   ModelID = "zai-org/GLM-5.1"
	Model__Wandb__GLM__5_2                                                                   ModelID = "zai-org/GLM-5.2"
	Model__Wandb__GPT__Oss__120b                                                             ModelID = "openai/gpt-oss-120b"
	Model__Wandb__GPT__Oss__20b                                                              ModelID = "openai/gpt-oss-20b"
	Model__Wandb__Gemma__4__31B__It__4                                                       ModelID = "google/gemma-4-31B-it"
	Model__Wandb__Granite__4__1__8b__4_1                                                     ModelID = "ibm-granite/granite-4.1-8b"
	Model__Wandb__Kimi__K2__5__2_5                                                           ModelID = "moonshotai/Kimi-K2.5"
	Model__Wandb__Kimi__K2__6__2_6                                                           ModelID = "moonshotai/Kimi-K2.6"
	Model__Wandb__Kimi__K2__7__2_7__Code                                                     ModelID = "moonshotai/Kimi-K2.7-Code"
	Model__Wandb__Llama__3__1__70B__3_1__Instruct                                            ModelID = "meta-llama/Llama-3.1-70B-Instruct"
	Model__Wandb__Llama__3__1__8B__3_1__Instruct                                             ModelID = "meta-llama/Llama-3.1-8B-Instruct"
	Model__Wandb__Llama__3__3__70B__3_3__Instruct                                            ModelID = "meta-llama/Llama-3.3-70B-Instruct"
	Model__Wandb__Mellum2__12B__A2__5B__Instruct                                             ModelID = "JetBrains/Mellum2-12B-A2.5B-Instruct"
	Model__Wandb__MiniMax__M2__5__2_5                                                        ModelID = "MiniMaxAI/MiniMax-M2.5"
	Model__Wandb__Nvidia__Nemotron__3__Super__120B__A12b__Fp8                                ModelID = "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8"
	Model__Wandb__Nvidia__Nemotron__3__Ultra__550B__A55b                                     ModelID = "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B"
	Model__Wandb__Phi__4__Mini__4__Instruct                                                  ModelID = "microsoft/Phi-4-mini-instruct"
	Model__Wandb__Qwen3__14B__3__Instruct                                                    ModelID = "OpenPipe/Qwen3-14B-Instruct"
	Model__Wandb__Qwen3__235B__A22b__Instruct__2507__3__Instruct                             ModelID = "Qwen/Qwen3-235B-A22B-Instruct-2507"
	Model__Wandb__Qwen3__235B__A22b__Thinking__2507__3__Thinking                             ModelID = "Qwen/Qwen3-235B-A22B-Thinking-2507"
	Model__Wandb__Qwen3__30B__A3b__Instruct__2507__3__Instruct                               ModelID = "Qwen/Qwen3-30B-A3B-Instruct-2507"
	Model__Wandb__Qwen3__5__27B__3_5                                                         ModelID = "Qwen/Qwen3.5-27B"
	Model__Wandb__Qwen3__5__35B__A3b__3_5                                                    ModelID = "Qwen/Qwen3.5-35B-A3B"
	Model__Wandb__Qwen3__6__27B__3_6                                                         ModelID = "Qwen/Qwen3.6-27B"
	Model__Wandb__Qwen3__6__35B__A3b__3_6                                                    ModelID = "Qwen/Qwen3.6-35B-A3B"
	Model__Wandb__Qwen3__Coder__480B__A35b__3__Instruct                                      ModelID = "Qwen/Qwen3-Coder-480B-A35B-Instruct"
	Model__XiaomiTokenPlanAMS__Mimo__V2__2__Pro                                              ModelID = "mimo-v2-pro"
	Model__XiaomiTokenPlanAMS__Mimo__V2__5__2_5                                              ModelID = "mimo-v2.5"
	Model__XiaomiTokenPlanAMS__Mimo__V2__5__2_5__Pro                                         ModelID = "mimo-v2.5-pro"
	Model__XiaomiTokenPlanAMS__Mimo__V2__5__Tts                                              ModelID = "mimo-v2.5-tts"
	Model__XiaomiTokenPlanAMS__Mimo__V2__5__Tts__Voiceclone                                  ModelID = "mimo-v2.5-tts-voiceclone"
	Model__XiaomiTokenPlanAMS__Mimo__V2__5__Tts__Voicedesign                                 ModelID = "mimo-v2.5-tts-voicedesign"
	Model__XiaomiTokenPlanAMS__Mimo__V2__Tts                                                 ModelID = "mimo-v2-tts"
	Model__XiaomiTokenPlanCN__Mimo__V2__2__Pro                                               ModelID = "mimo-v2-pro"
	Model__XiaomiTokenPlanCN__Mimo__V2__5__2_5                                               ModelID = "mimo-v2.5"
	Model__XiaomiTokenPlanCN__Mimo__V2__5__2_5__Pro                                          ModelID = "mimo-v2.5-pro"
	Model__XiaomiTokenPlanCN__Mimo__V2__5__Tts                                               ModelID = "mimo-v2.5-tts"
	Model__XiaomiTokenPlanCN__Mimo__V2__5__Tts__Voiceclone                                   ModelID = "mimo-v2.5-tts-voiceclone"
	Model__XiaomiTokenPlanCN__Mimo__V2__5__Tts__Voicedesign                                  ModelID = "mimo-v2.5-tts-voicedesign"
	Model__XiaomiTokenPlanCN__Mimo__V2__Tts                                                  ModelID = "mimo-v2-tts"
	Model__XiaomiTokenPlanSGP__Mimo__V2__2__Pro                                              ModelID = "mimo-v2-pro"
	Model__XiaomiTokenPlanSGP__Mimo__V2__5__2_5                                              ModelID = "mimo-v2.5"
	Model__XiaomiTokenPlanSGP__Mimo__V2__5__2_5__Pro                                         ModelID = "mimo-v2.5-pro"
	Model__XiaomiTokenPlanSGP__Mimo__V2__5__Tts                                              ModelID = "mimo-v2.5-tts"
	Model__XiaomiTokenPlanSGP__Mimo__V2__5__Tts__Voiceclone                                  ModelID = "mimo-v2.5-tts-voiceclone"
	Model__XiaomiTokenPlanSGP__Mimo__V2__5__Tts__Voicedesign                                 ModelID = "mimo-v2.5-tts-voicedesign"
	Model__XiaomiTokenPlanSGP__Mimo__V2__Tts                                                 ModelID = "mimo-v2-tts"
	Model__Xiaomi__Mimo__V2__2__Omni                                                         ModelID = "mimo-v2-omni"
	Model__Xiaomi__Mimo__V2__2__Pro                                                          ModelID = "mimo-v2-pro"
	Model__Xiaomi__Mimo__V2__5__2_5                                                          ModelID = "mimo-v2.5"
	Model__Xiaomi__Mimo__V2__5__2_5__Pro                                                     ModelID = "mimo-v2.5-pro"
	Model__Xiaomi__Mimo__V2__5__Pro__Ultraspeed                                              ModelID = "mimo-v2.5-pro-ultraspeed"
	Model__Xiaomi__Mimo__V2__Flash                                                           ModelID = "mimo-v2-flash"
	Model__Xpersona__Claude__Fable__5                                                        ModelID = "claude-fable-5"
	Model__Xpersona__Xpersona__Frieren__Coder                                                ModelID = "xpersona-frieren-coder"
	Model__Xpersona__Xpersona__GPT__5__5                                                     ModelID = "xpersona-gpt-5.5"
	Model__ZaiCodingPlan__GLM__4_7                                                           ModelID = "glm-4.7"
	Model__ZaiCodingPlan__GLM__4__5__Air__4_5                                                ModelID = "glm-4.5-air"
	Model__ZaiCodingPlan__GLM__5_1                                                           ModelID = "glm-5.1"
	Model__ZaiCodingPlan__GLM__5_2                                                           ModelID = "glm-5.2"
	Model__ZaiCodingPlan__GLM__5__Turbo                                                      ModelID = "glm-5-turbo"
	Model__ZaiCodingPlan__GLM__5v__5__Turbo                                                  ModelID = "glm-5v-turbo"
	Model__Zai__GLM__4_5                                                                     ModelID = "glm-4.5"
	Model__Zai__GLM__4_6                                                                     ModelID = "glm-4.6"
	Model__Zai__GLM__4_7                                                                     ModelID = "glm-4.7"
	Model__Zai__GLM__4__5__Air__4_5                                                          ModelID = "glm-4.5-air"
	Model__Zai__GLM__4__5__Flash__4_5                                                        ModelID = "glm-4.5-flash"
	Model__Zai__GLM__4__5v__4_5                                                              ModelID = "glm-4.5v"
	Model__Zai__GLM__4__6v__4_6                                                              ModelID = "glm-4.6v"
	Model__Zai__GLM__4__7__Flash__4_7                                                        ModelID = "glm-4.7-flash"
	Model__Zai__GLM__4__7__Flashx__4_7                                                       ModelID = "glm-4.7-flashx"
	Model__Zai__GLM__5                                                                       ModelID = "glm-5"
	Model__Zai__GLM__5_1                                                                     ModelID = "glm-5.1"
	Model__Zai__GLM__5_2                                                                     ModelID = "glm-5.2"
	Model__Zai__GLM__5__Turbo                                                                ModelID = "glm-5-turbo"
	Model__Zai__GLM__5v__5__Turbo                                                            ModelID = "glm-5v-turbo"
	Model__Zeldoc__Z__Code                                                                   ModelID = "z-code"
	Model__ZenMux__Agnes__1__5__Lite__1_5                                                    ModelID = "sapiens-ai/agnes-1.5-lite"
	Model__ZenMux__Agnes__1__5__Pro__1_5                                                     ModelID = "sapiens-ai/agnes-1.5-pro"
	Model__ZenMux__Claude__3__5__Haiku__3_5                                                  ModelID = "anthropic/claude-3.5-haiku"
	Model__ZenMux__Claude__3__7__Sonnet__3_7                                                 ModelID = "anthropic/claude-3.7-sonnet"
	Model__ZenMux__Claude__Fable__5                                                          ModelID = "anthropic/claude-fable-5"
	Model__ZenMux__Claude__Haiku__4_5                                                        ModelID = "anthropic/claude-haiku-4.5"
	Model__ZenMux__Claude__Opus__4                                                           ModelID = "anthropic/claude-opus-4"
	Model__ZenMux__Claude__Opus__4_1                                                         ModelID = "anthropic/claude-opus-4.1"
	Model__ZenMux__Claude__Opus__4_5                                                         ModelID = "anthropic/claude-opus-4.5"
	Model__ZenMux__Claude__Opus__4_6                                                         ModelID = "anthropic/claude-opus-4.6"
	Model__ZenMux__Claude__Opus__4_7                                                         ModelID = "anthropic/claude-opus-4.7"
	Model__ZenMux__Claude__Opus__4_8                                                         ModelID = "anthropic/claude-opus-4.8"
	Model__ZenMux__Claude__Sonnet__4                                                         ModelID = "anthropic/claude-sonnet-4"
	Model__ZenMux__Claude__Sonnet__4_5                                                       ModelID = "anthropic/claude-sonnet-4.5"
	Model__ZenMux__Claude__Sonnet__4_6                                                       ModelID = "anthropic/claude-sonnet-4.6"
	Model__ZenMux__Claude__Sonnet__5                                                         ModelID = "anthropic/claude-sonnet-5"
	Model__ZenMux__Claude__Sonnet__5__Free                                                   ModelID = "anthropic/claude-sonnet-5-free"
	Model__ZenMux__DeepSeek__Chat                                                            ModelID = "deepseek/deepseek-chat"
	Model__ZenMux__DeepSeek__V3__2                                                           ModelID = "deepseek/deepseek-v3.2"
	Model__ZenMux__DeepSeek__V3__2__Exp                                                      ModelID = "deepseek/deepseek-v3.2-exp"
	Model__ZenMux__DeepSeek__V4__Flash                                                       ModelID = "deepseek/deepseek-v4-flash"
	Model__ZenMux__DeepSeek__V4__Pro__Thinking                                               ModelID = "deepseek/deepseek-v4-pro"
	Model__ZenMux__Doubao__Seed__1_8                                                         ModelID = "volcengine/doubao-seed-1.8"
	Model__ZenMux__Doubao__Seed__2_0__Code                                                   ModelID = "volcengine/doubao-seed-2.0-code"
	Model__ZenMux__Doubao__Seed__2__0__Lite__2_0                                             ModelID = "volcengine/doubao-seed-2.0-lite"
	Model__ZenMux__Doubao__Seed__2__0__Mini__2_0                                             ModelID = "volcengine/doubao-seed-2.0-mini"
	Model__ZenMux__Doubao__Seed__2__0__Pro__2_0                                              ModelID = "volcengine/doubao-seed-2.0-pro"
	Model__ZenMux__Doubao__Seed__Code                                                        ModelID = "volcengine/doubao-seed-code"
	Model__ZenMux__Ernie__5_0__ThinkingPreview                                               ModelID = "baidu/ernie-5.0-thinking-preview"
	Model__ZenMux__GLM__4_5                                                                  ModelID = "z-ai/glm-4.5"
	Model__ZenMux__GLM__4_6                                                                  ModelID = "z-ai/glm-4.6"
	Model__ZenMux__GLM__4_7                                                                  ModelID = "z-ai/glm-4.7"
	Model__ZenMux__GLM__4__5__Air__4_5                                                       ModelID = "z-ai/glm-4.5-air"
	Model__ZenMux__GLM__4__6v__4_6                                                           ModelID = "z-ai/glm-4.6v"
	Model__ZenMux__GLM__4__6v__4_6__Flash                                                    ModelID = "z-ai/glm-4.6v-flash"
	Model__ZenMux__GLM__4__6v__Flash__Free__4_6__Flash                                       ModelID = "z-ai/glm-4.6v-flash-free"
	Model__ZenMux__GLM__4__7__Flash__Free__4_7                                               ModelID = "z-ai/glm-4.7-flash-free"
	Model__ZenMux__GLM__4__7__Flashx__4_7                                                    ModelID = "z-ai/glm-4.7-flashx"
	Model__ZenMux__GLM__5                                                                    ModelID = "z-ai/glm-5"
	Model__ZenMux__GLM__5_1                                                                  ModelID = "z-ai/glm-5.1"
	Model__ZenMux__GLM__5_2                                                                  ModelID = "z-ai/glm-5.2"
	Model__ZenMux__GLM__5__2__Free__5_2                                                      ModelID = "z-ai/glm-5.2-free"
	Model__ZenMux__GLM__5__Turbo                                                             ModelID = "z-ai/glm-5-turbo"
	Model__ZenMux__GLM__5v__5__Turbo                                                         ModelID = "z-ai/glm-5v-turbo"
	Model__ZenMux__GPT__5                                                                    ModelID = "openai/gpt-5"
	Model__ZenMux__GPT__5_1                                                                  ModelID = "openai/gpt-5.1"
	Model__ZenMux__GPT__5_1__Chat                                                            ModelID = "openai/gpt-5.1-chat"
	Model__ZenMux__GPT__5_2                                                                  ModelID = "openai/gpt-5.2"
	Model__ZenMux__GPT__5_3__Chat                                                            ModelID = "openai/gpt-5.3-chat"
	Model__ZenMux__GPT__5_4                                                                  ModelID = "openai/gpt-5.4"
	Model__ZenMux__GPT__5_5                                                                  ModelID = "openai/gpt-5.5"
	Model__ZenMux__GPT__5__1__Codex__5_1                                                     ModelID = "openai/gpt-5.1-codex"
	Model__ZenMux__GPT__5__1__Codex__Mini__5_1                                               ModelID = "openai/gpt-5.1-codex-mini"
	Model__ZenMux__GPT__5__2__Codex__5_2                                                     ModelID = "openai/gpt-5.2-codex"
	Model__ZenMux__GPT__5__2__Pro__5_2                                                       ModelID = "openai/gpt-5.2-pro"
	Model__ZenMux__GPT__5__3__Codex__5_3                                                     ModelID = "openai/gpt-5.3-codex"
	Model__ZenMux__GPT__5__4__Mini__5_4                                                      ModelID = "openai/gpt-5.4-mini"
	Model__ZenMux__GPT__5__4__Nano__5_4                                                      ModelID = "openai/gpt-5.4-nano"
	Model__ZenMux__GPT__5__4__Pro__5_4                                                       ModelID = "openai/gpt-5.4-pro"
	Model__ZenMux__GPT__5__5__Instant__5_5                                                   ModelID = "openai/gpt-5.5-instant"
	Model__ZenMux__GPT__5__5__Pro__5_5                                                       ModelID = "openai/gpt-5.5-pro"
	Model__ZenMux__GPT__5__6__Luna__5_6                                                      ModelID = "openai/gpt-5.6-luna"
	Model__ZenMux__GPT__5__6__Sol__5_6                                                       ModelID = "openai/gpt-5.6-sol"
	Model__ZenMux__GPT__5__6__Terra__5_6                                                     ModelID = "openai/gpt-5.6-terra"
	Model__ZenMux__GPT__5__Codex__5                                                          ModelID = "openai/gpt-5-codex"
	Model__ZenMux__Gemini__2__5__Flash__2_5                                                  ModelID = "google/gemini-2.5-flash"
	Model__ZenMux__Gemini__2__5__Flash__Lite__2_5                                            ModelID = "google/gemini-2.5-flash-lite"
	Model__ZenMux__Gemini__2__5__Pro__2_5                                                    ModelID = "google/gemini-2.5-pro"
	Model__ZenMux__Gemini__3__1__Flash__Lite__3_1                                            ModelID = "google/gemini-3.1-flash-lite"
	Model__ZenMux__Gemini__3__1__Flash__Lite__3_1__Preview                                   ModelID = "google/gemini-3.1-flash-lite-preview"
	Model__ZenMux__Gemini__3__1__Pro__3_1__Preview                                           ModelID = "google/gemini-3.1-pro-preview"
	Model__ZenMux__Gemini__3__5__Flash__3_5                                                  ModelID = "google/gemini-3.5-flash"
	Model__ZenMux__Gemini__3__Flash__3__Preview                                              ModelID = "google/gemini-3-flash-preview"
	Model__ZenMux__Grok__4                                                                   ModelID = "x-ai/grok-4"
	Model__ZenMux__Grok__4_1__Fast                                                           ModelID = "x-ai/grok-4.1-fast"
	Model__ZenMux__Grok__4_2__Fast                                                           ModelID = "x-ai/grok-4.2-fast"
	Model__ZenMux__Grok__4_3                                                                 ModelID = "x-ai/grok-4.3"
	Model__ZenMux__Grok__4_5                                                                 ModelID = "x-ai/grok-4.5"
	Model__ZenMux__Grok__4__1__Fast__Non__Reasoning__4_1__Non_Reasoning                      ModelID = "x-ai/grok-4.1-fast-non-reasoning"
	Model__ZenMux__Grok__4__2__Fast__Non__Reasoning__4_2__Non_Reasoning                      ModelID = "x-ai/grok-4.2-fast-non-reasoning"
	Model__ZenMux__Grok__4__Fast                                                             ModelID = "x-ai/grok-4-fast"
	Model__ZenMux__Grok__Build__0_1                                                          ModelID = "x-ai/grok-build-0.1"
	Model__ZenMux__Grok__Code__Fast__1                                                       ModelID = "x-ai/grok-code-fast-1"
	Model__ZenMux__Hy3__3__Preview                                                           ModelID = "tencent/hy3-preview"
	Model__ZenMux__Kat__Coder__Pro__V2                                                       ModelID = "kuaishou/kat-coder-pro-v2"
	Model__ZenMux__Kimi__K2__0905__2                                                         ModelID = "moonshotai/kimi-k2-0905"
	Model__ZenMux__Kimi__K2__2__Thinking                                                     ModelID = "moonshotai/kimi-k2-thinking"
	Model__ZenMux__Kimi__K2__2__ThinkingTurbo                                                ModelID = "moonshotai/kimi-k2-thinking-turbo"
	Model__ZenMux__Kimi__K2__5__2_5                                                          ModelID = "moonshotai/kimi-k2.5"
	Model__ZenMux__Kimi__K2__6__2_6                                                          ModelID = "moonshotai/kimi-k2.6"
	Model__ZenMux__Kimi__K2__7__2_7__Code                                                    ModelID = "moonshotai/kimi-k2.7-code"
	Model__ZenMux__Kimi__K2__7__Code__Free                                                   ModelID = "moonshotai/kimi-k2.7-code-free"
	Model__ZenMux__Ling__1t                                                                  ModelID = "inclusionai/ling-1t"
	Model__ZenMux__Mimo__V2__2__Omni                                                         ModelID = "xiaomi/mimo-v2-omni"
	Model__ZenMux__Mimo__V2__2__Pro                                                          ModelID = "xiaomi/mimo-v2-pro"
	Model__ZenMux__Mimo__V2__5__2_5                                                          ModelID = "xiaomi/mimo-v2.5"
	Model__ZenMux__Mimo__V2__5__2_5__Pro                                                     ModelID = "xiaomi/mimo-v2.5-pro"
	Model__ZenMux__Mimo__V2__Flash                                                           ModelID = "xiaomi/mimo-v2-flash"
	Model__ZenMux__MiniMax__M2__1__2_1                                                       ModelID = "minimax/minimax-m2.1"
	Model__ZenMux__MiniMax__M2__2                                                            ModelID = "minimax/minimax-m2"
	Model__ZenMux__MiniMax__M2__5__2_5                                                       ModelID = "minimax/minimax-m2.5"
	Model__ZenMux__MiniMax__M2__5__2_5__Lightning                                            ModelID = "minimax/minimax-m2.5-lightning"
	Model__ZenMux__MiniMax__M2__7__2_7                                                       ModelID = "minimax/minimax-m2.7"
	Model__ZenMux__MiniMax__M2__7__2_7__Highspeed                                            ModelID = "minimax/minimax-m2.7-highspeed"
	Model__ZenMux__MiniMax__M3__3                                                            ModelID = "minimax/minimax-m3"
	Model__ZenMux__Qwen3__5__Flash__3_5                                                      ModelID = "qwen/qwen3.5-flash"
	Model__ZenMux__Qwen3__5__Plus__3_5                                                       ModelID = "qwen/qwen3.5-plus"
	Model__ZenMux__Qwen3__6__Plus__3_6                                                       ModelID = "qwen/qwen3.6-plus"
	Model__ZenMux__Qwen3__7__Max__3_7                                                        ModelID = "qwen/qwen3.7-max"
	Model__ZenMux__Qwen3__7__Plus__3_7                                                       ModelID = "qwen/qwen3.7-plus"
	Model__ZenMux__Qwen3__Coder__Plus__3                                                     ModelID = "qwen/qwen3-coder-plus"
	Model__ZenMux__Qwen3__Max__3                                                             ModelID = "qwen/qwen3-max"
	Model__ZenMux__Ring__1t                                                                  ModelID = "inclusionai/ring-1t"
	Model__ZenMux__Ring__2__6__1t__2_6                                                       ModelID = "inclusionai/ring-2.6-1t"
	Model__ZenMux__Step__3                                                                   ModelID = "stepfun/step-3"
	Model__ZenMux__Step__3__5__Flash__3_5                                                    ModelID = "stepfun/step-3.5-flash"
	Model__ZenMux__Step__3__7__Flash__3_7                                                    ModelID = "stepfun/step-3.7-flash"
	Model__ZenMux__Step__3__7__Flash__Free__3_7                                              ModelID = "stepfun/step-3.7-flash-free"
	Model__Zenifra__Qwen3__6__35b__A3b__3_6                                                  ModelID = "alibaba/qwen3.6-35b-a3b"
	Model__ZhipuaiCodingPlan__GLM__4_7                                                       ModelID = "glm-4.7"
	Model__ZhipuaiCodingPlan__GLM__4__5__Air__4_5                                            ModelID = "glm-4.5-air"
	Model__ZhipuaiCodingPlan__GLM__4__6v__4_6                                                ModelID = "glm-4.6v"
	Model__ZhipuaiCodingPlan__GLM__5_1                                                       ModelID = "glm-5.1"
	Model__ZhipuaiCodingPlan__GLM__5_2                                                       ModelID = "glm-5.2"
	Model__ZhipuaiCodingPlan__GLM__5__Turbo                                                  ModelID = "glm-5-turbo"
	Model__ZhipuaiCodingPlan__GLM__5v__5__Turbo                                              ModelID = "glm-5v-turbo"
	Model__Zhipuai__GLM__4_5                                                                 ModelID = "glm-4.5"
	Model__Zhipuai__GLM__4_6                                                                 ModelID = "glm-4.6"
	Model__Zhipuai__GLM__4_7                                                                 ModelID = "glm-4.7"
	Model__Zhipuai__GLM__4__5__Air__4_5                                                      ModelID = "glm-4.5-air"
	Model__Zhipuai__GLM__4__5__Flash__4_5                                                    ModelID = "glm-4.5-flash"
	Model__Zhipuai__GLM__4__5v__4_5                                                          ModelID = "glm-4.5v"
	Model__Zhipuai__GLM__4__6v__4_6                                                          ModelID = "glm-4.6v"
	Model__Zhipuai__GLM__4__7__Flash__4_7                                                    ModelID = "glm-4.7-flash"
	Model__Zhipuai__GLM__4__7__Flashx__4_7                                                   ModelID = "glm-4.7-flashx"
	Model__Zhipuai__GLM__5                                                                   ModelID = "glm-5"
	Model__Zhipuai__GLM__5_1                                                                 ModelID = "glm-5.1"
	Model__Zhipuai__GLM__5_2                                                                 ModelID = "glm-5.2"
	Model__Zhipuai__GLM__5v__5__Turbo                                                        ModelID = "glm-5v-turbo"
	Model__iFlowCN__DeepSeek__R1__Thinking                                                   ModelID = "deepseek-r1"
	Model__iFlowCN__DeepSeek__V3                                                             ModelID = "deepseek-v3"
	Model__iFlowCN__DeepSeek__V3__2                                                          ModelID = "deepseek-v3.2"
	Model__iFlowCN__GLM__4_6                                                                 ModelID = "glm-4.6"
	Model__iFlowCN__Kimi__K2__0905__2                                                        ModelID = "kimi-k2-0905"
	Model__iFlowCN__Kimi__K2__2                                                              ModelID = "kimi-k2"
	Model__iFlowCN__Qwen3__235b__3                                                           ModelID = "qwen3-235b"
	Model__iFlowCN__Qwen3__235b__A22b__3__Instruct                                           ModelID = "qwen3-235b-a22b-instruct"
	Model__iFlowCN__Qwen3__235b__A22b__Thinking__2507__3__Thinking                           ModelID = "qwen3-235b-a22b-thinking-2507"
	Model__iFlowCN__Qwen3__32b__3                                                            ModelID = "qwen3-32b"
	Model__iFlowCN__Qwen3__Coder__Plus__3                                                    ModelID = "qwen3-coder-plus"
	Model__iFlowCN__Qwen3__Max__3                                                            ModelID = "qwen3-max"
	Model__iFlowCN__Qwen3__Max__3__Preview                                                   ModelID = "qwen3-max-preview"
	Model__iFlowCN__Qwen3__Vl__Plus__3                                                       ModelID = "qwen3-vl-plus"
	Model__xAI__Grok__4_3                                                                    ModelID = "grok-4.3"
	Model__xAI__Grok__4_5                                                                    ModelID = "grok-4.5"
	Model__xAI__Grok__4__20__0309__4_20__Reasoning                                           ModelID = "grok-4.20-0309-reasoning"
	Model__xAI__Grok__4__20__0309__Non__Reasoning__4_20__Non_Reasoning                       ModelID = "grok-4.20-0309-non-reasoning"
	Model__xAI__Grok__4__20__Multi__Agent__0309__4_20                                        ModelID = "grok-4.20-multi-agent-0309"
	Model__xAI__Grok__Build__0_1                                                             ModelID = "grok-build-0.1"
	Model__xAI__Grok__Imagine__Image                                                         ModelID = "grok-imagine-image"
	Model__xAI__Grok__Imagine__Image__Quality                                                ModelID = "grok-imagine-image-quality"
	Model__xAI__Grok__Imagine__Video                                                         ModelID = "grok-imagine-video"
)

Model__* constants provide compile-time references to every eligible model in the static model registry. Names follow the pattern:

Model__<Provider>__<Family>__<Variant>?__<Version>?__<Date>?

where each component uses the same casing rules as Provider and Family constants. Double underscores separate top-level components; single underscores appear only within a component (e.g. version "4.5" → "4_5", "4o" stays "4o" within a component).

func ModelIDs

func ModelIDs() []ModelID

ModelIDs returns the canonical Model_<...> constant values from the codegen pipeline. The name diverges from the original spec (Models() []ModelID) to avoid clashing with registry.go:Models() []ModelInfo.

The returned slice is a defensive copy; mutating it does not affect future calls. See Models() in registry.go for the full ModelInfo slice (metadata + constants).

type ModelInfo

type ModelInfo struct {
	ID          ModelID
	Provider    Provider
	DisplayName string
	RawFamily   Family // raw API family field verbatim (e.g. "claude-opus")

	// Family is the canonical family identifier extracted from RawFamily
	// (or inferred from ID when RawFamily is empty). Populated at codegen time.
	Family Family
	// Variant is the variant suffix extracted from RawFamily (e.g. "opus",
	// "pro", "flash-lite"). Empty when the model has no variant. Populated at codegen time.
	Variant string
	// Version is the model version extracted from the model ID
	// (primary source, e.g. "claude-opus-4-5-20251101" → "4.5") or, when the
	// family string itself carries a version component, from the family string
	// (fallback, e.g. "gemini-2.5-flash" → "2.5"). Empty when no separable
	// version is found. Populated at codegen time.
	Version string
	// Date is the release date extracted from the model ID or ReleaseDate
	// field, in YYYY-MM-DD format. Empty when no date is found. Populated at codegen time.
	Date string
	// Modifier is the LIST of known trailing tokens extracted from the model ID
	// that carry semantic meaning beyond family/variant/version/date (e.g.
	// ["thinking"], ["vision", "instruct"]). nil when no known modifier is found.
	// The list is stored in deterministic CANONICAL ORDER (see CanonicalizeModifiers
	// in modifier.go): capability > speed > format/stage, with an alphabetical
	// fallback. Populated by the parse pipeline at codegen time.
	// widened string → []string for lossless
	// multi-modifier capture (kimi-k2-thinking-turbo → [thinking, turbo]).
	//
	// Release-stage tokens (preview/latest/original) REMAIN in this list as data —
	// the extraction still captures them — but they are excluded from entity keys
	// and from the canonical {mods}/[attrs] rendering: the Stage field carries that
	// axis (see ReleaseStage in stage.go), and EntityModifiers/attributeModifiers
	// route them out before classification.
	Modifier []string
	// ParamSize is the canonical parameter-size token for this model instance
	// (e.g. "70b", "8b", "0.5b"). Empty when the size is unknown or not applicable.
	// Populated at codegen time from curated data; participates in entity identity
	// via the #size segment of EntityRef.String().
	ParamSize string
	// TotalParams, ActiveParams, PerExpertParams, and ExpertCount are the flat
	// parameter-shape facts decomposed from ParamSize (see ParamShape and
	// ParseParamShape). They are DERIVED presentation facts, never entity-key
	// material — the identity carrier is ParamSize (the raw #size token). Each is an
	// in-domain NULLable integer under the ParamShapeNull sentinel contract:
	// ParamShapeNull (-1) means "not populated by the parser or curation" (the shape
	// does not carry that fact, or the size is unknown), a positive value is an
	// attested count, and a genuine 0 is reachable ONLY for ExpertCount (a dense
	// shape attests zero experts). All four are ParamShapeNull when ParamSize is
	// empty. They are grouped along parameter-shape joints, never collapsed: an NxM
	// MoE token ("8x22b") records ExpertCount and PerExpertParams but leaves
	// TotalParams and ActiveParams NULL (the product is deliberately not computed),
	// while an active-MoE token ("30b-a3b") records TotalParams and ActiveParams and
	// leaves PerExpertParams/ExpertCount NULL.
	// TotalParams is the total parameter count (e.g. 30_000_000_000 for "30b");
	// ParamShapeNull (-1) when the shape carries no total (NxM, count-suffixed) or
	// the size is unknown.
	TotalParams int64
	// ActiveParams is the active (per-forward-pass) parameter count of a MoE model
	// (e.g. 3_000_000_000 for "30b-a3b", 17_000_000_000 for "17b-16e").
	// ParamShapeNull (-1) for a dense model or when the size is unknown.
	ActiveParams int64
	// PerExpertParams is the per-expert parameter count of an NxM MoE token (e.g.
	// 22_000_000_000 for "8x22b"). ParamShapeNull (-1) unless the shape is NxM.
	PerExpertParams int64
	// ExpertCount is the number of experts of a MoE model (8 for "8x22b", 16 for
	// "17b-16e"). A genuine 0 for a dense model (it attests zero experts);
	// ParamShapeNull (-1) for a MoE shape that carries no count (active-MoE
	// "30b-a3b") or when the size is unknown.
	ExpertCount           int
	ContextWindow         int
	MaxOutput             int
	Reasoning             bool
	ToolCall              bool
	Attachment            bool
	Temperature           bool
	StructuredOutput      bool
	Interleaved           Capability
	OpenWeights           bool
	CostInputPerMTok      *float64
	CostOutputPerMTok     *float64
	CostReasoningPerMTok  *float64
	CostCacheReadPerMTok  *float64
	CostCacheWritePerMTok *float64
	ReleaseDate           string
	Knowledge             string
	Modalities            Modalities

	// Host is the serving host / backend infrastructure that runs this model
	// instance, distinct from Provider. It is a per-instance ATTRIBUTE and never
	// participates in entity identity. HostNone (zero value) when unknown or when
	// the provider serves the model directly. Populated by the host-split slice.
	Host Host
	// Lineage is the set of derivation edges from this model to its parent
	// model(s) (finetune, merge, distillation, …). nil when the model is a base
	// model or no curated lineage is known. Populated at codegen time from the
	// curated lineage table by the lineage slice.
	Lineage []LineageEdge
	// QuantVRAM is the per-quantization weight and VRAM footprint for this model
	// instance. nil when no quantization data is available. Populated at codegen
	// time from curated data; live-sync rows carry nil (curated VRAM is not
	// available from the live API).
	QuantVRAM []QuantVRAM
	// Source is the data source that provided this model row. DataSourceNone
	// (zero value, empty string) on live-sync rows; populated at codegen time
	// from curated ingest data.
	Source DataSourceID

	// Description is the upstream model description. Empty when none is provided.
	Description string
	// Status is the upstream release status for this instance (StatusNone when
	// none is declared, which means generally available / stable). Status is an
	// instance-level fact — it is present on the api.json side only and never on
	// EntityMetadata.
	Status ModelStatus
	// StatusRaw carries the verbatim upstream status token, populated only when
	// Status is StatusOther (an unrecognized token); empty otherwise.
	StatusRaw string
	// Stage is the release stage DERIVED from this model's ID (preview / beta /
	// latest / original), distinct in provenance from Status: Status is the
	// upstream-DECLARED lifecycle from the api.json side, while Stage is read out
	// of the ID token stream by DetectStageFromID at the same enrichment joints as
	// ParamSize. StageNone (the zero value) when the ID carries no recognized stage
	// marker. Stage is a per-instance attribute and never participates in entity
	// identity (a "-beta"/"-latest" marker does not split the entity). Populated by
	// enrichModelInfo (pure function of the ID); see stage.go.
	Stage ReleaseStage
	// StageRaw carries the verbatim stage token, populated only when Stage is
	// StageOther — the RESERVED bucket for a future non-ID stage feeder. The
	// ID-detection path never yields StageOther, so StageRaw is empty for every
	// ID-derived stage this epoch (mirroring StatusRaw's Other-only convention).
	StageRaw string
	// ReasoningOptions are the reasoning-control options this model exposes
	// (toggle / effort / budget-tokens). nil when the model exposes none.
	ReasoningOptions []ReasoningOption
	// CostInputAudioPerMTok is the audio-input cost in USD per million tokens, or
	// nil when unknown.
	CostInputAudioPerMTok *float64
	// CostOutputAudioPerMTok is the audio-output cost in USD per million tokens,
	// or nil when unknown.
	CostOutputAudioPerMTok *float64
	// CostContextOver200k is the fixed context-over-200k-tokens pricing override,
	// or nil when the model declares none. It is upstream's legacy fixed-threshold
	// special case, kept distinct from CostTiers for wire fidelity.
	CostContextOver200k *TierCost
	// CostTiers are the general context-size-conditional price tiers. nil when the
	// model declares none.
	CostTiers []CostTier

	LastSynced string // RFC3339
}

ModelInfo holds metadata for a single AI model as returned by the models.dev API.

Canonical fields (Family, Variant, Version, Date) are populated at codegen time by the bestiary-gen tool invoking bestiary.ParseFamily, bestiary.ExtractDate, and bestiary.InferFamilyFromID. They are zero-value for models loaded from the SQLite cache (pre-normalization epoch) until a sync is performed.

RawFamily is the raw API family value verbatim (e.g. "claude-opus", "gemini-flash"). Family is the canonical/normalized family (e.g. "claude", "gemini").

func LookupModel

func LookupModel(id ModelID) (ModelInfo, bool)

LookupModel searches the static registry for a model by its ID. It returns the model and true if found, or the zero value and false otherwise.

func LookupModelByProvider

func LookupModelByProvider(p Provider, name string) (ModelInfo, bool)

LookupModelByProvider searches the static registry for a model matching both the given provider and name (model ID string). It returns the model and true if found, or the zero value and false otherwise.

func MergeModels

func MergeModels(static, cached []ModelInfo) []ModelInfo

MergeModels merges static and cached model lists. Deduplicates by (ModelID, Provider) pair. When both sources have the same (ID, Provider), the entry with the more recent LastSynced timestamp wins. Models with the same ID but different providers are kept as distinct entries. Since LastSynced uses RFC3339 UTC format, lexicographic string comparison correctly determines recency.

func Models

func Models() []ModelInfo

Models returns all available models. It delegates to StaticModels and returns a defensive copy so callers cannot mutate the registry. This is the preferred API for external callers; StaticModels is an implementation detail.

See ModelIDs() (in models_constants_gen.go) for the canonical Model_* constant slice.

func ModelsByFamily

func ModelsByFamily(family Family) []ModelInfo

ModelsByFamily returns all static models with the given raw API family string. The family parameter matches the RawFamily field (verbatim API value, e.g. "claude-opus", "gemini-flash").

func ModelsByProvider

func ModelsByProvider(p Provider) []ModelInfo

ModelsByProvider returns all static models from the given provider.

func ParseAPIJSON added in v0.2.5

func ParseAPIJSON(data []byte) ([]ModelInfo, error)

ParseAPIJSON decodes an api.json artifact (a models.dev provider map) into the public ModelInfo slice. It is the SAME decode path Client.FetchModels uses, so codegen and tests can parse a committed api.json snapshot offline with identical results. Model order follows API map iteration and is not sorted; callers that need determinism sort the result themselves.

func StaticModels

func StaticModels() []ModelInfo

StaticModels returns a defensive copy of the compiled-in model data. Modifying the returned slice does not affect the registry.

func (ModelInfo) Ref

func (m ModelInfo) Ref() ModelRef

Ref returns a ModelRef for this ModelInfo. Every field is populated: ID from the API model ID, RawFamily from the raw API family field, and Family, Variant, Version, ParamSize, Date, Modifier, Host from the codegen-baked normalization. ParamSize carries the canonical parameter-size token so identity-level consumers (e.g. Resolve's ambiguity grouping) can keep distinct sizes of one family apart.

type ModelLink struct {
	// Label is the human-facing link text.
	Label string
	// URL is the link target.
	URL string
	// Type is the classified link type.
	Type LinkType
	// TypeRaw carries the verbatim upstream type token, populated only when Type
	// is LinkOther (an unrecognized tag); empty otherwise.
	TypeRaw string
}

ModelLink is one reference link for a model: a labeled URL with a classified type. Upstream weights[] rows fold in here with Type == LinkWeights.

type ModelRef

type ModelRef struct {
	ID        ModelID  // Original API model ID (e.g. "claude-opus-4-20250514")
	Provider  Provider // Hosting provider
	RawFamily Family   // API family field verbatim (e.g., "claude-opus")
	Family    Family   // Canonical family (e.g., "claude"); empty if not yet normalized
	Variant   string   // Canonical variant (e.g., "opus"); empty if no variant
	Version   string   // Model version extracted from family (e.g., "4.5", "2.5"); empty if none
	ParamSize string   // Canonical parameter-size token (e.g. "70b", "8b"); empty when unknown. Part of identity.
	Date      string   // Release date in YYYY-MM-DD format; empty if none
	Modifier  []string // Known trailing tokens in canonical order (e.g., ["vision","instruct"]); nil if none
	Host      Host     // Serving host/backend (per-instance attribute, never part of identity); HostNone if unknown
}

ModelRef represents the canonical identity of a model.

The tuple (ID, Provider, RawFamily, Family, Variant, Version, ParamSize, Date, Modifier) is the stable anchor for cross-provider queries, canonical formatting, and the normalization pipeline. ID is the original API model identifier (e.g. "claude-opus-4-20250514"). Family, Variant, Version, ParamSize, and Modifier are populated at codegen time by the normalization pipeline in cmd/bestiary-gen.

ParamSize is part of the canonical entity identity (mirroring EntityRef): a 70B and an 8B of one family are distinct models, so the size participates in identity-level bucketing (e.g. Resolve's ambiguity grouping). It is empty when the model's size is unknown. Host is a per-instance attribute and is NEVER part of identity.

func Resolve

func Resolve(input string, opts ...ResolveOption) ([]ModelRef, error)

Resolve returns the set of ModelRefs that match the given input string.

Disambiguation rule

Cross-provider hosting: if all matches share the same Canonical triple (Family, Variant, Date) — meaning the same conceptual model is hosted by multiple providers — Resolve returns a non-nil []ModelRef with err == nil. The caller can iterate by Provider.

Multiple distinct canonicals: if the input matches models that resolve to two or more distinct Canonical triples (e.g., "claude" matches claude/opus, claude/sonnet, and claude/haiku), Resolve returns nil, *ErrAmbiguous with the candidate list. The caller should refine the input or use WithScheme(SchemeRaw) with an exact API model ID.

Zero matches: returns nil, *ErrNotFound.

Scheme auto-detection

  • "pkg:huggingface/<provider>/<id>" → SchemePURL: strip prefix, apply provider filter
  • "<family>/<variant>[@date]" or multi-segment form with "@" or versioned token → SchemeCanonical
  • "<provider>/<id>" (two slash segments, no "pkg:" prefix, no canonical signals) → SchemeHuggingFace: strip provider prefix, match raw ID
  • Otherwise → SchemeRaw: exact model ID match

Bare-family fallback: when SchemeRaw produces zero matches and the input contains no slashes or special characters, Resolve retries with SchemeCanonical family-only matching. If multiple distinct canonical triples match, *ErrAmbiguous is returned. If a single group matches, refs are returned. This surfaces *ErrAmbiguous for inputs like "claude" instead of ErrNotFound.

Variant-aware bare-family fallback: when the Family-exact retry also yields zero matches and the bare input is a hyphenated "<family>-<variant>" shorthand whose leading token is a registered Family and trailing token names a Variant within it (e.g. "claude-opus"), Resolve matches that variant group and returns *ErrAmbiguous with the variant's candidates. See matchBareFamilyVariant for the conservative matching rule.

Use WithScheme to override auto-detection.

func (ModelRef) Designations

func (r ModelRef) Designations() []Designation

Designations returns all string designations for this ModelRef. Every designation carries AcceptabilityAdmitted in this epoch. Promotion to Preferred is deferred to a follow-up curation epoch.

The returned slice contains:

  1. A SchemeRaw designation using the original API model ID.
  2. A SchemeCanonical designation (the canonical slash-separated form).
  3. A SchemeHuggingFace designation.
  4. A SchemePURL designation.

func (ModelRef) Format

func (r ModelRef) Format(s CanonicalScheme) string

Format serializes the ModelRef according to the given CanonicalScheme.

  • SchemeCanonical: "<provider>/<family>/<variant>@<date>" — the variant segment is included only when non-empty; the "@<date>" suffix is included only when date is non-empty. Falls back to "<provider>/<raw-id>" when both Family and Variant are empty (e.g., provider-specific representation).
  • SchemeHuggingFace: "<provider>/<raw-id>" (HuggingFace Hub form).
  • SchemePURL: "pkg:huggingface/<provider>/<raw-id>" (purl-spec + ECMA-427).
  • SchemeRaw: string(r.ID) — the original API model identifier verbatim.

func (ModelRef) String

func (r ModelRef) String() string

String implements fmt.Stringer. It returns Format(SchemeCanonical), the canonical slash-separated form.

type ModelStatus added in v0.2.5

type ModelStatus int

ModelStatus classifies the release status an upstream provider declares for a model instance (from the api.json status field). It is a closed int enum (like DerivationKind and Quantization) because the set of statuses is small and well-understood.

The zero value is StatusNone: on this SCALAR field absence is meaningful — a model with no declared status is generally available / stable — so None sits at zero and StatusOther is the fail-safe bucket for an unknown-but-present token (the raw token is carried on ModelInfo.StatusRaw). This None-at-zero convention deliberately differs from the Other-at-zero convention on the element enums LinkType and ReasoningOptionKind; see the file-level comment.

Wire names are lowercase ASCII strings; MarshalText / UnmarshalText implement encoding.TextMarshaler / encoding.TextUnmarshaler so a ModelStatus serializes as a JSON/YAML string rather than an integer.

const (
	// StatusNone is the zero value: no status declared (generally available / stable).
	StatusNone ModelStatus = iota
	// StatusAlpha: an early, unstable preview.
	StatusAlpha
	// StatusBeta: a later preview, more stable than alpha but not yet GA.
	StatusBeta
	// StatusDeprecated: scheduled for or already past end-of-life.
	StatusDeprecated
	// StatusOther is the fail-safe for a status token present in the upstream
	// data but not covered by the named constants above. The raw token is carried
	// on ModelInfo.StatusRaw. detectModelStatus maps an unrecognized token here;
	// ParseModelStatus never does (it returns an actionable error instead).
	StatusOther
)

func ParseModelStatus added in v0.2.5

func ParseModelStatus(s string) (ModelStatus, error)

ParseModelStatus parses a ModelStatus from a string using a case-insensitive exact match against the canonical wire names. It is the CLI path (e.g. list --status): the empty string returns StatusNone with no error, a recognized name returns its constant, and any other non-empty string returns an actionable error that names what was received and lists the valid values. Unlike detectModelStatus, ParseModelStatus never silently maps an unrecognized token to StatusOther, and it rejects the internal "other" sentinel (it is not a user-selectable status).

func (ModelStatus) IsKnown added in v0.2.5

func (s ModelStatus) IsKnown() bool

IsKnown reports whether s is a named constant in this package (i.e. not an out-of-range integer). StatusOther is considered known — it is a named member of the enum; only truly out-of-range integers return false.

func (ModelStatus) MarshalText added in v0.2.5

func (s ModelStatus) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler, emitting the canonical wire name (so ModelStatus serializes as a JSON string, not an integer). An out-of-range value is a programming error and yields an actionable error.

func (ModelStatus) String added in v0.2.5

func (s ModelStatus) String() string

String returns the canonical lowercase wire name of the status. An out-of-range value renders as "modelstatus(<n>)" so logs never silently drop an unexpected value.

func (*ModelStatus) UnmarshalText added in v0.2.5

func (s *ModelStatus) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler, parsing a canonical wire name back into a ModelStatus. Parsing is case-insensitive so mixed-case upstream tokens round-trip. An unrecognized token yields an actionable error.

type ModifierClass added in v0.2.3

type ModifierClass int

ModifierClass partitions a trailing model-ID modifier token (e.g. "instruct", "thinking", "turbo") into one of two roles relative to model IDENTITY:

  • ModifierClassIdentity: the modifier distinguishes a genuinely different model artifact (different weights/behavior), so it is PART of the entity key. Example: "instruct" — meta/llama@3.1{instruct} is a distinct entity from meta/llama@3.1. Identity modifiers render in the "{...}" segment.
  • ModifierClassAttribute: the modifier describes a per-instance presentation or runtime knob that does NOT change model identity, so it is EXCLUDED from the entity key. Example: "thinking" — claude/opus@4.5[thinking] is the same entity as claude/opus@4.5. Attribute modifiers render in the "[...]" segment.

The zero value is ModifierClassIdentity: an unknown/uncurated token defaults to Identity (fail-safe — never silently collapse two artifacts into one entity).

const (
	// ModifierClassIdentity marks a modifier that is part of the entity key.
	// This is the zero value and the default for unknown tokens.
	ModifierClassIdentity ModifierClass = iota
	// ModifierClassAttribute marks a modifier that is excluded from the entity
	// key (a per-instance presentation/runtime attribute).
	ModifierClassAttribute
)

func ClassifyModifier added in v0.2.3

func ClassifyModifier(token string, fam Family) ModifierClass

ClassifyModifier returns the ModifierClass of a single modifier token for the given family. The classification is family-aware because the same token can be identity-bearing for one family and a mere attribute for another (e.g. "turbo": identity for gpt-4-turbo, attribute for a speed-tier alias elsewhere).

Resolution order (per-family override BEATS the global table):

  1. family_overrides[fam][token] in modifier_class.json, if present;
  2. global[token] in modifier_class.json, if present;
  3. otherwise ModifierClassIdentity (the fail-safe default).

CONTRACT: unknown/uncurated tokens MUST classify as ModifierClassIdentity (the fail-safe default) and ClassifyModifier MUST NOT panic for any input — rendering and entity keying depend on this graceful-degrade guarantee. If the embedded table fails to load, classification degrades to the unknown->Identity default for every token (never a panic).

func (ModifierClass) String added in v0.2.3

func (c ModifierClass) String() string

String returns the lowercase name of the modifier class.

type OutputFormat

type OutputFormat string

OutputFormat specifies how models are rendered for display.

const (
	FormatJSON  OutputFormat = "json"
	FormatYAML  OutputFormat = "yaml"
	FormatTable OutputFormat = "table"
)

type ParamShape added in v0.2.6

type ParamShape struct {
	TotalParams     int64
	ActiveParams    int64
	PerExpertParams int64
	ExpertCount     int
}

ParamShape is the pure decomposition of a canonical parameter-size token into flat parameter-count facts. It is produced by ParseParamShape and carries the same four values that ModelInfo exposes inline (TotalParams / ActiveParams / PerExpertParams / ExpertCount).

Each field is a NULLable integer under the ParamShapeNull (-1) sentinel contract: a field the shape does not carry is ParamShapeNull, never a masquerading 0. The fields are grouped along parameter-shape joints and are NEVER concatenated or cross-computed. In particular an NxM MoE token ("8x22b") sets ExpertCount and PerExpertParams but leaves TotalParams and ActiveParams NULL — the total is deliberately NOT N*M, because upstream does not publish it and inventing it would misstate the footprint. An active-MoE token ("30b-a3b") sets TotalParams and ActiveParams and leaves PerExpertParams/ExpertCount NULL; a count-suffixed MoE token ("17b-16e") sets ActiveParams and ExpertCount and leaves TotalParams and PerExpertParams NULL; a dense token ("30b", "560m", "10.7b") sets TotalParams, leaves ActiveParams and PerExpertParams NULL, and sets ExpertCount to a genuine 0 (a dense model attests zero experts). The empty token leaves ALL FOUR NULL.

Counts are exact int64 parameter counts (e.g. 30_000_000_000 for "30b"), computed with string-digit decimal arithmetic so a decimal token such as "10.7b" yields exactly 10_700_000_000 (never a float64 rounding of 10.7e9).

func ParseParamShape added in v0.2.6

func ParseParamShape(sizeToken string) (ParamShape, error)

ParseParamShape decomposes a canonical parameter-size token into its flat parameter-count facts. It is a PURE, suffix-keyed decomposition: the token's shape (dense / NxM / active-MoE / count-suffixed-MoE) selects which fields are populated, and no field is ever cross-computed from another.

The counts are EXACT int64 values derived with string-digit decimal arithmetic (never a float64 multiply), so a decimal token is exact to the parameter: "10.7b" -> TotalParams 10_700_000_000 and "0.6b" -> TotalParams 600_000_000.

An NxM MoE token records ExpertCount and PerExpertParams but leaves TotalParams and ActiveParams at ParamShapeNull (-1) — the product is deliberately NOT computed (upstream does not publish a total for these and N*M would misstate the footprint). A count-suffixed token ("17b-16e") records ActiveParams and ExpertCount and leaves TotalParams/PerExpertParams NULL. See the ParamShapeNull sentinel contract.

Every field the matched shape does NOT carry is set to ParamShapeNull (-1), the in-domain NULL sentinel — never a masquerading 0. The sole genuine 0 is a dense token's ExpertCount (a dense model attests exactly zero experts). The empty token yields the ALL-NULL shape with no error (an unsized model). A non-empty token that is not a recognized size shape returns an actionable error AND the all-NULL shape (nothing was populated), the same rejection surface as ParseParamSize.

ParseParamShape("")        -> {Total:-1, Active:-1, PerExpert:-1, Experts:-1}
ParseParamShape("8b")      -> {Total: 8e9, Active:-1, PerExpert:-1, Experts: 0}   // dense: Experts genuine 0
ParseParamShape("30b-a3b") -> {Total:30e9, Active: 3e9, PerExpert:-1, Experts:-1}
ParseParamShape("8x22b")   -> {Total: -1, Active: -1, PerExpert:22e9, Experts: 8} // Total NEVER N*M
ParseParamShape("17b-16e") -> {Total: -1, Active:17e9, PerExpert:-1, Experts:16}

type ParseAttempt added in v0.2.0

type ParseAttempt struct {
	Family  Family `json:"family"`
	Variant string `json:"variant"`
	Version string `json:"version"`
	Date    string `json:"date"`
}

ParseAttempt records the partial result produced when parse heuristics could not fully decompose a raw family string. Fields mirror ModelInfo canonical fields (Family, Variant, Version, Date) to aid comparison.

type ParseFailure added in v0.2.0

type ParseFailure struct {
	RawID          ModelID            `json:"raw_id"`
	Provider       Provider           `json:"provider"`
	RawFamily      Family             `json:"raw_family"`
	AttemptedParse ParseAttempt       `json:"attempted_parse"`
	Reason         ParseFailureReason `json:"reason"`
}

ParseFailure records a single parsing failure detected during family-string decomposition. It is produced by ParseFamilyDetailed when the parser's best-effort result is known to be incomplete or ambiguous.

JSON field names match the locked per-record format:

{
  "raw_id":         "claude-3-5-haiku-20241022",
  "provider":       "anthropic",
  "raw_family":     "claude-haiku",
  "attempted_parse": {"family":"claude","variant":"haiku","version":"","date":"2024-10-22"},
  "reason":         "version digits between family-prefix and variant not extracted"
}

type ParseFailureReason added in v0.2.2

type ParseFailureReason string

ParseFailureReason is a typed string identifying the class of parse failure. Using a named type rather than bare string prevents accidental mixing of reason strings and enables exhaustive case analysis.

const (
	// ReasonVersionDigitsNotExtracted is used when version digits appear between
	// the family prefix and the variant (e.g. "claude-3-5-haiku-20241022" where
	// the "3-5" version component is not extracted by the parse heuristics).
	ReasonVersionDigitsNotExtracted ParseFailureReason = "version digits between family-prefix and variant not extracted"

	// ReasonKnownSuffixOverflow is used when the trailing segment of the model ID
	// matches a known modifier token (thinking, vision, latest, code, preview, think).
	// The modifier is semantically meaningful but not yet extracted as a first-class
	// field. Extend the modifier allowlist in parse/data/modifiers.json when new
	// tokens are discovered.
	ReasonKnownSuffixOverflow ParseFailureReason = "suffix overflow: trailing token is a known modifier"

	// ReasonUnknownSuffixOverflow is used when the trailing segment of the model ID
	// does not match any known modifier token. This is an audit-log hint that the
	// modifier allowlist in parse/data/modifiers.json should be extended.
	ReasonUnknownSuffixOverflow ParseFailureReason = "suffix overflow: trailing token is an unknown modifier (extend allowlist)"

	// ReasonYYMMDateAsVersion is used for Mistral-style 4-digit numerals (e.g. 2401,
	// 2403) where the parser cannot reliably distinguish a YYMM date from a version.
	ReasonYYMMDateAsVersion ParseFailureReason = "YYMM-date-as-version false-positive"

	// ReasonResidualUnaccountedTokens is used when version extraction succeeds but
	// leaves one or more tokens in the model ID unaccounted for (e.g. nova-2-lite-v1
	// yields version="2" but token "v1" is not explained by family/variant/version/date).
	// This is an honest-audit signal: the version is populated but there is residual
	// information the parser did not fully account for.
	ReasonResidualUnaccountedTokens ParseFailureReason = "residual unaccounted tokens after extraction"
)

Reason constants for the known failure modes (use these constants verbatim to ensure consistent reason phrasing across all callers).

type ParseFailuresEnvelope added in v0.2.0

type ParseFailuresEnvelope struct {
	SchemaVersion int            `json:"schema_version"`
	GeneratedAt   time.Time      `json:"generated_at"`
	FailureCount  int            `json:"failure_count"`
	Failures      []ParseFailure `json:"failures"`
}

ParseFailuresEnvelope is the top-level JSON structure written by bestiary-gen to .bestiary-gen-cache/parse_failures.json after each codegen run. The file is overwritten on every run (full audit, not append).

type Provider

type Provider string

Provider identifies the organization that hosts or publishes an AI model.

const (
	Provider302AI                  Provider = "302ai"
	ProviderAbacus                 Provider = "abacus"
	ProviderAbliterationAI         Provider = "abliteration-ai"
	ProviderAIRouter               Provider = "ai-router"
	ProviderAIHubMix               Provider = "aihubmix"
	ProviderAlibaba                Provider = "alibaba"
	ProviderAlibabaCN              Provider = "alibaba-cn"
	ProviderAlibabaCodingPlan      Provider = "alibaba-coding-plan"
	ProviderAlibabaCodingPlanCN    Provider = "alibaba-coding-plan-cn"
	ProviderAlibabaTokenPlan       Provider = "alibaba-token-plan"
	ProviderAlibabaTokenPlanCN     Provider = "alibaba-token-plan-cn"
	ProviderAmazonBedrock          Provider = "amazon-bedrock"
	ProviderAmbient                Provider = "ambient"
	ProviderAnthropic              Provider = "anthropic"
	ProviderAnyAPI                 Provider = "anyapi"
	ProviderAtomicChat             Provider = "atomic-chat"
	ProviderAuriko                 Provider = "auriko"
	ProviderAzure                  Provider = "azure"
	ProviderAzureCognitiveServices Provider = "azure-cognitive-services"
	ProviderBailing                Provider = "bailing"
	ProviderBaseten                Provider = "baseten"
	ProviderBerget                 Provider = "berget"
	ProviderBlueclaw               Provider = "blueclaw"
	ProviderCerebras               Provider = "cerebras"
	ProviderChutes                 Provider = "chutes"
	ProviderClarifai               Provider = "clarifai"
	ProviderClaudinio              Provider = "claudinio"
	ProviderCloudFerroSherlock     Provider = "cloudferro-sherlock"
	ProviderCloudflareAIGateway    Provider = "cloudflare-ai-gateway"
	ProviderCloudflareWorkersAI    Provider = "cloudflare-workers-ai"
	ProviderCohere                 Provider = "cohere"
	ProviderCortecs                Provider = "cortecs"
	ProviderCrof                   Provider = "crof"
	ProviderCrossModel             Provider = "crossmodel"
	ProviderDaoXE                  Provider = "daoxe"
	ProviderDatabricks             Provider = "databricks"
	ProviderDeepInfra              Provider = "deepinfra"
	ProviderDeepSeek               Provider = "deepseek"
	ProviderDigitalOcean           Provider = "digitalocean"
	ProviderDInference             Provider = "dinference"
	ProviderDrun                   Provider = "drun"
	ProviderEmpirioLabs            Provider = "empiriolabs"
	ProviderEvroc                  Provider = "evroc"
	ProviderFastRouter             Provider = "fastrouter"
	ProviderFireworksAI            Provider = "fireworks-ai"
	ProviderFreeModel              Provider = "freemodel"
	ProviderFriendli               Provider = "friendli"
	ProviderFrogBot                Provider = "frogbot"
	ProviderGitHubCopilot          Provider = "github-copilot"
	ProviderGitHubModels           Provider = "github-models"
	ProviderGitLab                 Provider = "gitlab"
	ProviderGMICloud               Provider = "gmicloud"
	ProviderGoogle                 Provider = "google"
	ProviderGoogleVertex           Provider = "google-vertex"
	ProviderGoogleVertexAnthropic  Provider = "google-vertex-anthropic"
	ProviderGroq                   Provider = "groq"
	ProviderHelicone               Provider = "helicone"
	ProviderHpcAI                  Provider = "hpc-ai"
	ProviderHuggingFace            Provider = "huggingface"
	ProvideriFlowCN                Provider = "iflowcn"
	ProviderInception              Provider = "inception"
	ProviderInceptron              Provider = "inceptron"
	ProviderInference              Provider = "inference"
	ProviderInferX                 Provider = "inferx"
	ProviderIONet                  Provider = "io-net"
	ProviderJiekou                 Provider = "jiekou"
	ProviderKenari                 Provider = "kenari"
	ProviderKilo                   Provider = "kilo"
	ProviderKimiForCoding          Provider = "kimi-for-coding"
	ProviderKUAECloudCodingPlan    Provider = "kuae-cloud-coding-plan"
	ProviderLilac                  Provider = "lilac"
	ProviderLlama                  Provider = "llama"
	ProviderLlmGateway             Provider = "llmgateway"
	ProviderLLMTR                  Provider = "llmtr"
	ProviderLMStudio               Provider = "lmstudio"
	ProviderLongCat                Provider = "longcat"
	ProviderLucidQuery             Provider = "lucidquery"
	ProviderMeganova               Provider = "meganova"
	ProviderMergeGateway           Provider = "merge-gateway"
	ProviderMeta                   Provider = "meta"
	ProviderMiniMax                Provider = "minimax"
	ProviderMiniMaxCN              Provider = "minimax-cn"
	ProviderMiniMaxCNCodingPlan    Provider = "minimax-cn-coding-plan"
	ProviderMiniMaxCodingPlan      Provider = "minimax-coding-plan"
	ProviderMistral                Provider = "mistral"
	ProviderMixlayer               Provider = "mixlayer"
	ProviderMoark                  Provider = "moark"
	ProviderModelOracleAI          Provider = "model-oracle-ai"
	ProviderModelScope             Provider = "modelscope"
	ProviderMoonshotAI             Provider = "moonshotai"
	ProviderMoonshotAICN           Provider = "moonshotai-cn"
	ProviderMorph                  Provider = "morph"
	ProviderNanoGPT                Provider = "nano-gpt"
	ProviderNearAI                 Provider = "nearai"
	ProviderNebius                 Provider = "nebius"
	ProviderNeon                   Provider = "neon"
	ProviderNeuralwatt             Provider = "neuralwatt"
	ProviderNova                   Provider = "nova"
	ProviderNovitaAI               Provider = "novita-ai"
	ProviderNvidia                 Provider = "nvidia"
	ProviderOllamaCloud            Provider = "ollama-cloud"
	ProviderOpenAI                 Provider = "openai"
	ProviderOpenCode               Provider = "opencode"
	ProviderOpenCodeGo             Provider = "opencode-go"
	ProviderOpenRouter             Provider = "openrouter"
	ProviderOrcaRouter             Provider = "orcarouter"
	ProviderOVHcloud               Provider = "ovhcloud"
	ProviderPerplexity             Provider = "perplexity"
	ProviderPerplexityAgent        Provider = "perplexity-agent"
	ProviderPioneer                Provider = "pioneer"
	ProviderPoe                    Provider = "poe"
	ProviderPoolside               Provider = "poolside"
	ProviderPrivatemodeAI          Provider = "privatemode-ai"
	ProviderQiHangAI               Provider = "qihang-ai"
	ProviderQiniuAI                Provider = "qiniu-ai"
	ProviderRegoloAI               Provider = "regolo-ai"
	ProviderRequesty               Provider = "requesty"
	ProviderRoutingRun             Provider = "routing-run"
	ProviderSakana                 Provider = "sakana"
	ProviderSAPAICore              Provider = "sap-ai-core"
	ProviderSarvam                 Provider = "sarvam"
	ProviderScaleway               Provider = "scaleway"
	ProviderSiliconFlow            Provider = "siliconflow"
	ProviderSiliconFlowCN          Provider = "siliconflow-cn"
	ProviderSnowflakeCortex        Provider = "snowflake-cortex"
	ProviderSTACKIT                Provider = "stackit"
	ProviderStepFun                Provider = "stepfun"
	ProviderStepFunAI              Provider = "stepfun-ai"
	ProviderSubconscious           Provider = "subconscious"
	ProviderSubmodel               Provider = "submodel"
	ProviderSynthetic              Provider = "synthetic"
	ProviderTencentCodingPlan      Provider = "tencent-coding-plan"
	ProviderTencentTokenPlan       Provider = "tencent-token-plan"
	ProviderTencentTokenHub        Provider = "tencent-tokenhub"
	ProviderTheGridAI              Provider = "the-grid-ai"
	ProviderTinfoil                Provider = "tinfoil"
	ProviderTogetherAI             Provider = "togetherai"
	ProviderTrustedRouter          Provider = "trustedrouter"
	ProviderUmansAI                Provider = "umans-ai"
	ProviderUmansAICodingPlan      Provider = "umans-ai-coding-plan"
	ProviderUnoRouter              Provider = "unorouter"
	ProviderUpstage                Provider = "upstage"
	ProviderV0                     Provider = "v0"
	ProviderVenice                 Provider = "venice"
	ProviderVercel                 Provider = "vercel"
	ProviderVivgrid                Provider = "vivgrid"
	ProviderVultr                  Provider = "vultr"
	ProviderWaferAI                Provider = "wafer.ai"
	ProviderWandb                  Provider = "wandb"
	ProviderxAI                    Provider = "xai"
	ProviderXiaomi                 Provider = "xiaomi"
	ProviderXiaomiTokenPlanAMS     Provider = "xiaomi-token-plan-ams"
	ProviderXiaomiTokenPlanCN      Provider = "xiaomi-token-plan-cn"
	ProviderXiaomiTokenPlanSGP     Provider = "xiaomi-token-plan-sgp"
	ProviderXpersona               Provider = "xpersona"
	ProviderZai                    Provider = "zai"
	ProviderZaiCodingPlan          Provider = "zai-coding-plan"
	ProviderZeldoc                 Provider = "zeldoc"
	ProviderZenifra                Provider = "zenifra"
	ProviderZenMux                 Provider = "zenmux"
	ProviderZhipuai                Provider = "zhipuai"
	ProviderZhipuaiCodingPlan      Provider = "zhipuai-coding-plan"
)
const ProviderLocal Provider = "local"

ProviderLocal is a bestiary-specific provider for locally-hosted models. It is not derived from the models.dev API and is always included in knownProviders (generated in providers_gen.go, appended last).

func Providers

func Providers() []Provider

Providers returns all known Provider values as a defensive copy. The returned slice includes all API-derived providers plus ProviderLocal. Modifying the returned slice does not affect the package state.

func ProvidersForFamily

func ProvidersForFamily(family Family) []Provider

ProvidersForFamily returns the set of providers that host models with the given raw API family string (e.g., "claude-opus", "gemini-flash"). The family parameter matches the RawFamily field (verbatim API value). The returned slice contains no duplicates. If no models match, a nil slice is returned.

func (Provider) IsKnown

func (p Provider) IsKnown() bool

IsKnown reports whether p is a recognized Provider. The known set is generated from the models.dev API at codegen time and includes ProviderLocal as the final entry.

func (Provider) MarshalText

func (p Provider) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (Provider) String

func (p Provider) String() string

String returns the string representation of the provider.

func (*Provider) UnmarshalText

func (p *Provider) UnmarshalText(b []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It accepts any string value; use IsKnown() to validate.

type ProviderInstance added in v0.2.3

type ProviderInstance struct {
	ID                ModelID
	Provider          Provider
	Host              Host
	CostInputPerMTok  *float64 // nil when unknown
	CostOutputPerMTok *float64 // nil when unknown
	ContextWindow     int
	MaxOutput         int
	// QuantVRAM is the per-quantization weight and VRAM footprint for this
	// instance. nil when no quantization data is available for this row.
	QuantVRAM []QuantVRAM
	// Source is the data source that provided this row. DataSourceNone (zero
	// value, empty string) when no source is recorded.
	Source DataSourceID
}

ProviderInstance is a single concrete offering of an entity: one (provider, host) serving of the model, with its instance-specific pricing and limits. Many ProviderInstances roll up into one Entity. The fields here are exactly the per-instance ATTRIBUTES — they vary across instances of the same entity and so are excluded from EntityRef.

type QuantVRAM added in v0.2.4

type QuantVRAM struct {
	// Quant is the parsed quantization type.
	Quant Quantization
	// QuantRaw is the verbatim quant token from the source data, preserving the
	// original casing exactly as it appeared (e.g. "Q4_K_M" from an Ollama
	// file_type field, or "q4_k_m" as written in a curated JSON file). It is
	// populated for every row — not only when Quant is QuantizationOther —
	// so callers can use it for lossless display or round-trip fidelity without
	// a separate round-trip through Quant.String().
	QuantRaw string
	// WeightsBytes is the ingested GGUF file size in bytes — the ground-truth
	// weights footprint for this quantization variant.
	WeightsBytes int64
	// VRAMBytes is weights + KV-cache at VRAMContextTokens; equals WeightsBytes
	// when VRAMEstimatePartial is true.
	VRAMBytes int64
	// VRAMContextTokens is the context window (tokens) used to compute VRAMBytes.
	VRAMContextTokens int
	// Layers is the number of transformer layers; 0 when unknown.
	Layers int
	// KVHeads is the number of KV-attention heads (GQA-aware); 0 when unknown.
	KVHeads int
	// HeadDim is the embedding width per attention head (elements per head); 0 when unknown.
	HeadDim int
	// VRAMEstimatePartial is true when the KV-cache term was omitted from
	// VRAMBytes because at least one of Layers, KVHeads, or HeadDim is zero.
	// Callers must check this flag before treating VRAMBytes as a full estimate.
	VRAMEstimatePartial bool
}

QuantVRAM captures the per-quantization weight and VRAM footprint for a single quantization variant of a model.

Field semantics:

  • Quant is the parsed quantization constant; QuantRaw is the verbatim token from the source data, always populated for every row (preserves original casing, e.g. "Q4_K_M" from Ollama's file_type field).
  • WeightsBytes is the ground-truth ingested GGUF file size in bytes. It is the primary measurement and is always sourced from the downloaded file, not derived from bits-per-weight.
  • VRAMBytes is the estimated total VRAM requirement: WeightsBytes plus the KV-cache at VRAMContextTokens (the model's maximum context window). When arch-facts are absent (Layers/KVHeads/HeadDim all zero), VRAMBytes equals WeightsBytes and VRAMEstimatePartial is set true.
  • VRAMContextTokens is the context-window size (tokens) used to compute the KV-cache term. It is the model-max context, not a user-chosen value.
  • Layers, KVHeads, HeadDim are the architectural parameters used for the KV-cache computation. HeadDim is the embedding width per attention head (elements per head). Zero when the source did not supply them.
  • VRAMEstimatePartial is true when the KV-cache term was excluded from VRAMBytes because one or more of Layers/KVHeads/HeadDim is zero. A true value means VRAMBytes is a weights-only lower bound, never a silent under-estimate.

Zero values mean unknown: int64 0 = unknown bytes, int 0 = unknown count. nil QuantVRAM slice on a ProviderInstance or ModelInfo means no quant data is available for that row.

func QuantVRAMFor added in v0.2.4

func QuantVRAMFor(id ModelID) []QuantVRAM

QuantVRAMFor returns the curated per-quantization weight-and-arch rows for the model identified by id, or nil when no curated rows exist for it. Matching is case-insensitive against the model_id keys in parse/data/quant_vram.json.

The returned rows have Quant/QuantRaw/WeightsBytes/Layers/KVHeads/HeadDim populated from the file. VRAMBytes, VRAMContextTokens, and VRAMEstimatePartial are always zero — they are computed and baked by the codegen caller (cmd/bestiary-gen) using EstimateVRAMBytes at the model's max context window. Callers must not treat a zero VRAMBytes as meaning "no VRAM data"; it means "not yet computed by codegen". Use WeightsBytes as the weights footprint.

On file or parse failure the function degrades gracefully: it returns nil without panicking. ValidateQuantVRAMTable returns the load error so codegen can abort on bad curation.

func (QuantVRAM) EstimateVRAM added in v0.2.4

func (q QuantVRAM) EstimateVRAM(contextTokens int) int64

EstimateVRAM recomputes the total VRAM estimate from the arch-facts stored in the QuantVRAM row at a caller-supplied context length.

This is a pure recompute: it calls EstimateVRAMBytes(q.WeightsBytes, contextTokens, q.Layers, q.KVHeads, q.HeadDim) with no additional state. It does NOT read or modify q.VRAMBytes, q.VRAMContextTokens, or q.VRAMEstimatePartial — those fields capture the baked-at-model-max snapshot; this method is for runtime recomputation at a different context length.

type Quantization added in v0.2.4

type Quantization int

Quantization identifies the numeric format / compression scheme applied to a model's weights. It is a closed int enum (like DerivationKind) because the set of formats served by Ollama + the reserved HF-ecosystem formats is small and well-understood. An open-ended passthrough is provided via QuantizationOther (+ a raw string carried on the instance) so that unknown tokens in ingested data are never silently dropped.

The zero value is QuantizationNone (format not specified / unknown).

Wire names are lowercase ASCII strings matching the llama.cpp / Ollama file_type field values (e.g. "q4_k_m", "f16"). MarshalText / UnmarshalText implement encoding.TextMarshaler / encoding.TextUnmarshaler for JSON and YAML round-trips.

const (
	// QuantizationNone is the zero value: no quantization format specified.
	QuantizationNone Quantization = iota
	// QuantF16: 16-bit IEEE float (half precision).
	QuantF16
	// QuantBF16: 16-bit bfloat (brain float).
	QuantBF16
	// QuantF32: 32-bit IEEE float (single precision).
	QuantF32

	// QuantQ4_0: legacy 4-bit block quant, scheme 0.
	QuantQ4_0
	// QuantQ4_1: legacy 4-bit block quant, scheme 1.
	QuantQ4_1
	// QuantQ5_0: legacy 5-bit block quant, scheme 0.
	QuantQ5_0
	// QuantQ5_1: legacy 5-bit block quant, scheme 1.
	QuantQ5_1
	// QuantQ8_0: legacy 8-bit block quant, scheme 0.
	QuantQ8_0

	// QuantQ2_K: 2-bit k-quant.
	QuantQ2_K
	// QuantQ2_K_S: 2-bit k-quant, small super-block.
	QuantQ2_K_S
	// QuantQ3_K_S: 3-bit k-quant, small super-block.
	QuantQ3_K_S
	// QuantQ3_K_M: 3-bit k-quant, medium super-block.
	QuantQ3_K_M
	// QuantQ3_K_L: 3-bit k-quant, large super-block.
	QuantQ3_K_L
	// QuantQ4_K_S: 4-bit k-quant, small super-block.
	QuantQ4_K_S
	// QuantQ4_K_M: 4-bit k-quant, medium super-block (most popular).
	QuantQ4_K_M
	// QuantQ5_K_S: 5-bit k-quant, small super-block.
	QuantQ5_K_S
	// QuantQ5_K_M: 5-bit k-quant, medium super-block.
	QuantQ5_K_M
	// QuantQ6_K: 6-bit k-quant.
	QuantQ6_K

	// QuantIQ1_S: 1-bit i-quant, small.
	QuantIQ1_S
	// QuantIQ1_M: 1-bit i-quant, medium.
	QuantIQ1_M
	// QuantIQ2_XXS: 2-bit i-quant, extra-extra-small.
	QuantIQ2_XXS
	// QuantIQ2_XS: 2-bit i-quant, extra-small.
	QuantIQ2_XS
	// QuantIQ2_S: 2-bit i-quant, small.
	QuantIQ2_S
	// QuantIQ2_M: 2-bit i-quant, medium.
	QuantIQ2_M
	// QuantIQ3_XXS: 3-bit i-quant, extra-extra-small.
	QuantIQ3_XXS
	// QuantIQ3_XS: 3-bit i-quant, extra-small.
	QuantIQ3_XS
	// QuantIQ3_S: 3-bit i-quant, small.
	QuantIQ3_S
	// QuantIQ3_M: 3-bit i-quant, medium.
	QuantIQ3_M
	// QuantIQ4_XS: 4-bit i-quant, extra-small.
	QuantIQ4_XS
	// QuantIQ4_NL: 4-bit i-quant, non-linear (nearest-lookup).
	QuantIQ4_NL

	// QuantAWQ: Activation-aware Weight Quantization (HF/vLLM, 4-bit).
	QuantAWQ
	// QuantGPTQ: GPTQ post-training quantization (HF/AutoGPTQ, 3/4/8-bit).
	QuantGPTQ
	// QuantInt8: bitsandbytes 8-bit integer (HF transformers).
	QuantInt8
	// QuantInt4: bitsandbytes 4-bit integer (HF transformers).
	QuantInt4

	// QuantizationOther is the lossless escape for any token that is present
	// in ingested data but not yet covered by the named constants above.  The
	// caller stores the raw string on the enclosing struct (e.g. QuantVRAM.QuantRaw).
	// ParseQuantization never silently maps an unrecognised token to this value;
	// DetectQuantization uses it for unrecognised tags found in model IDs.
	QuantizationOther
)

func ParseQuantization added in v0.2.4

func ParseQuantization(s string) (Quantization, error)

ParseQuantization parses a Quantization from a string using a case-insensitive exact match against the canonical wire names. It is intended for CLI flag parsing and configuration input.

  • "" returns (QuantizationNone, nil) — the empty string is treated as "not specified" without error.
  • A recognised name (e.g. "Q4_K_M", "f16") returns the corresponding constant and nil.
  • Any other non-empty string returns (QuantizationNone, error) with an actionable message that lists what was received and valid examples. Unlike DetectQuantization, ParseQuantization NEVER silently maps an unrecognised token to QuantizationOther.

func (Quantization) BitsPerWeight added in v0.2.4

func (q Quantization) BitsPerWeight() float64

BitsPerWeight returns the authoritative bits-per-weight for this quantization as documented in the llama.cpp quantize README (tools/quantize/README.md). Returns 0 for QuantizationNone, QuantizationOther, and the reserved HF-ecosystem constants (QuantAWQ, QuantGPTQ, QuantInt8, QuantInt4) whose effective bpw is configuration-dependent and not yet ingested.

func (Quantization) IsKnown added in v0.2.4

func (q Quantization) IsKnown() bool

IsKnown reports whether q is a named constant in this package (i.e. not an out-of-range integer). QuantizationOther is considered known (it is a named member of the enum); only truly out-of-range integers return false.

func (Quantization) MarshalText added in v0.2.4

func (q Quantization) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler, emitting the canonical lowercase wire name so Quantization serializes as a JSON/YAML string rather than an integer. An out-of-range value is a programming error and returns an actionable error.

func (Quantization) String added in v0.2.4

func (q Quantization) String() string

String returns the canonical lowercase wire name of the quantization (e.g. "q4_k_m", "f16"). An out-of-range value renders as "quantization(<n>)" so that log messages never silently drop unexpected values.

func (*Quantization) UnmarshalText added in v0.2.4

func (q *Quantization) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler, parsing a canonical lowercase wire name back into a Quantization. Parsing is case-insensitive so that Ollama's mixed-case file_type values (e.g. "Q4_K_M", "F16") round-trip correctly. Aliases such as "fp16" are NOT accepted; ingest layers must normalise fp16→f16 before unmarshalling (see TestDetectQuantization_FP16Alias). An unrecognised token yields an actionable error listing valid examples.

type ReasoningOption added in v0.2.5

type ReasoningOption struct {
	// Kind discriminates which of the payload fields below are meaningful.
	Kind ReasoningOptionKind
	// KindRaw carries the verbatim upstream kind token, populated only when Kind
	// is ReasoningOptionOther (an unrecognized tag); empty otherwise.
	KindRaw string
	// Values holds the discrete choices for a ReasoningEffort option; nil otherwise.
	Values []string
	// MinTokens is the lower budget bound for a ReasoningBudgetTokens option; 0 otherwise.
	MinTokens int
	// MaxTokens is the upper budget bound for a ReasoningBudgetTokens option; 0 otherwise.
	MaxTokens int
}

ReasoningOption is one reasoning-control option a model exposes, as a strongly-typed discriminated union keyed by Kind. Only the fields relevant to Kind carry data: ReasoningEffort populates Values; ReasoningBudgetTokens populates MinTokens / MaxTokens; ReasoningToggle carries neither.

type ReasoningOptionKind added in v0.2.5

type ReasoningOptionKind int

ReasoningOptionKind discriminates the kind of a reasoning-control option an upstream model exposes. It is a closed int enum.

The zero value is ReasoningOptionOther: on this ELEMENT type the upstream discriminating tag is always present, so a zero value can only mean "the tag was unrecognized". The fail-safe bucket therefore sits at the zero value (the raw token is carried on ReasoningOption.KindRaw), the Other-at-zero convention shared with LinkType and deliberately distinct from ModelStatus; see the file-level comment.

const (
	// ReasoningOptionOther is the zero value and fail-safe: an unrecognized
	// reasoning-option kind. The raw token is carried on ReasoningOption.KindRaw.
	ReasoningOptionOther ReasoningOptionKind = iota
	// ReasoningToggle: a plain on/off reasoning switch.
	ReasoningToggle
	// ReasoningEffort: a discrete effort selector; the choices are on Values.
	ReasoningEffort
	// ReasoningBudgetTokens: a token-budget control; the bounds are on
	// MinTokens / MaxTokens.
	ReasoningBudgetTokens
)

func (ReasoningOptionKind) IsKnown added in v0.2.5

func (k ReasoningOptionKind) IsKnown() bool

IsKnown reports whether k is a named constant in this package. ReasoningOptionOther is considered known; only out-of-range integers return false.

func (ReasoningOptionKind) MarshalText added in v0.2.5

func (k ReasoningOptionKind) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler, emitting the canonical wire name (so ReasoningOptionKind serializes as a JSON string, not an integer). An out-of-range value is a programming error and yields an actionable error.

func (ReasoningOptionKind) String added in v0.2.5

func (k ReasoningOptionKind) String() string

String returns the canonical lowercase wire name of the kind. An out-of-range value renders as "reasoningoptionkind(<n>)" so logs never silently drop an unexpected value.

func (*ReasoningOptionKind) UnmarshalText added in v0.2.5

func (k *ReasoningOptionKind) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler, parsing a canonical wire name back into a ReasoningOptionKind. Parsing is case-insensitive. An unrecognized token yields an actionable error.

type ReleaseStage added in v0.2.6

type ReleaseStage int

ReleaseStage classifies the release stage a model instance advertises IN ITS ID (preview / beta / latest / …). It is a closed int enum, following the DerivationKind / Quantization / ModelStatus precedent: the set of stage tokens is small and well-understood, so a closed enum gives type safety at call sites without a stringly-typed axis.

ReleaseStage is DELIBERATELY separate from ModelStatus even though the two overlap on tokens like "beta". They are two different provenance levels:

  • ModelStatus is upstream-DECLARED lifecycle metadata (the api.json `status` field): the provider tells us "this is beta".
  • ReleaseStage is ID-token-DERIVED (an instance fact read out of the model ID by DetectStageFromID): bestiary infers "this ID carries a `-beta` marker".

A model can carry one, both, or neither. `show` renders them under distinct labels ("stage" vs "status") so the two provenance levels never blur together.

The zero value is StageNone: on this SCALAR field absence is meaningful — a model whose ID carries no stage marker is a normal, generally-available release — so None sits at zero. This None-at-zero convention matches ModelStatus (a scalar where absence carries information) and deliberately differs from the Other-at-zero convention on the models.dev element enums (LinkType, ReasoningOptionKind), whose every element always arrives with a discriminating tag.

Wire names are lowercase ASCII strings; MarshalText / UnmarshalText implement encoding.TextMarshaler / encoding.TextUnmarshaler so a ReleaseStage serializes as a JSON/YAML string rather than an integer.

const (
	// StageNone is the zero value: the ID carries no recognized stage marker
	// (a normal, generally-available release).
	StageNone ReleaseStage = iota
	// StageStable: an explicitly stable/GA release. Enum member exists for CLI
	// and parse completeness; "stable" is NOT ID-detected this epoch (a bare
	// "stable" token in an ID is far more often a family name — see the
	// stable-diffusion guard in DetectReleaseStage — so detecting it would be
	// unsafe). ID-detection of "stable" is deferred (GH#13).
	StageStable
	// StagePreview: a preview / early-access release (ID-detected).
	StagePreview
	// StageBeta: a beta release (ID-detected). Detected without stripping — the
	// `beta` token stays in the ID's decomposition (it is entity-key material for
	// some families today, e.g. grok-4.20-beta-*), and re-keying it is deferred.
	StageBeta
	// StageAlpha: an early, unstable alpha release. Enum member exists for CLI
	// and parse completeness; "alpha" is NOT ID-detected this epoch (deferred,
	// GH#13).
	StageAlpha
	// StageExperimental: an experimental release. Enum member exists for CLI and
	// parse completeness; neither "experimental" nor its "-exp" short form is
	// ID-detected this epoch (deferred, GH#13).
	StageExperimental
	// StageLatest: a rolling "latest" alias (ID-detected). NOTE: "latest" (like
	// "original") NAMES A MOVING TARGET, not a fixed property of one artifact —
	// the model an id like "…-latest" resolves to changes over time. It is
	// recorded as a stage so the alias is visible, not because the artifact is
	// intrinsically "latest".
	StageLatest
	// StageOriginal: a rolling "original" alias (ID-detected). Like StageLatest,
	// this NAMES A MOVING TARGET (the pinned-original counterpart of a rolling
	// alias), not a fixed artifact property.
	StageOriginal
	// StageOther is the RESERVED fail-safe bucket for a stage token that is
	// present but not covered by the named constants above. Following the
	// Quantization / ModelStatus reserved-member precedent, it exists so the wire
	// format is stable when a FUTURE non-ID stage feeder lands (e.g. a metadata
	// field). It is UNUSED by the ID-detection path this epoch: DetectReleaseStage
	// returns known members only and NEVER StageOther, and ParseReleaseStage
	// rejects it as an internal sentinel. Its verbatim companion is StageRaw on
	// ModelInfo (populated only when Stage is StageOther, mirroring StatusRaw).
	StageOther
)

func DetectReleaseStage added in v0.2.6

func DetectReleaseStage(tok string) (ReleaseStage, bool)

DetectReleaseStage reports the ReleaseStage a single, standalone ID token denotes and whether it is a recognized ID-detected stage. It is the ID-detection primitive (the analogue of detectModelStatus, but exported because the enrichment and codegen both consume it):

  • a recognized token (preview / beta / latest / original) → (its constant, true);
  • any other token, including "stable" / "alpha" / "experimental" / "exp" whose ID-detection is deferred this epoch → (StageNone, false).

It is known-members-only: it NEVER returns StageOther (that reserved bucket is for a future non-ID feeder, not the ID path — returning it here would fabricate an unreachable state). It matches STANDALONE tokens only (exact, case-insensitive; no substring matching) and is family-member-guarded by construction: "stable" is not in the detected set, so "stable-diffusion" — whether passed whole or tokenized to "stable" + "diffusion" — can never resolve to a stage.

func DetectStageFromID added in v0.2.6

func DetectStageFromID(id ModelID) (ReleaseStage, string)

DetectStageFromID scans a model ID for a recognized release-stage marker and returns (stage, raw) — mirroring detectModelStatus's return contract:

  • a recognized standalone stage token → (its constant, "");
  • no recognized token → (StageNone, "").

The second return is the verbatim-token slot reserved for the StageOther path (populated only when a future non-ID feeder produces StageOther); the ID path never yields StageOther, so it is always "" this epoch — the caller assigns it to ModelInfo.StageRaw, which therefore mirrors StatusRaw (non-empty only for the Other bucket).

It is a PURE function of the ID and the embedded stage table, so it is applied identically at every enrichment joint (codegen bake, wire decode, store read) — the same ID always yields the same stage, so a live-sync row and its baked static row never disagree. Any provider/path prefix is dropped (up to the last "/") before tokenizing so a path segment can never masquerade as a stage; the remaining name is split on every non-alphanumeric byte and each token is checked via DetectReleaseStage (exact, standalone). The FIRST recognized token (scanning left to right) wins — catalog IDs carry at most one stage marker, so the tie-break is documentation, not a real ambiguity.

func ParseReleaseStage added in v0.2.6

func ParseReleaseStage(s string) (ReleaseStage, error)

ParseReleaseStage parses a ReleaseStage from a string using a case-insensitive exact match against the canonical wire names. It is the CLI / configuration path (the analogue of ParseModelStatus / ParseQuantization): the empty string returns StageNone with no error, a recognized name returns its constant, and any other non-empty string returns an actionable error naming what was received and the valid values. It rejects the internal "other" sentinel (StageOther is not a user-selectable stage) and never silently buckets an unknown token.

NOTE: there is intentionally NO CLI caller for ParseReleaseStage this epoch (`list` gains no stage filter — that is deferred). It is the public parse half of the stage axis, defined now per the final-interface principle (define the API you know the axis needs) rather than added later; it is NOT dead code and must not be removed as such.

func (ReleaseStage) IsKnown added in v0.2.6

func (s ReleaseStage) IsKnown() bool

IsKnown reports whether s is a named constant in this package (i.e. not an out-of-range integer). StageOther is considered known — it is a named member of the enum; only truly out-of-range integers return false.

func (ReleaseStage) MarshalText added in v0.2.6

func (s ReleaseStage) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler, emitting the canonical wire name (so ReleaseStage serializes as a JSON string, not an integer). An out-of-range value is a programming error and yields an actionable error.

func (ReleaseStage) String added in v0.2.6

func (s ReleaseStage) String() string

String returns the canonical lowercase wire name of the stage. An out-of-range value renders as "releasestage(<n>)" so logs never silently drop an unexpected value.

func (*ReleaseStage) UnmarshalText added in v0.2.6

func (s *ReleaseStage) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler, parsing a canonical wire name back into a ReleaseStage. Parsing is case-insensitive so a mixed-case token round-trips. An unrecognized token yields an actionable error.

type ResolveOption

type ResolveOption func(*resolveConfig)

ResolveOption configures a Resolve call. Options are applied in order; later options override earlier ones.

func WithInputFormat added in v0.2.0

func WithInputFormat(f InputFormat) ResolveOption

WithInputFormat pins the InputFormat for a Resolve call.

When InputFormatPeasant is specified (the default from the CLI), Resolve dispatches as SchemeCanonical and does NOT auto-detect from the input prefix. A PURL or HuggingFace input passed with InputFormatPeasant will fail to match (ErrNotFound) — this is intentional. Pass the matching --format flag explicitly.

For huggingface/hf, purl, and raw, dispatches directly to the corresponding scheme without auto-detect.

func WithScheme

func WithScheme(s CanonicalScheme) ResolveOption

WithScheme pins the CanonicalScheme for a Resolve call. When not specified, Resolve auto-detects the scheme from the input prefix:

  • "pkg:huggingface/<provider>/<id>" → SchemePURL: strip prefix, retain provider hint
  • "<word>/<word>" two-segment form (no "pkg:" prefix, no "@" or versioned token) → SchemeHuggingFace: strip provider prefix, match raw ID
  • "<family>/<variant>[@date]" or "<provider>/<family>/<variant>[@date]" form → SchemeCanonical
  • Otherwise → SchemeRaw (exact model ID lookup)

SchemeCanonical is auto-detected when the input contains 1–3 "/" separators AND at least one of: an "@" date suffix, or a versioned token (e.g. "4.5", "2.5"). Use WithScheme to override auto-detection.

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store is a SQLite-backed cache for AI model metadata. Use OpenStore to create, and Close when done.

func OpenStore

func OpenStore(path string) (*Store, error)

OpenStore opens (or creates) the SQLite database at path. It applies any pending schema migrations before returning. Caller must call Close when done.

func (*Store) Close

func (s *Store) Close() error

Close closes the underlying SQLite connection.

func (*Store) QueryByCanonical

func (s *Store) QueryByCanonical(ctx context.Context, f CanonicalFilter) ([]ModelInfo, error)

QueryByCanonical returns ModelInfo entries matching the canonical axes in f. Cross-provider results are returned as a slice. Empty fields in f act as wildcards: an empty Family matches any family, an empty Variant matches any variant, and an empty Date matches any date. Returns an empty slice (not an error) when no matching models are found.

The query uses the (family, variant) prefix of idx_canonical for efficient lookup when f.Family is non-empty.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) QueryCurrentIngests added in v0.2.5

func (s *Store) QueryCurrentIngests(ctx context.Context) ([]DatasetIngested, error)

QueryCurrentIngests returns the CURRENT ingest of every source: the row with the maximum ingested_at per data_source_id, sorted ascending by data_source_id. It reads the append-only dataset_ingested history and collapses it to one current row per source (the ingest-log analogue of DatasetIngestedFor's MAX, across all sources at once).

The query relies on SQLite's documented bare-column rule: with a single MAX() aggregate and a GROUP BY, the bare parser_schema column takes its value from the same row that supplied the maximum ingested_at, so the returned parser_schema is the current ingest's, not an arbitrary row's.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) QueryEntityMetadata added in v0.2.5

func (s *Store) QueryEntityMetadata(ctx context.Context) ([]EntityMetadata, error)

QueryEntityMetadata returns all cached entity metadata with its benchmark and link children reassembled onto each parent. The order is deterministic: parents ascending by metadata_id, and within a parent the children in insertion order (rowid). Enum-typed columns are decoded back from their stored string forms.

The reassembly is three sequential passes (parents, then benchmarks, then links): zombiezen.com/go/sqlite does not permit issuing a new statement while a result cursor is open, so nested per-parent child queries are not possible; the flat child passes are keyed back onto their parent by metadata_id.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) QueryIngestHistory added in v0.2.5

func (s *Store) QueryIngestHistory(ctx context.Context, id DataSourceID) ([]DatasetIngested, error)

QueryIngestHistory returns every ingest row for a single source, sorted ascending by ingested_at (oldest first). It is the per-source history view behind `sources --history`; an empty slice (not an error) is returned when the source has no ingest rows.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) QueryModel

func (s *Store) QueryModel(ctx context.Context, id ModelID) (ModelInfo, error)

QueryModel returns the first model found with the given ID, or ErrNotFound if no model with that ID exists in the store. Note: with the composite (model_id, provider) primary key, multiple rows may share the same model_id across different providers. Use QueryModelsByID to retrieve all provider variants for a given model ID.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) QueryModels

func (s *Store) QueryModels(ctx context.Context, provider Provider) ([]ModelInfo, error)

QueryModels returns all cached models. If provider is non-empty, results are filtered to only models from that provider. An empty provider string returns ALL models regardless of provider.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) QueryModelsByID

func (s *Store) QueryModelsByID(ctx context.Context, id ModelID) ([]ModelInfo, error)

QueryModelsByID returns all cached models with the given ID across all providers. Returns an empty slice (not an error) if none are found.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) UpsertDataSources added in v0.2.4

func (s *Store) UpsertDataSources(ctx context.Context, sources []DataSource, ingested []DatasetIngested) error

UpsertDataSources writes the data-source dimension rows and appends their ingest rows in a single transaction. Rows are written parents-before-children to satisfy the dataset_ingested.data_source_id foreign key: every DataSource is written first (insert-or-update on the id primary key), then every DatasetIngested. A DatasetIngested whose SourceID names a DataSource absent from BOTH this call and the existing data_sources table is rejected by the foreign key (when foreign_keys is ON).

The ingest pass is APPEND-ONLY: it uses INSERT OR IGNORE against the composite primary key (data_source_id, ingested_at). A new (source, timestamp) appends a history row; an identical (source, timestamp) is the same ingest fact re- asserted, so OR IGNORE keeps the original untouched — it can never MUTATE an existing row (unlike OR REPLACE, which would overwrite parser_schema). The current ingest for a source is the row with the maximum ingested_at, surfaced by QueryCurrentIngests / DatasetIngestedFor.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) UpsertEntityMetadata added in v0.2.5

func (s *Store) UpsertEntityMetadata(ctx context.Context, rows []EntityMetadata) error

UpsertEntityMetadata writes each EntityMetadata and its benchmark / link children in a single transaction. The children of a metadata_id are a REPLACEABLE SET owned by their parent: per row the method (1) INSERT OR REPLACE the parent entity_metadata row, (2) DELETE the existing metadata_benchmarks and metadata_links for that metadata_id, then (3) INSERT the current children.

This order is foreign-key safe under foreign_keys=ON: INSERT OR REPLACE keeps the same metadata_id, so at the end of that statement any pre-existing children still resolve their parent (the FK is checked at statement end, and a parent with the same key exists). The subsequent delete-then-insert then refreshes the child set. Re-syncing identical metadata is idempotent by CONTENT — the row counts and values are unchanged.

Enum-typed columns persist their STRING forms: a link's type column stores LinkType.String() and type_raw carries the verbatim upstream token (populated only when the type is the other bucket). entity_metadata has no status column (status is not present on the models.json side). The parent's source_id is a foreign key into data_sources, so callers must register the DataSource (via UpsertDataSources) before attaching metadata attributed to it.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) UpsertEntitySources added in v0.2.4

func (s *Store) UpsertEntitySources(ctx context.Context, sources []EntitySource) error

UpsertEntitySources inserts or replaces the entity↔source join rows in a single transaction. Rows are written parents-before-children to satisfy the entity_source.entity_key foreign key: pass 1 ensures a minimal entities dimension row exists for each distinct EntityKey (INSERT OR IGNORE so a richer pre-existing row is never clobbered; the decomposed columns default to the empty string — the store's entities table is a foreign-key target, not the authoritative entity decomposition, which lives in the generated registry), then pass 2 writes the join rows. The entity_source.data_source_id foreign key is NOT auto-satisfied here: callers must have populated data_sources first via UpsertDataSources, so an EntitySource naming an unknown source is rejected (when foreign_keys is ON).

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

func (*Store) UpsertModels

func (s *Store) UpsertModels(ctx context.Context, models []ModelInfo) error

UpsertModels inserts or replaces the given models in the store. It sets LastSynced to the current UTC time in RFC3339 format for each model. All upserts run inside a single transaction.

ctx is accepted for API compatibility; zombiezen.com/go/sqlite does not support per-operation context cancellation.

type TierCost added in v0.2.5

type TierCost struct {
	// CostInputPerMTok is the input cost in USD per million tokens, or nil when unset.
	CostInputPerMTok *float64
	// CostOutputPerMTok is the output cost in USD per million tokens, or nil when unset.
	CostOutputPerMTok *float64
	// CostReasoningPerMTok is the reasoning cost in USD per million tokens, or nil when unset.
	CostReasoningPerMTok *float64
	// CostCacheReadPerMTok is the cache-read cost in USD per million tokens, or nil when unset.
	CostCacheReadPerMTok *float64
	// CostCacheWritePerMTok is the cache-write cost in USD per million tokens, or nil when unset.
	CostCacheWritePerMTok *float64
	// CostInputAudioPerMTok is the audio-input cost in USD per million tokens, or nil when unset.
	CostInputAudioPerMTok *float64
	// CostOutputAudioPerMTok is the audio-output cost in USD per million tokens, or nil when unset.
	CostOutputAudioPerMTok *float64
}

TierCost is one bundle of cost overrides. Every axis is optional: a nil pointer means "not overridden at this tier". The per-million-token costs mirror the flat cost fields on ModelInfo and add audio input/output rates.

Directories

Path Synopsis
cmd
bestiary command
bestiary-gen command
bestiary-gen consumes the models.dev catalog and writes five generated files into the bestiary package root:
bestiary-gen consumes the models.dev catalog and writes five generated files into the bestiary package root:
bestiary-ollama command
Command bestiary-ollama is the OFFLINE, network-gated Ollama refresh tool.
Command bestiary-ollama is the OFFLINE, network-gated Ollama refresh tool.
Package testcase is the pure-data foundation for bestiary's canonical test-case corpus: a typed, generic Case/Corpus model with closed-set classification and provenance metadata, a pure JSON loader, and pure validators.
Package testcase is the pure-data foundation for bestiary's canonical test-case corpus: a typed, generic Case/Corpus model with closed-set classification and provenance metadata, a pure JSON loader, and pure validators.
assert
Package assert is the testing seam for the test-case corpus: helpers that take *testing.T and fail a test when a corpus violates its own invariants.
Package assert is the testing seam for the test-case corpus: helpers that take *testing.T and fail a test when a corpus violates its own invariants.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL