summaryrefslogtreecommitdiffhomepage
path: root/cmd/root.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/root.go')
-rw-r--r--cmd/root.go43
1 files changed, 36 insertions, 7 deletions
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 <EMAIL ADDRESS>
-*/
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")