Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyEnv ¶
func ApplyEnv(c *CellConfig, getenv func(string) string)
ApplyEnv overrides scalar fields from environment variables.
Types ¶
type CellConfig ¶
type CellConfig struct {
Cell CellSection
LLM LLMSection `toml:"llm"`
Git GitSection `toml:"git"`
Op OpSection `toml:"op"`
Env map[string]string
Mise map[string]string `toml:"mise"` // [mise] — keys map to MISE_<UPPER_KEY> env vars
Volumes []VolumeMount
Packages PackagesSection
}
CellConfig is the merged configuration from all TOML layers.
func LoadFile ¶
func LoadFile(path string) (CellConfig, error)
LoadFile parses a TOML file into CellConfig. Returns zero value + nil error if the file does not exist.
func LoadFromOS ¶
func LoadFromOS(configDir, cwd string) CellConfig
LoadFromOS loads the layered config using real XDG paths and os.Getenv.
func LoadLayered ¶
func LoadLayered(globalPath, projectPath string, getenv func(string) string) CellConfig
LoadLayered loads global + project files, merges them, then applies env overrides.
func Merge ¶
func Merge(global, project CellConfig) CellConfig
Merge returns a new CellConfig with project overriding global for scalars; Env maps and Volumes slices are accumulated (project wins on key conflict).
type CellSection ¶
type CellSection struct {
ImageTag string `toml:"image_tag"`
GUI bool `toml:"gui"`
Timezone string `toml:"timezone"` // IANA tz (e.g. "Europe/Prague"); default: host $TZ
}
CellSection holds [cell] config.
type GitSection ¶ added in v0.3.0
type GitSection struct {
AuthorName string `toml:"author_name"`
AuthorEmail string `toml:"author_email"`
CommitterName string `toml:"committer_name"`
CommitterEmail string `toml:"committer_email"`
}
GitSection holds [git] config for git identity inside the container.
func (GitSection) HasIdentity ¶ added in v0.3.0
func (g GitSection) HasIdentity() bool
HasIdentity reports whether any git identity field is set.
func (GitSection) ResolvedCommitterEmail ¶ added in v0.3.0
func (g GitSection) ResolvedCommitterEmail() string
ResolvedCommitterEmail returns CommitterEmail if set, else falls back to AuthorEmail.
func (GitSection) ResolvedCommitterName ¶ added in v0.3.0
func (g GitSection) ResolvedCommitterName() string
ResolvedCommitterName returns CommitterName if set, else falls back to AuthorName.
type LLMModelsSection ¶ added in v0.3.0
type LLMModelsSection struct {
Default string `toml:"default"`
Providers map[string]LLMProvider `toml:"providers"`
}
LLMModelsSection holds [llm.models] config — provider/model declarations.
type LLMProvider ¶ added in v0.2.0
LLMProvider holds a single provider entry under [llm.models.providers.<name>].
type LLMSection ¶ added in v0.3.0
type LLMSection struct {
SystemPrompt string `toml:"system_prompt"`
UseOllama bool `toml:"use_ollama"`
Models LLMModelsSection `toml:"models"`
}
LLMSection holds [llm] config — all AI agent settings in one place.
type OpSection ¶ added in v0.3.0
type OpSection struct {
Items []string `toml:"items"` // 1Password item names to resolve via `op item get`
}
OpSection holds [op] config for 1Password secret injection.
type PackagesSection ¶
type PackagesSection struct {
Npm map[string]string `toml:"npm"`
Python map[string]string `toml:"python"`
}
PackagesSection holds [packages] config for npm and python tools.
type VolumeMount ¶
type VolumeMount struct {
Mount string `toml:"mount"`
}
VolumeMount holds a single [[volumes]] entry.