vetto 0.2.17

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/session-stats.schema.json",
  "title": "vetto SessionStats report",
  "description": "The stable JSON report emitted by vetto for one sandbox session.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "started_at": { "type": ["string", "null"], "format": "date-time" },
    "ended_at": { "type": ["string", "null"], "format": "date-time" },
    "duration_secs": { "type": "integer", "minimum": 0 },
    "exit_code": { "type": "integer" },
    "tier": { "type": "string" },
    "net_mode": { "type": "string" },
    "profile": { "type": "string" },
    "events_total": { "type": "integer", "minimum": 0 },
    "counts": {
      "type": "object",
      "additionalProperties": { "type": "integer", "minimum": 0 }
    },
    "op_counts": {
      "type": "object",
      "additionalProperties": { "type": "integer", "minimum": 0 }
    },
    "file_reads": { "type": "integer", "minimum": 0 },
    "file_writes": { "type": "integer", "minimum": 0 },
    "blocked_attempts": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["path", "comm", "source", "count"],
        "properties": {
          "path": { "type": "string" },
          "comm": { "type": "string" },
          "source": { "type": "string" },
          "count": { "type": "integer", "minimum": 1 }
        }
      }
    },
    "net_requests": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["host", "port", "allowed"],
        "properties": {
          "host": { "type": "string" },
          "port": { "type": "integer", "minimum": 0, "maximum": 65535 },
          "allowed": { "type": "boolean" }
        }
      }
    },
    "suspicious_signals": {
      "description": "Best-effort advisory classifier output; never an enforcement decision.",
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["category", "severity", "subject", "reason", "count"],
        "properties": {
          "category": { "type": "string" },
          "severity": {
            "type": "string",
            "enum": ["advisory", "warning", "high"]
          },
          "subject": { "type": "string" },
          "reason": { "type": "string" },
          "count": { "type": "integer", "minimum": 1 }
        }
      }
    },
    "notices": {
      "type": "array",
      "items": { "type": "string" }
    }
  },
  "required": [
    "started_at", "ended_at", "duration_secs", "exit_code", "tier", "net_mode",
    "profile", "events_total", "counts", "op_counts", "file_reads", "file_writes",
    "blocked_attempts", "net_requests", "suspicious_signals", "notices"
  ]
}