{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Task Engine AI Core Configuration Schema",
  "description": "Configuration schema for task-engine-ai-core package",
  "type": "object",
  "properties": {
    "taskEngine": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
        "environment": { "type": "string", "enum": ["development", "staging", "production", "test"] },
        "debug": { "type": "boolean" },
        "logging": {
          "type": "object",
          "properties": {
            "level": { "type": "string", "enum": ["error", "warn", "info", "debug", "trace"] },
            "enabled": { "type": "boolean" },
            "format": { "type": "string", "enum": ["json", "pretty", "simple"] },
            "outputs": { "type": "array", "items": { "type": "string", "enum": ["console", "file"] } }
          },
          "required": ["level", "enabled"]
        }
      },
      "required": ["name", "version", "environment"]
    },
    "architectures": {
      "type": "object",
      "properties": {
        "frontend": {
          "type": "object",
          "properties": {
            "enabled": { "type": "boolean" },
            "port": { "type": "integer", "minimum": 1, "maximum": 65535 },
            "host": { "type": "string" },
            "ssl": { "type": "boolean" },
            "activeAgent": {
              "type": "object",
              "properties": {
                "enabled": { "type": "boolean" },
                "intelligence": {
                  "type": "object",
                  "properties": {
                    "predictiveAnalytics": { "type": "boolean" },
                    "naturalLanguageProcessing": { "type": "boolean" },
                    "machineLearning": { "type": "boolean" }
                  }
                }
              }
            }
          },
          "required": ["enabled"]
        },
        "backend": {
          "type": "object",
          "properties": {
            "enabled": { "type": "boolean" },
            "port": { "type": "integer", "minimum": 1, "maximum": 65535 },
            "host": { "type": "string" },
            "ssl": { "type": "boolean" },
            "database": {
              "type": "object",
              "properties": {
                "type": { "type": "string", "enum": ["sqlite", "postgresql", "mysql", "mongodb"] },
                "host": { "type": "string" },
                "port": { "type": "integer" },
                "database": { "type": "string" },
                "path": { "type": "string" }
              },
              "required": ["type"]
            },
            "cache": {
              "type": "object",
              "properties": {
                "enabled": { "type": "boolean" },
                "type": { "type": "string", "enum": ["memory", "redis", "memcached"] },
                "ttl": { "type": "integer", "minimum": 0 },
                "maxSize": { "type": "integer", "minimum": 1 }
              }
            }
          },
          "required": ["enabled"]
        },
        "cli": {
          "type": "object",
          "properties": {
            "enabled": { "type": "boolean" },
            "commands": {
              "type": "object",
              "properties": {
                "aliases": { "type": "array", "items": { "type": "string" } },
                "defaultCommand": { "type": "string" },
                "autoComplete": { "type": "boolean" }
              }
            }
          },
          "required": ["enabled"]
        }
      },
      "required": ["frontend", "backend", "cli"]
    },
    "ai": {
      "type": "object",
      "properties": {
        "providers": {
          "type": "object",
          "properties": {
            "default": { "type": "string" },
            "fallback": { "type": "string" },
            "anthropic": {
              "type": "object",
              "properties": {
                "enabled": { "type": "boolean" },
                "model": { "type": "string" },
                "maxTokens": { "type": "integer", "minimum": 1 },
                "temperature": { "type": "number", "minimum": 0, "maximum": 2 }
              }
            }
          }
        },
        "features": {
          "type": "object",
          "properties": {
            "taskGeneration": { "type": "boolean" },
            "taskOptimization": { "type": "boolean" },
            "predictiveAnalytics": { "type": "boolean" },
            "naturalLanguageProcessing": { "type": "boolean" },
            "intelligentAutomation": { "type": "boolean" }
          }
        },
        "limits": {
          "type": "object",
          "properties": {
            "requestsPerMinute": { "type": "integer", "minimum": 1 },
            "requestsPerHour": { "type": "integer", "minimum": 1 },
            "maxConcurrentRequests": { "type": "integer", "minimum": 1 }
          }
        }
      }
    },
    "mcp": {
      "type": "object",
      "properties": {
        "enabled": { "type": "boolean" },
        "server": {
          "type": "object",
          "properties": {
            "name": { "type": "string" },
            "version": { "type": "string" },
            "port": { "type": "integer", "minimum": 1, "maximum": 65535 },
            "host": { "type": "string" }
          }
        },
        "tools": {
          "type": "object",
          "properties": {
            "taskManagement": { "type": "boolean" },
            "aiServices": { "type": "boolean" },
            "performanceMonitoring": { "type": "boolean" },
            "systemIntegration": { "type": "boolean" }
          }
        }
      }
    },
    "monitoring": {
      "type": "object",
      "properties": {
        "enabled": { "type": "boolean" },
        "metrics": {
          "type": "object",
          "properties": {
            "performance": { "type": "boolean" },
            "system": { "type": "boolean" },
            "business": { "type": "boolean" },
            "collection": {
              "type": "object",
              "properties": {
                "interval": { "type": "integer", "minimum": 1000 },
                "retention": { "type": "string" }
              }
            }
          }
        },
        "alerting": {
          "type": "object",
          "properties": {
            "enabled": { "type": "boolean" },
            "thresholds": {
              "type": "object",
              "properties": {
                "responseTime": { "type": "integer", "minimum": 1 },
                "errorRate": { "type": "number", "minimum": 0, "maximum": 1 },
                "memoryUsage": { "type": "number", "minimum": 0, "maximum": 1 },
                "cpuUsage": { "type": "number", "minimum": 0, "maximum": 1 }
              }
            }
          }
        }
      }
    },
    "limits": {
      "type": "object",
      "properties": {
        "maxTasks": { "type": "integer", "minimum": 1 },
        "maxSubtasks": { "type": "integer", "minimum": 1 },
        "maxFileSize": { "type": "string" },
        "maxRequestSize": { "type": "string" },
        "maxConcurrentConnections": { "type": "integer", "minimum": 1 }
      }
    }
  },
  "required": ["taskEngine", "architectures"]
}
