distribution.model
The one-line install command, where an installation goes, and every declared target with the artifact name it derives. This is what the installation page, the landing page's install block and the cockpit's install card render; none of them holds a platform list of its own.
The one-line install command, where an installation goes, and every declared target with the artifact name it derives. This is what the installation page, the landing page's install block and the cockpit's install card render; none of them holds a platform list of its own.
- query
- behaviorally_verified
- module distribution
- #distribution
- #install
- #introspection
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_distribution |
| HTTP | GET /api/v1/distribution operationId distribution.model |
| command line | majordomus distribution show |
Schemas
The canonical input and output, from the Rust types; the MCP tool schema and the OpenAPI parameters and responses are derived from these.
input · Empty
No input.
No properties: the capability takes no input.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}output · DistributionReport
The distribution, as a person or a script asks for it.
| property | type | required | description |
|---|---|---|---|
| binary | string | yes | The command a person types after installing. |
| checksum | string | yes | The digest algorithm the installer verifies. |
| install_and_init_command | string | yes | The same, initialising the repository afterwards. |
| install_command | string | yes | The one-line install command, composed from its parts. |
| install_dir | string | yes | Where the launchers go by default. |
| installer_url | string | yes | The installer's canonical URL. |
| latest_url | string | yes | Where the stable release metadata is published. |
| next_command | string | yes | What a person runs next. |
| prefix | string | yes | Where the versioned trees go by default. |
| repository | string | yes | `owner/name`, the only host release assets come from. |
| supported | integer | yes | How many targets a release builds. |
| targets | array | yes | Every declared target, in the model's order. |
JSON Schema
{
"$defs": {
"Arch": {
"description": "A processor architecture.",
"oneOf": [
{
"const": "x86_64",
"description": "64-bit x86, detected as `x86_64` or `amd64`.",
"type": "string"
},
{
"const": "aarch64",
"description": "64-bit ARM, detected as `aarch64` or `arm64`.",
"type": "string"
}
]
},
"Libc": {
"description": "The C library a Linux artifact is linked against.",
"oneOf": [
{
"const": "gnu",
"description": "GNU libc: the ordinary distributions.",
"type": "string"
},
{
"const": "musl",
"description": "musl: Alpine, and any statically linked artifact.",
"type": "string"
}
]
},
"Os": {
"description": "An operating system a target runs on.",
"oneOf": [
{
"const": "macos",
"description": "Apple's, detected as `Darwin`.",
"type": "string"
},
{
"const": "linux",
"description": "Linux, detected as `Linux`, and the only one where the C library matters.",
"type": "string"
},
{
"const": "windows",
"description": "Windows; representable, and not built today.",
"type": "string"
}
]
},
"TargetStatus": {
"description": "What the project promises about a target.\n\nSee [`crate::deploy::Status`]: both are `Status` in their own module and neither is in\nthe one component namespace the schema document has.",
"oneOf": [
{
"const": "supported",
"description": "Built by every release, offered by the installer, listed as supported. A release\nthat is missing this artifact is not published.",
"type": "string"
},
{
"const": "experimental",
"description": "Built and offered, and documented as not yet proven.",
"type": "string"
},
{
"const": "unavailable",
"description": "Documented, never built, refused by the installer with its recorded reason.",
"type": "string"
}
]
},
"TargetView": {
"description": "One target, as every projection shows it: what it is, what it is called in prose, and\nthe artifact name the naming function derives for a tag yet to be chosen.",
"properties": {
"arch": {
"$ref": "#/$defs/Arch",
"description": "The architecture."
},
"artifact": {
"description": "The artifact name, with `{tag}` where a release's tag goes.",
"type": "string"
},
"id": {
"description": "The target's id in the model.",
"type": "string"
},
"libc": {
"anyOf": [
{
"$ref": "#/$defs/Libc"
},
{
"type": "null"
}
],
"description": "The C library, on Linux."
},
"os": {
"$ref": "#/$defs/Os",
"description": "The operating system."
},
"reason": {
"description": "Why, when it is not built.",
"type": [
"string",
"null"
]
},
"rust_target": {
"description": "The Rust target triple.",
"type": "string"
},
"status": {
"$ref": "#/$defs/TargetStatus",
"description": "What the project promises about it."
},
"title": {
"description": "How it is written in prose: `Linux x86_64 musl`.",
"type": "string"
}
},
"required": [
"id",
"title",
"os",
"arch",
"rust_target",
"status",
"artifact"
],
"type": "object"
}
},
"description": "The distribution, as a person or a script asks for it.",
"properties": {
"binary": {
"description": "The command a person types after installing.",
"type": "string"
},
"checksum": {
"description": "The digest algorithm the installer verifies.",
"type": "string"
},
"install_and_init_command": {
"description": "The same, initialising the repository afterwards.",
"type": "string"
},
"install_command": {
"description": "The one-line install command, composed from its parts.",
"type": "string"
},
"install_dir": {
"description": "Where the launchers go by default.",
"type": "string"
},
"installer_url": {
"description": "The installer's canonical URL.",
"type": "string"
},
"latest_url": {
"description": "Where the stable release metadata is published.",
"type": "string"
},
"next_command": {
"description": "What a person runs next.",
"type": "string"
},
"prefix": {
"description": "Where the versioned trees go by default.",
"type": "string"
},
"repository": {
"description": "`owner/name`, the only host release assets come from.",
"type": "string"
},
"supported": {
"description": "How many targets a release builds.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"targets": {
"description": "Every declared target, in the model's order.",
"items": {
"$ref": "#/$defs/TargetView"
},
"type": "array"
}
},
"required": [
"binary",
"repository",
"installer_url",
"install_command",
"install_and_init_command",
"next_command",
"checksum",
"install_dir",
"prefix",
"latest_url",
"supported",
"targets"
],
"title": "DistributionReport",
"type": "object"
}Policies
- benchmark
- required — a target on every transport the exposure declares; the cases are the input type's
- cache
- disabled — every call runs the handler
Benchmark targets
Derived from the registry for this repository: one requirement per transport, and the cases the input type provides. The whole matrix is on the benchmarks page.