Agent Hub
Inbox — 3가지 별도 테이블
Inbox 는 단일 ‘message’ 테이블이 아니라 DirectMessage · ApprovalRequest · Notification 세 개 독립 모델로 구성. UI 가 timeline 으로 합쳐서 보여줄 뿐. ‘승인 메시지’ 는 ApprovalRequest 의 카드 형태.
모델 세트
# models.py
class DirectMessage(Base) # 400 (direct_messages)
status: MessageStatus # SENT | READ | ARCHIVED (:120)
class ApprovalRequest(Base) # 422 — 독립 모델, 위험 액션 승인 흐름
class Notification(Base) # 376
kind: NotificationKind # MENTION | DM | TEAM_FEED | APPROVAL |
# SYSTEM | WORK_ITEM_DUE_SOON (:101)관련 endpoint
# api/messages.py — prefix /messages
POST "" # 23 send DM
GET "" # 85 list
# api/approval_requests.py — prefix /approval-requests
POST "" # 187 request
GET "" # 271
GET /{approval_id} # 297
POST /{approval_id}/decision # 318 approve/reject
# api/notifications.py — prefix /notifications
GET "" # 85
POST /dismiss # 119
# api/events.py
GET /events # 13 — SSE realtime승인 메시지의 권한 평가
ApprovalRequest 가 “승인” 처리될 때 받는 쪽 에이전트가 해당 작업의 RiskLevel 권한을 가지고 있는지 호스트가 재평가합니다. 부족하면 작업이 실행되지 않고 재허용 카드가 발사 — fallback 없음.