"""
Agent Trust SDK

Python client for the Agent Trust Verification API.

Usage:
    # Verify agents and messages
    from agent_trust import AgentTrustClient
    
    client = AgentTrustClient()
    result = client.verify_agent(
        name="Shopping Assistant",
        url="https://example.com/agent",
        description="I help you find deals"
    )
    
    if result.verdict == "block":
        print(f"Agent blocked: {result.reasoning}")
    
    # Protect AI agents from malicious content
    from agent_trust import TrustGuard
    
    guard = TrustGuard(api_key="ta_xxx...")
    
    # Scan web content before processing
    result = guard.scan_web(html_content)
    if result.is_safe:
        agent.process(html_content)
    
    # Scan documents, emails, tools, memory, RAG content
    guard.scan_document(doc_text, filename="report.pdf")
    guard.scan_email(body, subject="Important!")
    guard.scan_tool(name="calculator", description="Adds numbers")
    guard.scan_memory(content, memory_type="conversation")
    guard.scan_rag(doc_content, source="knowledge_base.txt")
    
    # Security test your agents before deployment
    from agent_trust import RedTeam
    
    redteam = RedTeam(api_key="ta_xxx...")
    result = redteam.scan("https://my-agent.com/chat")
    
    print(f"Security Score: {result.security_score}/100")
    if result.has_critical_issues:
        print("⚠️ Critical vulnerabilities found!")
"""

from .client import AgentTrustClient, AsyncAgentTrustClient, AgentTrustError, APIError
from .guard import TrustGuard, AsyncTrustGuard, TrustGuardError
from .redteam import (
    RedTeam,
    AsyncRedTeam,
    RedTeamError,
    ScanResult,
    ScanProgress,
    ScanMode,
    ScanStatus,
    ThreatCategory,
    Severity,
    RiskLevel,
    ThreatInfo,
    Vulnerability,
)
from .models import (
    # Verification models
    VerificationResult,
    AgentReputation,
    InteractionResult,
    ScoreBreakdown,
    ThreatMatch,
    TextScanResult,
    Verdict,
    ThreatLevel,
    InteractionOutcome,
    # Guard models
    GuardResult,
    BatchScanItem,
    BatchScanResult,
    BatchScanResponse,
    FetchAndScanResult,
    ContentSource,
)

__version__ = "0.4.0"
__all__ = [
    # Clients
    "AgentTrustClient",
    "AsyncAgentTrustClient",
    "AgentTrustError",
    "APIError",
    # Guard
    "TrustGuard",
    "AsyncTrustGuard",
    "TrustGuardError",
    # Red Team
    "RedTeam",
    "AsyncRedTeam",
    "RedTeamError",
    "ScanResult",
    "ScanProgress",
    "ScanMode",
    "ScanStatus",
    "ThreatCategory",
    "Severity",
    "RiskLevel",
    "ThreatInfo",
    "Vulnerability",
    # Verification models
    "VerificationResult",
    "AgentReputation", 
    "InteractionResult",
    "ScoreBreakdown",
    "ThreatMatch",
    "TextScanResult",
    "Verdict",
    "ThreatLevel",
    "InteractionOutcome",
    # Guard models
    "GuardResult",
    "BatchScanItem",
    "BatchScanResult",
    "BatchScanResponse",
    "FetchAndScanResult",
    "ContentSource",
]
