summaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-03-27 22:35:48 +0100
committerKujtim Hoxha <[email protected]>2025-04-01 13:38:54 +0200
commitafd9ad0560d76c2a6d161dad52553b10ff428905 (patch)
tree69f78b05ff0d7952cd3e3c9332f001e66abb2faf /cmd
parent904061c243f70696bfe781e97bf4e392e6954d07 (diff)
downloadopencode-afd9ad0560d76c2a6d161dad52553b10ff428905.tar.gz
opencode-afd9ad0560d76c2a6d161dad52553b10ff428905.zip
rework llm
Diffstat (limited to 'cmd')
-rw-r--r--cmd/root.go56
1 files changed, 7 insertions, 49 deletions
diff --git a/cmd/root.go b/cmd/root.go
index ddab0d81a..b4c1113a4 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -7,12 +7,12 @@ import (
tea "github.com/charmbracelet/bubbletea"
"github.com/kujtimiihoxha/termai/internal/app"
+ "github.com/kujtimiihoxha/termai/internal/config"
"github.com/kujtimiihoxha/termai/internal/db"
- "github.com/kujtimiihoxha/termai/internal/llm/models"
+ "github.com/kujtimiihoxha/termai/internal/llm/agent"
"github.com/kujtimiihoxha/termai/internal/tui"
zone "github.com/lrstanley/bubblezone"
"github.com/spf13/cobra"
- "github.com/spf13/viper"
)
var rootCmd = &cobra.Command{
@@ -25,11 +25,10 @@ var rootCmd = &cobra.Command{
return nil
}
debug, _ := cmd.Flags().GetBool("debug")
- viper.Set("debug", debug)
- if debug {
- viper.Set("log.level", "debug")
+ err := config.Load(debug)
+ if err != nil {
+ return err
}
-
conn, err := db.Connect()
if err != nil {
return err
@@ -49,6 +48,8 @@ var rootCmd = &cobra.Command{
defer unsub()
go func() {
+ // Set this up once
+ agent.GetMcpTools(ctx)
for msg := range ch {
tui.Send(msg)
}
@@ -96,16 +97,6 @@ func setupSubscriptions(app *app.App) (chan tea.Msg, func()) {
}()
}
{
- sub := app.LLM.Subscribe(ctx)
- wg.Add(1)
- go func() {
- for ev := range sub {
- ch <- ev
- }
- wg.Done()
- }()
- }
- {
sub := app.Permissions.Subscribe(ctx)
wg.Add(1)
go func() {
@@ -129,40 +120,7 @@ func Execute() {
}
}
-func loadConfig() {
- viper.SetConfigName(".termai")
- viper.SetConfigType("yaml")
- viper.AddConfigPath("$HOME")
- viper.AddConfigPath("$XDG_CONFIG_HOME/termai")
- viper.AddConfigPath(".")
- viper.SetEnvPrefix("TERMAI")
- // SET DEFAULTS
- viper.SetDefault("log.level", "info")
- viper.SetDefault("data.dir", ".termai")
-
- // LLM
- viper.SetDefault("models.big", string(models.DefaultBigModel))
- viper.SetDefault("models.small", 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.groq.key", os.Getenv("GROQ_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()
-
rootCmd.Flags().BoolP("help", "h", false, "Help")
rootCmd.Flags().BoolP("debug", "d", false, "Help")
}