auto-sync: 2026-05-18 11:35:05
This commit is contained in:
@@ -30,13 +30,13 @@ class Task:
|
||||
risk_level: str = "standard"
|
||||
estimated_duration_minutes: Optional[int] = None
|
||||
escalated: bool = False
|
||||
# v2.6.1 路由扩展字段(司马懿 BUG-1:不改 assignee 语义)
|
||||
current_agent: Optional[str] = None # 当前阶段执行者(随状态流转更新)
|
||||
previous_agent: Optional[str] = None # 前一阶段执行者(审计追溯)
|
||||
next_capability: Optional[str] = None # Agent 声明的下一步需要的能力(Mode B)
|
||||
# v2.7 三级层次结构
|
||||
card_id: Optional[str] = None # 所属 Card
|
||||
stage: Optional[str] = None # 所属 Stage(Card 内的进度标签)
|
||||
# v2.6.1 路由扩展字段
|
||||
current_agent: Optional[str] = None
|
||||
previous_agent: Optional[str] = None
|
||||
next_capability: Optional[str] = None
|
||||
# v2.7 SubTask 层
|
||||
stage: Optional[str] = None # 所属 Stage 标签
|
||||
stages_json: str = "[]" # 动态 Stage 定义(仅顶层 Task)
|
||||
|
||||
@classmethod
|
||||
def from_row(cls, row: Any) -> Task:
|
||||
@@ -51,7 +51,6 @@ class Comment:
|
||||
comment_type: str = "general"
|
||||
body: str = ""
|
||||
mentions: Optional[str] = None # JSON array string
|
||||
card_id: Optional[str] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
@classmethod
|
||||
@@ -70,7 +69,6 @@ class Output:
|
||||
summary: Optional[str] = None
|
||||
metadata: Optional[str] = None # JSON
|
||||
attempt_number: int = 1
|
||||
card_id: Optional[str] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
@classmethod
|
||||
@@ -116,7 +114,6 @@ class Event:
|
||||
agent: Optional[str] = None
|
||||
event_type: str = ""
|
||||
detail: Optional[str] = None # JSON
|
||||
card_id: Optional[str] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
@classmethod
|
||||
@@ -138,7 +135,6 @@ class Review:
|
||||
consensus_reached: bool = False
|
||||
summary: str = ""
|
||||
detail_path: Optional[str] = None
|
||||
card_id: Optional[str] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
@classmethod
|
||||
@@ -173,39 +169,3 @@ class Experience:
|
||||
d = {k: row[k] for k in row.keys()}
|
||||
d.pop("tags", None) # tags queried separately
|
||||
return cls(**d)
|
||||
|
||||
|
||||
# ======================================================================
|
||||
# v2.7 Card 模型
|
||||
# ======================================================================
|
||||
|
||||
CARD_VALID_STATUSES = frozenset({
|
||||
"active", "pending", "working", "review",
|
||||
"done", "failed", "blocked",
|
||||
"cancelled", "archived", "deleted",
|
||||
})
|
||||
|
||||
CARD_MANUAL_STATUSES = frozenset({"cancelled", "archived", "deleted"})
|
||||
|
||||
CARD_TYPE_SET = frozenset({
|
||||
"default", "strategy", "data_pipeline", "research",
|
||||
"platform", "bugfix", "mail",
|
||||
})
|
||||
|
||||
|
||||
@dataclass
|
||||
class Card:
|
||||
id: str
|
||||
name: str
|
||||
description: str = ""
|
||||
card_type: str = "default"
|
||||
stages_json: str = "[]" # AI 生成的阶段定义 JSON
|
||||
labels_json: str = "[]"
|
||||
status: str = "active" # Card 状态(聚合 + 人工操作)
|
||||
created_at: Optional[str] = None
|
||||
updated_at: Optional[str] = None
|
||||
archived_at: Optional[str] = None
|
||||
|
||||
@classmethod
|
||||
def from_row(cls, row: Any) -> Card:
|
||||
return cls(**{k: row[k] for k in row.keys()})
|
||||
|
||||
Reference in New Issue
Block a user