config

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2026 License: MIT Imports: 8 Imported by: 0

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"`
	ApprovalTimeout time.Duration `yaml:"approvalTimeout,omitempty"`
	CanWrite        bool          `yaml:"canWrite"`
	RequireApproval bool          `yaml:"requireApproval"`
}

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"`
	Clipboard      *ClipboardConfig        `yaml:"clipboard,omitempty"`
	VaultDir       string                  `yaml:"vaultDir"`
	DefaultAgent   string                  `yaml:"defaultAgent"`
	SessionTimeout time.Duration           `yaml:"sessionTimeout"`
}

func Default

func Default() *Config

func Load

func Load(path string) (*Config, error)

func (*Config) Save

func (c *Config) Save() error

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

func MergeFileGitConfig(fileCfg *fileGitConfig, defaults GitConfig) GitConfig

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"`
}

MCPConfig holds MCP server-related configuration for AI agent integration.

func MergeFileMCPConfig

func MergeFileMCPConfig(fileCfg *fileMCPConfig, defaults MCPConfig) MCPConfig

MergeFileMCPConfig merges file config with defaults, returning the final MCPConfig. 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"`
}

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.

Jump to

Keyboard shortcuts

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