core

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CommonModelPricing = map[string]ModelPricing{

	"gpt-4o": {
		Model:            "gpt-4o",
		InputPerMillion:  2.50,
		OutputPerMillion: 10.00,
	},
	"gpt-4o-mini": {
		Model:            "gpt-4o-mini",
		InputPerMillion:  0.15,
		OutputPerMillion: 0.60,
	},
	"gpt-4.1": {
		Model:            "gpt-4.1",
		InputPerMillion:  2.00,
		OutputPerMillion: 8.00,
	},
	"gpt-4.1-mini": {
		Model:            "gpt-4.1-mini",
		InputPerMillion:  0.40,
		OutputPerMillion: 1.60,
	},
	"gpt-4.1-nano": {
		Model:            "gpt-4.1-nano",
		InputPerMillion:  0.10,
		OutputPerMillion: 0.40,
	},

	"claude-3.5-sonnet": {
		Model:            "claude-3.5-sonnet",
		InputPerMillion:  3.00,
		OutputPerMillion: 15.00,
	},
	"claude-3-haiku": {
		Model:            "claude-3-haiku",
		InputPerMillion:  0.25,
		OutputPerMillion: 1.25,
	},
	"claude-4-sonnet": {
		Model:            "claude-4-sonnet",
		InputPerMillion:  3.00,
		OutputPerMillion: 15.00,
	},
	"claude-4-opus": {
		Model:            "claude-4-opus",
		InputPerMillion:  15.00,
		OutputPerMillion: 75.00,
	},
}

CommonModelPricing provides pricing for popular models (updated April 2026). Use RegisterModelPricing to add or override entries at runtime.

Functions

func CalculateSavings

func CalculateSavings(tokensSaved int, model string) float64

CalculateSavings computes dollar savings from token reduction.

func CalculateTokensSaved

func CalculateTokensSaved(original, filtered string) int

CalculateTokensSaved computes token savings between original and filtered.

func EstimateTokens

func EstimateTokens(text string) int

EstimateTokens is the single source of truth for token estimation. Uses BPE tokenization when available and loaded, falls back to heuristic. Returns immediately with heuristic if BPE codec is still loading.

func RegisterModelPricing

func RegisterModelPricing(model string, input, output float64)

RegisterModelPricing adds or overwrites pricing for a model at runtime. This allows users and plugins to keep pricing current without code changes.

func WarmupBPETokenizer

func WarmupBPETokenizer()

WarmupBPETokenizer preloads the codec in a background goroutine. Call this during application startup to avoid latency on the first token estimation. Safe to call multiple times.

Types

type BPETokenizer

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

BPETokenizer wraps tiktoken for accurate BPE token counting. P1.1: Replaces heuristic len/4 with real BPE tokenization. ~20-30% more accurate than heuristic estimation.

func (*BPETokenizer) Count

func (b *BPETokenizer) Count(text string) int

Count returns the accurate BPE token count with caching.

type CommandRunner

type CommandRunner interface {
	Run(ctx context.Context, args []string) (output string, exitCode int, err error)
	LookPath(name string) (string, error)
}

CommandRunner abstracts shell command execution.

type DiscoverAnalyzer

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

func NewDiscoverAnalyzer

func NewDiscoverAnalyzer() *DiscoverAnalyzer

func (*DiscoverAnalyzer) Analyze

func (d *DiscoverAnalyzer) Analyze(command string) []MissedSaving

func (*DiscoverAnalyzer) AnalyzeBatch

func (d *DiscoverAnalyzer) AnalyzeBatch(commands []string) []MissedSaving

type MissedSaving

type MissedSaving struct {
	Command    string
	Reason     string
	Suggestion string
	EstTokens  int
	EstSavings int
}

type ModelPricing

type ModelPricing struct {
	Model            string
	InputPerMillion  float64 // Cost per 1M input tokens
	OutputPerMillion float64 // Cost per 1M output tokens
}

ModelPricing holds per-token pricing for a model.

func GetModelPricing

func GetModelPricing(model string) ModelPricing

GetModelPricing returns the pricing for a model, or the default if unknown.

type OSCommandRunner

type OSCommandRunner struct {
	Env []string
}

OSCommandRunner executes real shell commands using os/exec.

func NewOSCommandRunner

func NewOSCommandRunner() *OSCommandRunner

NewOSCommandRunner creates a command runner with the current environment.

func (*OSCommandRunner) LookPath

func (r *OSCommandRunner) LookPath(name string) (string, error)

LookPath resolves a command name to its full path.

func (*OSCommandRunner) Run

func (r *OSCommandRunner) Run(ctx context.Context, args []string) (string, int, error)

Run executes a command and captures combined stdout+stderr. Arguments are sanitized to prevent command injection from untrusted sources.

Jump to

Keyboard shortcuts

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