Documentation
¶
Index ¶
- Constants
- Variables
- func AppState() (string, error)
- func Clear(key string) error
- func Dir() (string, error)
- func MaskKey(key string) string
- func Path() (string, error)
- func Save(cfg UserConfig) error
- func SaveCommand(workDir, name, command string) error
- func SaveProjectConfig(workDir string, cfg *ProjectConfig) error
- type Command
- type ProjectConfig
- type ResolvedConfig
- type TaskConfig
- type UserConfig
- type VCSConfig
Constants ¶
const ( DefaultModel = "claude-sonnet-4-6" AnalyzeModel = "claude-sonnet-4-6" PromptModel = "claude-opus-4-6" ValidationModel = "claude-haiku-4-5-20251001" // SourceConfigFile is the source label used when a value comes from the user config file. SourceConfigFile = "Config file (user config)" )
Model constants define the Claude models used for different operations.
const ( RoleGate = "gate" // enforce at Stop, run-and-record at PreToolUse RolePrecheck = "precheck" // check at PreToolUse, enforce at Stop (changed-file variants) RoleAutofix = "autofix" // run at PreToolUse, enforce at Stop (formatters) )
Command roles determine hook placement in settings.json.
Variables ¶
var ValidConfigKeys = map[string]bool{ "model": true, }
ValidConfigKeys are the keys accepted by "config set". Credentials (anthropicAPIKey, circleCIToken) are intentionally excluded — users should use "auth set" which validates before storing.
Functions ¶
func Save ¶
func Save(cfg UserConfig) error
Save writes the config file, creating the directory with 0o700 and file with 0o600.
func SaveCommand ¶ added in v0.7.2
SaveCommand upserts a command in .chunk/config.json.
func SaveProjectConfig ¶ added in v0.7.2
func SaveProjectConfig(workDir string, cfg *ProjectConfig) error
SaveProjectConfig writes the config back to .chunk/config.json.
Types ¶
type Command ¶ added in v0.7.2
type Command struct {
Name string `json:"name"`
Run string `json:"run"`
Role string `json:"role,omitempty"`
FileExt string `json:"fileExt,omitempty"`
Timeout int `json:"timeout,omitempty"`
Limit int `json:"limit,omitempty"`
Always bool `json:"always,omitempty"`
Staged bool `json:"staged,omitempty"`
}
Command is a single validation command.
type ProjectConfig ¶ added in v0.7.2
type ProjectConfig struct {
Commands []Command `json:"commands,omitempty"`
Triggers map[string][]string `json:"triggers,omitempty"`
Tasks map[string]TaskConfig `json:"tasks,omitempty"`
VCS *VCSConfig `json:"vcs,omitempty"`
}
ProjectConfig is the per-repo configuration stored in .chunk/config.json.
func LoadProjectConfig ¶ added in v0.7.2
func LoadProjectConfig(workDir string) (*ProjectConfig, error)
LoadProjectConfig reads .chunk/config.json from workDir.
func (*ProjectConfig) FindCommand ¶ added in v0.7.2
func (c *ProjectConfig) FindCommand(name string) *Command
FindCommand returns the command with the given name, or nil if not found.
func (*ProjectConfig) HasCommands ¶ added in v0.7.2
func (c *ProjectConfig) HasCommands() bool
HasCommands reports whether any commands are configured.
type ResolvedConfig ¶
type ResolvedConfig struct {
AnthropicAPIKey string
AnthropicAPIKeySource string
CircleCIToken string
CircleCITokenSource string
GitHubToken string
GitHubTokenSource string
Model string
ModelSource string
AnalyzeModel string
PromptModel string
}
ResolvedConfig holds the final resolved values with their sources.
func Resolve ¶
func Resolve(flagAPIKey, flagModel string) (ResolvedConfig, error)
Resolve computes the final config from flags, env, and file. Priority for API key: flag > env > config file > (none). Priority for model: flag > CODE_REVIEW_CLI_MODEL env > config file > default.
type TaskConfig ¶ added in v0.7.2
type TaskConfig struct {
Instructions string `json:"instructions,omitempty"`
Schema string `json:"schema,omitempty"`
Limit int `json:"limit,omitempty"`
Always bool `json:"always,omitempty"`
Timeout int `json:"timeout,omitempty"`
}
TaskConfig holds task delegation configuration.
type UserConfig ¶
type UserConfig struct {
AnthropicAPIKey string `json:"anthropicAPIKey,omitempty"`
CircleCIToken string `json:"circleCIToken,omitempty"`
Model string `json:"model,omitempty"`
// LegacyAPIKey reads the pre-rename "apiKey" field so existing users don't
// silently lose their stored Anthropic key on upgrade. Migrated into
// AnthropicAPIKey by Load and dropped on the next Save (omitempty).
LegacyAPIKey string `json:"apiKey,omitempty"`
}
UserConfig is the on-disk JSON config.
func Load ¶
func Load() (UserConfig, error)
Load reads the config file. Returns empty config if not found.