Spaces:
Running
Running
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
}
|