- Add agent context isolation API, RBAC, resolver, audit, dashboard modules - Deploy context isolation policy config - Fix OpenAPI workspace permissions (chown aiman:gitops) - Update ChatGPT actions API with new internals - Add CMD files for group/owner isolation and permission fix - Archive completed command files
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
"""API adapter for agent context routing and visibility."""
|
|
|
|
from typing import Any
|
|
|
|
try:
|
|
from fastapi import APIRouter
|
|
except Exception:
|
|
APIRouter = None
|
|
|
|
from .agent_context_dashboard import AgentContextDashboard
|
|
from .agent_context_rbac import AgentContextRBAC
|
|
from .agent_context_resolver import AgentContextResolver
|
|
|
|
resolver = AgentContextResolver()
|
|
rbac = AgentContextRBAC()
|
|
dashboard = AgentContextDashboard()
|
|
|
|
|
|
def resolve_agent_context(payload: dict[str, Any]) -> dict[str, Any]:
|
|
route = rbac.route(payload["user_id"], payload.get("group_id"), payload.get("role", "user"))
|
|
context = resolver.resolve(
|
|
user_id=payload["user_id"],
|
|
group_id=payload.get("group_id", ""),
|
|
session=payload.get("session"),
|
|
user_profile=payload.get("user_profile"),
|
|
group_policy=payload.get("group_policy"),
|
|
agent_default=payload.get("agent_default"),
|
|
owner_policy=payload.get("owner_policy"),
|
|
owner=payload.get("role") == "owner",
|
|
)
|
|
return {"routing": route.to_dict(), "context": context.to_dict()}
|
|
|
|
|
|
def get_context_dashboard() -> dict[str, Any]:
|
|
return dashboard.overview()
|
|
|
|
|
|
def build_router():
|
|
if APIRouter is None:
|
|
return None
|
|
router = APIRouter(prefix="/admin/ai-evolution/context", tags=["context-isolation"])
|
|
|
|
@router.post("/resolve", operation_id="resolveAgentContext")
|
|
def resolve(payload: dict[str, Any]):
|
|
return resolve_agent_context(payload)
|
|
|
|
@router.get("/overview", operation_id="getAgentContextDashboard")
|
|
def overview():
|
|
return get_context_dashboard()
|
|
|
|
return router
|
|
|
|
|
|
router = build_router()
|
|
|
|
__all__ = ["router", "resolve_agent_context", "get_context_dashboard"]
|