- Add Project model with slug, description, autonomy level, and settings - Add AgentType model for agent templates with model config and failover - Add AgentInstance model for running agents with status and memory - Add Issue model with external tracker sync (Gitea/GitHub/GitLab) - Add Sprint model with velocity tracking and lifecycle management - Add comprehensive Pydantic schemas with validation - Add full CRUD operations for all models with filtering/sorting - Add 280+ tests for models, schemas, and CRUD operations Implements #23, #24, #25, #26, #27 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
124 lines
3.0 KiB
Python
124 lines
3.0 KiB
Python
# app/models/syndarix/enums.py
|
|
"""
|
|
Enums for Syndarix domain models.
|
|
|
|
These enums represent the core state machines and categorizations
|
|
used throughout the Syndarix AI consulting platform.
|
|
"""
|
|
|
|
from enum import Enum as PyEnum
|
|
|
|
|
|
class AutonomyLevel(str, PyEnum):
|
|
"""
|
|
Defines how much control the human has over agent actions.
|
|
|
|
FULL_CONTROL: Human must approve every agent action
|
|
MILESTONE: Human approves at sprint boundaries and major decisions
|
|
AUTONOMOUS: Agents work independently, only escalating critical issues
|
|
"""
|
|
|
|
FULL_CONTROL = "full_control"
|
|
MILESTONE = "milestone"
|
|
AUTONOMOUS = "autonomous"
|
|
|
|
|
|
class ProjectStatus(str, PyEnum):
|
|
"""
|
|
Project lifecycle status.
|
|
|
|
ACTIVE: Project is actively being worked on
|
|
PAUSED: Project is temporarily on hold
|
|
COMPLETED: Project has been delivered successfully
|
|
ARCHIVED: Project is no longer accessible for work
|
|
"""
|
|
|
|
ACTIVE = "active"
|
|
PAUSED = "paused"
|
|
COMPLETED = "completed"
|
|
ARCHIVED = "archived"
|
|
|
|
|
|
class AgentStatus(str, PyEnum):
|
|
"""
|
|
Current operational status of an agent instance.
|
|
|
|
IDLE: Agent is available but not currently working
|
|
WORKING: Agent is actively processing a task
|
|
WAITING: Agent is waiting for external input or approval
|
|
PAUSED: Agent has been manually paused
|
|
TERMINATED: Agent instance has been shut down
|
|
"""
|
|
|
|
IDLE = "idle"
|
|
WORKING = "working"
|
|
WAITING = "waiting"
|
|
PAUSED = "paused"
|
|
TERMINATED = "terminated"
|
|
|
|
|
|
class IssueStatus(str, PyEnum):
|
|
"""
|
|
Issue workflow status.
|
|
|
|
OPEN: Issue is ready to be worked on
|
|
IN_PROGRESS: Agent or human is actively working on the issue
|
|
IN_REVIEW: Work is complete, awaiting review
|
|
BLOCKED: Issue cannot proceed due to dependencies or blockers
|
|
CLOSED: Issue has been completed or cancelled
|
|
"""
|
|
|
|
OPEN = "open"
|
|
IN_PROGRESS = "in_progress"
|
|
IN_REVIEW = "in_review"
|
|
BLOCKED = "blocked"
|
|
CLOSED = "closed"
|
|
|
|
|
|
class IssuePriority(str, PyEnum):
|
|
"""
|
|
Issue priority levels.
|
|
|
|
LOW: Nice to have, can be deferred
|
|
MEDIUM: Standard priority, should be done
|
|
HIGH: Important, should be prioritized
|
|
CRITICAL: Must be done immediately, blocking other work
|
|
"""
|
|
|
|
LOW = "low"
|
|
MEDIUM = "medium"
|
|
HIGH = "high"
|
|
CRITICAL = "critical"
|
|
|
|
|
|
class SyncStatus(str, PyEnum):
|
|
"""
|
|
External issue tracker synchronization status.
|
|
|
|
SYNCED: Local and remote are in sync
|
|
PENDING: Local changes waiting to be pushed
|
|
CONFLICT: Merge conflict between local and remote
|
|
ERROR: Synchronization failed due to an error
|
|
"""
|
|
|
|
SYNCED = "synced"
|
|
PENDING = "pending"
|
|
CONFLICT = "conflict"
|
|
ERROR = "error"
|
|
|
|
|
|
class SprintStatus(str, PyEnum):
|
|
"""
|
|
Sprint lifecycle status.
|
|
|
|
PLANNED: Sprint has been created but not started
|
|
ACTIVE: Sprint is currently in progress
|
|
COMPLETED: Sprint has been finished successfully
|
|
CANCELLED: Sprint was cancelled before completion
|
|
"""
|
|
|
|
PLANNED = "planned"
|
|
ACTIVE = "active"
|
|
COMPLETED = "completed"
|
|
CANCELLED = "cancelled"
|