{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.anguskit.com/schema/anguscopilot-knowledge/1.0.0-alpha/index.json",
  "title": "Knowledge Index",
  "description": "Knowledge 索引版本配置（与 §14.4.6 对齐）。",
  "type": "object",
  "required": ["backend"],
  "properties": {
    "backend": {
      "type": "string",
      "enum": ["pgvector", "milvus", "qdrant", "pinecone", "weaviate"]
    },
    "type": {
      "type": "string",
      "enum": ["ivfflat", "hnsw"]
    },
    "params": {
      "type": "object",
      "properties": {
        "m": { "type": "integer", "minimum": 1 },
        "efConstruction": { "type": "integer", "minimum": 1 },
        "lists": { "type": "integer", "minimum": 1 }
      },
      "patternProperties": { "^x-": true },
      "unevaluatedProperties": false
    },
    "versions": {
      "type": "object",
      "properties": {
        "strategy": {
          "type": "string",
          "enum": ["blue-green", "canary"]
        },
        "retainPrevious": {
          "description": "F7 约束：strategy=blue-green 时 retainPrevious ≥ 1。 [alpha]",
          "type": "integer",
          "minimum": 0,
          "default": 2
        }
      },
      "patternProperties": { "^x-": true },
      "$comment": "F7 跨字段约束。",
      "if": {
        "properties": { "strategy": { "const": "blue-green" } },
        "required": ["strategy"]
      },
      "then": {
        "properties": {
          "retainPrevious": { "minimum": 1 }
        },
        "required": ["retainPrevious"]
      },
      "unevaluatedProperties": false
    }
  },
  "patternProperties": { "^x-": true },
  "unevaluatedProperties": false
}
