Files
awesome-agentic-ai/main.py
Tony_at_EON-DEV d11d35a796
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled
CI / update-argocd (push) Has been cancelled
CI / canary-promote (push) Has been cancelled
Agentic AI CI/CD / build-and-deploy (push) Has been cancelled
fix: Analyze with 'Claude Sonnet' then fix some bugs/issues
2026-02-25 09:29:51 +09:00

270 lines
13 KiB
Python

# main.py
from agents.agent_registry import discover_agents, log_registered_agents
##INFO: # 🔍 Load all agents before app starts
discover_agents()
log_registered_agents()
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import JSONResponse
from fastapi.requests import Request
from fastapi.exception_handlers import http_exception_handler
from fastapi.exceptions import RequestValidationError
from routes.auth_routes import router as auth_router
from routes.api import router as api_router
from routes.data_routes import router as data_router
from routes.dataset_routes import router as dataset_router
from routes.media_routes import router as media_router
from routes.voice_routes import router as voice_router
from routes.memory_routes import router as memory_router
from routes.config_routes import router as config_router
from routes.search_routes import router as search_router
from routes.utils_routes import router as utils_router
from routes.transcript_routes import router as transcript_router
from routes.session_routes import router as session_router
from routes.avatar_routes import router as avatar_router
from routes.emotion_routes import router as emotion_router
from routes.smarthome_routes import router as smarthome_router
from routes.scheduler_routes import router as scheduler_router
from routes.calendar_routes import router as calendar_router
from routes.group_routes import router as group_router
from routes.orchestration_routes import router as orchestration_router
from routes.agent_routes import router as agent_router
from routes.ws_agent_routes import router as ws_agent_router
from routes.chain_routes import router as chain_router
from routes.health_routes import router as health_router
from routes.logging_routes import router as logging_router
from routes.agent_meta_routes import router as agent_meta_router
from routes.registry_sync_routes import router as sync_router
from routes.tenant_memory_routes import router as tenant_memory_router
from routes.tenant_routes import router as tenant_router
from routes.tenant_memory_dashboard_routes import router as tenant_memory_dashboard_router
from routes.usage_routes import router as usage_router
from routes.quota_routes import router as quota_router
from routes.workflow_routes import router as workflow_router
from routes.capability_routes import router as capability_router
from routes.capability_routing_routes import router as capability_routing_router
from routes.agent_upgrade_routes import router as agent_upgrade_router
from routes.agent_rollback_routes import router as rollback_router
from routes.version_history_routes import router as version_history_router
from routes.version_tagging_routes import router as version_tagging_router
from routes.fallback_routes import router as fallback_router
from routes.workflow_trace_routes import router as trace_router
from routes.workflow_tag_routes import router as tag_router
from routes.tenant_isolation_routes import router as isolation_router
from routes.admin_tools_routes import router as admin_router
from routes.agent_test_routes import router as test_router
from routes.collaboration_routes import router as collab_router
from routes.debate_routes import router as debate_router
from routes.reflection_routes import router as reflection_router
from routes.feedback_routes import router as feedback_router
from routes.reward_routes import router as reward_router
from routes.goal_routes import router as goal_router
from routes.goal_session_routes import router as goal_session_router
from routes.shared_goal_routes import router as shared_goal_router
from routes.notification_routes import router as notify_router
from routes.goal_revision_routes import router as revision_router
from routes.tool_routes import router as tool_router
from routes.template_runner import router as template_router
from routes.semantic_memory_routes import router as semantic_router
from routes.episodic_memory_routes import router as episodic_router
from routes.knowledge_graph_routes import router as graph_router
from routes.role_routes import router as role_router
from routes.collaboration_routes import router as collaboration_router
from routes.coordination_routes import router as coordination_router
from routes.autonomous_planner_routes import router as planner_router
from routes.self_evaluation_routes import router as self_evaluation_router
from routes.performance_routes import router as performance_router
from routes.action_routes import router as action_router
from routes.tenant_admin_routes import router as tenant_admin_router
from routes.personalization_routes import router as personalization_router
from routes.metrics_routes import router as metrics_router
from routes.behavior_routes import router as behavior_router
from routes.optimizer_routes import router as optimizer_router
from routes.retraining_routes import router as retraining_router
from routes.messenger_routes import router as messenger_router
from routes.consensus_routes import router as consensus_router
from routes.approval_routes import router as approval_router
from routes.governance_routes import router as governance_router
from routes.deployment_routes import router as deployment_router
from routes.plugin_routes import router as plugin_router
from routes.model_router_routes import router as model_router
from routes.inference_routes import router as inference_router
from routes.evaluation_routes import router as evaluation_router
from routes.sla_routes import router as sla_router
from routes.cluster_routes import router as cluster_router
from routes.monitoring_routes import router as monitoring_router
from routes.branding_routes import router as branding_router
from routes.marketplace_routes import router as marketplace_router
from routes.memory_graph_routes import router as memory_graph_router
# from routes.messaging_routes import router as messaging_router
from routes.scheduling_routes import router as scheduling_router
from routes.identity_routes import router as identity_router
from routes.security_routes import router as security_router
from routes.simulation_routes import router as simulation_router
from routes.admin_memory_routes import router as admin_memory_router
from routes.autonomy_routes import router as autonomy_router
from routes.analytics_routes import router as analytics_router
from routes.crew_dashboard_routes import router as crew_dashboard_router
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI(title="Agentic AI Backend")
# ✅ Configure CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # For desktop/mobile native clients
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
##INFO: Global Error Handler for FastAPI
@app.exception_handler(Exception)
async def global_exception_handler(request: Request, exc: Exception):
return JSONResponse(
status_code=500,
content={"detail": f"Unexpected error: {str(exc)}"}
)
##INFO: ✅ Register routes
app.include_router(auth_router, prefix="/auth")
# app.include_router(api_router)
app.include_router(api_router, prefix="/api")
# data_router (/api/data/...), Means all endpoints in this router will be nested under /api
app.include_router(data_router, prefix="/api")
app.include_router(dataset_router, prefix="/api")
app.include_router(media_router, prefix="/media")
app.include_router(voice_router, prefix="/voice")
app.include_router(memory_router, prefix="/memory")
app.include_router(config_router, prefix="/config")
app.include_router(search_router, prefix="/search")
app.include_router(utils_router, prefix="/utils")
app.include_router(transcript_router, prefix="/transcript")
app.include_router(session_router, prefix="/session")
app.include_router(avatar_router, prefix="/avatar")
app.include_router(emotion_router, prefix="/emotion")
app.include_router(smarthome_router, prefix="/smarthome")
app.include_router(scheduler_router, prefix="/schedule")
app.include_router(calendar_router, prefix="/calendar")
app.include_router(group_router, prefix="/group")
# app.include_router(metrics_router, prefix="/metrics")
##INFO: API route to Trigger Orchestration
app.include_router(orchestration_router, prefix="/api")
##INFO: API route for Agent Flow
app.include_router(agent_router, prefix="/api")
app.include_router(agent_meta_router, prefix="/api")
app.include_router(analytics_router, prefix="/api")
app.include_router(crew_dashboard_router, prefix="/api")
##INFO: WebSocket Streaming routes
app.include_router(ws_agent_router)
##INFO: API route for Agent Chain
app.include_router(chain_router, prefix="/api")
##INFO: Health Check
app.include_router(health_router, prefix="/api")
app.include_router(logging_router)
##INFO: Agent sync
app.include_router(sync_router, prefix="/api")
##INFO: Route for Tenants
app.include_router(tenant_router, prefix="/api")
##INFO: Route for 'user feedback' and 'environment feedback loop'
## see 'feedback_routes.py'
app.include_router(feedback_router)
##INFO: for Tenant-Memory routes
app.include_router(tenant_memory_router, prefix="/tenant-memory")
app.include_router(tenant_memory_dashboard_router, prefix="/tenant-memory")
app.include_router(usage_router, prefix="/tenant")
app.include_router(quota_router, prefix="/tenant")
app.include_router(workflow_router, prefix="/tenant")
app.include_router(capability_router, prefix="/tenant")
app.include_router(capability_routing_router, prefix="/tenant")
app.include_router(agent_upgrade_router, prefix="/tenant")
app.include_router(rollback_router, prefix="/tenant")
app.include_router(version_history_router, prefix="/tenant")
app.include_router(version_tagging_router, prefix="/tenant")
app.include_router(fallback_router, prefix="/tenant")
app.include_router(trace_router, prefix="/tenant")
app.include_router(tag_router, prefix="/tenant")
app.include_router(isolation_router, prefix="/tenant")
app.include_router(reflection_router, prefix="/tenant")
# app.include_router(feedback_router, prefix="/tenant")
app.include_router(reward_router, prefix="/tenant")
app.include_router(semantic_router, prefix="/tenant")
app.include_router(episodic_router, prefix="/tenant")
app.include_router(graph_router, prefix="/tenant")
#INFO: Admin Tools
app.include_router(admin_router, prefix="/admin")
app.include_router(test_router, prefix="/admin")
app.include_router(collab_router, prefix="/admin")
app.include_router(debate_router, prefix="/admin")
app.include_router(goal_router, prefix="/admin")
app.include_router(goal_session_router, prefix="/admin")
app.include_router(shared_goal_router, prefix="/admin")
app.include_router(notify_router, prefix="/admin")
app.include_router(revision_router, prefix="/admin")
app.include_router(tool_router, prefix="/admin")
app.include_router(template_router, prefix="/admin")
app.include_router(role_router, prefix="/admin")
app.include_router(collaboration_router, prefix="/admin")
app.include_router(coordination_router, prefix="/admin")
app.include_router(planner_router, prefix="/admin")
app.include_router(self_evaluation_router, prefix="/admin")
app.include_router(evaluation_router, prefix="/admin")
app.include_router(performance_router, prefix="/admin")
app.include_router(action_router, prefix="/admin")
app.include_router(tenant_admin_router, prefix="/admin")
app.include_router(personalization_router, prefix="/admin")
app.include_router(metrics_router, prefix="/admin")
app.include_router(behavior_router, prefix="/admin")
app.include_router(optimizer_router, prefix="/admin")
app.include_router(retraining_router, prefix="/admin")
app.include_router(messenger_router, prefix="/admin")
app.include_router(consensus_router, prefix="/admin")
app.include_router(approval_router, prefix="/admin")
app.include_router(governance_router, prefix="/admin")
app.include_router(deployment_router, prefix="/admin")
app.include_router(plugin_router, prefix="/admin")
app.include_router(model_router, prefix="/admin")
app.include_router(inference_router, prefix="/admin")
# NOTE: evaluation_router was previously registered twice (duplicate removed 2026-02-25)
app.include_router(sla_router, prefix="/admin")
app.include_router(cluster_router, prefix="/admin")
app.include_router(monitoring_router, prefix="/admin")
app.include_router(branding_router, prefix="/admin")
app.include_router(marketplace_router, prefix="/admin")
app.include_router(memory_graph_router, prefix="/admin")
# app.include_router(messaging_router, prefix="/admin")
app.include_router(scheduling_router, prefix="/admin")
app.include_router(identity_router, prefix="/admin")
app.include_router(security_router, prefix="/admin")
app.include_router(simulation_router, prefix="/admin")
app.include_router(admin_memory_router, prefix="/api/admin")
app.include_router(autonomy_router, prefix="/api")
##NOTE: serve static media files
app.mount("/media", StaticFiles(directory="data"), name="media")
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)