summaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-03-23 22:25:31 +0100
committerKujtim Hoxha <[email protected]>2025-03-23 22:25:31 +0100
commite7258e38aeb46281fda474b8b7fcc3eee35edd9f (patch)
tree0ae4a7558b3942519ff137aed7c3cd6a9b473bf5 /cmd
parent8daa6e774a6e02698c90392e7b2008542f789594 (diff)
downloadopencode-e7258e38aeb46281fda474b8b7fcc3eee35edd9f.tar.gz
opencode-e7258e38aeb46281fda474b8b7fcc3eee35edd9f.zip
initial agent setup
Diffstat (limited to 'cmd')
-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")