package main import ( "log/slog" "net/http" "os" "git-summarizer/internal/api" "git-summarizer/internal/summarizer" "git-summarizer/pkg/cache" "git-summarizer/pkg/config" ) func main() { cfg := config.LoadConfig() s := summarizer.New(cfg) repoCache := cache.New(cfg.CacheDir, cfg.MaxCachedRepos) h := api.NewHandler(s, repoCache) http.HandleFunc("/summarize", h.HandleSummarize) http.HandleFunc("/health", h.HandleHealth) slog.Info("starting git-summarizer", "addr", cfg.ListenAddr, "llm_url", cfg.LlamaURL, "model", cfg.Model, "cache_dir", cfg.CacheDir, "max_cached_repos", cfg.MaxCachedRepos) if err := http.ListenAndServe(cfg.ListenAddr, nil); err != nil { slog.Error("server failed", "error", err) os.Exit(1) } }