Add 6 new fields to AgentType for better organization and UI display: - category: enum for grouping (development, design, quality, etc.) - icon: Lucide icon identifier for UI - color: hex color code for visual distinction - sort_order: display ordering within categories - typical_tasks: list of tasks the agent excels at - collaboration_hints: agent slugs that work well together Backend changes: - Add AgentTypeCategory enum to enums.py - Update AgentType model with 6 new columns and indexes - Update schemas with validators for new fields - Add category filter and /grouped endpoint to routes - Update CRUD with get_grouped_by_category method - Update seed data with categories for all 27 agents - Add migration 0007 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
196 lines
4.8 KiB
Python
196 lines
4.8 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 ProjectComplexity(str, PyEnum):
|
|
"""
|
|
Project complexity level for estimation and planning.
|
|
|
|
SCRIPT: Simple automation or script-level work
|
|
SIMPLE: Straightforward feature or fix
|
|
MEDIUM: Standard complexity with some architectural considerations
|
|
COMPLEX: Large-scale feature requiring significant design work
|
|
"""
|
|
|
|
SCRIPT = "script"
|
|
SIMPLE = "simple"
|
|
MEDIUM = "medium"
|
|
COMPLEX = "complex"
|
|
|
|
|
|
class ClientMode(str, PyEnum):
|
|
"""
|
|
How the client prefers to interact with agents.
|
|
|
|
TECHNICAL: Client is technical and prefers detailed updates
|
|
AUTO: Agents automatically determine communication level
|
|
"""
|
|
|
|
TECHNICAL = "technical"
|
|
AUTO = "auto"
|
|
|
|
|
|
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 IssueType(str, PyEnum):
|
|
"""
|
|
Issue type for categorization and hierarchy.
|
|
|
|
EPIC: Large feature or body of work containing stories
|
|
STORY: User-facing feature or requirement
|
|
TASK: Technical work item
|
|
BUG: Defect or issue to be fixed
|
|
"""
|
|
|
|
EPIC = "epic"
|
|
STORY = "story"
|
|
TASK = "task"
|
|
BUG = "bug"
|
|
|
|
|
|
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
|
|
IN_REVIEW: Sprint work is done, demo/review pending
|
|
COMPLETED: Sprint has been finished successfully
|
|
CANCELLED: Sprint was cancelled before completion
|
|
"""
|
|
|
|
PLANNED = "planned"
|
|
ACTIVE = "active"
|
|
IN_REVIEW = "in_review"
|
|
COMPLETED = "completed"
|
|
CANCELLED = "cancelled"
|
|
|
|
|
|
class AgentTypeCategory(str, PyEnum):
|
|
"""
|
|
Category classification for agent types.
|
|
|
|
Used for grouping and filtering agents in the UI.
|
|
|
|
DEVELOPMENT: Product, project, and engineering roles
|
|
DESIGN: UI/UX and design research roles
|
|
QUALITY: QA and security engineering
|
|
OPERATIONS: DevOps and MLOps
|
|
AI_ML: Machine learning and AI specialists
|
|
DATA: Data science and engineering
|
|
LEADERSHIP: Technical leadership roles
|
|
DOMAIN_EXPERT: Industry and domain specialists
|
|
"""
|
|
|
|
DEVELOPMENT = "development"
|
|
DESIGN = "design"
|
|
QUALITY = "quality"
|
|
OPERATIONS = "operations"
|
|
AI_ML = "ai_ml"
|
|
DATA = "data"
|
|
LEADERSHIP = "leadership"
|
|
DOMAIN_EXPERT = "domain_expert"
|