diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index adfd9830..8c33176b 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -9047,6 +9047,10 @@ "groups": "Groups", "contract": "Contract" }, + "receipt": { + "inputs": "Receipt inputs", + "outputs": "Receipt outputs" + }, "tagLabels": { "projectId": "Project", "product": "Product", diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 11034816..4ab0f1aa 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -9047,6 +9047,10 @@ "groups": "分群鍵", "contract": "Contract" }, + "receipt": { + "inputs": "Receipt inputs", + "outputs": "Receipt outputs" + }, "tagLabels": { "projectId": "專案", "product": "產品", diff --git a/apps/web/src/app/[locale]/awooop/work-items/page.tsx b/apps/web/src/app/[locale]/awooop/work-items/page.tsx index 6294b9c2..f9534a68 100644 --- a/apps/web/src/app/[locale]/awooop/work-items/page.tsx +++ b/apps/web/src/app/[locale]/awooop/work-items/page.tsx @@ -1031,6 +1031,10 @@ type PriorityWorkOrderResponse = { ai_loop_current_blocker_id?: string | null; ai_loop_current_blocker_log_source_tag_count?: number | null; ai_loop_current_blocker_log_source_tag_keys?: string[] | null; + ai_loop_current_blocker_harbor_recovery_receipt_input_count?: number | null; + ai_loop_current_blocker_harbor_recovery_receipt_input_ids?: string[] | null; + ai_loop_current_blocker_harbor_recovery_receipt_output_contract_count?: number | null; + ai_loop_current_blocker_harbor_recovery_receipt_output_ids?: string[] | null; ai_loop_log_source_grouping_key_count?: number | null; ai_loop_log_source_grouping_keys?: string[] | null; ai_loop_log_source_tagging_contract_count?: number | null; @@ -1039,6 +1043,8 @@ type PriorityWorkOrderResponse = { evidence?: { ai_loop_current_blocker_log_source_tags?: AiLoopLogSourceTag[] | null; ai_loop_log_source_tagging_contract?: AiLoopLogSourceContract[] | null; + ai_loop_current_blocker_harbor_recovery_receipt_input_ids?: string[] | null; + ai_loop_current_blocker_harbor_recovery_receipt_output_ids?: string[] | null; } | null; }>; }; @@ -7784,6 +7790,14 @@ function AiLoopLogSourceTagsPanel({ const contracts = evidence?.ai_loop_log_source_tagging_contract ?? []; const groupingKeys = priority?.summary?.ai_loop_log_source_grouping_keys ?? []; const summary = priority?.summary; + const receiptInputIds = + summary?.ai_loop_current_blocker_harbor_recovery_receipt_input_ids ?? + evidence?.ai_loop_current_blocker_harbor_recovery_receipt_input_ids ?? + []; + const receiptOutputIds = + summary?.ai_loop_current_blocker_harbor_recovery_receipt_output_ids ?? + evidence?.ai_loop_current_blocker_harbor_recovery_receipt_output_ids ?? + []; const labelMap: Record = { project_id: t("tagLabels.projectId"), product: t("tagLabels.product"), @@ -7816,6 +7830,24 @@ function AiLoopLogSourceTagsPanel({ value: summary?.ai_loop_log_source_tagging_contract_count ?? contracts.length, }, ]; + const receiptMetrics = [ + { + key: "inputs", + label: t("receipt.inputs"), + value: + summary?.ai_loop_current_blocker_harbor_recovery_receipt_input_count ?? + receiptInputIds.length, + ids: receiptInputIds, + }, + { + key: "outputs", + label: t("receipt.outputs"), + value: + summary?.ai_loop_current_blocker_harbor_recovery_receipt_output_contract_count ?? + receiptOutputIds.length, + ids: receiptOutputIds, + }, + ]; return (
+
+ {receiptMetrics.map((metric) => ( +
+
+ + {metric.label} + + + {loading ? "--" : metric.value} + +
+
+ {metric.ids.slice(0, 6).map((id) => ( + + {id} + + ))} +
+
+ ))} +