feat(models): AiderEventIn + AiderBatchIn pydantic schemas

- Implement aider-watch v2 event schema with 7 event types
- Enforce timezone-aware timestamps via field_validator
- Batch schema supports up to 50 events per request
- Frozen + forbid extra fields (defensive engineering)
- Fix broken src.* imports in models package (incident.py, __init__.py)

Task A3 complete: 7/7 tests passing
This commit is contained in:
Your Name
2026-04-20 04:06:26 +08:00
parent 0db4534133
commit 5daae76147
4 changed files with 107 additions and 4 deletions

View File

@@ -10,7 +10,7 @@ AWOOOI Models Package
"""
# Approval Models (Phase 2)
from src.models.approval import (
from apps.api.src.models.approval import (
ApprovalRequest,
ApprovalRequestCreate,
ApprovalRequestResponse,
@@ -28,7 +28,7 @@ from src.models.approval import (
)
# Incident Models (Phase 6 - 認知覺醒)
from src.models.incident import (
from apps.api.src.models.incident import (
AIDecisionChain,
Incident,
IncidentCreate,
@@ -41,7 +41,7 @@ from src.models.incident import (
)
# NVIDIA Models (ADR-036 - Nemotron Tool Calling)
from src.models.nvidia import (
from apps.api.src.models.nvidia import (
NvidiaProviderResult,
NvidiaResponse,
NvidiaUsage,
@@ -50,6 +50,13 @@ from src.models.nvidia import (
ToolDefinition,
)
# Aider Models (aider-watch v2)
from apps.api.src.models.aider import (
AiderBatchIn,
AiderEventIn,
EventType,
)
__all__ = [
# Approval
"ApprovalRequest",
@@ -83,4 +90,8 @@ __all__ = [
"ToolCall",
"ToolCallValidationResult",
"ToolDefinition",
# Aider (aider-watch v2)
"AiderBatchIn",
"AiderEventIn",
"EventType",
]