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
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:
@@ -11355,7 +11355,9 @@
|
||||
"sources": "Log sources",
|
||||
"labels": "Label dimensions",
|
||||
"events": "Classified events",
|
||||
"learning": "Learning sources"
|
||||
"learning": "Learning sources",
|
||||
"workItems": "Work items",
|
||||
"workItemsDetail": "Active {active} / pending {pending} / blocked {blocked}"
|
||||
},
|
||||
"policy": {
|
||||
"label": "Controlled risk tiers",
|
||||
|
||||
@@ -11355,7 +11355,9 @@
|
||||
"sources": "Log 來源",
|
||||
"labels": "貼標維度",
|
||||
"events": "分類事件",
|
||||
"learning": "學習來源"
|
||||
"learning": "學習來源",
|
||||
"workItems": "工作項目",
|
||||
"workItemsDetail": "進行 {active} / 待辦 {pending} / 阻塞 {blocked}"
|
||||
},
|
||||
"policy": {
|
||||
"label": "受控風險層",
|
||||
|
||||
@@ -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" ? (
|
||||
|
||||
Reference in New Issue
Block a user