fix(awooop): label outbound timeline events
This commit is contained in:
@@ -200,6 +200,36 @@ def _approval_step_title(tool_name: str, step_seq: int) -> str:
|
||||
return f"Step {step_seq}: {tool_name}"
|
||||
|
||||
|
||||
def _outbound_timeline_title(
|
||||
channel_type: str,
|
||||
message_type: str,
|
||||
content_preview: str | None,
|
||||
) -> str:
|
||||
"""將 legacy Telegram outbound 分類成 Operator 看得懂的語義標題。"""
|
||||
channel = channel_type.upper()
|
||||
preview = content_preview or ""
|
||||
if "RUNBOOK REVIEW" in preview:
|
||||
return f"{channel}:Runbook 待人工審核"
|
||||
if "AI 治理警報" in preview:
|
||||
return f"{channel}:AI 治理警報"
|
||||
if "HANDOFF REQUIRED" in preview or "AI 自動修復失敗" in preview:
|
||||
return f"{channel}:AI 自動修復失敗,已轉人工"
|
||||
if "AUTO RESOLVED" in preview or "AI 自動修復完成" in preview:
|
||||
return f"{channel}:AI 自動修復完成"
|
||||
if "ESCALATION" in preview or "事故升級" in preview:
|
||||
return f"{channel}:事故升級通知"
|
||||
if "ACTION REQUIRED" in preview:
|
||||
return f"{channel}:告警審批卡"
|
||||
|
||||
fallback = {
|
||||
"approval_request": "人工審批請求",
|
||||
"error": "錯誤回覆",
|
||||
"final": "處置結果",
|
||||
"interim": "漸進式狀態回饋",
|
||||
}.get(message_type, message_type)
|
||||
return f"{channel}:{fallback}"
|
||||
|
||||
|
||||
async def get_run_detail(
|
||||
run_id: str,
|
||||
project_id: str | None = None,
|
||||
@@ -411,10 +441,15 @@ async def get_run_detail(
|
||||
_timeline_item(
|
||||
ts=row.sent_at or row.queued_at,
|
||||
kind="outbound",
|
||||
title=f"{row.channel_type} 出站:{row.message_type}",
|
||||
title=_outbound_timeline_title(
|
||||
row.channel_type,
|
||||
row.message_type,
|
||||
row.content_preview,
|
||||
),
|
||||
status=row.send_status,
|
||||
summary=row.content_preview or row.send_error,
|
||||
metadata={
|
||||
"message_type": row.message_type,
|
||||
"provider_message_id": row.provider_message_id,
|
||||
"triggered_by_state": row.triggered_by_state,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user