models.list
Každý deklarovaný vendor a model, volitelně zúžený podle vendora, slova schopnosti nebo jednoho id či aliasu. Vendoři nesou, zda je nastavena proměnná s jejich pojmenovaným přihlašovacím údajem — jen přítomnost, nikdy hodnota. Pořadí je pořadí deklarace, které je i preferenčním pořadím směrování; zjištění samotného katalogu (duplicitní alias, nedeklarovaný vendor) jdou s sebou.
Každý deklarovaný vendor a model, volitelně zúžený podle vendora, slova schopnosti nebo jednoho id či aliasu. Vendoři nesou, zda je nastavena proměnná s jejich pojmenovaným přihlašovacím údajem — jen přítomnost, nikdy hodnota. Pořadí je pořadí deklarace, které je i preferenčním pořadím směrování; zjištění samotného katalogu (duplicitní alias, nedeklarovaný vendor) jdou s sebou.
- query
- experimentální
- moduly models
- #models
- #catalogue
Zpřístupnění
Kde je tato jedna definice dosažitelná. Absence je explicitní: povrch, který není uveden, ji nenese.
| povrch | jako |
|---|---|
| MCP | nástroj majordomus_models zdroj majordomus://models |
| HTTP | GET /api/v1/models operationId models.list |
| příkazová řádka | majordomus models list |
Schémata
Kanonický vstup a výstup z typů Rustu; schéma nástroje MCP a parametry a odpovědi OpenAPI se odvozují z nich.
vstup · ModelsFilter
models.list: volitelné zúžení. Vše prázdné vypíše vše.| vlastnost | typ | povinné | popis |
|---|---|---|---|
| schopnost | string | null | ne | Pouze modely deklarující toto slovo schopnosti. |
| id | string | null | ne | Jeden model, podle kanonického id nebo aliasu. |
| vendor | string | null | ne | Pouze tento dodavatel. |
JSON Schema
{
"additionalProperties": false,
"description": "The input of `models.list`: optional narrowing. Everything empty lists everything.",
"properties": {
"capability": {
"description": "Only models declaring this capability word.",
"type": [
"string",
"null"
]
},
"id": {
"description": "One model, by canonical id or alias.",
"type": [
"string",
"null"
]
},
"vendor": {
"description": "Only this vendor.",
"type": [
"string",
"null"
]
}
},
"title": "ModelsFilter",
"type": "object"
}výstup · ModelsReport
models.list.| vlastnost | typ | povinné | popis |
|---|---|---|---|
| počet | integer | ano | Kolik modelů se shodovalo. |
| diagnostika | array | ne | Vlastní nálezy katalogu: duplicitní jména, nedeklarovaní dodavatelé. Prázdné je běžný případ. |
| models | array | ano | Odpovídající modely v pořadí deklarace — což je pořadí preferencí směrování. |
| vendoruje | array | ano | Poskytovatelé, pořadí deklarace. |
JSON Schema
{
"$defs": {
"Inference": {
"description": "Where a vendor's inference runs.",
"oneOf": [
{
"const": "remote",
"description": "An API over the network.",
"type": "string"
},
{
"const": "local",
"description": "A runtime on this machine.",
"type": "string"
}
]
},
"ModelEntry": {
"additionalProperties": false,
"description": "One model: the canonical reference this repository uses, the vendor's own name for\nit, and its typed capabilities. Capability words are data the catalogue declares —\nconsumers compare against a requirement list, never against a hardcoded name.",
"properties": {
"aliases": {
"description": "Other names that resolve to this model. Aliases live here and nowhere else.",
"items": {
"type": "string"
},
"type": "array"
},
"capabilities": {
"default": [],
"description": "Typed capability words: `text`, `vision`, `tools`, `structured_output`,\n`reasoning`, `streaming`, `embeddings` — the declared vocabulary, open for a\ncatalogue to extend without a code change.",
"items": {
"type": "string"
},
"type": "array"
},
"context_window": {
"description": "The context window, tokens.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"id": {
"description": "The canonical id, unique in the catalogue: what sessions, configuration and\nrouting name. Stable even when a vendor renames.",
"type": "string"
},
"native_id": {
"description": "The vendor's own identifier, verbatim.",
"type": "string"
},
"note": {
"description": "One line a person needs when choosing; never pricing — a price the tool cannot\nverify is a fact it must not state (nothing here fabricates cost data).",
"type": [
"string",
"null"
]
},
"status": {
"anyOf": [
{
"$ref": "#/$defs/ModelStatus"
},
{
"type": "null"
}
],
"description": "The lifecycle standing, when the catalogue declares one. Absent is undeclared: the\ncatalogue admits only facts with provenance, and routing still considers the model,\nbut nothing may say it is available on the catalogue's behalf."
},
"vendor": {
"description": "The vendor that serves it.",
"type": "string"
}
},
"required": [
"id",
"vendor",
"native_id"
],
"type": "object"
},
"ModelStatus": {
"description": "A model's lifecycle standing, as the catalogue declares it. There is no default: a\ncatalogue entry that declares none has an undeclared standing, which is not the same\nfact as \"available\", and no reader may render it as one.",
"oneOf": [
{
"const": "available",
"description": "Generally available.",
"type": "string"
},
{
"const": "preview",
"description": "Usable, expected to change.",
"type": "string"
},
{
"const": "deprecated",
"description": "Still served, no longer chosen by routing unless named explicitly.",
"type": "string"
},
{
"const": "retired",
"description": "Gone; kept so an old record's reference still resolves to a row with a story.",
"type": "string"
}
]
},
"VendorView": {
"description": "One vendor with whether its credential is configured — presence of the named\nenvironment variable and nothing more. No value is read.",
"properties": {
"credential_configured": {
"description": "Whether the named credential variable is set in this process's environment.\n`None` when the vendor names no variable.",
"type": [
"boolean",
"null"
]
},
"credential_env": {
"description": "The environment variable whose *presence* means a credential is configured.\nOnly the name lives here, and only presence is ever reported — no code in this\ncrate reads the value, and the environment cache refuses to hold one.",
"type": [
"string",
"null"
]
},
"id": {
"description": "The vendor id, unique in the catalogue.",
"type": "string"
},
"inference": {
"$ref": "#/$defs/Inference",
"default": "remote",
"description": "Where inference runs: `remote` (an API over the network) or `local` (a runtime\non this machine). Typed here so routing's `local_only` is data, not a name test."
},
"title": {
"description": "The human name.",
"type": "string"
}
},
"required": [
"id",
"title"
],
"type": "object"
}
},
"description": "The answer of `models.list`.",
"properties": {
"count": {
"description": "How many models matched.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"diagnostics": {
"description": "The catalogue's own findings: duplicate names, undeclared vendors. Empty is\nthe ordinary case.",
"items": {
"type": "string"
},
"type": "array"
},
"models": {
"description": "The matching models, declaration order — which is routing's preference order.",
"items": {
"$ref": "#/$defs/ModelEntry"
},
"type": "array"
},
"vendors": {
"description": "The vendors, declaration order.",
"items": {
"$ref": "#/$defs/VendorView"
},
"type": "array"
}
},
"required": [
"count",
"vendors",
"models"
],
"title": "ModelsReport",
"type": "object"
}Politiky
- benchmark
- povinné — cíl na každém transportu, který expozice deklaruje; případy jsou ty ze vstupního typu
- cache
- process — až 4 položky v procesu, každá 5 s, v rozsahu otisku registru
Cíle benchmarku
Odvozeno z registru pro tento repozitář: jeden požadavek na transport a případy, které poskytuje typ vstupu. Celá matice je na stránce měření výkonu.