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

1""" 

2Agent-related request/response schemas. 

3""" 

4 

5from pydantic import BaseModel, Field 

6from typing import List, Optional 

7 

8 

9class AgentInfo(BaseModel): 

10 """Information about a security agent.""" 

11 

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") 

19 

20 

21class AgentListResponse(BaseModel): 

22 """Response schema for agent listing.""" 

23 

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") 

27 

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 }