capsule AI-native Unix-like composition layer

src/internal/config/config.go

726 bytes · 30 lines · capsule://quake0day/[email protected] raw on github

package config

import "github.com/caarlos0/env/v11"

type Config struct {
	Host        string      `env:"HOST" envDefault:"127.0.0.1"`
	Port        string      `env:"PORT" envDefault:"3000"`
	ChatGPT2API ChatGPT2API `envPrefix:"CHATGPT2API_"`
	Security    Security    `envPrefix:"SECURITY_"`
}

type ChatGPT2API struct {
	BaseURL     string `env:"BASE_URL"`
	APIKey      string `env:"API_KEY"`
	ImageModel  string `env:"IMAGE_MODEL" envDefault:"gpt-image-2"`
	PromptModel string `env:"PROMPT_MODEL" envDefault:"gpt-5.5"`
}

type Security struct {
	SecureCookies bool `env:"SECURE_COOKIES" envDefault:"false"`
}

func MustNew() *Config {
	var cfg Config
	if err := env.Parse(&cfg); err != nil {
		panic(err)
	}
	return &cfg
}