From e7258e38aeb46281fda474b8b7fcc3eee35edd9f Mon Sep 17 00:00:00 2001 From: Kujtim Hoxha Date: Sun, 23 Mar 2025 22:25:31 +0100 Subject: initial agent setup --- cmd/root.go | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'cmd') diff --git a/cmd/root.go b/cmd/root.go index e91444860..3879a3cf7 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,6 +1,3 @@ -/* -Copyright © 2025 NAME HERE -*/ package cmd import ( @@ -11,6 +8,7 @@ import ( tea "github.com/charmbracelet/bubbletea" "github.com/kujtimiihoxha/termai/internal/app" "github.com/kujtimiihoxha/termai/internal/db" + "github.com/kujtimiihoxha/termai/internal/llm/models" "github.com/kujtimiihoxha/termai/internal/tui" "github.com/spf13/cobra" "github.com/spf13/viper" @@ -64,7 +62,7 @@ func setupSubscriptions(app *app.App) (chan tea.Msg, func()) { wg := sync.WaitGroup{} ctx, cancel := context.WithCancel(app.Context) - if viper.GetBool("debug") { + { sub := app.Logger.Subscribe(ctx) wg.Add(1) go func() { @@ -84,6 +82,26 @@ func setupSubscriptions(app *app.App) (chan tea.Msg, func()) { wg.Done() }() } + { + sub := app.Messages.Subscribe(ctx) + wg.Add(1) + go func() { + for ev := range sub { + ch <- ev + } + wg.Done() + }() + } + { + sub := app.LLM.Subscribe(ctx) + wg.Add(1) + go func() { + for ev := range sub { + ch <- ev + } + wg.Done() + }() + } return ch, func() { cancel() wg.Wait() @@ -111,15 +129,26 @@ func loadConfig() { viper.SetDefault("log.level", "info") viper.SetDefault("data.dir", ".termai") + // LLM + viper.SetDefault("models.big", string(models.DefaultBigModel)) + viper.SetDefault("models.little", string(models.DefaultLittleModel)) + viper.SetDefault("providers.openai.key", os.Getenv("OPENAI_API_KEY")) + viper.SetDefault("providers.anthropic.key", os.Getenv("ANTHROPIC_API_KEY")) + viper.SetDefault("providers.common.max_tokens", 4000) + + viper.SetDefault("agents.default", "coder") // viper.ReadInConfig() + + workdir, err := os.Getwd() + if err != nil { + panic(err) + } + viper.Set("wd", workdir) } func init() { loadConfig() - // Here you will define your flags and configuration settings. - // Cobra supports persistent flags, which, if defined here, - // will be global for your application. rootCmd.Flags().BoolP("help", "h", false, "Help") rootCmd.Flags().BoolP("debug", "d", false, "Help") -- cgit v1.2.3