usage

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package usage tracks model token and cost estimates.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RenderText

func RenderText(w io.Writer, report Report)

RenderText writes a human-readable usage report.

Types

type BlockUsage

type BlockUsage struct {
	Type   string `json:"type"`
	Count  int    `json:"count"`
	Tokens int    `json:"tokens"`
}

BlockUsage reports block counts and token estimates for one content block type.

type Report

type Report struct {
	Kind         string         `json:"kind"`
	Action       string         `json:"action"`
	Status       string         `json:"status"`
	SessionID    string         `json:"session_id,omitempty"`
	Model        string         `json:"model"`
	MessageCount int            `json:"message_count"`
	Summary      Summary        `json:"summary"`
	Roles        []RoleUsage    `json:"roles"`
	Blocks       []BlockUsage   `json:"blocks"`
	ToolUse      ToolUseSummary `json:"tool_use"`
}

Report summarizes usage for a session or message set.

func BuildReport

func BuildReport(sessionID string, model string, messages []anthropic.Message) Report

BuildReport returns a usage report using estimated token counts.

func BuildReportWithUsage

func BuildReportWithUsage(sessionID string, model string, messages []anthropic.Message, actual []anthropic.Usage) Report

BuildReportWithUsage returns a usage report using actual provider usage payloads when they are available.

type RoleUsage

type RoleUsage struct {
	Role     string `json:"role"`
	Messages int    `json:"messages"`
	Tokens   int    `json:"tokens"`
}

RoleUsage reports message and token totals for one role.

type Summary

type Summary struct {
	InputTokens              int     `json:"input_tokens"`
	OutputTokens             int     `json:"output_tokens"`
	CacheCreationInputTokens int     `json:"cache_creation_input_tokens,omitempty"`
	CacheReadInputTokens     int     `json:"cache_read_input_tokens,omitempty"`
	TotalTokens              int     `json:"total_tokens"`
	EstimatedUSD             float64 `json:"estimated_usd"`
	Source                   string  `json:"source"`
}

Summary contains token totals and estimated or actual cost information.

func ActualSummary

func ActualSummary(usages []anthropic.Usage, model string) (Summary, bool)

ActualSummary returns an aggregate actual-usage summary when any token usage payloads are present.

func Estimate

func Estimate(messages []anthropic.Message, model string) Summary

Estimate returns a token and cost estimate for messages with no provider usage payloads.

type ToolUseSummary

type ToolUseSummary struct {
	ToolUses    int `json:"tool_uses"`
	ToolResults int `json:"tool_results"`
	Errors      int `json:"errors"`
}

ToolUseSummary reports tool-use, tool-result, and error block counts.

Jump to

Keyboard shortcuts

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