config

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package config loads Codog configuration from files, environment, and flags.

Index

Constants

View Source
const (
	DefaultBaseURL = modelrouting.DefaultAnthropicBaseURL
	DefaultModel   = "claude-sonnet-4-5"
)

Variables

This section is empty.

Functions

func HookCommandDisplay

func HookCommandDisplay(value HookCommand) string

func InspectionPaths

func InspectionPaths(overrides FlagOverrides) ([]string, error)

InspectionPaths returns the config files that inspection commands should use without reading or unmarshalling them.

func IsDiagnosticLoadError

func IsDiagnosticLoadError(err error) bool

IsDiagnosticLoadError reports whether err can still be shown through degraded diagnostic commands that do not need the rejected setting itself.

func IsFileError

func IsFileError(err error) bool

func ManagedPolicyPayload

func ManagedPolicyPayload(policy ManagedPolicy) ([]byte, error)

func MergeHookConfig

func MergeHookConfig(dst *HookConfig, src HookConfig)

func NormalizePermissionModeLabel

func NormalizePermissionModeLabel(mode string) (string, bool)

NormalizePermissionModeLabel resolves canonical Codog permission modes and Claude-compatible defaultMode aliases to canonical Codog modes.

func ParseConfigValue

func ParseConfigValue(raw string) any

func VerifyManagedPolicy

func VerifyManagedPolicy(policy ManagedPolicy, publicKey string) error

Types

type APITimeoutConfig

type APITimeoutConfig struct {
	ConnectTimeoutSeconds int `json:"connectTimeout,omitempty"`
	RequestTimeoutSeconds int `json:"requestTimeout,omitempty"`
	MaxRetries            int `json:"maxRetries,omitempty"`
}

type BackgroundConfig

type BackgroundConfig struct {
	StatePath string `json:"state_path,omitempty"`
}

BackgroundConfig holds local background worker state settings.

func (*BackgroundConfig) UnmarshalJSON

