diff options
Diffstat (limited to 'internal/config/config.go')
| -rw-r--r-- | internal/config/config.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/internal/config/config.go b/internal/config/config.go index 892d3f7..80777ff 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -80,6 +80,7 @@ type Config struct { WebhookURL string `toml:"webhook_url"` WorkspaceRoot string `toml:"workspace_root"` WebhookSecret string `toml:"webhook_secret"` + APIToken string `toml:"api_token"` // shared bearer for web UI + chatbot MCP; empty disables both auth and the chatbot MCP endpoint Projects []Project `toml:"projects"` VAPIDPublicKey string `toml:"vapid_public_key"` VAPIDPrivateKey string `toml:"vapid_private_key"` @@ -87,6 +88,16 @@ type Config struct { ClaudeConfigDir string `toml:"claude_config_dir"` LocalModel LocalModel `toml:"local_model"` Runners RunnersConfig `toml:"runners"` + Budget BudgetConfig `toml:"budget"` + // ExternalBindAllowed must be explicitly true to bind a non-loopback address. + ExternalBindAllowed bool `toml:"external_bind_allowed"` +} + +// BudgetConfig configures rolling per-provider spend caps. With no providers +// set, budget gating is disabled. +type BudgetConfig struct { + Window string `toml:"window"` + Provider5hUSD map[string]float64 `toml:"provider_5h_usd"` } func Default() (*Config, error) { @@ -110,7 +121,7 @@ func Default() (*Config, error) { GeminiImage: "claudomator-agent:latest", MaxConcurrent: 3, DefaultTimeout: "15m", - ServerAddr: ":8484", + ServerAddr: "127.0.0.1:8484", WorkspaceRoot: "/workspace", ClaudeConfigDir: "/workspace/claudomator/credentials/claude", }, nil |
