File size: 1,133 Bytes
8036886
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""Capabilities API endpoints."""

from fastapi import APIRouter, HTTPException
from typing import Optional, List
from ..core.registry import CapabilityRegistry
from ..core.audit import AuditLogger

router = APIRouter()
registry = CapabilityRegistry()
audit_logger = AuditLogger()

@router.get("/capabilities")
async def list_capabilities(category: Optional[str] = None):
    """List all capabilities."""
    capabilities = registry.list_capabilities(category=category)
    return {
        "count": len(capabilities),
        "capabilities": capabilities
    }

@router.get("/capabilities/{capability_id}")
async def get_capability(capability_id: str):
    """Get capability by ID."""
    capability = registry.get_capability(capability_id)
    if not capability:
        raise HTTPException(status_code=404, detail="Capability not found")
    return capability

@router.get("/capabilities/search/{query}")
async def search_capabilities(query: str):
    """Search capabilities."""
    results = registry.search_capabilities(query)
    return {
        "query": query,
        "count": len(results),
        "results": results
    }