config

package
v0.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConfigExists

func ConfigExists() bool

ConfigExists checks if the configuration file exists

func ValidateConfig

func ValidateConfig(cfg *Config) error

ValidateConfig validates the entire configuration

func WriteConfig

func WriteConfig(cfg *Config) error

WriteConfig writes the configuration to ~/.scai.yaml

Types

type BackendConfig

type BackendConfig struct {
	Type     string `yaml:"type"`      // s3
	S3Bucket string `yaml:"s3_bucket"` // S3 bucket name for state
	S3Region string `yaml:"s3_region"` // S3 bucket region
	S3Key    string `yaml:"s3_key"`    // State file path in bucket
}

BackendConfig holds Terraform backend configuration

type CloudConfig

type CloudConfig struct {
	Provider      string `yaml:"provider"`       // aws, gcp
	DefaultRegion string `yaml:"default_region"` // AWS region (e.g., us-east-1)
}

CloudConfig holds cloud provider configuration

type Config

type Config struct {
	LLM       LLMConfig       `yaml:"llm"`
	Cloud     CloudConfig     `yaml:"cloud"`
	Terraform TerraformConfig `yaml:"terraform"`
}

Config represents the SCAI configuration structure

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig returns a configuration with sensible defaults

func ReadConfig

func ReadConfig() (*Config, error)

ReadConfig reads the configuration from ~/.scai.yaml

type GeminiConfig

type GeminiConfig struct {
	APIKey string `yaml:"api_key,omitempty"` // Google AI Studio API key
	Model  string `yaml:"model,omitempty"`   // gemini-2.0-pro-exp or gemini-2.0-flash
}

GeminiConfig holds Google Gemini configuration

type LLMConfig

type LLMConfig struct {
	Provider string       `yaml:"provider"` // ollama, gemini, openai
	Ollama   OllamaConfig `yaml:"ollama,omitempty"`
	Gemini   GeminiConfig `yaml:"gemini,omitempty"`
	OpenAI   OpenAIConfig `yaml:"openai,omitempty"`
}

LLMConfig holds LLM provider configuration

type OllamaConfig

type OllamaConfig struct {
	URL       string `yaml:"url,omitempty"`        // http://localhost:11434 or remote URL
	Model     string `yaml:"model,omitempty"`      // qwen2.5-coder:7b
	UseDocker bool   `yaml:"use_docker,omitempty"` // Whether to use Docker
}

OllamaConfig holds Ollama-specific configuration

type OpenAIConfig

type OpenAIConfig struct {
	APIKey string `yaml:"api_key,omitempty"` // OpenAI API key
	Model  string `yaml:"model,omitempty"`   // gpt-4o or gpt-4o-mini
}

OpenAIConfig holds OpenAI configuration

type TerraformConfig

type TerraformConfig struct {
	Backend BackendConfig `yaml:"backend"`
	Binary  string        `yaml:"binary"` // tofu or terraform
}

TerraformConfig holds Terraform/OpenTofu configuration

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL