summaryrefslogtreecommitdiff
path: root/internal/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/config/config.go')
-rw-r--r--internal/config/config.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
index 80777ff..640e933 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -63,6 +63,20 @@ func (r RunnersConfig) GeminiEnabled() bool { return r.Gemini == nil || *r.Ge
func (r RunnersConfig) LocalEnabled() bool { return r.Local == nil || *r.Local }
func (r RunnersConfig) ContainerEnabled() bool { return r.Container == nil || *r.Container }
+// ProviderConfig configures a native (or OpenAI-compatible) LLM provider
+// backend for the multi-provider harness — see docs/api-keys-setup.md. Phase
+// 1 only adds this type so config has somewhere for it to land; it is not yet
+// read by runner construction (no native provider adapters exist yet besides
+// the openaicompat one LocalModel already configures). Keyed by provider name
+// in the [providers.<name>] TOML table, e.g. [providers.groq],
+// [providers.anthropic].
+type ProviderConfig struct {
+ Endpoint string `toml:"endpoint"`
+ APIKey string `toml:"api_key"`
+ DefaultModel string `toml:"default_model"`
+ TimeoutSeconds int `toml:"timeout_seconds"`
+}
+
type Config struct {
DataDir string `toml:"data_dir"`
DBPath string `toml:"-"`
@@ -89,6 +103,9 @@ type Config struct {
LocalModel LocalModel `toml:"local_model"`
Runners RunnersConfig `toml:"runners"`
Budget BudgetConfig `toml:"budget"`
+ // Providers configures native/OpenAI-compatible LLM backends by name (see
+ // ProviderConfig). Unused by runner construction in Phase 1.
+ Providers map[string]ProviderConfig `toml:"providers"`
// ExternalBindAllowed must be explicitly true to bind a non-loopback address.
ExternalBindAllowed bool `toml:"external_bind_allowed"`
}