Coverage for src/alprina_cli/api/schemas/agent.py: 100%
16 statements
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-14 11:27 +0100
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-14 11:27 +0100
1"""
2Agent-related request/response schemas.
3"""
5from pydantic import BaseModel, Field
6from typing import List, Optional
9class AgentInfo(BaseModel):
10 """Information about a security agent."""
12 name: str = Field(..., description="Agent name/ID")
13 display_name: str = Field(..., description="Human-readable name")
14 description: str = Field(..., description="Agent description")
15 capabilities: List[str] = Field(default=[], description="Agent capabilities")
16 supported_languages: Optional[List[str]] = Field(None, description="Supported programming languages")
17 category: str = Field(default="core", description="Agent category (core, offensive, defensive, specialized, utility)")
18 icon: Optional[str] = Field(None, description="Agent icon emoji for UI display")
21class AgentListResponse(BaseModel):
22 """Response schema for agent listing."""
24 agents: List[AgentInfo] = Field(..., description="List of available agents")
25 total: int = Field(..., description="Total number of agents")
26 security_engine: str = Field(..., description="Engine status")
28 class Config:
29 schema_extra = {
30 "example": {
31 "agents": [
32 {
33 "name": "codeagent",
34 "display_name": "Code Security Agent",
35 "description": "Analyzes source code for vulnerabilities",
36 "capabilities": ["code-audit", "secret-detection"],
37 "supported_languages": ["python", "javascript", "go", "rust"]
38 }
39 ],
40 "total": 1,
41 "security_engine": "active"
42 }
43 }