WuYongJie 5821d73291 初始提交:3D家具安装展示系统
包含:
- furniture-3d-system:Next.js 16 全栈应用(资产中心、产品管理、3D装配动画)
- autocad-plugin:AutoCAD 家具导出插件源码
- 资产中心改造:编辑弹窗化、删除功能、Toast反馈、自定义Select组件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 14:00:19 +08:00

77 lines
2.3 KiB
PowerShell

param(
[Parameter(Mandatory = $true)]
[string]$RunPath
)
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
if (-not (Test-Path -LiteralPath $RunPath)) {
throw "Run path not found: $RunPath"
}
$manifestPath = Join-Path $RunPath "manifest.json"
if (-not (Test-Path -LiteralPath $manifestPath)) {
throw "manifest.json not found: $manifestPath"
}
$manifest = (Get-Content -LiteralPath $manifestPath -Raw) | ConvertFrom-Json
$roles = @($manifest.roles)
$totalCount = $roles.Count
$doneCount = @($roles | Where-Object { $_.status -eq "done" }).Count
$blockedCount = @($roles | Where-Object { $_.status -eq "blocked" -or $_.status -eq "rejected" }).Count
$inProgressCount = @($roles | Where-Object { $_.status -eq "in_progress" }).Count
$completion = 0
if ($totalCount -gt 0) {
$completion = [math]::Round(($doneCount / $totalCount) * 100, 2)
}
$dashboardRows = foreach ($role in $roles) {
[pscustomobject]@{
RoleId = $role.id
Role = $role.name
Type = $role.type
Status = $role.status
Rule = $role.rule
Report = $role.reportPath
}
}
Write-Host ""
Write-Host "=== Multi-Agent Dashboard ==="
Write-Host "Run ID: $($manifest.runId)"
Write-Host "Task: $($manifest.task)"
Write-Host "Project: $($manifest.project)"
Write-Host "Created At: $($manifest.createdAt)"
Write-Host "Updated At: $($manifest.updatedAt)"
Write-Host ""
Write-Host "Progress: $doneCount/$totalCount ($completion%)"
Write-Host "In Progress: $inProgressCount | Blocked/Rejected: $blockedCount"
Write-Host ""
$dashboardRows | Format-Table -AutoSize
$reviewOrder = @($manifest.reviewOrder)
$missingReviewRoles = @()
foreach ($reviewRoleId in $reviewOrder) {
$reviewRole = $roles | Where-Object { $_.id -eq $reviewRoleId } | Select-Object -First 1
if (-not $reviewRole -or $reviewRole.status -ne "done") {
$missingReviewRoles += $reviewRoleId
}
}
Write-Host ""
if ($blockedCount -gt 0) {
Write-Host "State: blocked items exist, resolve blocked/rejected roles first."
} elseif ($doneCount -lt $totalCount) {
Write-Host "State: running, not fully completed yet."
} else {
Write-Host "State: all roles completed, ready for final summary."
}
if ($missingReviewRoles.Count -gt 0) {
Write-Host "Review Gate: pending review roles -> $($missingReviewRoles -join ', ')"
} else {
Write-Host "Review Gate: rule/security/performance reviews are complete."
}