diff --git a/apps/web/src/app/traffic/page.tsx b/apps/web/src/app/traffic/page.tsx index 914fd3e..5492c2d 100644 --- a/apps/web/src/app/traffic/page.tsx +++ b/apps/web/src/app/traffic/page.tsx @@ -99,6 +99,32 @@ function explainAction(action: string) { return EVENT_LABELS[action] || action; } +function displayEntityId(value: string | null | undefined) { + if (!value || value === "-") return "-"; + const normalized = value.toLowerCase(); + if (normalized.includes("growth-kit")) return "成長導流素材"; + if (normalized.includes("demand-campaign")) return "需求導流素材"; + if (normalized.includes("onboarding")) return "合作說明"; + if (normalized.includes("integration")) return "整合目錄"; + if (normalized.includes("referral-status")) return "引薦狀態"; + if (normalized.includes("proposal-intake")) return "提案入口"; + if (value.length > 42) return `${value.slice(0, 18)}...${value.slice(-8)}`; + return value; +} + +function displayResponseSummary(value: string | null | undefined) { + if (!value || value === "unknown") return "n/a"; + const normalized = value.toLowerCase(); + if (normalized.includes("growth_kit")) return "已發出成長導流素材"; + if (normalized.includes("demand_campaign")) return "已發出需求導流素材"; + if (normalized.includes("referral_status")) return "已回傳引薦狀態"; + if (normalized.includes("onboarding")) return "已回傳合作說明"; + if (normalized.includes("integrations")) return "已回傳整合目錄"; + if (normalized.includes("proposal_view")) return "已記錄提案頁查看"; + if (normalized.includes("proposal")) return "已記錄提案流程"; + return value.replace(/_/g, " "); +} + type TrafficActorClass = "a2a" | "external_ai_agent" | "likely_ai_agent" | "other_external"; const AI_USER_AGENT_HINTS = [ @@ -925,7 +951,7 @@ export default async function TrafficDashboard({
目前區間內尚無外部 Actor。
@@ -941,7 +967,7 @@ export default async function TrafficDashboard({