Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

editors.status

Editor and agent projections

What it is

Every adapter (Zed, Antigravity) with each capability it supports, does not, or cannot be verified for, and the evidence; every projected file with the inputs it is derived from, its content address and its state here (current, stale, absent, or a conflict with a file this generator did not write); orphaned projections; and every finding with its remedy. Writes nothing: `majordomus generate editors` does.

Descriptor

Canonical id
editors.status
Module
editors
Kind
query
Stability
behaviorallyverified
Provenance
declared
Source
apps/majordomus-cli/src/capability/builtin/editors.rs
Cache
disabled
Benchmark
required
Tags
editorsprojectionsintrospection

Run

query
A query. It reads and changes nothing.

This capability takes no input.

GET /api/v1/editors

Projections

InterfaceAsWhere
MCP toolmajordomus_editors-
MCP resourcemajordomus://editors-
HTTPGET /api/v1/editorsSwagger
Command linenot exposed-

Schemas

Input · Empty
{
  "type": "object",
  "additionalProperties": false,
  "description": "No input.",
  "title": "Empty"
}
Output · EditorProjection
{
  "type": "object",
  "properties": {
    "schema": {
      "type": "string",
      "description": "`SCHEMA`."
    },
    "projection_version": {
      "type": "integer",
      "format": "uint32",
      "minimum": 0,
      "description": "`PROJECTION_VERSION`."
    },
    "adapters": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/EditorAdapter"
      },
      "description": "The adapters, by id."
    },
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/EditorInput"
      },
      "description": "The inputs, by path."
    },
    "artifacts": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/EditorDerivation"
      },
      "description": "The projected files, by path."
    },
    "orphans": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Generator-owned files under a projected directory that the plan no longer contains."
    },
    "diagnostics": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/EditorDiagnostic"
      },
      "description": "The findings, by severity then code then path."
    }
  },
  "required": [
    "schema",
    "projection_version",
    "adapters",
    "inputs",
    "artifacts",
    "diagnostics"
  ],
  "description": "`editors.status`: every adapter, every projected file and its state, every finding.",
  "title": "EditorProjection",
  "$defs": {
    "EditorAdapter": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "`zed` or `antigravity`."
        },
        "title": {
          "type": "string",
          "description": "The product's name."
        },
        "verified_against": {
          "type": "string",
          "description": "The release the evidence was taken from."
        },
        "capabilities": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EditorCapability"
          },
          "description": "Its capabilities, by id."
        }
      },
      "required": [
        "id",
        "title",
        "verified_against",
        "capabilities"
      ],
      "description": "One adapter: the product, the version its claims were verified against, its capabilities."
    },
    "EditorCapability": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Stable identity within the adapter: `skills`, `tasks`, `instructions`, `mcp`, ..."
        },
        "support": {
          "$ref": "#/$defs/EditorSupport",
          "description": "What the adapter does with it."
        },
        "artifacts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The files that carry it, repository-relative. Empty when nothing is projected."
        },
        "evidence": {
          "type": "string",
          "description": "Where the claim about the product comes from."
        },
        "note": {
          "type": "string",
          "description": "What it means here, and what to do when nothing is projected."
        }
      },
      "required": [
        "id",
        "support",
        "evidence",
        "note"
      ],
      "description": "One capability of one adapter."
    },
    "EditorSupport": {
      "oneOf": [
        {
          "type": "string",
          "const": "supported",
          "description": "Projected, from a verified format."
        },
        {
          "type": "string",
          "const": "unsupported",
          "description": "The product has no project-level form for it."
        },
        {
          "type": "string",
          "const": "unknown",
          "description": "A project-level form is claimed somewhere and could not be verified; nothing written."
        },
        {
          "type": "string",
          "const": "deprecated",
          "description": "The product reads it, from a form this projection will not write."
        },
        {
          "type": "string",
          "const": "requires_user_action",
          "description": "A person can enable it, outside the repository; the remedy says how."
        }
      ],
      "description": "What an adapter can do with one capability. Never a boolean: \"we do not know\" is an\nanswer of its own and is not \"no\"."
    },
    "EditorInput": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "description": "Repository-relative path."
        },
        "mutability": {
          "$ref": "#/$defs/EditorInputClass",
          "description": "Tracked content or checkout state."
        },
        "sha256": {
          "type": "string",
          "description": "SHA-256 of its content."
        }
      },
      "required": [
        "path",
        "mutability",
        "sha256"
      ],
      "description": "One input of the projection: a file, what kind of input it is, and its content address."
    },
    "EditorInputClass": {
      "oneOf": [
        {
          "type": "string",
          "const": "repository",
          "description": "Tracked content of the repository: changes only by a commit. The only class an\ninput has today: what the checkout merely holds (an instruction file, a legacy\ndirectory) changes a finding, never a projected byte."
        }
      ],
      "description": "How far an input may change without the repository changing."
    },
    "EditorDerivation": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "description": "Repository-relative path."
        },
        "document": {
          "type": "string",
          "description": "The document id in the generated-artifact manifest."
        },
        "adapters": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The adapters that read it."
        },
        "sources": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The inputs it is derived from, by path."
        },
        "key": {
          "type": "string",
          "description": "The content address of the derivation: the projection version and the fingerprints of\nits sources. The same key always yields the same bytes."
        },
        "sha256": {
          "type": "string",
          "description": "SHA-256 of the projected content."
        },
        "state": {
          "$ref": "#/$defs/EditorFileState",
          "description": "The state of the file in this checkout."
        }
      },
      "required": [
        "path",
        "document",
        "adapters",
        "sources",
        "key",
        "sha256",
        "state"
      ],
      "description": "One projected file and how it came to be."
    },
    "EditorFileState": {
      "oneOf": [
        {
          "type": "string",
          "const": "current",
          "description": "Byte for byte what the projection says."
        },
        {
          "type": "string",
          "const": "stale",
          "description": "Generator-owned and different: `majordomus generate editors` rewrites it."
        },
        {
          "type": "string",
          "const": "absent",
          "description": "Not there: `majordomus generate editors` writes it."
        },
        {
          "type": "string",
          "const": "conflict",
          "description": "A file without the generated banner sits at the path: it is someone's, and nothing\noverwrites it."
        }
      ],
      "description": "A projected file as this checkout holds it."
    },
    "EditorDiagnostic": {
      "type": "object",
      "properties": {
        "severity": {
          "$ref": "#/$defs/Severity",
          "description": "`info`, `warning` or `error`."
        },
        "code": {
          "type": "string",
          "description": "Stable identity of the finding."
        },
        "adapter": {
          "type": [
            "string",
            "null"
          ],
          "description": "The adapter it concerns, when it concerns one."
        },
        "path": {
          "type": [
            "string",
            "null"
          ],
          "description": "The file it concerns, when it concerns one."
        },
        "message": {
          "type": "string",
          "description": "What was found."
        },
        "remedy": {
          "type": "string",
          "description": "What to do about it."
        }
      },
      "required": [
        "severity",
        "code",
        "message",
        "remedy"
      ],
      "description": "Something about the projection worth acting on."
    },
    "Severity": {
      "oneOf": [
        {
          "type": "string",
          "const": "info",
          "description": "Worth knowing; changes nothing."
        },
        {
          "type": "string",
          "const": "warning",
          "description": "Something to look at; the object is still served."
        },
        {
          "type": "string",
          "const": "error",
          "description": "The file is excluded and the index is degraded."
        }
      ],
      "description": "How bad a diagnostic is. `Error` excludes the file it concerns from the index and puts\nthe index into the degraded state; `Warning` and `Info` do neither."
    }
  }
}

Examples

These are the capability's own benchmark cases: the same inputs the benchmark runs and the OpenAPI document shows.

default
{}