{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Agent Versions Schema", "description": "Schema for tracking agent evolution in APAW", "type": "object", "required": ["version", "lastUpdated", "agents", "providers", "evolution_metrics"], "properties": { "$schema": { "type": "string", "description": "Reference to this schema" }, "version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$", "description": "Schema version (semver)" }, "lastUpdated": { "type": "string", "format": "date-time", "description": "ISO 8601 timestamp of last update" }, "agents": { "type": "object", "additionalProperties": { "type": "object", "required": ["current", "history", "performance_log"], "properties": { "current": { "type": "object", "required": ["model", "provider", "category", "mode", "description"], "properties": { "model": { "type": "string", "description": "Current model ID (e.g., ollama-cloud/qwen3-coder:480b)" }, "provider": { "type": "string", "enum": ["Ollama", "OpenRouter", "Groq", "Unknown"], "description": "Model provider" }, "category": { "type": "string", "description": "Agent category (Core Dev, QA, Security, etc.)" }, "mode": { "type": "string", "enum": ["primary", "subagent", "all"], "description": "Agent invocation mode" }, "color": { "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$", "description": "UI color in hex format" }, "description": { "type": "string", "description": "Agent purpose description" }, "benchmark": { "type": "object", "properties": { "swe_bench": { "type": "number", "minimum": 0, "maximum": 100 }, "ruler_1m": { "type": "number", "minimum": 0, "maximum": 100 }, "terminal_bench": { "type": "number", "minimum": 0, "maximum": 100 }, "pinch_bench": { "type": "number", "minimum": 0, "maximum": 100 }, "fit_score": { "type": "number", "minimum": 0, "maximum": 100 } } }, "capabilities": { "type": "array", "items": { "type": "string" }, "description": "List of agent capabilities" }, "recommendations": { "type": "array", "items": { "type": "object", "required": ["target", "reason", "priority"], "properties": { "target": { "type": "string" }, "reason": { "type": "string" }, "priority": { "type": "string", "enum": ["critical", "high", "medium", "low"] } } } }, "status": { "type": "string", "enum": ["active", "new", "deprecated", "testing"] } } }, "history": { "type": "array", "items": { "type": "object", "required": ["date", "commit", "type", "to", "reason", "source"], "properties": { "date": { "type": "string", "format": "date-time" }, "commit": { "type": "string" }, "type": { "type": "string", "enum": ["model_change", "prompt_change", "agent_created", "agent_removed", "capability_change"] }, "from": { "type": ["string", "null"] }, "to": { "type": "string" }, "reason": { "type": "string" }, "source": { "type": "string", "enum": ["git", "gitea", "manual"] }, "issue_number": { "type": "integer" } } } }, "performance_log": { "type": "array", "items": { "type": "object", "required": ["date", "issue", "score", "success"], "properties": { "date": { "type": "string", "format": "date-time" }, "issue": { "type": "integer" }, "score": { "type": "number", "minimum": 0, "maximum": 10 }, "duration_ms": { "type": "integer" }, "success": { "type": "boolean" } } } } } } }, "providers": { "type": "object", "additionalProperties": { "type": "object", "required": ["models"], "properties": { "models": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "swe_bench": { "type": "number" }, "terminal_bench": { "type": "number" }, "ruler_1m": { "type": "number" }, "pinch_bench": { "type": "number" }, "context": { "type": "string" }, "active_params": { "type": "string" }, "speed_tps": { "type": "number" }, "rpm": { "type": "number" }, "rpd": { "type": "number" }, "tpm": { "type": "string" }, "tpd": { "type": "string" }, "free": { "type": "boolean" } } } } } } }, "evolution_metrics": { "type": "object", "required": ["total_agents", "agents_with_history", "pending_recommendations", "last_sync", "sync_sources"], "properties": { "total_agents": { "type": "integer", "minimum": 0 }, "agents_with_history": { "type": "integer", "minimum": 0 }, "pending_recommendations": { "type": "integer", "minimum": 0 }, "last_sync": { "type": "string", "format": "date-time" }, "sync_sources": { "type": "array", "items": { "type": "string" } } } } } }