feat(agents): implement Code Commander module (Phases 1-5)
- Phase 1: Infrastructure (state, prompts, registry) - Phase 2: Execution engine (AI adapters, security classifier, executors) - Phase 3: Agent integration (graph nodes, routing) - Phase 4: Streaming interaction (PTY terminal, WebSocket) - Phase 5: Frontend integration (Vue components)
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime, timezone
|
||||
from enum import Enum
|
||||
from typing import Any, Literal
|
||||
from uuid import uuid4
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
@@ -13,6 +15,18 @@ InterruptStatus = Literal["requested", "acknowledged", "resolved"]
|
||||
BudgetMode = Literal["direct", "collaboration"]
|
||||
|
||||
|
||||
class CodeProviderType(str, Enum):
|
||||
CLAUDE = "claude"
|
||||
GEMINI = "gemini"
|
||||
CODEX = "codex"
|
||||
OPENCODE = "opencode"
|
||||
|
||||
|
||||
class RiskLevelType(str, Enum):
|
||||
LOW = "low"
|
||||
HIGH = "high"
|
||||
|
||||
|
||||
class InterruptRecord(BaseModel):
|
||||
interrupt_id: str
|
||||
reason: str
|
||||
@@ -83,3 +97,37 @@ class TaskResult(BaseModel):
|
||||
budget_snapshot: CollaborationBudget | dict[str, Any] | None = None
|
||||
next_action: str | None = None
|
||||
output_data: dict[str, Any] | None = None
|
||||
|
||||
|
||||
class CodeTaskType(str, Enum):
|
||||
DEMO = "demo"
|
||||
PROJECT = "project"
|
||||
MODIFICATION = "modification"
|
||||
|
||||
|
||||
class CodeTask(BaseModel):
|
||||
"""代码任务请求模型"""
|
||||
|
||||
task_id: str = Field(default_factory=lambda: str(uuid4()))
|
||||
task_type: CodeTaskType
|
||||
ai_provider: CodeProviderType
|
||||
sandbox_mode: bool = False
|
||||
workspace_path: str | None = None
|
||||
user_prompt: str
|
||||
parent_task_id: str | None = None
|
||||
thread_id: str | None = None
|
||||
message_id: str | None = None
|
||||
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
|
||||
|
||||
class CodeExecutionResultSchema(BaseModel):
|
||||
"""代码执行结果模型 (API 响应用)"""
|
||||
|
||||
success: bool
|
||||
message: str
|
||||
files_created: list[str] = Field(default_factory=list)
|
||||
output: str = ""
|
||||
error: str | None = None
|
||||
exit_code: int = 0
|
||||
execution_time: float | None = None
|
||||
sandbox_session_id: str | None = None
|
||||
|
||||
Reference in New Issue
Block a user