diff --git a/README.md b/README.md index 0ebda09..610fe01 100644 --- a/README.md +++ b/README.md @@ -150,10 +150,10 @@ Special values: `all` (unrestricted) and `none` (no network access). Faize reads from `~/.faize/config.yaml`: ```yaml -defaults: +resources: cpus: 2 memory: 4GB - timeout: 2h +timeout: 2h networks: - npm diff --git a/internal/cmd/start.go b/internal/cmd/start.go index 8a748f5..19c4d49 100644 --- a/internal/cmd/start.go +++ b/internal/cmd/start.go @@ -109,11 +109,11 @@ func runStart(cmd *cobra.Command, args []string) error { } // Read CPUs and memory directly from config - cpus := cfg.Defaults.CPUs - memory := cfg.Defaults.Memory + cpus := cfg.Resources.CPUs + memory := cfg.Resources.Memory if startTimeout == "" { - startTimeout = cfg.Defaults.Timeout + startTimeout = cfg.Timeout } // Use network config diff --git a/internal/config/config.go b/internal/config/config.go index 8d129b7..74381b4 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -23,17 +23,17 @@ var HardcodedBlockedPaths = []string{ // Config represents the Faize CLI configuration type Config struct { - Defaults Defaults `yaml:"defaults"` - Networks []string `yaml:"networks"` - BlockedPaths []string `yaml:"blocked_paths"` - Claude Claude `yaml:"claude"` + Resources Resources `yaml:"resources"` + Timeout string `yaml:"timeout"` + Networks []string `yaml:"networks"` + BlockedPaths []string `yaml:"blocked_paths"` + Claude Claude `yaml:"claude"` } -// Defaults contains default values for sandbox execution -type Defaults struct { - CPUs int `yaml:"cpus"` - Memory string `yaml:"memory"` - Timeout string `yaml:"timeout"` +// Resources contains resource allocation for sandbox execution +type Resources struct { + CPUs int `yaml:"cpus"` + Memory string `yaml:"memory"` } // Claude contains Claude-specific configuration @@ -126,14 +126,14 @@ func defaultBlockedPaths() []string { // applyDefaults fills in zero-value fields with sensible defaults. func applyDefaults(cfg *Config) { - if cfg.Defaults.CPUs == 0 { - cfg.Defaults.CPUs = 2 + if cfg.Resources.CPUs == 0 { + cfg.Resources.CPUs = 2 } - if cfg.Defaults.Memory == "" { - cfg.Defaults.Memory = "4GB" + if cfg.Resources.Memory == "" { + cfg.Resources.Memory = "4GB" } - if cfg.Defaults.Timeout == "" { - cfg.Defaults.Timeout = "2h" + if cfg.Timeout == "" { + cfg.Timeout = "2h" } if len(cfg.Networks) == 0 { cfg.Networks = []string{"npm", "pypi", "github", "anthropic"} diff --git a/internal/config/config_test.go b/internal/config/config_test.go index d8a5e52..5c1fb9d 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -18,9 +18,9 @@ func TestLoadDefaults(t *testing.T) { require.NotNil(t, cfg) // Check defaults - assert.Equal(t, 2, cfg.Defaults.CPUs) - assert.Equal(t, "4GB", cfg.Defaults.Memory) - assert.Equal(t, "2h", cfg.Defaults.Timeout) + assert.Equal(t, 2, cfg.Resources.CPUs) + assert.Equal(t, "4GB", cfg.Resources.Memory) + assert.Equal(t, "2h", cfg.Timeout) assert.Contains(t, cfg.Networks, "npm") assert.Contains(t, cfg.Networks, "pypi") assert.Contains(t, cfg.Networks, "github")