func (b *BackgroundConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON accepts snake_case and camelCase state path aliases.

type CompatibilityConfig

type CompatibilityConfig struct {
	SlackAppInstallCount      int                                       `json:"slack_app_install_count,omitempty"`
	StickerOrderCount         int                                       `json:"sticker_order_count,omitempty"`
	ExtraUsageVisitCount      int                                       `json:"extra_usage_visit_count,omitempty"`
	GuestPassReferralURL      string                                    `json:"guest_pass_referral_url,omitempty"`
	GuestPassVisitCount       int                                       `json:"guest_pass_visit_count,omitempty"`
	GuestPassEligibilityCache map[string]GuestPassEligibilityCacheEntry `json:"guest_pass_eligibility_cache,omitempty"`
	HasVisitedPasses          *bool                                     `json:"has_visited_passes,omitempty"`
	PassesUpsellSeenCount     int                                       `json:"passes_upsell_seen_count,omitempty"`
	PassesLastSeenRemaining   *int                                      `json:"passes_last_seen_remaining,omitempty"`
	// contains filtered or unexported fields
}

CompatibilityConfig holds counters for Claude Code compatibility entrypoints.

func (*CompatibilityConfig) UnmarshalJSON

func (c *CompatibilityConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON accepts snake_case and camelCase compatibility aliases.

type Config

type Config struct {
	APIKey                     string                     `json:"api_key,omitempty"`
	APIKeyHelper               string                     `json:"apiKeyHelper,omitempty"`
	AuthToken                  string                     `json:"auth_token,omitempty"`
	OAuthProfile               string                     `json:"oauth_profile,omitempty"`
	ForceLoginMethod           string                     `json:"forceLoginMethod,omitempty"`
	ForceLoginOrgUUID          string                     `json:"forceLoginOrgUUID,omitempty"`
	BaseURL                    string                     `json:"base_url,omitempty"`
	Model                      string                     `json:"model,omitempty"`
	ModelEnvVar                string                     `json:"-"`
	RuntimeProvider            string                     `json:"-"`
	RuntimeProviderSource      string                     `json:"-"`
	AdvisorModel               string                     `json:"advisor_model,omitempty"`
	SubagentModel              string                     `json:"subagentModel,omitempty"`
	SystemPrompt               string                     `json:"system_prompt,omitempty"`
	AppendSystemPrompt         string                     `json:"append_system_prompt,omitempty"`
	Language                   string                     `json:"language,omitempty"`
	Theme                      string                     `json:"theme,omitempty"`
	EditorMode                 string                     `json:"editorMode,omitempty"`
	DefaultShell               string                     `json:"defaultShell,omitempty"`
	ReasoningEffort            string                     `json:"reasoning_effort,omitempty"`
	FastMode                   *bool                      `json:"fast_mode,omitempty"`
	VoiceEnabled               *bool                      `json:"voice_enabled,omitempty"`
	VoiceCommand               string                     `json:"voice_command,omitempty"`
	SpeechCommand              string                     `json:"speech_command,omitempty"`
	MaxTokens                  int                        `json:"max_tokens,omitempty"`
	MaxTurns                   int                        `json:"max_turns,omitempty"`
	Temperature                *float64                   `json:"temperature,omitempty"`
	ExtraBody                  map[string]any             `json:"extra_body,omitempty"`
	PermissionMode             string                     `json:"permission_mode,omitempty"`
	PermissionModeRaw          string                     `json:"-"`
	PermissionModeSource       string                     `json:"-"`
	PermissionModeEnvVar       string                     `json:"-"`
	PlanMode                   bool                       `json:"-"`
	ToolNames                  []string                   `json:"-"`
	ToolNamesSet               bool                       `json:"-"`
	Debug                      bool                       `json:"-"`
	Verbose                    bool                       `json:"-"`
	DebugFile                  string                     `json:"-"`
	Privacy                    PrivacyConfig              `json:"privacy_settings,omitempty"`
	PermissionRules            PermissionRules            `json:"permission_rules,omitempty"`
	ConfigHome                 string                     `json:"config_home,omitempty"`
	AutoCompactMessages        int                        `json:"auto_compact_messages,omitempty"`
	CleanupPeriodDays          *int                       `json:"cleanupPeriodDays,omitempty"`
	RespectGitignore           *bool                      `json:"respectGitignore,omitempty"`
	DisableAllHooks            *bool                      `json:"disableAllHooks,omitempty"`
	AllowManagedHooksOnly      *bool                      `json:"allowManagedHooksOnly,omitempty"`
	AllowedHTTPHookURLs        *[]string                  `json:"allowedHttpHookUrls,omitempty"`
	HTTPHookAllowedEnvVars     *[]string                  `json:"httpHookAllowedEnvVars,omitempty"`
	StatusLine                 *StatusLineConfig          `json:"statusLine,omitempty"`
	Worktree                   WorktreeConfig             `json:"worktree,omitempty"`
	EnableAllProjectMCPServers *bool                      `json:"enableAllProjectMcpServers,omitempty"`
	EnabledMCPJSONServers      []string                   `json:"enabledMcpjsonServers,omitempty"`
	DisabledMCPJSONServers     []string                   `json:"disabledMcpjsonServers,omitempty"`
	RateLimit                  RateLimitConfig            `json:"rate_limit,omitempty"`
	APITimeout                 APITimeoutConfig           `json:"apiTimeout,omitempty"`
	ProviderFallbacks          ProviderFallbackConfig     `json:"providerFallbacks,omitempty"`
	RulesImport                *RulesImportConfig         `json:"rulesImport,omitempty"`
	Env                        map[string]string          `json:"env,omitempty"`
	TrustedRoots               []string                   `json:"trustedRoots,omitempty"`
	RAGBaseURL                 string                     `json:"rag_base_url,omitempty"`
	RAGTimeoutSeconds          int                        `json:"rag_timeout_seconds,omitempty"`
	RAGTopKMax                 int                        `json:"rag_top_k_max,omitempty"`
	AdditionalDirs             []string                   `json:"additional_dirs,omitempty"`
	EnabledSkills              []string                   `json:"enabled_skills,omitempty"`
	Hooks                      HookConfig                 `json:"hooks,omitempty"`
	MCPServers                 map[string]MCPServerConfig `json:"mcp_servers,omitempty"`
	Future                     FutureConfig               `json:"future,omitempty"`
}

func Default

func Default(overrides FlagOverrides) (Config, error)

func DiagnosticDefault

func DiagnosticDefault(overrides FlagOverrides) (Config, error)

DiagnosticDefault returns a validated baseline configuration for commands that need to render diagnostics after full configuration loading has already failed. It intentionally skips config files, environment overrides, external credential helpers, and managed policy so the original load error remains visible instead of being repeated by the fallback renderer.

func Load

func Load(overrides FlagOverrides) (Config, error)

func LoadForInspection

func LoadForInspection(overrides FlagOverrides) (Config, []string, error)

func (Config) EffectiveAllowManagedHooksOnly

func (c Config) EffectiveAllowManagedHooksOnly() bool

EffectiveAllowManagedHooksOnly reports whether unmanaged hooks are ignored.

func (Config) EffectiveCleanupPeriodDays

func (c Config) EffectiveCleanupPeriodDays() int

EffectiveCleanupPeriodDays returns the configured transcript retention window.

func (Config) EffectiveDisableAllHooks

func (c Config) EffectiveDisableAllHooks() bool

EffectiveDisableAllHooks reports whether hook execution is globally disabled.

func (Config) EffectiveRespectGitignore

func (c Config) EffectiveRespectGitignore() bool

EffectiveRespectGitignore reports whether file enumeration should honor .gitignore.

func (Config) EffectiveRulesImport

func (c Config) EffectiveRulesImport() RulesImportConfig

EffectiveRulesImport returns the normalized external rule import policy.

func (*Config) UnmarshalJSON

func (c *Config) UnmarshalJSON(data []byte) error

type EditorBridgeConfig

type EditorBridgeConfig struct {
	Socket string `json:"socket,omitempty"`
	Token  string `json:"token,omitempty"`
}

EditorBridgeConfig holds local editor bridge connection settings.

func (*EditorBridgeConfig) UnmarshalJSON

func (e *EditorBridgeConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON accepts socket and token aliases used by editor integrations.

type EnterpriseConfig

type EnterpriseConfig struct {
	Policy          string `json:"policy,omitempty"`
	PolicyPublicKey string `json:"policy_public_key,omitempty"`
}

EnterpriseConfig holds managed organization policy configuration.

func (*EnterpriseConfig) UnmarshalJSON

func (e *EnterpriseConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON accepts snake_case and camelCase public key aliases.

type FileError

type FileError struct {
	Path string
	Err  error
}

func (*FileError) Error

func (e *FileError) Error() string

func (*FileError) Unwrap

func (e *FileError) Unwrap() error

type FlagOverrides

type FlagOverrides struct {
	ConfigPath                     string
	Settings                       string
	SettingSources                 []string
	SettingSourcesSet              bool
	CWD                            string
	SessionID                      string
	SessionName                    string
	Resume                         string
	FromPR                         string
	ResumeSessionAt                string
	Prefill                        string
	InitialPrompt                  string
	InitialAttachments             []string
	Agents                         string
	PluginDirs                     []string
	IDE                            bool
	DeepLinkOrigin                 bool
	DeepLinkRepo                   string
	DeepLinkLastFetchMS            int64
	Model                          string
	FallbackModel                  string
	Thinking                       string
	BaseURL                        string
	SystemPrompt                   string
	SystemPromptFile               string
	AppendPrompt                   string
	AppendPromptFile               string
	PermissionMode                 string
	PlanModeRequired               bool
	SkipPermissions                bool
	AllowBroadCWD                  bool
	AllowedTools                   []string
	DisallowedTools                []string
	AdditionalDirs                 []string
	ToolNames                      []string
	ToolNamesSet                   bool
	NoSessionPersistence           bool
	InputFormat                    string
	ReplayUserMessages             bool
	IncludePartialMessages         bool
	JSONSchema                     string
	ForkSession                    bool
	MCPConfigs                     []string
	StrictMCPConfig                bool
	OutputFormatSource             string
	OutputFormatRaw                string
	OutputFormatOverridden         bool
	OutputFormatSubcommandExplicit bool
	Debug                          bool
	Verbose                        bool
	DebugFile                      string
	MaxTurns                       int
	MaxTokens                      int
	MaxBudgetUSD                   *float64
	Temperature                    *float64
}

type FutureConfig

type FutureConfig struct {
	RemoteEnabled             bool                                      `json:"remote_enabled,omitempty"`
	RemoteAuthToken           string                                    `json:"remote_auth_token,omitempty"`
	RemoteLeaseSeconds        int                                       `json:"remote_lease_seconds,omitempty"`
	EnterprisePolicy          string                                    `json:"enterprise_policy,omitempty"`
	EnterprisePolicyPublicKey string                                    `json:"enterprise_policy_public_key,omitempty"`
	PluginMarketplaces        []string                                  `json:"plugin_marketplaces,omitempty"`
	PluginMarketplaceKeys     map[string]string                         `json:"plugin_marketplace_public_keys,omitempty"`
	SandboxStrategy           string                                    `json:"sandbox_strategy,omitempty"`
	Sandbox                   SandboxConfig                             `json:"sandbox,omitempty"`
	UpdaterManifestURL        string                                    `json:"updater_manifest_url,omitempty"`
	EditorBridgeSocket        string                                    `json:"editor_bridge_socket,omitempty"`
	EditorBridgeToken         string                                    `json:"editor_bridge_token,omitempty"`
	BackgroundStatePath       string                                    `json:"background_state_path,omitempty"`
	ChromeDefaultEnabled      *bool                                     `json:"chrome_default_enabled,omitempty"`
	NotificationsEnabled      *bool                                     `json:"notifications_enabled,omitempty"`
	UltraReviewEnabled        *bool                                     `json:"ultrareview_enabled,omitempty"`
	SlackAppInstallCount      int                                       `json:"slack_app_install_count,omitempty"`
	StickerOrderCount         int                                       `json:"sticker_order_count,omitempty"`
	ExtraUsageVisitCount      int                                       `json:"extra_usage_visit_count,omitempty"`
	GuestPassReferralURL      string                                    `json:"guest_pass_referral_url,omitempty"`
	GuestPassVisitCount       int                                       `json:"guest_pass_visit_count,omitempty"`
	GuestPassEligibilityCache map[string]GuestPassEligibilityCacheEntry `json:"guest_pass_eligibility_cache,omitempty"`
	HasVisitedPasses          *bool                                     `json:"has_visited_passes,omitempty"`
	PassesUpsellSeenCount     int                                       `json:"passes_upsell_seen_count,omitempty"`
	PassesLastSeenRemaining   *int                                      `json:"passes_last_seen_remaining,omitempty"`
}

type GuestPassEligibilityCacheEntry

type GuestPassEligibilityCacheEntry struct {
	Eligible        bool       `json:"eligible"`
	Timestamp       time.Time  `json:"timestamp"`
	Campaign        string     `json:"campaign,omitempty"`
	ReferralURL     string     `json:"referral_url,omitempty"`
	RemainingPasses *int       `json:"remaining_passes,omitempty"`
	Limit           *int       `json:"limit,omitempty"`
	Redeemed        *int       `json:"redeemed,omitempty"`
	AvailablePasses *int       `json:"available_passes,omitempty"`
	ReferrerReward  *MoneyInfo `json:"referrer_reward,omitempty"`
}

GuestPassEligibilityCacheEntry stores cached guest pass eligibility by organization UUID.

type HookCommand

type HookCommand struct {
	Matcher        string
	Type           string
	Command        string
	URL            string
	Prompt         string
	Model          string
	If             string
	Shell          string
	TimeoutSeconds float64
	Headers        map[string]string
	AllowedEnvVars []string
	StatusMessage  string
	Once           bool
	Async          bool
	AsyncRewake    bool
	InvalidKind    string
	InvalidField   string
	InvalidReason  string
}

type HookConfig

type HookConfig struct {
	PreToolUse                 []string      `json:"pre_tool_use,omitempty"`
	PostToolUse                []string      `json:"post_tool_use,omitempty"`
	PostToolUseFailure         []string      `json:"post_tool_use_failure,omitempty"`
	PermissionRequest          []string      `json:"permission_request,omitempty"`
	PermissionDenied           []string      `json:"permission_denied,omitempty"`
	UserPromptSubmit           []string      `json:"user_prompt_submit,omitempty"`
	SessionStart               []string      `json:"session_start,omitempty"`
	SessionEnd                 []string      `json:"session_end,omitempty"`
	Setup                      []string      `json:"setup,omitempty"`
	Stop                       []string      `json:"stop,omitempty"`
	StopFailure                []string      `json:"stop_failure,omitempty"`
	PreCompact                 []string      `json:"pre_compact,omitempty"`
	PostCompact                []string      `json:"post_compact,omitempty"`
	Notification               []string      `json:"notification,omitempty"`
	SubagentStart              []string      `json:"subagent_start,omitempty"`
	SubagentStop               []string      `json:"subagent_stop,omitempty"`
	WorktreeCreate             []string      `json:"worktree_create,omitempty"`
	WorktreeRemove             []string      `json:"worktree_remove,omitempty"`
	CwdChanged                 []string      `json:"cwd_changed,omitempty"`
	TaskCreated                []string      `json:"task_created,omitempty"`
	TaskCompleted              []string      `json:"task_completed,omitempty"`
	InstructionsLoaded         []string      `json:"instructions_loaded,omitempty"`
	FileChanged                []string      `json:"file_changed,omitempty"`
	PreToolUseCommands         []HookCommand `json:"-"`
	PostToolUseCommands        []HookCommand `json:"-"`
	PostToolUseFailureCommands []HookCommand `json:"-"`
	PermissionRequestCommands  []HookCommand `json:"-"`
	PermissionDeniedCommands   []HookCommand `json:"-"`
	UserPromptSubmitCommands   []HookCommand `json:"-"`
	SessionStartCommands       []HookCommand `json:"-"`
	SessionEndCommands         []HookCommand `json:"-"`
	SetupCommands              []HookCommand `json:"-"`
	StopCommands               []HookCommand `json:"-"`
	StopFailureCommands        []HookCommand `json:"-"`
	PreCompactCommands         []HookCommand `json:"-"`
	PostCompactCommands        []HookCommand `json:"-"`
	NotificationCommands       []HookCommand `json:"-"`
	SubagentStartCommands      []HookCommand `json:"-"`
	SubagentStopCommands       []HookCommand `json:"-"`
	WorktreeCreateCommands     []HookCommand `json:"-"`
	WorktreeRemoveCommands     []HookCommand `json:"-"`
	CwdChangedCommands         []HookCommand `json:"-"`
	TaskCreatedCommands        []HookCommand `json:"-"`
	TaskCompletedCommands      []HookCommand `json:"-"`
	InstructionsLoadedCommands []HookCommand `json:"-"`
	FileChangedCommands        []HookCommand `json:"-"`
}

func (*HookConfig) UnmarshalJSON

func (h *HookConfig) UnmarshalJSON(data []byte) error

type MCPServerConfig

type MCPServerConfig struct {
	Command           string                `json:"command,omitempty"`
	Args              []string              `json:"args,omitempty"`
	Env               []string              `json:"env,omitempty"`
	URL               string                `json:"url,omitempty"`
	Headers           map[string]string     `json:"headers,omitempty"`
	HeadersHelper     string                `json:"headers_helper,omitempty"`
	OAuth             *MCPServerOAuthConfig `json:"oauth,omitempty"`
	ToolCallTimeoutMS int                   `json:"tool_call_timeout_ms,omitempty"`
	Required          bool                  `json:"required,omitempty"`
}

func (*MCPServerConfig) UnmarshalJSON

func (m *MCPServerConfig) UnmarshalJSON(data []byte) error

type MCPServerOAuthConfig

type MCPServerOAuthConfig struct {
	ClientID              string `json:"clientId,omitempty"`
	CallbackPort          int    `json:"callbackPort,omitempty"`
	AuthServerMetadataURL string `json:"authServerMetadataUrl,omitempty"`
	XAA                   *bool  `json:"xaa,omitempty"`
}

func (*MCPServerOAuthConfig) UnmarshalJSON

func (m *MCPServerOAuthConfig) UnmarshalJSON(data []byte) error

type ManagedPolicy

type ManagedPolicy struct {
	MaxPermissionMode string          `json:"max_permission_mode,omitempty"`
	PermissionRules   PermissionRules `json:"permission_rules,omitempty"`
	DeniedTools       []string        `json:"denied_tools,omitempty"`
	Signature         string          `json:"signature,omitempty"`
}

func LoadManagedPolicyFile

func LoadManagedPolicyFile(path string) (ManagedPolicy, error)

func VerifyManagedPolicyFile

func VerifyManagedPolicyFile(path, publicKey string) (ManagedPolicy, error)

type MarketplaceConfig

type MarketplaceConfig struct {
	Sources    []string          `json:"sources,omitempty"`
	PublicKeys map[string]string `json:"public_keys,omitempty"`
	// contains filtered or unexported fields
}

MarketplaceConfig holds trusted plugin marketplace index sources.

func (*MarketplaceConfig) UnmarshalJSON

func (m *MarketplaceConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON accepts public_keys and publicKeys aliases.

type MoneyInfo

type MoneyInfo struct {
	Currency         string `json:"currency,omitempty"`
	AmountMinorUnits int    `json:"amount_minor_units,omitempty"`
}

MoneyInfo describes a monetary reward value returned by guest pass eligibility APIs.

type MutationReport

type MutationReport struct {
	Kind   string `json:"kind"`
	Action string `json:"action"`
	Status string `json:"status"`
	Path   string `json:"path"`
	Key    string `json:"key"`
}

func ResetFile

func ResetFile(path string) (MutationReport, error)

func SetFileValue

func SetFileValue(path string, key string, value any) (MutationReport, error)

func UnsetFileValue

func UnsetFileValue(path string, key string) (MutationReport, error)

type PermissionRules

type PermissionRules struct {
	DefaultMode           string   `json:"defaultMode,omitempty"`
	AdditionalDirectories []string `json:"additionalDirectories,omitempty"`
	Allow                 []string `json:"allow,omitempty"`
	Deny                  []string `json:"deny,omitempty"`
	Ask                   []string `json:"ask,omitempty"`
	DeniedTools           []string `json:"denied_tools,omitempty"`
}

func (*PermissionRules) UnmarshalJSON

func (r *PermissionRules) UnmarshalJSON(data []byte) error

type PreferencesConfig

type PreferencesConfig struct {
	ChromeDefaultEnabled *bool `json:"chrome_default_enabled,omitempty"`
	NotificationsEnabled *bool `json:"notifications_enabled,omitempty"`
	UltraReviewEnabled   *bool `json:"ultrareview_enabled,omitempty"`
}

PreferencesConfig holds user-facing runtime preferences.

func (*PreferencesConfig) UnmarshalJSON

func (p *PreferencesConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON accepts snake_case and camelCase preference aliases.

type PrivacyConfig

type PrivacyConfig struct {
	TelemetryEnabled     *bool `json:"telemetry_enabled,omitempty"`
	CrashReportsEnabled  *bool `json:"crash_reports_enabled,omitempty"`
	PromptHistoryEnabled *bool `json:"prompt_history_enabled,omitempty"`
}

type ProviderFallbackConfig

type ProviderFallbackConfig struct {
	Primary   string   `json:"primary,omitempty"`
	Fallbacks []string `json:"fallbacks,omitempty"`
}

type RateLimitConfig

type RateLimitConfig struct {
	MaxRetries       int `json:"max_retries,omitempty"`
	InitialBackoffMS int `json:"initial_backoff_ms,omitempty"`
	MaxBackoffMS     int `json:"max_backoff_ms,omitempty"`
}

func DefaultRateLimitConfig

func DefaultRateLimitConfig() RateLimitConfig

func NormalizeRateLimitConfig

func NormalizeRateLimitConfig(cfg RateLimitConfig) RateLimitConfig

type RemoteConfig

type RemoteConfig struct {
	Enabled      *bool  `json:"enabled,omitempty"`
	AuthToken    string `json:"auth_token,omitempty"`
	LeaseSeconds int    `json:"lease_seconds,omitempty"`
}

RemoteConfig holds the formal top-level remote-control configuration.

func (*RemoteConfig) UnmarshalJSON

func (r *RemoteConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON accepts both snake_case and camelCase remote field aliases.

type RulesImportConfig

type RulesImportConfig struct {
	Mode       string
	Frameworks []string
}

RulesImportConfig controls which external AI coding rule files are imported into project memory.

func (RulesImportConfig) IsZero

func (r RulesImportConfig) IsZero() bool

func (RulesImportConfig) MarshalJSON

func (r RulesImportConfig) MarshalJSON() ([]byte, error)

func (RulesImportConfig) ShouldImport

func (r RulesImportConfig) ShouldImport(framework string) bool

ShouldImport reports whether framework rules should be imported.

func (*RulesImportConfig) UnmarshalJSON

func (r *RulesImportConfig) UnmarshalJSON(data []byte) error

type SandboxConfig

type SandboxConfig struct {
	Strategy              string   `json:"-"`
	Enabled               *bool    `json:"enabled,omitempty"`
	NamespaceRestrictions *bool    `json:"namespace_restrictions,omitempty"`
	NetworkIsolation      *bool    `json:"network_isolation,omitempty"`
	FilesystemMode        string   `json:"filesystem_mode,omitempty"`
	AllowedMounts         []string `json:"allowed_mounts,omitempty"`
}

func (*SandboxConfig) UnmarshalJSON

func (s *SandboxConfig) UnmarshalJSON(data []byte) error

type StatusLineConfig

type StatusLineConfig struct {
	Type    string   `json:"type,omitempty"`
	Command string   `json:"command,omitempty"`
	Padding *float64 `json:"padding,omitempty"`
}

type UpdaterConfig

type UpdaterConfig struct {
	ManifestURL string `json:"manifest_url,omitempty"`
}

UpdaterConfig holds manifest-based binary update configuration.

func (*UpdaterConfig) UnmarshalJSON

func (u *UpdaterConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON accepts snake_case, camelCase, and short URL aliases.

type WorktreeConfig

type WorktreeConfig struct {
	SymlinkDirectories []string `json:"symlinkDirectories,omitempty"`
	SparsePaths        []string `json:"sparsePaths,omitempty"`
}

Jump to

Keyboard shortcuts

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