{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://vibepackr.com/schemas/agent-mcp-call.v1",
  "title": "VibePackr local agent call input, version 1",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "operation_ref",
    "expected_release_catalog_digest",
    "request"
  ],
  "properties": {
    "schema_version": {
      "const": "packr.agent-mcp.call.v1"
    },
    "operation_ref": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.:-]{1,256}$"
    },
    "expected_release_catalog_digest": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "workspace_id": {
      "type": "string",
      "maxLength": 128
    },
    "original_product_reference": {
      "type": "string",
      "maxLength": 256
    },
    "request": {
      "type": "object"
    }
  },
  "$defs": {
    "vibepackr.setup.status": {
      "type": "object",
      "additionalProperties": false,
      "properties": {},
      "required": []
    },
    "vibepackr.headless.health": {
      "type": "object",
      "additionalProperties": false,
      "properties": {},
      "required": []
    },
    "vibepackr.headless.status": {
      "type": "object",
      "additionalProperties": false,
      "properties": {},
      "required": []
    },
    "vibepackr.headless.work_list": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "limit"
      ]
    },
    "vibepackr.headless.work_show": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "work_reference": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        }
      },
      "required": [
        "work_reference"
      ]
    },
    "vibepackr.gape.validate_snapshot": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "input_id"
      ]
    },
    "vibepackr.gape.compare": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "before_input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "after_input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "before_input_id",
        "after_input_id"
      ]
    },
    "vibepackr.sdk.analyze": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "input_id"
      ]
    },
    "vibepackr.integration_helper.discover": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "input_id"
      ]
    },
    "vibepackr.integration_helper.normalize": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "input_id"
      ]
    },
    "vibepackr.integration_helper.validate": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "input_id"
      ]
    },
    "vibepackr.integration_helper.prepare": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "input_id"
      ]
    },
    "vibepackr.integration_helper.status": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "input_id"
      ]
    }
  }
}
