mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-21 09:44:21 +01:00
initial agent setup
This commit is contained in:
43
cmd/root.go
43
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")
|
||||
|
||||
Reference in New Issue
Block a user