feat(awooop): expose ai automation work items
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 18s
CD Pipeline / build-and-deploy (push) Successful in 5m18s
CD Pipeline / post-deploy-checks (push) Successful in 1m5s

This commit is contained in:
Your Name
2026-06-29 15:35:47 +08:00
parent 91edba1a27
commit e8228fd2c4
6 changed files with 234 additions and 4 deletions

View File

@@ -88,6 +88,15 @@ type RuntimeReceiptReadback = {
learning_source_family_count?: number | null;
} | null;
} | null;
work_item_progress?: {
rollups?: {
work_item_count?: number | null;
completed_count?: number | null;
in_progress_count?: number | null;
pending_count?: number | null;
blocked_count?: number | null;
} | null;
} | null;
latest_flow_closure?: {
apply_op_id?: string | null;
incident_id?: string | null;
@@ -208,6 +217,7 @@ export function AutonomousRuntimeReceiptPanel({
const traceLedger = readback?.trace_ledger;
const logTaxonomy = readback?.log_integration_taxonomy;
const logRollups = logTaxonomy?.rollups ?? {};
const workItemRollups = readback?.work_item_progress?.rollups ?? {};
const latestFlow = readback?.latest_flow_closure;
const rollups = payload?.rollups ?? {};
const closed = ledger?.closed === true || latestFlow?.closed === true;
@@ -400,7 +410,7 @@ export function AutonomousRuntimeReceiptPanel({
})}
</div>
<div className="grid gap-px border-t border-[#e0ddd4] bg-[#e0ddd4] md:grid-cols-4">
<div className="grid gap-px border-t border-[#e0ddd4] bg-[#e0ddd4] md:grid-cols-5">
<div className="bg-white px-4 py-3">
<p className="text-xs font-semibold text-[#77736a]">{t("taxonomy.sources")}</p>
<p className="mt-1 text-sm font-semibold text-[#141413]">
@@ -427,6 +437,21 @@ export function AutonomousRuntimeReceiptPanel({
{numberValue(logRollups.learning_source_family_count)}
</p>
</div>
<div className="bg-white px-4 py-3">
<p className="text-xs font-semibold text-[#77736a]">{t("taxonomy.workItems")}</p>
<p className="mt-1 text-sm font-semibold text-[#141413]">
{numberValue(rollups.live_work_item_completed_count ?? workItemRollups.completed_count)}
{" / "}
{numberValue(rollups.live_work_item_count ?? workItemRollups.work_item_count)}
</p>
<p className="mt-1 text-xs leading-5 text-[#5f5b52]">
{t("taxonomy.workItemsDetail", {
active: numberValue(rollups.live_work_item_in_progress_count ?? workItemRollups.in_progress_count),
pending: numberValue(rollups.live_work_item_pending_count ?? workItemRollups.pending_count),
blocked: numberValue(rollups.live_work_item_blocked_count ?? workItemRollups.blocked_count),
})}
</p>
</div>
</div>
{mode === "full" ? (