vetto 0.2.22

Daemon-less sandbox + security layer for AI coding agents (Landlock/Seatbelt, TUI statusline, post-session audit reports)
Documentation
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/shleder/vetto/blob/main/docs/schema/agent-adapter.schema.json",
  "title": "Vetto agent adapter manifest (rescue contract v1)",
  "description": "A declarative adapter manifest. Unknown fields are invalid; runtime discovery and recovery remain bounded and read-only as specified by docs/schema/rescue-adapter-contract-v1.md.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "id",
    "display_name",
    "version",
    "surfaces",
    "capabilities",
    "executables"
  ],
  "properties": {
    "schema_version": {
      "const": 1
    },
    "id": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$"
    },
    "display_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "version": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "support_level": {
      "type": "string",
      "enum": [
        "protected",
        "integrated",
        "rescue-only",
        "observe-only",
        "unsupported"
      ],
      "description": "The strongest support claim this adapter is allowed to make. Availability is reported separately at runtime."
    },
    "surfaces": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "enum": ["cli", "desktop", "ide", "cloud"]
      }
    },
    "capabilities": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "enum": [
          "detect",
          "discover_sessions",
          "snapshot",
          "diagnose",
          "resume",
          "fork",
          "restore_to_copy",
          "lifecycle_events",
          "protected_launch"
        ]
      }
    },
    "executables": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z0-9._+-]+$"
      }
    }
  },
  "$defs": {
    "support_level": {
      "type": "string",
      "enum": [
        "protected",
        "integrated",
        "rescue-only",
        "observe-only",
        "unsupported"
      ]
    }
  }
}