☁️ English documentation
ζ—₯本θͺž β†’

☁️Layer 3: Aegis Cloud

The feature map of the backend (aegis-platform). All 20 implemented items at a glance.

Division of roles: this feature map records development progress; the capability list shows the current state (with flag defaults).

The feature-category implementation map for Aegis Cloud (the aegis-platform backend). Source: INVENTORY.md Β§1.6. Each card lists its primary implementation file:line.

βœ…Status: 18/20 implemented

allowlist / routing / form-capture / call_logs / recording / slack / monitoring v0.1 / MCP (28 tools) / Item A (strict_approval) / category_override / Realtime 2 / event-trace / retention sweeper / duration_seconds / AuditLogger / risk_classifier / adapters (Rhodium, Retell, Realtime) β€” almost all implemented. Only internationalization is partial.

Feature map (20 items)

πŸŽ™οΈ Done

STT pipeline + blocklist screening

engine/stt_corrector.py:18, engine/blocklist_checker.py:13
πŸ”€ Done

Routing decision (sales/partner)

core/integration_policy.py, adapters/telephony_adapter.py:28
πŸ“ Done

Form capture / transfer_to_human

services/tools_core.py:130, api/retell_functions.py:68
πŸ“’ Done

call_logs + monthly JSON export

logger/call_logger.py:11
πŸ’Ύ Done

NAS recording storage

services/recording_storage.py:97

The Realtime path is recording_enabled=False (off by default)

πŸ’¬ Partial

Slack notifications

notifications/channels.py, dispatcher.py

Channels abstraction in place; notify_slack_enabled=False (off by default)

πŸ“Š Done

monitoring v0.1

api/monitoring.py, services/monitoring_collector.py
πŸ” Done

Item A: strict_approval_mode (non-bypassable gate)

services/strict_approval_gate.py:53
🏷️ Done

category_override (wired to the gate)

mcp/tools/categories.py, services/risk_classifier.py:113
πŸ”Œ Done

MCP server (HTTP/Bearer/CORS/hosts/trace)

mcp/server.py:79, mcp/middleware.py

28 tools

πŸ“ž Done

Retell Custom LLM webhook

api/retell_functions.py:42/68, api/custom_llm.py
πŸ€– Done

Route C / OpenAI Realtime

adapters/realtime_adapter.py:79, api/realtime_session.py
⏱️ Done

B4 duration_seconds

call_log.py:15, realtime_session.py:102
🧹 Done

B6 retention sweeper (incl. dry-run)

services/retention_sweeper.py:68

Actual deletion is impossible in code (F1 forces dry-run); awaiting F2

πŸ”Ž Done

B7 event-trace endpoint

services/event_trace_buffer.py:31 (deque maxlen=100)
πŸ“‘ Done

B1' dashboard live updates (SSE)

api/calls_stream.py:125, hooks/useLiveCalls.ts
🧾 Done

AuditLogger

services/audit_logger.py:55, models/tool_audit_event.py
βš–οΈ Done

risk_classifier

services/risk_classifier.py:62
🧩 Done

Adapter layer (Rhodium/Retell/Realtime)

adapters/telephony_adapter.py:74/130, twilio_retell.py:37
🌐 Partial

Internationalization (i18n)

dashboard/src/lib/i18n.ts

The backend emits enum codes only; display translation lives in the UI layer. REVIEW Low-3: investigated β€” enum consolidation is parked for a later phase (2026-07-14)

API / DB scale (from INVENTORY)

  • API endpoints: 129 (GET 64 / POST 54 / PUT 5 / PATCH 1 / DELETE 5)
  • DB tables: 20 (19 SQLAlchemy models)
  • Alembic migrations: 26 (head: w4x5y6z7a8b9, 2026-05-28). As of this site’s creation, PR #26 adds β€œON DELETE on all FKs”.
  • pytest: 519 (55 test files). The review fixes added roughly +30 (see each PR).