report

package
v0.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func JSON

func JSON(rep Report) ([]byte, error)

func Markdown

func Markdown(rep Report) string

Types

type CompetitorSummary

type CompetitorSummary struct {
	Key              string       `json:"key"`
	Agent            string       `json:"agent"`
	Browser          string       `json:"browser"`
	Runs             int          `json:"runs"`
	Successes        int          `json:"successes"`
	Failures         int          `json:"failures"`
	SuccessRate      float64      `json:"success_rate"`
	TotalTokens      int          `json:"total_tokens"`
	TokensPerSuccess float64      `json:"tokens_per_success"`
	MedianDurationMs float64      `json:"median_duration_ms"`
	P95DurationMs    float64      `json:"p95_duration_ms"`
	MedianToolCalls  float64      `json:"median_tool_calls"`
	UsageBreakdown   UsageSources `json:"usage_breakdown"`
	Score            float64      `json:"score"`
}

type Overview

type Overview struct {
	RunCount        int `json:"run_count"`
	TaskCount       int `json:"task_count"`
	ExactUsageRuns  int `json:"exact_usage_runs"`
	MixedUsageRuns  int `json:"mixed_usage_runs"`
	EstimatedRuns   int `json:"estimated_usage_runs"`
	InvalidRuns     int `json:"invalid_runs"`
	SuccessfulRuns  int `json:"successful_runs"`
	FailedRuns      int `json:"failed_runs"`
	CompetitorCount int `json:"competitor_count"`
}

type Report

type Report struct {
	SuiteName     string              `json:"suite_name"`
	Description   string              `json:"description,omitempty"`
	GeneratedAt   time.Time           `json:"generated_at"`
	Weights       ScoreWeights        `json:"weights"`
	Tasks         []Task              `json:"tasks,omitempty"`
	Overview      Overview            `json:"overview"`
	Competitors   []CompetitorSummary `json:"competitors"`
	TaskSummaries []TaskSummary       `json:"task_summaries"`
}

func Build

func Build(suite Suite) (Report, error)

type Run

type Run struct {
	TaskID       string `json:"task_id"`
	Agent        string `json:"agent"`
	Browser      string `json:"browser"`
	RunID        string `json:"run_id,omitempty"`
	Success      bool   `json:"success"`
	DurationMs   int64  `json:"duration_ms"`
	ToolCalls    int    `json:"tool_calls"`
	InputTokens  int    `json:"input_tokens,omitempty"`
	OutputTokens int    `json:"output_tokens,omitempty"`
	InputChars   int    `json:"input_chars,omitempty"`
	OutputChars  int    `json:"output_chars,omitempty"`
	Notes        string `json:"notes,omitempty"`
}

type ScoreWeights

type ScoreWeights struct {
	Success   float64 `json:"success"`
	Tokens    float64 `json:"tokens"`
	Duration  float64 `json:"duration"`
	ToolCalls float64 `json:"tool_calls"`
}

func DefaultWeights

func DefaultWeights() ScoreWeights

type Suite

type Suite struct {
	Name        string       `json:"name"`
	Description string       `json:"description,omitempty"`
	Weights     ScoreWeights `json:"weights,omitempty"`
	Tasks       []Task       `json:"tasks,omitempty"`
	Runs        []Run        `json:"runs"`
}

type Task

type Task struct {
	ID          string `json:"id"`
	Title       string `json:"title,omitempty"`
	Group       string `json:"group,omitempty"`
	Description string `json:"description,omitempty"`
}

type TaskSummary

type TaskSummary struct {
	TaskID      string              `json:"task_id"`
	Title       string              `json:"title"`
	Group       string              `json:"group,omitempty"`
	Competitors []CompetitorSummary `json:"competitors"`
}

type UsageSources

type UsageSources struct {
	Exact     int `json:"exact"`
	Mixed     int `json:"mixed"`
	Estimated int `json:"estimated"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL