cfa87f1c1b
config.Load() called at startup. Layered: defaults → global (~/.config/gnoma/config.toml) → project (.gnoma/config.toml) → env vars. CLI flags override config values. Config drives: - provider.default + provider.model as defaults - provider.api_keys for key resolution - provider.endpoints for custom base URLs - permission.mode + permission.rules loaded into checker - tools.bash_timeout passed to bash tool Example .gnoma/config.toml: [provider] default = "ollama" model = "qwen3:14b" [permission] mode = "bypass" [[permission.rules]] tool = "bash" pattern = "rm -rf" action = "deny"
23 lines
414 B
Go
23 lines
414 B
Go
package config
|
|
|
|
import "time"
|
|
|
|
func Defaults() Config {
|
|
return Config{
|
|
Provider: ProviderSection{
|
|
Default: "mistral",
|
|
Model: "",
|
|
MaxTokens: 8192,
|
|
APIKeys: make(map[string]string),
|
|
Endpoints: make(map[string]string),
|
|
},
|
|
Permission: PermissionSection{
|
|
Mode: "default",
|
|
},
|
|
Tools: ToolsSection{
|
|
BashTimeout: Duration(30 * time.Second),
|
|
MaxFileSize: 1 << 20, // 1MB
|
|
},
|
|
}
|
|
}
|