digest

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package digest provides weekly digest generation for TokMan

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AnomalyEvent

type AnomalyEvent struct {
	Type        string
	Description string
	Severity    string
	Date        time.Time
}

AnomalyEvent represents an anomaly in digest

type BudgetStatus

type BudgetStatus struct {
	MonthlyBudget  float64
	MonthlySpend   float64
	UsagePercent   float64
	ProjectedSpend float64
	DaysRemaining  int
	IsAtRisk       bool
}

BudgetStatus represents budget status

type DailyCost

type DailyCost struct {
	Date   time.Time
	Cost   float64
	Tokens int64
}

DailyCost represents daily cost breakdown

type DigestGenerator

type DigestGenerator struct {
	// contains filtered or unexported fields
}

DigestGenerator generates weekly digests

func NewDigestGenerator

func NewDigestGenerator() *DigestGenerator

NewDigestGenerator creates a new digest generator

func (*DigestGenerator) GenerateHTML

func (dg *DigestGenerator) GenerateHTML(digest *WeeklyDigest) (string, error)

GenerateHTML generates an HTML digest

func (*DigestGenerator) GenerateJSON

func (dg *DigestGenerator) GenerateJSON(digest *WeeklyDigest) ([]byte, error)

GenerateJSON generates a JSON digest

func (*DigestGenerator) GenerateMarkdown

func (dg *DigestGenerator) GenerateMarkdown(digest *WeeklyDigest) string

GenerateMarkdown generates a markdown digest

type ModelUsage

type ModelUsage struct {
	Model      string
	Requests   int64
	Tokens     int64
	Cost       float64
	Percentage float64
}

ModelUsage represents model usage in digest

type TeamUsage

type TeamUsage struct {
	Team       string
	Requests   int64
	Cost       float64
	Percentage float64
}

TeamUsage represents team usage in digest

type WeeklyDigest

type WeeklyDigest struct {
	WeekStart       time.Time
	WeekEnd         time.Time
	TotalCost       float64
	TotalTokens     int64
	TotalRequests   int64
	AvgCostPerReq   float64
	CostChangePct   float64
	TokenChangePct  float64
	TopModels       []ModelUsage
	TopTeams        []TeamUsage
	DailyBreakdown  []DailyCost
	Anomalies       []AnomalyEvent
	Recommendations []string
	BudgetStatus    BudgetStatus
}

WeeklyDigest represents a weekly cost digest

type WeeklyDigestBuilder

type WeeklyDigestBuilder struct {
	// contains filtered or unexported fields
}

WeeklyDigestBuilder helps build weekly digests

func NewWeeklyDigestBuilder

func NewWeeklyDigestBuilder(weekStart time.Time) *WeeklyDigestBuilder

NewWeeklyDigestBuilder creates a new builder

func (*WeeklyDigestBuilder) AddDailyCost

func (b *WeeklyDigestBuilder) AddDailyCost(date time.Time, cost float64, tokens int64) *WeeklyDigestBuilder

AddDailyCost adds a daily cost entry

func (*WeeklyDigestBuilder) AddModel

AddModel adds a model to top models

func (*WeeklyDigestBuilder) AddRecommendation

func (b *WeeklyDigestBuilder) AddRecommendation(rec string) *WeeklyDigestBuilder

AddRecommendation adds a recommendation

func (*WeeklyDigestBuilder) Build

func (b *WeeklyDigestBuilder) Build() *WeeklyDigest

Build returns the completed digest

func (*WeeklyDigestBuilder) WithBudgetStatus

func (b *WeeklyDigestBuilder) WithBudgetStatus(status BudgetStatus) *WeeklyDigestBuilder

WithBudgetStatus sets budget status

func (*WeeklyDigestBuilder) WithTotalCost

func (b *WeeklyDigestBuilder) WithTotalCost(cost float64) *WeeklyDigestBuilder

WithTotalCost sets total cost

func (*WeeklyDigestBuilder) WithTotalRequests

func (b *WeeklyDigestBuilder) WithTotalRequests(requests int64) *WeeklyDigestBuilder

WithTotalRequests sets total requests

func (*WeeklyDigestBuilder) WithTotalTokens

func (b *WeeklyDigestBuilder) WithTotalTokens(tokens int64) *WeeklyDigestBuilder

WithTotalTokens sets total tokens

Jump to

Keyboard shortcuts

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