{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$ref": "#/definitions/KnowledgeRefreshResult",
  "definitions": {
    "KnowledgeRefreshResult": {
      "type": "object",
      "properties": {
        "cwd": {
          "type": "string"
        },
        "check": {
          "type": "boolean"
        },
        "current": {
          "type": "boolean"
        },
        "changedPaths": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "manifest": {
          "$ref": "#/definitions/KnowledgeManifest"
        },
        "readiness": {
          "$ref": "#/definitions/KnowledgeReadiness"
        }
      },
      "required": ["cwd", "check", "current", "changedPaths", "manifest", "readiness"],
      "additionalProperties": false
    },
    "KnowledgeManifest": {
      "type": "object",
      "properties": {
        "schemaVersion": {
          "type": "number"
        },
        "pluginVersion": {
          "type": "string"
        },
        "setupLevel": {
          "$ref": "#/definitions/KnowledgeSetupLevel"
        },
        "scope": {
          "$ref": "#/definitions/KnowledgeScope"
        },
        "sourceRoots": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "sourceDigest": {
          "type": "string"
        },
        "generatedAt": {
          "type": "string"
        },
        "artifactDigests": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "degradedReasons": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "schemaVersion",
        "pluginVersion",
        "setupLevel",
        "scope",
        "sourceRoots",
        "sourceDigest",
        "artifactDigests",
        "degradedReasons"
      ],
      "additionalProperties": false
    },
    "KnowledgeSetupLevel": {
      "type": "string",
      "enum": ["quick", "full"]
    },
    "KnowledgeScope": {
      "type": "object",
      "properties": {
        "kind": {
          "$ref": "#/definitions/KnowledgeScopeKind"
        },
        "include": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exclude": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["kind", "include", "exclude"],
      "additionalProperties": false
    },
    "KnowledgeScopeKind": {
      "type": "string",
      "enum": ["repository-full", "source-root-full", "filtered"]
    },
    "KnowledgeReadiness": {
      "type": "object",
      "properties": {
        "ready": {
          "type": "boolean"
        },
        "artifacts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/KnowledgeArtifactReadiness"
          }
        },
        "repairCommand": {
          "type": "string"
        }
      },
      "required": ["ready", "artifacts", "repairCommand"],
      "additionalProperties": false
    },
    "KnowledgeArtifactReadiness": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": ["ready", "missing", "template", "stale", "degraded", "partial"]
        },
        "reason": {
          "type": "string"
        }
      },
      "required": ["path", "status", "reason"],
      "additionalProperties": false
    }
  }
}
