refactor!: rename module to github.com/theirongolddev/cburn
Change module path from 'cburn' to 'github.com/theirongolddev/cburn' to enable standard Go remote installation: go install github.com/theirongolddev/cburn@latest This is a BREAKING CHANGE for any external code importing this module (though as a CLI tool, this is unlikely to affect anyone). All internal imports updated to use the new module path. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@ package cmd
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"cburn/internal/config"
|
"github.com/theirongolddev/cburn/internal/config"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package cmd
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/pipeline"
|
"github.com/theirongolddev/cburn/internal/pipeline"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/pipeline"
|
"github.com/theirongolddev/cburn/internal/pipeline"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package cmd
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/pipeline"
|
"github.com/theirongolddev/cburn/internal/pipeline"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package cmd
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/pipeline"
|
"github.com/theirongolddev/cburn/internal/pipeline"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/model"
|
"github.com/theirongolddev/cburn/internal/model"
|
||||||
"cburn/internal/pipeline"
|
"github.com/theirongolddev/cburn/internal/pipeline"
|
||||||
"cburn/internal/store"
|
"github.com/theirongolddev/cburn/internal/store"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/pipeline"
|
"github.com/theirongolddev/cburn/internal/pipeline"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"cburn/internal/config"
|
"github.com/theirongolddev/cburn/internal/config"
|
||||||
"cburn/internal/source"
|
"github.com/theirongolddev/cburn/internal/source"
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/huh"
|
"github.com/charmbracelet/huh"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"cburn/internal/claudeai"
|
"github.com/theirongolddev/cburn/internal/claudeai"
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/config"
|
"github.com/theirongolddev/cburn/internal/config"
|
||||||
|
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/pipeline"
|
"github.com/theirongolddev/cburn/internal/pipeline"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package cmd
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"cburn/internal/config"
|
"github.com/theirongolddev/cburn/internal/config"
|
||||||
"cburn/internal/tui"
|
"github.com/theirongolddev/cburn/internal/tui"
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
tea "github.com/charmbracelet/bubbletea"
|
tea "github.com/charmbracelet/bubbletea"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
|||||||
module cburn
|
module github.com/theirongolddev/cburn
|
||||||
|
|
||||||
go 1.24.2
|
go 1.24.2
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ func (c *Client) get(ctx context.Context, path string) ([]byte, error) {
|
|||||||
|
|
||||||
req.Header.Set("Cookie", "sessionKey="+c.sessionKey)
|
req.Header.Set("Cookie", "sessionKey="+c.sessionKey)
|
||||||
req.Header.Set("Accept", "application/json")
|
req.Header.Set("Accept", "application/json")
|
||||||
req.Header.Set("User-Agent", "cburn/1.0")
|
req.Header.Set("User-Agent", "github.com/theirongolddev/cburn/1.0")
|
||||||
|
|
||||||
//nolint:gosec // URL is constructed from const baseURL
|
//nolint:gosec // URL is constructed from const baseURL
|
||||||
resp, err := c.http.Do(req)
|
resp, err := c.http.Do(req)
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"cburn/internal/config"
|
"github.com/theirongolddev/cburn/internal/config"
|
||||||
"cburn/internal/model"
|
"github.com/theirongolddev/cburn/internal/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Aggregate computes summary statistics from a slice of session stats,
|
// Aggregate computes summary statistics from a slice of session stats,
|
||||||
@@ -51,7 +51,7 @@ func Aggregate(sessions []model.SessionStats, since, until time.Time) model.Summ
|
|||||||
// Cache savings (sum across all models found in sessions)
|
// Cache savings (sum across all models found in sessions)
|
||||||
for _, s := range filtered {
|
for _, s := range filtered {
|
||||||
for modelName, mu := range s.Models {
|
for modelName, mu := range s.Models {
|
||||||
stats.CacheSavings += config.CalculateCacheSavings(modelName, mu.CacheReadTokens)
|
stats.CacheSavings += config.CalculateCacheSavingsAt(modelName, s.StartTime, mu.CacheReadTokens)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"cburn/internal/source"
|
"github.com/theirongolddev/cburn/internal/source"
|
||||||
"cburn/internal/store"
|
"github.com/theirongolddev/cburn/internal/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BenchmarkLoad(b *testing.B) {
|
func BenchmarkLoad(b *testing.B) {
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
"cburn/internal/source"
|
"github.com/theirongolddev/cburn/internal/source"
|
||||||
"cburn/internal/store"
|
"github.com/theirongolddev/cburn/internal/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CachedLoadResult extends LoadResult with cache metadata.
|
// CachedLoadResult extends LoadResult with cache metadata.
|
||||||
@@ -173,5 +173,6 @@ func CacheDir() string {
|
|||||||
|
|
||||||
// CachePath returns the full path to the cache database.
|
// CachePath returns the full path to the cache database.
|
||||||
func CachePath() string {
|
func CachePath() string {
|
||||||
return filepath.Join(CacheDir(), "metrics.db")
|
// v2 includes historical pricing-aware cost calculations.
|
||||||
|
return filepath.Join(CacheDir(), "metrics_v2.db")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
"cburn/internal/model"
|
"github.com/theirongolddev/cburn/internal/model"
|
||||||
"cburn/internal/source"
|
"github.com/theirongolddev/cburn/internal/source"
|
||||||
)
|
)
|
||||||
|
|
||||||
// LoadResult holds the output of the full data loading pipeline.
|
// LoadResult holds the output of the full data loading pipeline.
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"cburn/internal/config"
|
"github.com/theirongolddev/cburn/internal/config"
|
||||||
"cburn/internal/model"
|
"github.com/theirongolddev/cburn/internal/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Byte patterns for field extraction.
|
// Byte patterns for field extraction.
|
||||||
@@ -173,8 +173,9 @@ func ParseFile(df DiscoveredFile) ParseResult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, call := range calls {
|
for _, call := range calls {
|
||||||
call.EstimatedCost = config.CalculateCost(
|
call.EstimatedCost = config.CalculateCostAt(
|
||||||
call.Model,
|
call.Model,
|
||||||
|
call.Timestamp,
|
||||||
call.InputTokens,
|
call.InputTokens,
|
||||||
call.OutputTokens,
|
call.OutputTokens,
|
||||||
call.CacheCreation5mTokens,
|
call.CacheCreation5mTokens,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"cburn/internal/model"
|
"github.com/theirongolddev/cburn/internal/model"
|
||||||
|
|
||||||
_ "modernc.org/sqlite" // register sqlite driver
|
_ "modernc.org/sqlite" // register sqlite driver
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
package components
|
package components
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"math"
|
"math"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/bubbles/progress"
|
"github.com/charmbracelet/bubbles/progress"
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"cburn/internal/claudeai"
|
"github.com/theirongolddev/cburn/internal/claudeai"
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/bubbles/progress"
|
"github.com/charmbracelet/bubbles/progress"
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package components
|
|||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package tui
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"cburn/internal/config"
|
"github.com/theirongolddev/cburn/internal/config"
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/huh"
|
"github.com/charmbracelet/huh"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/tui/components"
|
"github.com/theirongolddev/cburn/internal/tui/components"
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/pipeline"
|
"github.com/theirongolddev/cburn/internal/pipeline"
|
||||||
"cburn/internal/tui/components"
|
"github.com/theirongolddev/cburn/internal/tui/components"
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"cburn/internal/cli"
|
"github.com/theirongolddev/cburn/internal/cli"
|
||||||
"cburn/internal/config"
|
"github.com/theirongolddev/cburn/internal/config"
|
||||||
"cburn/internal/tui/components"
|
"github.com/theirongolddev/cburn/internal/tui/components"
|
||||||
"cburn/internal/tui/theme"
|
"github.com/theirongolddev/cburn/internal/tui/theme"
|
||||||
|
|
||||||
"github.com/charmbracelet/bubbles/textinput"
|
"github.com/charmbracelet/bubbles/textinput"
|
||||||
tea "github.com/charmbracelet/bubbletea"
|
tea "github.com/charmbracelet/bubbletea"
|
||||||
|
|||||||
2
main.go
2
main.go
@@ -1,7 +1,7 @@
|
|||||||
// cburn analyzes Claude Code usage from local JSONL session logs.
|
// cburn analyzes Claude Code usage from local JSONL session logs.
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import "cburn/cmd"
|
import "github.com/theirongolddev/cburn/cmd"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
cmd.Execute()
|
cmd.Execute()
|
||||||
|
|||||||
Reference in New Issue
Block a user