summaryrefslogtreecommitdiff
path: root/internal/cli
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-03-07 23:53:15 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-03-08 05:18:41 +0000
commitebdb12fc37c9c8db460827fdba1aa10e5b208cb9 (patch)
treeb0f4b12e9251b836e6efef283c9b7ad959c9692f /internal/cli
parentf11f1f8c7d3ce9caca592323def9cc598e5c7392 (diff)
feat(wiring): configure GeminiRunner and update API server
Diffstat (limited to 'internal/cli')
-rw-r--r--internal/cli/run.go19
-rw-r--r--internal/cli/serve.go24
2 files changed, 30 insertions, 13 deletions
diff --git a/internal/cli/run.go b/internal/cli/run.go
index c666406..3624cea 100644
--- a/internal/cli/run.go
+++ b/internal/cli/run.go
@@ -51,7 +51,7 @@ func runTasks(file string, parallel int, dryRun bool) error {
if dryRun {
fmt.Printf("Validated %d task(s) successfully.\n", len(tasks))
for _, t := range tasks {
- fmt.Printf(" - %s (model: %s, timeout: %v)\n", t.Name, t.Claude.Model, t.Timeout.Duration)
+ fmt.Printf(" - %s (model: %s, timeout: %v)\n", t.Name, t.Agent.Model, t.Timeout.Duration)
}
return nil
}
@@ -73,12 +73,19 @@ func runTasks(file string, parallel int, dryRun bool) error {
}
logger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: level}))
- runner := &executor.ClaudeRunner{
- BinaryPath: cfg.ClaudeBinaryPath,
- Logger: logger,
- LogDir: cfg.LogDir,
+ runners := map[string]executor.Runner{
+ "claude": &executor.ClaudeRunner{
+ BinaryPath: cfg.ClaudeBinaryPath,
+ Logger: logger,
+ LogDir: cfg.LogDir,
+ },
+ "gemini": &executor.GeminiRunner{
+ BinaryPath: cfg.GeminiBinaryPath,
+ Logger: logger,
+ LogDir: cfg.LogDir,
+ },
}
- pool := executor.NewPool(parallel, runner, store, logger)
+ pool := executor.NewPool(parallel, runners, store, logger)
// Handle graceful shutdown.
ctx, cancel := context.WithCancel(context.Background())
diff --git a/internal/cli/serve.go b/internal/cli/serve.go
index 363e276..2ecb6cd 100644
--- a/internal/cli/serve.go
+++ b/internal/cli/serve.go
@@ -54,15 +54,25 @@ func serve(addr string) error {
if len(addr) > 0 && addr[0] != ':' {
apiURL = "http://" + addr
}
- runner := &executor.ClaudeRunner{
- BinaryPath: cfg.ClaudeBinaryPath,
- Logger: logger,
- LogDir: cfg.LogDir,
- APIURL: apiURL,
+
+ runners := map[string]executor.Runner{
+ "claude": &executor.ClaudeRunner{
+ BinaryPath: cfg.ClaudeBinaryPath,
+ Logger: logger,
+ LogDir: cfg.LogDir,
+ APIURL: apiURL,
+ },
+ "gemini": &executor.GeminiRunner{
+ BinaryPath: cfg.GeminiBinaryPath,
+ Logger: logger,
+ LogDir: cfg.LogDir,
+ APIURL: apiURL,
+ },
}
- pool := executor.NewPool(cfg.MaxConcurrent, runner, store, logger)
+
+ pool := executor.NewPool(cfg.MaxConcurrent, runners, store, logger)
- srv := api.NewServer(store, pool, logger, cfg.ClaudeBinaryPath)
+ srv := api.NewServer(store, pool, logger, cfg.ClaudeBinaryPath, cfg.GeminiBinaryPath)
srv.StartHub()
httpSrv := &http.Server{