feat: add config path option for agent command
This commit is contained in:
parent
bc3d77d2dd
commit
21b8d96a52
1 changed files with 18 additions and 5 deletions
|
|
@ -16,6 +16,7 @@ import (
|
||||||
|
|
||||||
"github.com/sipeed/picoclaw/pkg/agent"
|
"github.com/sipeed/picoclaw/pkg/agent"
|
||||||
"github.com/sipeed/picoclaw/pkg/bus"
|
"github.com/sipeed/picoclaw/pkg/bus"
|
||||||
|
"github.com/sipeed/picoclaw/pkg/config"
|
||||||
"github.com/sipeed/picoclaw/pkg/logger"
|
"github.com/sipeed/picoclaw/pkg/logger"
|
||||||
"github.com/sipeed/picoclaw/pkg/providers"
|
"github.com/sipeed/picoclaw/pkg/providers"
|
||||||
)
|
)
|
||||||
|
|
@ -24,6 +25,7 @@ func agentCmd() {
|
||||||
message := ""
|
message := ""
|
||||||
sessionKey := "cli:default"
|
sessionKey := "cli:default"
|
||||||
modelOverride := ""
|
modelOverride := ""
|
||||||
|
configPath := ""
|
||||||
|
|
||||||
args := os.Args[2:]
|
args := os.Args[2:]
|
||||||
for i := 0; i < len(args); i++ {
|
for i := 0; i < len(args); i++ {
|
||||||
|
|
@ -46,31 +48,42 @@ func agentCmd() {
|
||||||
modelOverride = args[i+1]
|
modelOverride = args[i+1]
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
case "-c", "--config":
|
||||||
|
if i+1 < len(args) {
|
||||||
|
configPath = args[i+1]
|
||||||
|
i++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := loadConfig()
|
var appCfg *config.Config
|
||||||
|
var err error
|
||||||
|
if configPath != "" {
|
||||||
|
appCfg, err = config.LoadConfig(configPath)
|
||||||
|
} else {
|
||||||
|
appCfg, err = loadConfig()
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error loading config: %v\n", err)
|
fmt.Printf("Error loading config: %v\n", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if modelOverride != "" {
|
if modelOverride != "" {
|
||||||
cfg.Agents.Defaults.Model = modelOverride
|
appCfg.Agents.Defaults.Model = modelOverride
|
||||||
}
|
}
|
||||||
|
|
||||||
provider, modelID, err := providers.CreateProvider(cfg)
|
provider, modelID, err := providers.CreateProvider(appCfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error creating provider: %v\n", err)
|
fmt.Printf("Error creating provider: %v\n", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
// Use the resolved model ID from provider creation
|
// Use the resolved model ID from provider creation
|
||||||
if modelID != "" {
|
if modelID != "" {
|
||||||
cfg.Agents.Defaults.Model = modelID
|
appCfg.Agents.Defaults.Model = modelID
|
||||||
}
|
}
|
||||||
|
|
||||||
msgBus := bus.NewMessageBus()
|
msgBus := bus.NewMessageBus()
|
||||||
agentLoop := agent.NewAgentLoop(cfg, msgBus, provider)
|
agentLoop := agent.NewAgentLoop(appCfg, msgBus, provider)
|
||||||
|
|
||||||
// Print agent startup info (only for interactive mode)
|
// Print agent startup info (only for interactive mode)
|
||||||
startupInfo := agentLoop.GetStartupInfo()
|
startupInfo := agentLoop.GetStartupInfo()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue