Documentation
¶
Overview ¶
Package config defines the klausctl configuration types and handles loading from the user's config file.
Index ¶
- Constants
- func AggregateFromSources[T any](registries []SourceRegistry, artifactType string, ...) ([]T, []string, error)
- func EnsureDir(path string) error
- func ExpandPath(path string) string
- func IsDefaultImage(image string) bool
- func IsPortAvailable(port int) bool
- func MigrateLayout(paths *Paths) error
- func NextAvailablePort(paths *Paths, start int) (int, error)
- func UsedPorts(paths *Paths) (map[int]bool, error)
- func ValidateInstanceName(name string) error
- func ValidateSourceName(name string) error
- type AgentConfig
- type AgentFile
- type ClaudeConfig
- type Config
- type CreateOptions
- type GitConfig
- type Hook
- type HookMatcher
- type Paths
- type Plugin
- type ResolvedPersonality
- type Skill
- type Source
- type SourceConfig
- func (sc *SourceConfig) Add(s Source) error
- func (sc *SourceConfig) Get(name string) *Source
- func (sc *SourceConfig) Remove(name string) error
- func (sc *SourceConfig) Save() error
- func (sc *SourceConfig) SaveTo(path string) error
- func (sc *SourceConfig) SetDefault(name string) error
- func (sc *SourceConfig) Update(name string, patch Source) error
- func (sc *SourceConfig) Validate() error
- type SourceRegistry
- type SourceResolver
- func (r *SourceResolver) DefaultOnly() *SourceResolver
- func (r *SourceResolver) ForSource(name string) (*SourceResolver, error)
- func (r *SourceResolver) PersonalityRegistries() []SourceRegistry
- func (r *SourceResolver) PluginRegistries() []SourceRegistry
- func (r *SourceResolver) ResolvePersonalityRef(ref string) string
- func (r *SourceResolver) ResolvePluginRef(ref string) string
- func (r *SourceResolver) ResolveToolchainRef(ref string) string
- func (r *SourceResolver) Sources() []Source
- func (r *SourceResolver) ToolchainRegistries() []SourceRegistry
Constants ¶
const ( // DefaultImageRepository is the OCI repository for the base klaus image. DefaultImageRepository = "gsoci.azurecr.io/giantswarm/klaus" // DefaultImageFallback is the full image reference used when registry // resolution is unavailable (offline, auth error, etc.). DefaultImageFallback = DefaultImageRepository + ":latest" )
const ( // DefaultSourceName is the built-in source that cannot be removed. DefaultSourceName = "giantswarm" // DefaultSourceRegistry is the registry base for the built-in source. DefaultSourceRegistry = "gsoci.azurecr.io/giantswarm" // ClearOverride is a sentinel value for Update that resets an override // field back to the convention-based default (i.e. clears it to ""). ClearOverride = "-" )
Variables ¶
This section is empty.
Functions ¶
func AggregateFromSources ¶ added in v0.0.23
func AggregateFromSources[T any](registries []SourceRegistry, artifactType string, fetchFn func(sr SourceRegistry) ([]T, error)) ([]T, []string, error)
AggregateFromSources calls fetchFn for each registry and aggregates results. On multi-source queries, individual source failures are collected as warnings rather than aborting. If all sources fail, an error is returned.
func ExpandPath ¶
ExpandPath expands ~ to the user's home directory and resolves the path. Note: only ~/... and bare ~ are supported; ~user syntax is not handled.
func IsDefaultImage ¶ added in v0.0.34
IsDefaultImage reports whether image is the unresolved default (no tag or :latest).
func IsPortAvailable ¶ added in v0.0.34
IsPortAvailable probes whether a TCP port appears to be free on the host at the moment of the call by attempting a brief bind on all interfaces. Because the socket is closed before returning, the result is a best-effort snapshot: the port may be claimed by another process between this check and the actual daemon bind. Works on Linux and macOS without relying on external tools.
func MigrateLayout ¶ added in v0.0.11
MigrateLayout migrates legacy single-instance layout into instances/default. It is safe to call repeatedly.
func NextAvailablePort ¶ added in v0.0.11
NextAvailablePort returns the lowest free port >= start that is not used by another klausctl instance and is also available on the host.
func UsedPorts ¶ added in v0.0.11
UsedPorts returns ports currently known in config or instance state files.
func ValidateInstanceName ¶ added in v0.0.11
ValidateInstanceName validates a named instance using DNS-label rules.
func ValidateSourceName ¶ added in v0.0.23
ValidateSourceName checks that a source name is valid.
Types ¶
type AgentConfig ¶
type AgentConfig struct {
Description string `yaml:"description" json:"description"`
Prompt string `yaml:"prompt" json:"prompt"`
Tools []string `yaml:"tools,omitempty" json:"tools,omitempty"`
DisallowedTools []string `yaml:"disallowedTools,omitempty" json:"disallowedTools,omitempty"`
Model string `yaml:"model,omitempty" json:"model,omitempty"`
PermissionMode string `yaml:"permissionMode,omitempty" json:"permissionMode,omitempty"`
MaxTurns int `yaml:"maxTurns,omitempty" json:"maxTurns,omitempty"`
Skills []string `yaml:"skills,omitempty" json:"skills,omitempty"`
McpServers map[string]any `yaml:"mcpServers,omitempty" json:"mcpServers,omitempty"`
Hooks map[string]any `yaml:"hooks,omitempty" json:"hooks,omitempty"`
Memory string `yaml:"memory,omitempty" json:"memory,omitempty"`
}
AgentConfig defines a JSON-format subagent (highest priority). This mirrors the klaus AgentConfig type.
type AgentFile ¶
type AgentFile struct {
// Content is the raw markdown content for the agent file.
Content string `yaml:"content"`
}
AgentFile defines a markdown-format subagent file.
type ClaudeConfig ¶
type ClaudeConfig struct {
// Model is the Claude model (e.g. "sonnet", "opus", "claude-sonnet-4-20250514").
Model string `yaml:"model,omitempty"`
// SystemPrompt overrides the default system prompt.
SystemPrompt string `yaml:"systemPrompt,omitempty"`
// AppendSystemPrompt appends to the default system prompt.
AppendSystemPrompt string `yaml:"appendSystemPrompt,omitempty"`
// MaxTurns limits agentic turns per prompt; 0 means unlimited.
MaxTurns int `yaml:"maxTurns,omitempty"`
// PermissionMode controls tool permissions: "default", "acceptEdits",
// "bypassPermissions", "dontAsk", "plan", "delegate".
PermissionMode string `yaml:"permissionMode,omitempty"`
// MaxBudgetUSD caps the maximum dollar spend per invocation; 0 means no limit.
MaxBudgetUSD float64 `yaml:"maxBudgetUsd,omitempty"`
// Effort controls effort level: "low", "medium", "high".
Effort string `yaml:"effort,omitempty"`
// FallbackModel specifies a model to use when the primary is overloaded.
FallbackModel string `yaml:"fallbackModel,omitempty"`
// Tools controls the base set of built-in tools.
Tools []string `yaml:"tools,omitempty"`
// AllowedTools restricts tool access with patterns.
AllowedTools []string `yaml:"allowedTools,omitempty"`
// DisallowedTools blocks specific tools.
DisallowedTools []string `yaml:"disallowedTools,omitempty"`
// StrictMcpConfig when true only uses MCP servers from config.
StrictMcpConfig bool `yaml:"strictMcpConfig,omitempty"`
// McpTimeout sets the MCP call timeout in milliseconds.
McpTimeout int `yaml:"mcpTimeout,omitempty"`
// MaxMcpOutputTokens limits MCP server output token count.
MaxMcpOutputTokens int `yaml:"maxMcpOutputTokens,omitempty"`
// ActiveAgent selects which agent runs as the top-level agent.
ActiveAgent string `yaml:"activeAgent,omitempty"`
// Mode selects the operating mode: "agent" (default) for autonomous coding
// with a new process per prompt and no session persistence, or "chat" for
// interactive conversation with a persistent process and saved sessions.
Mode string `yaml:"mode,omitempty"`
// IncludePartialMessages enables streaming of partial messages.
IncludePartialMessages bool `yaml:"includePartialMessages,omitempty"`
// JsonSchema provides a JSON schema for structured output.
JsonSchema string `yaml:"jsonSchema,omitempty"`
// SettingsFile is an alternative to inline hooks -- a path to a settings.json.
// Mutually exclusive with Hooks.
SettingsFile string `yaml:"settingsFile,omitempty"`
// SettingSources controls setting source precedence.
SettingSources string `yaml:"settingSources,omitempty"`
// LoadAdditionalDirsMemory enables loading CLAUDE.md memory files from
// additional directories. Defaults to true, matching the Helm chart default.
LoadAdditionalDirsMemory *bool `yaml:"loadAdditionalDirsMemory,omitempty"`
// AddDirs are additional directories for skills and agents.
AddDirs []string `yaml:"addDirs,omitempty"`
// PluginDirs are directories to load plugins from.
PluginDirs []string `yaml:"pluginDirs,omitempty"`
}
ClaudeConfig contains Claude Code agent configuration, mirroring the Helm values.claude section.
type Config ¶
type Config struct {
// Runtime is the container runtime: "docker" or "podman".
// Auto-detected if empty.
Runtime string `yaml:"runtime,omitempty"`
// Personality is an OCI reference to a personality artifact that defines
// the AI's identity (SOUL.md) and a curated set of plugins. Instance-level
// config (image, plugins) composes with and can override personality values.
Personality string `yaml:"personality,omitempty"`
// Image is the klaus container image reference.
Image string `yaml:"image"`
// Toolchain is the configured toolchain reference used to resolve Image.
// This preserves the user's intent in per-instance config metadata.
Toolchain string `yaml:"toolchain,omitempty"`
// Workspace is the host directory to mount into the container at /workspace.
Workspace string `yaml:"workspace"`
// WorktreePath is the path to the local git clone created for this instance.
// When set, this path is bind-mounted instead of Workspace, and Workspace
// stores the original repository path for clone lifecycle management.
WorktreePath string `yaml:"worktreePath,omitempty"`
// Port is the host port mapped to the container's MCP endpoint (8080).
Port int `yaml:"port"`
// Claude contains Claude Code agent configuration.
Claude ClaudeConfig `yaml:"claude,omitempty"`
// Skills defines inline skills rendered as SKILL.md files.
Skills map[string]Skill `yaml:"skills,omitempty"`
// AgentFiles defines markdown-format subagent definitions rendered as .claude/agents/<name>.md.
AgentFiles map[string]AgentFile `yaml:"agentFiles,omitempty"`
// Agents defines JSON-format subagents passed via CLAUDE_AGENTS env var (highest priority).
Agents map[string]AgentConfig `yaml:"agents,omitempty"`
// Hooks defines lifecycle hooks rendered to settings.json.
Hooks map[string][]HookMatcher `yaml:"hooks,omitempty"`
// HookScripts defines hook script contents mounted at /etc/klaus/hooks/<name>.
HookScripts map[string]string `yaml:"hookScripts,omitempty"`
// McpServers defines MCP server entries rendered to .mcp.json format.
McpServers map[string]any `yaml:"mcpServers,omitempty"`
// Plugins references OCI plugins pulled before container start.
Plugins []Plugin `yaml:"plugins,omitempty"`
// EnvForward lists host environment variable names to forward to the container.
// ANTHROPIC_API_KEY is always forwarded if set.
EnvForward []string `yaml:"envForward,omitempty"`
// EnvVars sets explicit environment variable key-value pairs in the container.
EnvVars map[string]string `yaml:"envVars,omitempty"`
// SecretEnvVars maps container env var names to secret store names.
// At start time each secret is resolved and injected as an env var.
SecretEnvVars map[string]string `yaml:"secretEnvVars,omitempty"`
// SecretFiles maps container file paths to secret store names.
// At start time each secret is resolved, written to rendered/secrets/,
// and mounted read-only into the container at the specified path.
SecretFiles map[string]string `yaml:"secretFiles,omitempty"`
// Git configures git identity, credential helper, and URL rewriting
// inside the container. When set, the corresponding environment variables
// and/or a container-local gitconfig are injected at start time.
Git GitConfig `yaml:"git,omitempty"`
// McpServerRefs lists managed MCP server names to include.
// At start time each reference is resolved from the global mcpservers.yaml
// and merged into McpServers with a Bearer token header.
McpServerRefs []string `yaml:"mcpServerRefs,omitempty"`
// contains filtered or unexported fields
}
Config represents the klausctl configuration file at ~/.config/klausctl/config.yaml. The structure intentionally mirrors the Helm chart values so that knowledge transfers between local, standalone, and operator-managed modes.
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig returns a minimal default configuration with all defaults applied. Note: Workspace must be set by the caller before the config can pass Validate().
func GenerateInstanceConfig ¶ added in v0.0.11
func GenerateInstanceConfig(paths *Paths, opts CreateOptions) (*Config, error)
GenerateInstanceConfig builds a per-instance configuration from create options.
func Load ¶
Load reads and parses the configuration file. If path is empty, the default path (~/.config/klausctl/config.yaml) is used.
func (*Config) ImageExplicitlySet ¶ added in v0.0.10
ImageExplicitlySet reports whether the Image field was explicitly set in the config file (before defaults were applied). When false, a personality's image takes precedence.
type CreateOptions ¶ added in v0.0.11
type CreateOptions struct {
Name string
Workspace string
Personality string
Toolchain string
Plugins []string
Port int
// Mode selects the operating mode: "agent" (default) for autonomous
// coding or "chat" for interactive conversation.
Mode string
// NoIsolate disables git worktree creation even when the workspace is a
// git repository. When false (the default), a worktree is created
// automatically for git-backed workspaces.
NoIsolate bool
// NoFetch skips the "git fetch origin" step before cloning the
// workspace. When false (the default), origin is fetched to ensure
// agents work against up-to-date code.
NoFetch bool
// Git identity and auth overrides.
GitAuthorName string
GitAuthorEmail string
GitCredentialHelper string
GitHTTPSInsteadOfSSH bool
// Override fields applied after personality resolution.
EnvVars map[string]string
EnvForward []string
McpServers map[string]any
SecretEnvVars map[string]string
SecretFiles map[string]string
McpServerRefs []string
MaxBudgetUSD *float64
PermissionMode string
Model string
SystemPrompt string
// SourceResolver provides multi-source artifact resolution.
// When nil, the default built-in source is used.
SourceResolver *SourceResolver
// Context and Output are passed to ResolvePersonality when provided.
Context context.Context
Output io.Writer
// ResolvePersonality optionally resolves and pulls a personality reference.
// Keeping this as a callback avoids package cycles while allowing
// GenerateInstanceConfig to encapsulate create-time merge behavior.
ResolvePersonality func(ctx context.Context, ref string, w io.Writer) (*ResolvedPersonality, error)
}
CreateOptions defines user-facing parameters for klausctl create.
type GitConfig ¶ added in v0.0.34
type GitConfig struct {
// AuthorName sets GIT_AUTHOR_NAME and GIT_COMMITTER_NAME.
AuthorName string `yaml:"authorName,omitempty"`
// AuthorEmail sets GIT_AUTHOR_EMAIL and GIT_COMMITTER_EMAIL.
AuthorEmail string `yaml:"authorEmail,omitempty"`
// CredentialHelper configures the git credential helper. Currently
// only "gh" is supported, which configures git to call
// "gh auth git-credential" as the credential helper for
// github.com and gist.github.com.
CredentialHelper string `yaml:"credentialHelper,omitempty"`
// HTTPSInsteadOfSSH when true adds url.<https>.insteadOf rules to a
// container-local gitconfig so that SSH-style GitHub URLs
// (git@github.com:...) are rewritten to HTTPS without modifying
// the workspace .git/config.
HTTPSInsteadOfSSH bool `yaml:"httpsInsteadOfSsh,omitempty"`
}
GitConfig configures git identity, authentication, and URL rewriting inside the container. These settings are applied via environment variables and a container-local gitconfig, avoiding modifications to the bind-mounted workspace's .git/config.
type Hook ¶
type Hook struct {
Type string `yaml:"type" json:"type"`
Command string `yaml:"command" json:"command"`
Timeout int `yaml:"timeout,omitempty" json:"timeout,omitempty"`
}
Hook defines a single hook action.
type HookMatcher ¶
type HookMatcher struct {
Matcher string `yaml:"matcher" json:"matcher"`
Hooks []Hook `yaml:"hooks" json:"hooks"`
}
HookMatcher defines a hook matcher entry for settings.json.
type Paths ¶
type Paths struct {
// ConfigDir is the base config directory (~/.config/klausctl).
ConfigDir string
// ConfigFile is the path to the config file.
ConfigFile string
// InstancesDir is the directory containing all named instances.
InstancesDir string
// InstanceDir is the directory for the selected instance.
InstanceDir string
// RenderedDir is where rendered config files are written.
RenderedDir string
// ExtensionsDir is the rendered extensions directory (skills, agents).
ExtensionsDir string
// PluginsDir is where OCI plugins are stored.
PluginsDir string
// PersonalitiesDir is where OCI personalities are stored.
PersonalitiesDir string
// InstanceFile is the path to the instance state file.
InstanceFile string
// ArchivesDir is the directory for archived instance transcripts.
ArchivesDir string
// SecretsFile is the path to the secrets store (~/.config/klausctl/secrets.yaml).
SecretsFile string
// TokensDir is the directory for stored OAuth tokens (~/.config/klausctl/tokens/).
TokensDir string
// McpServersFile is the path to the managed MCP servers file (~/.config/klausctl/mcpservers.yaml).
McpServersFile string
// SourcesFile is the path to the sources configuration file (~/.config/klausctl/sources.yaml).
SourcesFile string
// MusterConfigDir is the muster config root (~/.config/klausctl/muster/).
// Contains muster's own config.yaml and the mcpservers/ subdirectory.
MusterConfigDir string
// MusterMCPServersDir is where muster-native MCPServerSpec YAML files live
// (~/.config/klausctl/muster/mcpservers/).
MusterMCPServersDir string
// MusterPIDFile tracks the PID of the managed muster process.
MusterPIDFile string
// MusterPortFile tracks the port of the managed muster process.
MusterPortFile string
// ReposDir is the managed repo cache directory (~/.config/klausctl/repos/).
ReposDir string
// WorkspacesFile is the path to the workspace registry (~/.config/klausctl/workspaces.yaml).
WorkspacesFile string
}
Paths holds the filesystem paths used by klausctl.
func DefaultPaths ¶
DefaultPaths returns the default paths using XDG conventions. It returns an error if the user home directory cannot be determined and XDG_CONFIG_HOME is not set.
func (*Paths) ForInstance ¶ added in v0.0.11
ForInstance returns a copy of paths scoped to one instance directory.
func (*Paths) HasMusterConfig ¶ added in v0.0.34
HasMusterConfig reports whether the muster config directory contains at least one MCP server YAML file. The bridge should only start when there is something to serve.
type Plugin ¶
type Plugin struct {
Repository string `yaml:"repository"`
Tag string `yaml:"tag,omitempty"`
Digest string `yaml:"digest,omitempty"`
}
Plugin references an OCI plugin artifact.
func ParsePluginRef ¶ added in v0.0.11
ParsePluginRef resolves a plugin reference into config.Plugin fields using the default built-in source.
func ParsePluginRefWith ¶ added in v0.0.23
func ParsePluginRefWith(ref string, resolver *SourceResolver) Plugin
ParsePluginRefWith resolves a plugin reference into config.Plugin fields using the provided SourceResolver.
type ResolvedPersonality ¶ added in v0.0.11
ResolvedPersonality contains personality-derived values merged into config.
type Skill ¶
type Skill struct {
// Description is a short description of the skill.
Description string `yaml:"description,omitempty"`
// Content is the skill's markdown body.
Content string `yaml:"content"`
// DisableModelInvocation prevents the model from invoking this skill automatically.
DisableModelInvocation bool `yaml:"disableModelInvocation,omitempty"`
// UserInvocable marks the skill as invocable by the user.
UserInvocable bool `yaml:"userInvocable,omitempty"`
// AllowedTools restricts which tools the skill can use.
AllowedTools string `yaml:"allowedTools,omitempty"`
// Model overrides the model for this skill.
Model string `yaml:"model,omitempty"`
// Context provides additional context for the skill.
Context any `yaml:"context,omitempty"`
// Agent associates the skill with a specific agent.
Agent string `yaml:"agent,omitempty"`
// ArgumentHint provides a hint for the skill's argument.
ArgumentHint string `yaml:"argumentHint,omitempty"`
}
Skill defines an inline Claude Code skill rendered as a SKILL.md file.
type Source ¶ added in v0.0.23
type Source struct {
Name string `yaml:"name"`
Registry string `yaml:"registry"`
Default bool `yaml:"default,omitempty"`
Toolchains string `yaml:"toolchains,omitempty"`
Personalities string `yaml:"personalities,omitempty"`
Plugins string `yaml:"plugins,omitempty"`
}
Source is a named OCI registry providing toolchains, personalities, and/or plugins.
func (Source) PersonalityRegistry ¶ added in v0.0.23
PersonalityRegistry returns the personality base path for this source. Falls back to convention: <registry>/klaus-personalities
func (Source) PluginRegistry ¶ added in v0.0.23
PluginRegistry returns the plugin base path for this source. Falls back to convention: <registry>/klaus-plugins
func (Source) ToolchainRegistry ¶ added in v0.0.23
ToolchainRegistry returns the toolchain base path for this source. Falls back to convention: <registry>/klaus-toolchains
type SourceConfig ¶ added in v0.0.23
type SourceConfig struct {
Sources []Source `yaml:"sources"`
// contains filtered or unexported fields
}
SourceConfig holds the list of configured sources.
func DefaultSourceConfig ¶ added in v0.0.23
func DefaultSourceConfig() *SourceConfig
DefaultSourceConfig returns a source config with only the built-in source.
func LoadSourceConfig ¶ added in v0.0.23
func LoadSourceConfig(path string) (*SourceConfig, error)
LoadSourceConfig reads and parses the sources configuration file. If the file does not exist, the default config (built-in source only) is returned.
func (*SourceConfig) Add ¶ added in v0.0.23
func (sc *SourceConfig) Add(s Source) error
Add adds a new source. Returns an error if a source with the same name already exists.
func (*SourceConfig) Get ¶ added in v0.0.23
func (sc *SourceConfig) Get(name string) *Source
Get returns the source with the given name, or nil if not found.
func (*SourceConfig) Remove ¶ added in v0.0.23
func (sc *SourceConfig) Remove(name string) error
Remove removes a source by name. The built-in source cannot be removed.
func (*SourceConfig) Save ¶ added in v0.0.23
func (sc *SourceConfig) Save() error
Save writes the source config to disk.
func (*SourceConfig) SaveTo ¶ added in v0.0.23
func (sc *SourceConfig) SaveTo(path string) error
SaveTo writes the source config to the specified path.
func (*SourceConfig) SetDefault ¶ added in v0.0.23
func (sc *SourceConfig) SetDefault(name string) error
SetDefault marks the named source as default (and clears default on all others).
func (*SourceConfig) Update ¶ added in v0.0.23
func (sc *SourceConfig) Update(name string, patch Source) error
Update modifies an existing source. Only non-empty fields in the provided Source are applied (registry, toolchains, personalities, plugins). Use ClearOverride ("-") as a field value to reset an override back to the convention-based default. Returns an error if the source is not found.
func (*SourceConfig) Validate ¶ added in v0.0.23
func (sc *SourceConfig) Validate() error
Validate checks the source configuration for errors.
type SourceRegistry ¶ added in v0.0.23
SourceRegistry pairs a source name with a registry base path.
type SourceResolver ¶ added in v0.0.23
type SourceResolver struct {
// contains filtered or unexported fields
}
SourceResolver wraps a list of sources and provides artifact reference resolution. The default source (if any) is placed first for short-name resolution priority.
func DefaultSourceResolver ¶ added in v0.0.23
func DefaultSourceResolver() *SourceResolver
DefaultSourceResolver returns a resolver with only the built-in source.
func NewSourceResolver ¶ added in v0.0.23
func NewSourceResolver(sources []Source) *SourceResolver
NewSourceResolver creates a resolver from the given sources. If sources is empty, the built-in default source is used. Sources are reordered so the one marked Default comes first.
func (*SourceResolver) DefaultOnly ¶ added in v0.0.23
func (r *SourceResolver) DefaultOnly() *SourceResolver
DefaultOnly returns a resolver restricted to the default source (the first source after default-first ordering). The SourceResolver constructor guarantees at least one source is always present, so this is safe; the guard is purely defensive.
func (*SourceResolver) ForSource ¶ added in v0.0.23
func (r *SourceResolver) ForSource(name string) (*SourceResolver, error)
ForSource returns a resolver restricted to a single named source. Returns an error if the source is not found.
func (*SourceResolver) PersonalityRegistries ¶ added in v0.0.23
func (r *SourceResolver) PersonalityRegistries() []SourceRegistry
PersonalityRegistries returns all personality registry bases with source annotations.
func (*SourceResolver) PluginRegistries ¶ added in v0.0.23
func (r *SourceResolver) PluginRegistries() []SourceRegistry
PluginRegistries returns all plugin registry bases with source annotations.
func (*SourceResolver) ResolvePersonalityRef ¶ added in v0.0.23
func (r *SourceResolver) ResolvePersonalityRef(ref string) string
ResolvePersonalityRef expands a short personality name using the default source.
func (*SourceResolver) ResolvePluginRef ¶ added in v0.0.23
func (r *SourceResolver) ResolvePluginRef(ref string) string
ResolvePluginRef expands a short plugin name using the default source.
func (*SourceResolver) ResolveToolchainRef ¶ added in v0.0.23
func (r *SourceResolver) ResolveToolchainRef(ref string) string
ResolveToolchainRef expands a short toolchain name using the default source.
func (*SourceResolver) Sources ¶ added in v0.0.23
func (r *SourceResolver) Sources() []Source
Sources returns a copy of the underlying list of sources.
func (*SourceResolver) ToolchainRegistries ¶ added in v0.0.23
func (r *SourceResolver) ToolchainRegistries() []SourceRegistry
ToolchainRegistries returns all toolchain registry bases with source annotations.