diff --git a/pkg/cli/README.md b/pkg/cli/README.md index 8e025388b83..b10c44e1482 100644 --- a/pkg/cli/README.md +++ b/pkg/cli/README.md @@ -571,7 +571,7 @@ This appendix is generated from the current non-test Go source files in this pac | `audit_cross_run.go` | `DomainRunStatus` | `type DomainRunStatus struct { RunID int64 `json:"run_id"` Status string `json:"status"` // "allowed", "denied", "mixed", "absent" Allowed int `json:"allowed"` Blocked int `json:"blocked"` }` | DomainRunStatus records the status of a domain in a single run. | | `audit_cross_run.go` | `ErrorTrendData` | `type ErrorTrendData struct { RunsWithErrors int `json:"runs_with_errors"` TotalErrors int `json:"total_errors"` AvgErrorsPerRun float64 `json:"avg_errors_per_run"` RunsWithWarnings int `json:"runs_with_warnings"` TotalWarnings int `json:"total_warnings"` }` | ErrorTrendData summarizes error and warning patterns across runs. | | `audit_cross_run.go` | `MCPServerCrossRunHealth` | `type MCPServerCrossRunHealth struct { ServerName string `json:"server_name"` RunsConnected int `json:"runs_connected"` // Runs where server was used (appeared in tool usage) TotalRuns int `json:"total_runs"` TotalCalls int `json:"total_calls"` TotalErrors int `json:"total_errors"` ErrorRate float64 `json:"error_rate"` // 0.0–1.0 Unreliable bool `json:"unreliable"` // True if error_rate > 0.10 or connected < 75% of runs }` | MCPServerCrossRunHealth describes the health of a single MCP server across runs. | -| `audit_report.go` | `JobStepData` | `type JobStepData struct { Name string `json:"name"` Status string `json:"status,omitempty"` Conclusion string `json:"conclusion,omitempty"` }` | JobStepData contains information about an individual workflow job step. | +| `audit_report.go` | `JobStepData` | `type JobStepData = JobStep` | JobStepData is an alias for JobStep (see logs_models.go). | | `audit_report.go` | `MCPServerStats` | `type MCPServerStats struct { ServerName string `json:"server_name" console:"header:Server"` // RequestCount is kept for backward-compatible report schemas that label per-server // request volume; in MCP usage summaries this currently mirrors ToolCallCount. RequestCount int `json:"request_count" console:"header:Requests"` ToolCallCount int `json:"tool_call_count" console:"header:Tool Calls"` TotalInputSize int `json:"total_input_size" console:"header:Total Input,format:number"` TotalOutputSize int `json:"total_output_size" console:"header:Total Output,format:number"` AvgDuration string `json:"avg_duration,omitempty" console:"header:Avg Duration,omitempty"` ErrorCount int `json:"error_count,omitempty" console:"header:Errors,omitempty"` }` | MCPServerStats contains server-level statistics | | `audit_report.go` | `OverviewDisplay` | `type OverviewDisplay struct { RunID int64 `console:"header:Run ID"` Workflow string `console:"header:Workflow"` Status string `console:"header:Status"` Duration string `console:"header:Duration,omitempty"` Event string `console:"header:Event"` Branch string `console:"header:Branch"` URL string `console:"header:URL"` Files string `console:"header:Files,omitempty"` Experiment string `console:"header:Experiment,omitempty"` }` | OverviewDisplay is a display-optimized version of OverviewData for console rendering | | `audit_report_experiments.go` | `ExperimentData` | `type ExperimentData struct { // Assignments maps each experiment name to the variant selected for this run. // e.g. {"caveman": "yes", "style": "concise"} Assignments map[string]string `json:"assignments"` // CumulativeCounts maps each experiment name to a per-variant invocation counter. // e.g. {"caveman": {"yes": 3, "no": 2}} CumulativeCounts map[string]map[string]int `json:"cumulative_counts,omitempty"` }` | ExperimentData represents the A/B experiment assignments for a single workflow run. | diff --git a/pkg/cli/audit_report.go b/pkg/cli/audit_report.go index a4937bdedbb..30b8ecaec0a 100644 --- a/pkg/cli/audit_report.go +++ b/pkg/cli/audit_report.go @@ -125,12 +125,9 @@ type JobData struct { Steps []JobStepData `json:"steps,omitempty"` } -// JobStepData contains information about an individual workflow job step. -type JobStepData struct { - Name string `json:"name"` - Status string `json:"status,omitempty"` - Conclusion string `json:"conclusion,omitempty"` -} +// JobStepData is an alias for JobStep, kept to avoid renaming the existing +// "Data" suffixed usages of this type within this package. +type JobStepData = JobStep // FileInfo contains information about downloaded artifact files type FileInfo struct { @@ -383,9 +380,7 @@ func buildAuditJobs(jobDetails []JobInfoWithDuration) []JobData { Name: jobDetail.Name, Status: jobDetail.Status, Conclusion: jobDetail.Conclusion, - Steps: sliceutil.Map(jobDetail.Steps, func(step JobStep) JobStepData { - return JobStepData(step) - }), + Steps: jobDetail.Steps, } if jobDetail.Duration > 0 { job.Duration = timeutil.FormatDuration(jobDetail.Duration)