| .. | ||
| README.md | ||
pkg/config
Carga de configuración YAML con precedencia jerárquica.
Responsabilidad
Resolver la configuración final del agente combinando múltiples fuentes con orden de precedencia:
- Flags CLI (highest)
- Environment variables
- Project config (
./.rony.yaml) - Global config (
~/.config/rony/config.yaml) - Defaults embebidos (lowest)
API pública
type Config struct {
Model string
Persona string
Provider ProviderConfig
Tools ToolPolicy
Logging LoggingConfig
Sandbox SandboxConfig
}
type Loader interface {
Load(ctx context.Context, workdir string) (Config, error)
LoadFromBytes(data []byte, source string) (Config, error)
}
type ProviderConfig struct {
Type string // "openai" | "anthropic" | "ollama" | "llamacpp"
Model string
APIKey string // resuelto de env si es referencia
Endpoint string
}
type ToolPolicy map[string]tools.Permission
Formato YAML
# ~/.config/rony/config.yaml
model: claude-sonnet-4.5
persona: pragmatista
provider:
type: anthropic
api_key_env: ANTHROPIC_API_KEY
tools:
bash: ask
read: allow
write: ask
logging:
level: info
format: json
sandbox:
workspace: .
timeout_ms: 30000
Override por env
RONY_MODEL=gpt-4o rony chat # override model
RONY_LOG_LEVEL=debug rony chat # override log level
Precedencia
El loader resuelve en este orden (mayor prioridad primero):
flag > RONY_* env > ./.rony.yaml > ~/.config/rony/config.yaml > defaults