Documentation
¶
Overview ¶
Package config provides configuration management for OpenPass. It handles vault, git, and MCP server configuration with support for YAML serialization and default value merging.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AgentProfile ¶
type AgentProfile struct {
Name string `yaml:"-"`
ApprovalMode string `yaml:"approvalMode"`
AllowedPaths []string `yaml:"allowedPaths"`
RedactFields []string `yaml:"redactFields,omitempty"`
CanWrite bool `yaml:"canWrite"`
RequireApproval bool `yaml:"requireApproval"`
ApprovalTimeout time.Duration `yaml:"approvalTimeout,omitempty"`
}
type ClipboardConfig ¶
type ClipboardConfig struct {
AutoClearDuration int `yaml:"auto_clear_duration,omitempty"` // seconds, 0 = disabled
}
ClipboardConfig holds clipboard-related configuration.
func MergeFileClipboardConfig ¶
func MergeFileClipboardConfig(fileCfg *fileClipboardConfig, defaults ClipboardConfig) ClipboardConfig
MergeFileClipboardConfig merges file config with defaults, returning the final ClipboardConfig. If fileCfg is nil, defaults are returned unchanged.
type Config ¶
type Config struct {
Agents map[string]AgentProfile `yaml:"agents"`
Vault *VaultConfig `yaml:"vault,omitempty"`
Git *GitConfig `yaml:"git,omitempty"`
MCP *MCPConfig `yaml:"mcp,omitempty"`
Update *UpdateConfig `yaml:"update,omitempty"`
Clipboard *ClipboardConfig `yaml:"clipboard,omitempty"`
VaultDir string `yaml:"vaultDir"`
DefaultAgent string `yaml:"defaultAgent"`
SessionTimeout time.Duration `yaml:"sessionTimeout"`
UseTouchID bool `yaml:"useTouchID"`
}
type GitConfig ¶
type GitConfig struct {
CommitTemplate string `yaml:"commit_template,omitempty"`
AutoPush bool `yaml:"auto_push,omitempty"`
}
GitConfig holds git-related configuration for automatic commits and pushes.
func MergeFileGitConfig ¶
MergeFileGitConfig merges file config with defaults, returning the final GitConfig. If fileCfg is nil, defaults are returned unchanged.
type MCPConfig ¶
type MCPConfig struct {
Bind string `yaml:"bind,omitempty"`
HTTPTokenFile string `yaml:"httpTokenFile,omitempty"`
Port int `yaml:"port,omitempty"`
Stdio bool `yaml:"stdio,omitempty"`
ApprovalRequired bool `yaml:"approval_required,omitempty"`
ReadHeaderTimeout time.Duration `yaml:"read_header_timeout,omitempty"`
ReadTimeout time.Duration `yaml:"read_timeout,omitempty"`
WriteTimeout time.Duration `yaml:"write_timeout,omitempty"`
ShutdownTimeout time.Duration `yaml:"shutdown_timeout,omitempty"`
ApprovalTimeout time.Duration `yaml:"approval_timeout,omitempty"`
RateLimit int `yaml:"rate_limit,omitempty"` // requests per minute, 0 = disabled
}
MCPConfig holds MCP server-related configuration for AI agent integration.
func MergeFileMCPConfig ¶
MergeFileMCPConfig merges file config with defaults, returning the final MCPConfig. If fileCfg is nil, defaults are returned unchanged.
type UpdateConfig ¶ added in v1.1.1
UpdateConfig holds update check-related configuration.
func MergeFileUpdateConfig ¶ added in v1.1.1
func MergeFileUpdateConfig(fileCfg *fileUpdateConfig, defaults UpdateConfig) UpdateConfig
MergeFileUpdateConfig merges file config with defaults, returning the final UpdateConfig. If fileCfg is nil, defaults are returned unchanged.
type VaultConfig ¶
type VaultConfig struct {
Path string `yaml:"path,omitempty"`
DefaultRecipients []string `yaml:"default_recipients,omitempty"`
ConfirmRemove bool `yaml:"confirm_remove,omitempty"`
UseTouchID bool `yaml:"useTouchID,omitempty"`
}
VaultConfig holds vault-related configuration.
func MergeFileVaultConfig ¶
func MergeFileVaultConfig(fileCfg *fileVaultConfig, defaults VaultConfig) VaultConfig
MergeFileVaultConfig merges file config with defaults, returning the final VaultConfig. If fileCfg is nil, defaults are returned unchanged.