auto-sync: 2026-05-18 11:35:05

This commit is contained in:
cfdaily
2026-05-18 11:35:05 +08:00
parent b5136eebe8
commit e645fc2483
+7 -47
View File
@@ -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 # 所属 StageCard 内的进度标签
# 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()})