config

package
v0.72.2 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Default timeouts.
	DefaultModuleTimeout = 30 * time.Second
	DefaultAgentTimeout  = 60 * time.Second
	DefaultToolTimeout   = 30 * time.Second

	// Default cache TTL.
	DefaultCacheTTL = 5 * time.Minute

	// Default circuit breaker settings.
	DefaultFailureThreshold = 5
	DefaultRecoveryTimeout  = 30 * time.Second
	DefaultHalfOpenRequests = 3

	// Default retry settings.
	DefaultMaxRetries     = 3
	DefaultInitialBackoff = 100 * time.Millisecond
	DefaultMaxBackoff     = 10 * time.Second
	DefaultBackoffFactor  = 2.0

	// Default rate limiting.
	DefaultRequestsPerMinute = 60
	DefaultBurstSize         = 10
	DefaultRateWindow        = 1 * time.Minute

	// Default validation settings.
	DefaultMaxStringLength = 1000
	DefaultMaxInputSize    = 1024 * 1024 // 1MB

	// Default sanitization settings.
	DefaultSanitizationMaxLength = 10240 // 10KB

	// Default audit settings.
	DefaultAuditLogLevel = "INFO"
)

Default values for interceptor configurations.

Variables

This section is empty.

Functions

func CreateDefaultConfigFileInCurrentDir added in v0.37.0

func CreateDefaultConfigFileInCurrentDir() (string, error)

CreateDefaultConfigFileInCurrentDir creates a default configuration file in the current directory.

func CreateDefaultConfigFileInHomeDir added in v0.37.0

func CreateDefaultConfigFileInHomeDir() (string, error)

CreateDefaultConfigFileInHomeDir creates a default configuration file in the user's home directory.

func DiscoverConfigFiles added in v0.37.0

func DiscoverConfigFiles() ([]string, error)

DiscoverConfigFiles discovers configuration files using default settings.

func DiscoverConfigFilesInPath added in v0.37.0

func DiscoverConfigFilesInPath(path string) ([]string, error)

DiscoverConfigFilesInPath discovers configuration files in a specific path.

func DiscoverFirstConfigFile added in v0.37.0

func DiscoverFirstConfigFile() (string, error)

DiscoverFirstConfigFile discovers the first configuration file found.

func LoadFromSources added in v0.37.0

func LoadFromSources(config *Config, sources []Source, paths []string) error

LoadFromSources loads configuration from multiple sources.

func LoadGlobalConfig added in v0.37.0

func LoadGlobalConfig() error

LoadGlobalConfig loads the global configuration.

func ReloadGlobalConfig added in v0.37.0

func ReloadGlobalConfig() error

ReloadGlobalConfig reloads the global configuration.

func SetGlobalManager added in v0.37.0

func SetGlobalManager(manager *Manager)

SetGlobalManager sets the global configuration manager.

func ValidateConfiguration added in v0.37.0

func ValidateConfiguration(config *Config) error

ValidateConfiguration validates a configuration using the global validator.

func ValidateDefaults added in v0.37.0

func ValidateDefaults() error

ValidateDefaults validates that the default configuration is valid.

Types

type AgentConfig added in v0.37.0

type AgentConfig struct {
	// Maximum conversation history
	MaxHistory int `yaml:"max_history" validate:"min=1"`

	// Agent timeout
	Timeout time.Duration `yaml:"timeout" validate:"min=1s"`

	// Tool use configuration
	ToolUse ToolUseConfig `yaml:"tool_use"`
}

AgentConfig holds individual agent configuration.

type AgentInterceptorsConfig added in v0.51.0

type AgentInterceptorsConfig struct {
	// Standard interceptors
	Logging InterceptorToggle `yaml:"logging,omitempty"`
	Metrics InterceptorToggle `yaml:"metrics,omitempty"`
	Tracing InterceptorToggle `yaml:"tracing,omitempty"`

	// Performance interceptors
	RateLimit RateLimitInterceptorConfig `yaml:"rate_limit,omitempty"`
	Timeout   TimeoutInterceptorConfig   `yaml:"timeout,omitempty"`

	// Security interceptors
	Authorization AuthorizationInterceptorConfig `yaml:"authorization,omitempty"`
	Audit         AuditInterceptorConfig         `yaml:"audit,omitempty"`
}

AgentInterceptorsConfig holds agent-specific interceptor configuration.

type AgentMemoryConfig added in v0.37.0

type AgentMemoryConfig struct {
	// Memory type (buffered, sqlite, redis)
	Type string `yaml:"type" validate:"oneof=buffered sqlite redis"`

	// Memory capacity
	Capacity int `yaml:"capacity" validate:"min=1"`

	// Memory persistence settings
	Persistence MemoryPersistenceConfig `yaml:"persistence"`
}

AgentMemoryConfig holds agent memory configuration.

type AgentsConfig added in v0.37.0

type AgentsConfig struct {
	// Default agent configuration
	Default AgentConfig `yaml:"default"`

	// Memory configuration
	Memory AgentMemoryConfig `yaml:"memory"`

	// Workflow configuration
	Workflows WorkflowsConfig `yaml:"workflows"`
}

AgentsConfig holds agent-specific configuration.

type AuditInterceptorConfig added in v0.51.0

type AuditInterceptorConfig struct {
	Enabled       bool   `yaml:"enabled"`
	LogLevel      string `yaml:"log_level,omitempty" validate:"omitempty,oneof=DEBUG INFO WARN ERROR"`
	IncludeInput  bool   `yaml:"include_input,omitempty"`
	IncludeOutput bool   `yaml:"include_output,omitempty"`
	AuditPath     string `yaml:"audit_path,omitempty"`
}

AuditInterceptorConfig holds audit interceptor configuration.

type AuthorizationInterceptorConfig added in v0.51.0

type AuthorizationInterceptorConfig struct {
	Enabled        bool              `yaml:"enabled"`
	RequireAuth    bool              `yaml:"require_auth,omitempty"`
	AllowedRoles   []string          `yaml:"allowed_roles,omitempty"`
	RequiredScopes []string          `yaml:"required_scopes,omitempty"`
	CustomRules    map[string]string `yaml:"custom_rules,omitempty"`
}

AuthorizationInterceptorConfig holds authorization interceptor configuration.

type BootstrapFewShotConfig added in v0.37.0

type BootstrapFewShotConfig struct {
	// Maximum examples to use
	MaxExamples int `yaml:"max_examples" validate:"min=1"`

	// Teacher model configuration
	TeacherModel string `yaml:"teacher_model"`

	// Student model configuration
	StudentModel string `yaml:"student_model"`

	// Bootstrap iterations
	BootstrapIterations int `yaml:"bootstrap_iterations" validate:"min=1"`
}

BootstrapFewShotConfig holds Bootstrap Few-Shot optimizer configuration.

type COPROConfig added in v0.37.0

type COPROConfig struct {
	// Maximum iterations
	MaxIterations int `yaml:"max_iterations" validate:"min=1"`

	// Convergence threshold
	ConvergenceThreshold float64 `yaml:"convergence_threshold" validate:"min=0,max=1"`

	// Learning rate
	LearningRate float64 `yaml:"learning_rate" validate:"min=0,max=1"`
}

COPROConfig holds COPRO optimizer configuration.

type CachingConfig added in v0.37.0

type CachingConfig struct {
	// Enable caching
	Enabled bool `yaml:"enabled"`

	// Cache TTL
	TTL time.Duration `yaml:"ttl" validate:"min=1s"`

	// Maximum cache size (in bytes)
	MaxSize int64 `yaml:"max_size" validate:"min=1"`

	// Cache type (memory, sqlite)
	Type string `yaml:"type" validate:"oneof=memory sqlite"`

	// SQLite specific configuration
	SQLiteConfig SQLiteCacheConfig `yaml:"sqlite_config,omitempty"`

	// Memory cache specific configuration
	MemoryConfig MemoryCacheConfig `yaml:"memory_config,omitempty"`
}

CachingConfig holds caching configuration.

type CachingInterceptorConfig added in v0.51.0

type CachingInterceptorConfig struct {
	Enabled bool          `yaml:"enabled"`
	TTL     time.Duration `yaml:"ttl,omitempty" validate:"omitempty,min=1s"`
	MaxSize int64         `yaml:"max_size,omitempty" validate:"omitempty,min=1"`
	Type    string        `yaml:"type,omitempty" validate:"omitempty,oneof=memory sqlite"`
}

CachingInterceptorConfig holds caching interceptor configuration.

type ChainOfThoughtConfig added in v0.37.0

type ChainOfThoughtConfig struct {
	// Maximum reasoning steps
	MaxSteps int `yaml:"max_steps" validate:"min=1"`

	// Whether to include reasoning in output
	IncludeReasoning bool `yaml:"include_reasoning"`

	// Step delimiter
	StepDelimiter string `yaml:"step_delimiter"`
}

ChainOfThoughtConfig holds Chain of Thought module configuration.

type CircuitBreakerInterceptorConfig added in v0.51.0

type CircuitBreakerInterceptorConfig struct {
	Enabled          bool          `yaml:"enabled"`
	FailureThreshold int           `yaml:"failure_threshold,omitempty" validate:"omitempty,min=1"`
	RecoveryTimeout  time.Duration `yaml:"recovery_timeout,omitempty" validate:"omitempty,min=1s"`
	HalfOpenRequests int           `yaml:"half_open_requests,omitempty" validate:"omitempty,min=1"`
}

CircuitBreakerInterceptorConfig holds circuit breaker interceptor configuration.

type CommandLineSource added in v0.37.0

type CommandLineSource struct {
	// contains filtered or unexported fields
}

CommandLineSource loads configuration from command line arguments.

func NewCommandLineSource added in v0.37.0

func NewCommandLineSource(args []string) *CommandLineSource

NewCommandLineSource creates a new command line source.

func NewCommandLineSourceWithPriority added in v0.37.0

func NewCommandLineSourceWithPriority(priority int, args []string) *CommandLineSource

NewCommandLineSourceWithPriority creates a new command line source with custom priority.

func (*CommandLineSource) Load added in v0.37.0

func (cls *CommandLineSource) Load(config *Config, paths []string) error

Load loads configuration from command line arguments.

func (*CommandLineSource) Name added in v0.37.0

func (cls *CommandLineSource) Name() string

Name returns the name of the command line source.

func (*CommandLineSource) Priority added in v0.37.0

func (cls *CommandLineSource) Priority() int

Priority returns the priority of the command line source.

type Config

type Config struct {
	// LLM configuration
	LLM LLMConfig `yaml:"llm" validate:"required"`

	// Logging configuration
	Logging LoggingConfig `yaml:"logging,omitempty" validate:"omitempty"`

	// Execution configuration
	Execution ExecutionConfig `yaml:"execution,omitempty" validate:"omitempty"`

	// Module configuration
	Modules ModulesConfig `yaml:"modules,omitempty" validate:"omitempty"`

	// Agents configuration
	Agents AgentsConfig `yaml:"agents,omitempty" validate:"omitempty"`

	// Tools configuration
	Tools ToolsConfig `yaml:"tools,omitempty" validate:"omitempty"`

	// Optimizer configuration
	Optimizers OptimizersConfig `yaml:"optimizers,omitempty" validate:"omitempty"`

	// Interceptors configuration
	Interceptors InterceptorsConfig `yaml:"interceptors,omitempty" validate:"omitempty"`
}

Config represents the complete configuration for the dspy-go system.

func GetDefaultConfig added in v0.37.0

func GetDefaultConfig() *Config

GetDefaultConfig returns the default configuration for dspy-go.

func GetGlobalConfig added in v0.37.0

func GetGlobalConfig() *Config

GetGlobalConfig returns the global configuration.

func MergeWithDefaults added in v0.37.0

func MergeWithDefaults(partial *Config) *Config

MergeWithDefaults performs a deep merge of a partial configuration with defaults.

func (*Config) Validate added in v0.37.0

func (c *Config) Validate() error

Validate validates the configuration using the singleton validator.

type ConfigWatcher added in v0.37.0

type ConfigWatcher func(*Config) error

ConfigWatcher is called when configuration changes.

type ContextConfig added in v0.37.0

type ContextConfig struct {
	// Default context timeout
	DefaultTimeout time.Duration `yaml:"default_timeout" validate:"min=1s"`

	// Context buffer size
	BufferSize int `yaml:"buffer_size" validate:"min=1"`
}

ContextConfig holds context-related configuration.

type Discovery added in v0.37.0

type Discovery struct {
	// contains filtered or unexported fields
}

Discovery handles configuration file discovery.

func NewDiscovery added in v0.37.0

func NewDiscovery() *Discovery

NewDiscovery creates a new configuration discovery instance.

func NewDiscoveryWithFilenames added in v0.37.0

func NewDiscoveryWithFilenames(filenames []string) *Discovery

NewDiscoveryWithFilenames creates a discovery instance with custom filenames.

func NewDiscoveryWithOptions added in v0.37.0

func NewDiscoveryWithOptions(searchPaths, filenames []string) *Discovery

NewDiscoveryWithOptions creates a discovery instance with custom options.

func NewDiscoveryWithPaths added in v0.37.0

func NewDiscoveryWithPaths(searchPaths []string) *Discovery

NewDiscoveryWithPaths creates a discovery instance with custom search paths.

func (*Discovery) AddFilename added in v0.37.0

func (d *Discovery) AddFilename(filename string)

AddFilename adds a filename to search for.

func (*Discovery) AddFilenames added in v0.37.0

func (d *Discovery) AddFilenames(filenames []string)

AddFilenames adds multiple filenames to search for.

func (*Discovery) AddSearchPath added in v0.37.0

func (d *Discovery) AddSearchPath(path string)

AddSearchPath adds a search path to the discovery.

func (*Discovery) AddSearchPaths added in v0.37.0

func (d *Discovery) AddSearchPaths(paths []string)

AddSearchPaths adds multiple search paths to the discovery.

func (*Discovery) CreateDefaultConfigFile added in v0.37.0

func (d *Discovery) CreateDefaultConfigFile() (string, error)

CreateDefaultConfigFile creates a default configuration file in the first search path.

func (*Discovery) CreateDefaultConfigFileInPath added in v0.37.0

func (d *Discovery) CreateDefaultConfigFileInPath(path string) (string, error)

CreateDefaultConfigFileInPath creates a default configuration file in a specific path.

func (*Discovery) Discover added in v0.37.0

func (d *Discovery) Discover() ([]string, error)

Discover searches for configuration files in the configured paths.

func (*Discovery) DiscoverFirst added in v0.37.0

func (d *Discovery) DiscoverFirst() (string, error)

DiscoverFirst returns the first configuration file found.

func (*Discovery) DiscoverInPath added in v0.37.0

func (d *Discovery) DiscoverInPath(path string) ([]string, error)

DiscoverInPath searches for configuration files in a specific path.

func (*Discovery) DiscoverRecursive added in v0.37.0

func (d *Discovery) DiscoverRecursive() ([]string, error)

DiscoverRecursive searches for configuration files recursively in the search paths.

func (*Discovery) DiscoverWithPattern added in v0.37.0

func (d *Discovery) DiscoverWithPattern(pattern string) ([]string, error)

DiscoverWithPattern searches for configuration files matching a pattern.

func (*Discovery) GetEnvironmentOverrides added in v0.37.0

func (d *Discovery) GetEnvironmentOverrides() map[string]string

GetEnvironmentOverrides returns configuration overrides from environment variables.

func (*Discovery) GetFilenames added in v0.37.0

func (d *Discovery) GetFilenames() []string

GetFilenames returns the current filenames being searched for.

func (*Discovery) GetSearchPaths added in v0.37.0

func (d *Discovery) GetSearchPaths() []string

GetSearchPaths returns the current search paths.

func (*Discovery) SetFilenames added in v0.37.0

func (d *Discovery) SetFilenames(filenames []string)

SetFilenames sets the filenames to search for.

func (*Discovery) SetSearchPaths added in v0.37.0

func (d *Discovery) SetSearchPaths(paths []string)

SetSearchPaths sets the search paths for discovery.

func (*Discovery) Validate added in v0.37.0

func (d *Discovery) Validate() error

Validate validates the discovery configuration.

type EmbeddingConfig added in v0.37.0

type EmbeddingConfig struct {
	// Model to use for embeddings
	Model string `yaml:"model,omitempty"`

	// Batch size for bulk operations
	BatchSize int `yaml:"batch_size" validate:"min=1"`

	// Additional parameters
	Params map[string]interface{} `yaml:"params"`
}

EmbeddingConfig holds embedding generation parameters.

func GetDefaultEmbeddingConfig added in v0.37.0

func GetDefaultEmbeddingConfig() *EmbeddingConfig

GetDefaultEmbeddingConfig returns default embedding configuration.

type EndpointConfig added in v0.37.0

type EndpointConfig struct {
	// Base URL for the API
	BaseURL string `yaml:"base_url"`

	// API path (if different from default)
	Path string `yaml:"path"`

	// HTTP headers to include
	Headers map[string]string `yaml:"headers"`

	// Request timeout
	Timeout time.Duration `yaml:"timeout"`

	// Retry configuration
	Retry RetryConfig `yaml:"retry"`
}

EndpointConfig holds endpoint-specific configuration.

func GetDefaultEndpointConfig added in v0.37.0

func GetDefaultEndpointConfig() *EndpointConfig

GetDefaultEndpointConfig returns default endpoint configuration.

type EnvironmentSource added in v0.37.0

type EnvironmentSource struct {
	// contains filtered or unexported fields
}

EnvironmentSource loads configuration from environment variables.

func NewEnvironmentSource added in v0.37.0

func NewEnvironmentSource() *EnvironmentSource

NewEnvironmentSource creates a new environment source.

func NewEnvironmentSourceWithOptions added in v0.37.0

func NewEnvironmentSourceWithOptions(priority int, prefix string) *EnvironmentSource

NewEnvironmentSourceWithOptions creates a new environment source with custom options.

func NewEnvironmentSourceWithPrefix added in v0.37.0

func NewEnvironmentSourceWithPrefix(prefix string) *EnvironmentSource

NewEnvironmentSourceWithPrefix creates a new environment source with custom prefix.

func (*EnvironmentSource) Load added in v0.37.0

func (es *EnvironmentSource) Load(config *Config, paths []string) error

Load loads configuration from environment variables.

func (*EnvironmentSource) Name added in v0.37.0

func (es *EnvironmentSource) Name() string

Name returns the name of the environment source.

func (*EnvironmentSource) Priority added in v0.37.0

func (es *EnvironmentSource) Priority() int

Priority returns the priority of the environment source.

type ExecutionConfig added in v0.37.0

type ExecutionConfig struct {
	// Default timeout for operations
	DefaultTimeout time.Duration `yaml:"default_timeout" validate:"min=1s"`

	// Maximum number of concurrent operations
	MaxConcurrency int `yaml:"max_concurrency" validate:"min=1"`

	// Context configuration
	Context ContextConfig `yaml:"context"`

	// Tracing configuration
	Tracing TracingConfig `yaml:"tracing"`
}

ExecutionConfig holds execution-related configuration.

type FileSource added in v0.37.0

type FileSource struct {
	// contains filtered or unexported fields
}

FileSource loads configuration from YAML files.

func NewFileSource added in v0.37.0

func NewFileSource() *FileSource

NewFileSource creates a new file source.

func NewFileSourceWithPriority added in v0.37.0

func NewFileSourceWithPriority(priority int) *FileSource

NewFileSourceWithPriority creates a new file source with custom priority.

func (*FileSource) Load added in v0.37.0

func (fs *FileSource) Load(config *Config, paths []string) error

Load loads configuration from YAML files.

func (*FileSource) Name added in v0.37.0

func (fs *FileSource) Name() string

Name returns the name of the file source.

func (*FileSource) Priority added in v0.37.0

func (fs *FileSource) Priority() int

Priority returns the priority of the file source.

type FunctionToolsConfig added in v0.37.0

type FunctionToolsConfig struct {
	// Maximum execution time
	MaxExecutionTime time.Duration `yaml:"max_execution_time,omitempty" validate:"omitempty,min=1s"`
}

FunctionToolsConfig holds function tools configuration.

type GenerationConfig added in v0.37.0

type GenerationConfig struct {
	// Maximum tokens to generate
	MaxTokens int `yaml:"max_tokens" validate:"min=1"`

	// Sampling temperature
	Temperature float64 `yaml:"temperature" validate:"min=0,max=2"`

	// Top-p sampling
	TopP float64 `yaml:"top_p" validate:"min=0,max=1"`

	// Presence penalty
	PresencePenalty float64 `yaml:"presence_penalty" validate:"min=-2,max=2"`

	// Frequency penalty
	FrequencyPenalty float64 `yaml:"frequency_penalty" validate:"min=-2,max=2"`

	// Stop sequences
	StopSequences []string `yaml:"stop_sequences"`
}

GenerationConfig holds text generation parameters.

func GetDefaultGenerationConfig added in v0.37.0

func GetDefaultGenerationConfig() *GenerationConfig

GetDefaultGenerationConfig returns default generation configuration.

type GlobalInterceptorConfig added in v0.51.0

type GlobalInterceptorConfig struct {
	// Enable interceptors globally
	Enabled bool `yaml:"enabled"`

	// Default timeout for all interceptors
	DefaultTimeout time.Duration `yaml:"default_timeout,omitempty" validate:"omitempty,min=1s"`

	// Maximum interceptor chain length
	MaxChainLength int `yaml:"max_chain_length,omitempty" validate:"omitempty,min=1"`

	// Enable performance monitoring for interceptors
	MonitorPerformance bool `yaml:"monitor_performance,omitempty"`
}

GlobalInterceptorConfig holds global interceptor settings.

type InterceptorBuilder added in v0.51.0

type InterceptorBuilder struct {
	// contains filtered or unexported fields
}

InterceptorBuilder provides a fluent interface for building interceptor chains from configuration.

func NewInterceptorBuilder added in v0.51.0

func NewInterceptorBuilder(config *InterceptorsConfig) *InterceptorBuilder

NewInterceptorBuilder creates a new InterceptorBuilder from configuration.

func (*InterceptorBuilder) BuildAgentInterceptors added in v0.51.0

func (b *InterceptorBuilder) BuildAgentInterceptors() ([]core.AgentInterceptor, error)

BuildAgentInterceptors builds a chain of agent interceptors from configuration.

func (*InterceptorBuilder) BuildAll added in v0.51.0

func (b *InterceptorBuilder) BuildAll() (*InterceptorSet, error)

BuildAll builds all interceptor chains from configuration.

func (*InterceptorBuilder) BuildModuleInterceptors added in v0.51.0

func (b *InterceptorBuilder) BuildModuleInterceptors() ([]core.ModuleInterceptor, error)

BuildModuleInterceptors builds a chain of module interceptors from configuration.

func (*InterceptorBuilder) BuildToolInterceptors added in v0.51.0

func (b *InterceptorBuilder) BuildToolInterceptors() ([]core.ToolInterceptor, error)

BuildToolInterceptors builds a chain of tool interceptors from configuration.

type InterceptorSet added in v0.51.0

type InterceptorSet struct {
	ModuleInterceptors []core.ModuleInterceptor
	AgentInterceptors  []core.AgentInterceptor
	ToolInterceptors   []core.ToolInterceptor
}

InterceptorSet holds all configured interceptor chains.

func SetupInterceptorsFromConfig added in v0.51.0

func SetupInterceptorsFromConfig(config *Config) (*InterceptorSet, error)

SetupInterceptorsFromConfig creates interceptor chains from a loaded configuration.

type InterceptorToggle added in v0.51.0

type InterceptorToggle struct {
	Enabled bool `yaml:"enabled"`
}

InterceptorToggle represents a simple on/off toggle for interceptors.

type InterceptorsConfig added in v0.51.0

type InterceptorsConfig struct {
	// Module interceptors configuration
	Module ModuleInterceptorsConfig `yaml:"module,omitempty" validate:"omitempty"`

	// Agent interceptors configuration
	Agent AgentInterceptorsConfig `yaml:"agent,omitempty" validate:"omitempty"`

	// Tool interceptors configuration
	Tool ToolInterceptorsConfig `yaml:"tool,omitempty" validate:"omitempty"`

	// Global interceptor settings
	Global GlobalInterceptorConfig `yaml:"global,omitempty" validate:"omitempty"`
}

InterceptorsConfig holds interceptor configuration.

func SetupPerformanceInterceptors added in v0.51.0

func SetupPerformanceInterceptors() *InterceptorsConfig

SetupPerformanceInterceptors creates an interceptor configuration focused on performance.

func SetupSecurityInterceptors added in v0.51.0

func SetupSecurityInterceptors() *InterceptorsConfig

SetupSecurityInterceptors creates an interceptor configuration focused on security.

func SetupStandardInterceptors added in v0.51.0

func SetupStandardInterceptors() *InterceptorsConfig

SetupStandardInterceptors creates a standard interceptor configuration with common settings.

type LLMConfig added in v0.37.0

type LLMConfig struct {
	// Default LLM configuration
	Default LLMProviderConfig `yaml:"default" validate:"required"`

	// Teacher LLM configuration (for optimization)
	Teacher LLMProviderConfig `yaml:"teacher,omitempty" validate:"omitempty"`

	// Available providers and their configurations
	Providers map[string]LLMProviderConfig `yaml:"providers,omitempty" validate:"omitempty"`

	// Global LLM settings
	GlobalSettings LLMGlobalSettings `yaml:"global_settings,omitempty" validate:"omitempty"`
}

LLMConfig holds configuration for Language Learning Models.

type LLMGlobalSettings added in v0.37.0

type LLMGlobalSettings struct {
	// Default concurrency level
	ConcurrencyLevel int `yaml:"concurrency_level" validate:"min=1"`

	// Enable request/response logging
	LogRequests bool `yaml:"log_requests"`

	// Enable token usage tracking
	TrackTokenUsage bool `yaml:"track_token_usage"`

	// Enable metrics collection
	EnableMetrics bool `yaml:"enable_metrics"`
}

LLMGlobalSettings holds global LLM configuration.

type LLMProviderConfig added in v0.37.0

type LLMProviderConfig struct {
	// Provider name (anthropic, google, ollama, llamacpp)
	Provider string `yaml:"provider" validate:"required,oneof=anthropic google ollama llamacpp"`

	// Model ID (e.g., claude-3-sonnet-20240229)
	ModelID string `yaml:"model_id" validate:"required"`

	// API key for the provider
	APIKey string `yaml:"api_key,omitempty"`

	// Endpoint configuration
	Endpoint EndpointConfig `yaml:"endpoint,omitempty"`

	// Generation parameters
	Generation GenerationConfig `yaml:"generation,omitempty"`

	// Embedding configuration
	Embedding EmbeddingConfig `yaml:"embedding,omitempty"`

	// Capabilities this provider supports
	Capabilities []string `yaml:"capabilities,omitempty"`
}

LLMProviderConfig represents configuration for a specific LLM provider.

func GetDefaultLLMProviderConfig added in v0.37.0

func GetDefaultLLMProviderConfig(provider string) *LLMProviderConfig

GetDefaultLLMProviderConfig returns a default LLM provider configuration.

type LogOutputConfig added in v0.37.0

type LogOutputConfig struct {
	// Type of output (console, file, syslog)
	Type string `yaml:"type" validate:"required,oneof=console file syslog"`

	// Output format (json, text)
	Format string `yaml:"format" validate:"oneof=json text"`

	// File path (for file outputs)
	FilePath string `yaml:"file_path"`

	// Whether to use colors (for console outputs)
	Colors bool `yaml:"colors"`

	// Log rotation configuration
	Rotation LogRotationConfig `yaml:"rotation"`
}

LogOutputConfig represents a logging output destination.

type LogRotationConfig added in v0.37.0

type LogRotationConfig struct {
	// Maximum file size before rotation
	MaxSize int `yaml:"max_size" validate:"min=1"`

	// Maximum number of old files to retain
	MaxFiles int `yaml:"max_files" validate:"min=1"`

	// Maximum age of files in days
	MaxAge int `yaml:"max_age" validate:"min=1"`

	// Whether to compress old files
	Compress bool `yaml:"compress"`
}

LogRotationConfig holds log rotation settings.

type LoggingConfig added in v0.37.0

type LoggingConfig struct {
	// Log level (DEBUG, INFO, WARN, ERROR, FATAL)
	Level string `yaml:"level" validate:"oneof=DEBUG INFO WARN ERROR FATAL"`

	// Output configurations
	Outputs []LogOutputConfig `yaml:"outputs"`

	// Sampling rate for high-frequency events
	SampleRate uint32 `yaml:"sample_rate"`

	// Default fields to include in all logs
	DefaultFields map[string]interface{} `yaml:"default_fields"`
}

LoggingConfig holds logging configuration.

type MCPConfig added in v0.37.0

type MCPConfig struct {
	// MCP servers configuration
	Servers []MCPServerConfig `yaml:"servers,omitempty"`

	// Default timeout for MCP operations
	DefaultTimeout time.Duration `yaml:"default_timeout,omitempty" validate:"omitempty,min=1s"`

	// Connection pool settings
	ConnectionPool MCPConnectionPoolConfig `yaml:"connection_pool,omitempty"`
}

MCPConfig holds MCP (Model Context Protocol) configuration.

type MCPConnectionPoolConfig added in v0.37.0

type MCPConnectionPoolConfig struct {
	// Maximum connections per server
	MaxConnections int `yaml:"max_connections,omitempty" validate:"omitempty,min=1"`

	// Connection timeout
	ConnectionTimeout time.Duration `yaml:"connection_timeout,omitempty" validate:"omitempty,min=1s"`

	// Idle timeout
	IdleTimeout time.Duration `yaml:"idle_timeout,omitempty" validate:"omitempty,min=1s"`
}

MCPConnectionPoolConfig holds MCP connection pool configuration.

type MCPServerConfig added in v0.37.0

type MCPServerConfig struct {
	// Server name
	Name string `yaml:"name" validate:"required"`

	// Server command
	Command string `yaml:"command" validate:"required"`

	// Server arguments
	Args []string `yaml:"args"`

	// Environment variables
	Env map[string]string `yaml:"env"`

	// Working directory
	WorkingDir string `yaml:"working_dir"`

	// Server timeout
	Timeout time.Duration `yaml:"timeout" validate:"min=1s"`
}

MCPServerConfig holds individual MCP server configuration.

type MIPROConfig added in v0.37.0

type MIPROConfig struct {
	// Population size
	PopulationSize int `yaml:"population_size" validate:"min=1"`

	// Number of generations
	NumGenerations int `yaml:"num_generations" validate:"min=1"`

	// Mutation rate
	MutationRate float64 `yaml:"mutation_rate" validate:"min=0,max=1"`

	// Crossover rate
	CrossoverRate float64 `yaml:"crossover_rate" validate:"min=0,max=1"`
}

MIPROConfig holds MIPRO optimizer configuration.

type Manager added in v0.37.0

type Manager struct {
	// contains filtered or unexported fields
}

Manager handles configuration loading, validation, and management.

func GetGlobalManager added in v0.37.0

func GetGlobalManager() *Manager

GetGlobalManager returns the global configuration manager.

func NewManager added in v0.37.0

func NewManager(options ...ManagerOption) (*Manager, error)

NewManager creates a new configuration manager.

func (*Manager) Clone added in v0.37.0

func (m *Manager) Clone() (*Config, error)

Clone returns a deep copy of the current configuration.

func (*Manager) Export added in v0.37.0

func (m *Manager) Export() (map[string]interface{}, error)

Export exports the configuration to a map for external use.

func (*Manager) Get added in v0.37.0

func (m *Manager) Get() *Config

Get returns the current configuration.

func (*Manager) GetAgentsConfig added in v0.37.0

func (m *Manager) GetAgentsConfig() *AgentsConfig

GetAgentsConfig returns the agents configuration.

func (*Manager) GetConfigPath added in v0.37.0

func (m *Manager) GetConfigPath() string

GetConfigPath returns the current configuration file path.

func (*Manager) GetExecutionConfig added in v0.37.0

func (m *Manager) GetExecutionConfig() *ExecutionConfig

GetExecutionConfig returns the execution configuration.

func (*Manager) GetLLMConfig added in v0.37.0

func (m *Manager) GetLLMConfig() *LLMConfig

GetLLMConfig returns the LLM configuration.

func (*Manager) GetLoggingConfig added in v0.37.0

func (m *Manager) GetLoggingConfig() *LoggingConfig

GetLoggingConfig returns the logging configuration.

func (*Manager) GetModulesConfig added in v0.37.0

func (m *Manager) GetModulesConfig() *ModulesConfig

GetModulesConfig returns the modules configuration.

func (*Manager) GetOptimizersConfig added in v0.37.0

func (m *Manager) GetOptimizersConfig() *OptimizersConfig

GetOptimizersConfig returns the optimizers configuration.

func (*Manager) GetToolsConfig added in v0.37.0

func (m *Manager) GetToolsConfig() *ToolsConfig

GetToolsConfig returns the tools configuration.

func (*Manager) Import added in v0.37.0

func (m *Manager) Import(data map[string]interface{}) error

Import imports configuration from a map.

func (*Manager) IsLoaded added in v0.37.0

func (m *Manager) IsLoaded() bool

IsLoaded returns true if configuration is loaded.

func (*Manager) Load added in v0.37.0

func (m *Manager) Load() error

Load loads the configuration from available sources.

func (*Manager) Merge added in v0.37.0

func (m *Manager) Merge(other *Config) error

Merge merges another configuration into the current one.

func (*Manager) Reload added in v0.37.0

func (m *Manager) Reload() error

Reload reloads the configuration from sources.

func (*Manager) Reset added in v0.37.0

func (m *Manager) Reset() error

Reset resets the configuration to defaults.

func (*Manager) Save added in v0.37.0

func (m *Manager) Save() error

Save saves the current configuration to file.

func (*Manager) SaveToFile added in v0.37.0

func (m *Manager) SaveToFile(path string) error

SaveToFile saves the configuration to a specific file.

func (*Manager) StopWatching added in v0.37.0

func (m *Manager) StopWatching()

StopWatching stops watching for configuration changes.

func (*Manager) Update added in v0.37.0

func (m *Manager) Update(updater func(*Config) error) error

Update updates the configuration with new values.

func (*Manager) Watch added in v0.37.0

func (m *Manager) Watch() error

Watch starts watching for configuration changes.

type ManagerOption added in v0.37.0

type ManagerOption func(*Manager) error

ManagerOption represents an option for configuring the Manager.

func WithConfigPath added in v0.37.0

func WithConfigPath(path string) ManagerOption

WithConfigPath sets the configuration file path.

func WithDiscovery added in v0.37.0

func WithDiscovery(discovery *Discovery) ManagerOption

WithDiscovery sets the discovery mechanism.

func WithSources added in v0.37.0

func WithSources(sources ...Source) ManagerOption

WithSources sets the configuration sources.

func WithWatcher added in v0.37.0

func WithWatcher(watcher ConfigWatcher) ManagerOption

WithWatcher adds a configuration watcher.

type MemoryCacheConfig added in v0.42.0

type MemoryCacheConfig struct {
	// Cleanup interval for expired entries
	CleanupInterval time.Duration `yaml:"cleanup_interval"`

	// Number of shards for concurrent access
	ShardCount int `yaml:"shard_count"`
}

MemoryCacheConfig holds memory cache specific configuration.

type MemoryPersistenceConfig added in v0.37.0

type MemoryPersistenceConfig struct {
	// Enable persistence
	Enabled bool `yaml:"enabled"`

	// Storage path
	Path string `yaml:"path"`

	// Sync interval
	SyncInterval time.Duration `yaml:"sync_interval" validate:"min=1s"`
}

MemoryPersistenceConfig holds memory persistence configuration.

type ModuleInterceptorsConfig added in v0.51.0

type ModuleInterceptorsConfig struct {
	// Standard interceptors
	Logging InterceptorToggle `yaml:"logging,omitempty"`
	Metrics InterceptorToggle `yaml:"metrics,omitempty"`
	Tracing InterceptorToggle `yaml:"tracing,omitempty"`

	// Performance interceptors
	Caching        CachingInterceptorConfig        `yaml:"caching,omitempty"`
	Timeout        TimeoutInterceptorConfig        `yaml:"timeout,omitempty"`
	CircuitBreaker CircuitBreakerInterceptorConfig `yaml:"circuit_breaker,omitempty"`
	Retry          RetryInterceptorConfig          `yaml:"retry,omitempty"`

	// Security interceptors
	Validation    ValidationInterceptorConfig    `yaml:"validation,omitempty"`
	Authorization AuthorizationInterceptorConfig `yaml:"authorization,omitempty"`
	Sanitization  SanitizationInterceptorConfig  `yaml:"sanitization,omitempty"`
}

ModuleInterceptorsConfig holds module-specific interceptor configuration.

type ModulesConfig added in v0.37.0

type ModulesConfig struct {
	// Chain of Thought configuration
	ChainOfThought ChainOfThoughtConfig `yaml:"chain_of_thought"`

	// Multi-Chain Comparison configuration
	MultiChainComparison MultiChainComparisonConfig `yaml:"multi_chain_comparison"`

	// ReAct configuration
	ReAct ReActConfig `yaml:"react"`

	// Refine configuration
	Refine RefineConfig `yaml:"refine"`

	// Predict configuration
	Predict PredictConfig `yaml:"predict"`
}

ModulesConfig holds module-specific configuration.

type MultiChainComparisonConfig added in v0.37.0

type MultiChainComparisonConfig struct {
	// Number of chains to run
	NumChains int `yaml:"num_chains" validate:"min=2"`

	// Comparison strategy
	ComparisonStrategy string `yaml:"comparison_strategy" validate:"oneof=majority_vote highest_confidence best_score"`

	// Enable parallel execution
	ParallelExecution bool `yaml:"parallel_execution"`
}

MultiChainComparisonConfig holds Multi-Chain Comparison configuration.

type MultiSource added in v0.37.0

type MultiSource struct {
	// contains filtered or unexported fields
}

MultiSource combines multiple configuration sources.

func NewMultiSource added in v0.37.0

func NewMultiSource(sources ...Source) *MultiSource

NewMultiSource creates a new multi-source configuration loader.

func (*MultiSource) AddSource added in v0.37.0

func (ms *MultiSource) AddSource(source Source)

AddSource adds a source to the multi-source.

func (*MultiSource) GetSources added in v0.37.0

func (ms *MultiSource) GetSources() []Source

GetSources returns all sources.

func (*MultiSource) Load added in v0.37.0

func (ms *MultiSource) Load(config *Config, paths []string) error

Load loads configuration from all sources in priority order.

func (*MultiSource) Name added in v0.37.0

func (ms *MultiSource) Name() string

Name returns the name of the multi-source.

func (*MultiSource) Priority added in v0.37.0

func (ms *MultiSource) Priority() int

Priority returns the highest priority among all sources.

func (*MultiSource) RemoveSource added in v0.37.0

func (ms *MultiSource) RemoveSource(sourceName string)

RemoveSource removes a source from the multi-source.

type OptimizersConfig added in v0.37.0

type OptimizersConfig struct {
	// Bootstrap Few-Shot optimizer
	BootstrapFewShot BootstrapFewShotConfig `yaml:"bootstrap_few_shot"`

	// MIPRO optimizer
	MIPRO MIPROConfig `yaml:"mipro"`

	// COPRO optimizer
	COPRO COPROConfig `yaml:"copro"`

	// SIMBA optimizer
	SIMBA SIMBAConfig `yaml:"simba"`

	// TPE optimizer
	TPE TPEConfig `yaml:"tpe"`
}

OptimizersConfig holds optimizer configuration.

type PredictConfig added in v0.37.0

type PredictConfig struct {
	// Default prediction settings
	DefaultSettings PredictSettings `yaml:"default_settings"`

	// Caching configuration
	Caching CachingConfig `yaml:"caching"`
}

PredictConfig holds Predict module configuration.

type PredictSettings added in v0.37.0

type PredictSettings struct {
	// Include confidence scores
	IncludeConfidence bool `yaml:"include_confidence"`

	// Temperature for prediction
	Temperature float64 `yaml:"temperature" validate:"min=0,max=2"`

	// Top-k for prediction
	TopK int `yaml:"top_k" validate:"min=1"`
}

PredictSettings holds prediction settings.

type RateLimitInterceptorConfig added in v0.51.0

type RateLimitInterceptorConfig struct {
	Enabled           bool          `yaml:"enabled"`
	RequestsPerMinute int           `yaml:"requests_per_minute,omitempty" validate:"omitempty,min=1"`
	BurstSize         int           `yaml:"burst_size,omitempty" validate:"omitempty,min=1"`
	WindowSize        time.Duration `yaml:"window_size,omitempty" validate:"omitempty,min=1s"`
}

RateLimitInterceptorConfig holds rate limiting interceptor configuration.

type ReActConfig added in v0.37.0

type ReActConfig struct {
	// Maximum number of action/observation cycles
	MaxCycles int `yaml:"max_cycles" validate:"min=1"`

	// Action timeout
	ActionTimeout time.Duration `yaml:"action_timeout" validate:"min=1s"`

	// Whether to include intermediate steps
	IncludeIntermediateSteps bool `yaml:"include_intermediate_steps"`
}

ReActConfig holds ReAct module configuration.

type RefineConfig added in v0.37.0

type RefineConfig struct {
	// Maximum refinement iterations
	MaxIterations int `yaml:"max_iterations" validate:"min=1"`

	// Convergence threshold
	ConvergenceThreshold float64 `yaml:"convergence_threshold" validate:"min=0,max=1"`

	// Refinement strategy
	RefinementStrategy string `yaml:"refinement_strategy" validate:"oneof=iterative_improvement feedback_based"`
}

RefineConfig holds Refine module configuration.

type RemoteSource added in v0.37.0

type RemoteSource struct {
	// contains filtered or unexported fields
}

RemoteSource loads configuration from a remote URL (placeholder for future implementation).

func NewRemoteSource added in v0.37.0

func NewRemoteSource(url string) *RemoteSource

NewRemoteSource creates a new remote source (placeholder).

func (*RemoteSource) Load added in v0.37.0

func (rs *RemoteSource) Load(config *Config, paths []string) error

Load loads configuration from a remote URL (placeholder implementation).

func (*RemoteSource) Name added in v0.37.0

func (rs *RemoteSource) Name() string

Name returns the name of the remote source.

func (*RemoteSource) Priority added in v0.37.0

func (rs *RemoteSource) Priority() int

Priority returns the priority of the remote source.

type RetryConfig added in v0.37.0

type RetryConfig struct {
	// Maximum number of retries
	MaxRetries int `yaml:"max_retries" validate:"min=0"`

	// Initial backoff duration
	InitialBackoff time.Duration `yaml:"initial_backoff" validate:"min=0"`

	// Maximum backoff duration
	MaxBackoff time.Duration `yaml:"max_backoff" validate:"min=0"`

	// Backoff multiplier
	BackoffMultiplier float64 `yaml:"backoff_multiplier" validate:"min=1.0"`
}

RetryConfig holds retry-specific configuration.

func GetDefaultRetryConfig added in v0.37.0

func GetDefaultRetryConfig() *RetryConfig

GetDefaultRetryConfig returns default retry configuration.

type RetryInterceptorConfig added in v0.51.0

type RetryInterceptorConfig struct {
	Enabled        bool          `yaml:"enabled"`
	MaxRetries     int           `yaml:"max_retries,omitempty" validate:"omitempty,min=1"`
	InitialBackoff time.Duration `yaml:"initial_backoff,omitempty" validate:"omitempty,min=1ms"`
	MaxBackoff     time.Duration `yaml:"max_backoff,omitempty" validate:"omitempty,min=1ms"`
	BackoffFactor  float64       `yaml:"backoff_factor,omitempty" validate:"omitempty,min=1.0"`
}

RetryInterceptorConfig holds retry interceptor configuration.

type SIMBAConfig added in v0.37.0

type SIMBAConfig struct {
	// Number of candidates
	NumCandidates int `yaml:"num_candidates" validate:"min=1"`

	// Selection strategy
	SelectionStrategy string `yaml:"selection_strategy" validate:"oneof=random tournament roulette"`

	// Evaluation metric
	EvaluationMetric string `yaml:"evaluation_metric"`
}

SIMBAConfig holds SIMBA optimizer configuration.

type SQLiteCacheConfig added in v0.42.0

type SQLiteCacheConfig struct {
	// Path to SQLite database file
	Path string `yaml:"path"`

	// Enable WAL mode for better concurrent performance
	EnableWAL bool `yaml:"enable_wal"`

	// Vacuum interval for database maintenance
	VacuumInterval time.Duration `yaml:"vacuum_interval"`

	// Maximum number of connections
	MaxConnections int `yaml:"max_connections"`
}

SQLiteCacheConfig holds SQLite-specific cache configuration.

type SanitizationInterceptorConfig added in v0.51.0

type SanitizationInterceptorConfig struct {
	Enabled         bool     `yaml:"enabled"`
	RemoveHTML      bool     `yaml:"remove_html,omitempty"`
	RemoveSQL       bool     `yaml:"remove_sql,omitempty"`
	RemoveScript    bool     `yaml:"remove_script,omitempty"`
	CustomPatterns  []string `yaml:"custom_patterns,omitempty"`
	MaxStringLength int      `yaml:"max_string_length,omitempty" validate:"omitempty,min=1"`
}

SanitizationInterceptorConfig holds sanitization interceptor configuration.

type Source added in v0.37.0

type Source interface {
	// Load loads configuration from the source into the provided config
	Load(config *Config, paths []string) error

	// Name returns the name of the source
	Name() string

	// Priority returns the priority of the source (higher priority overrides lower)
	Priority() int
}

Source represents a configuration source.

func CreateAllSources added in v0.37.0

func CreateAllSources(args []string) []Source

CreateAllSources creates all available configuration sources.

func CreateDefaultSources added in v0.37.0

func CreateDefaultSources() []Source

CreateDefaultSources creates the default set of configuration sources.

type TPEConfig added in v0.37.0

type TPEConfig struct {
	// Number of trials
	NumTrials int `yaml:"num_trials" validate:"min=1"`

	// Number of startup trials
	NumStartupTrials int `yaml:"num_startup_trials" validate:"min=1"`

	// Percentile for good/bad split
	Percentile float64 `yaml:"percentile" validate:"min=0,max=1"`

	// Random seed
	RandomSeed int64 `yaml:"random_seed"`
}

TPEConfig holds TPE optimizer configuration.

type TimeoutInterceptorConfig added in v0.51.0

type TimeoutInterceptorConfig struct {
	Enabled bool          `yaml:"enabled"`
	Timeout time.Duration `yaml:"timeout,omitempty" validate:"omitempty,min=1s"`
}

TimeoutInterceptorConfig holds timeout interceptor configuration.

type ToolInterceptorsConfig added in v0.51.0

type ToolInterceptorsConfig struct {
	// Standard interceptors
	Logging InterceptorToggle `yaml:"logging,omitempty"`
	Metrics InterceptorToggle `yaml:"metrics,omitempty"`
	Tracing InterceptorToggle `yaml:"tracing,omitempty"`

	// Performance interceptors
	Caching CachingInterceptorConfig `yaml:"caching,omitempty"`
	Timeout TimeoutInterceptorConfig `yaml:"timeout,omitempty"`

	// Security interceptors
	Validation    ValidationInterceptorConfig    `yaml:"validation,omitempty"`
	Authorization AuthorizationInterceptorConfig `yaml:"authorization,omitempty"`
	Sanitization  SanitizationInterceptorConfig  `yaml:"sanitization,omitempty"`
}

ToolInterceptorsConfig holds tool-specific interceptor configuration.

type ToolRegistryConfig added in v0.37.0

type ToolRegistryConfig struct {
	// Maximum registered tools
	MaxTools int `yaml:"max_tools,omitempty" validate:"omitempty,min=1"`

	// Tool discovery paths
	DiscoveryPaths []string `yaml:"discovery_paths,omitempty"`

	// Auto-discovery enabled
	AutoDiscovery bool `yaml:"auto_discovery,omitempty"`
}

ToolRegistryConfig holds tool registry configuration.

type ToolUseConfig added in v0.37.0

type ToolUseConfig struct {
	// Maximum tools per request
	MaxTools int `yaml:"max_tools" validate:"min=1"`

	// Tool timeout
	Timeout time.Duration `yaml:"timeout" validate:"min=1s"`

	// Enable parallel tool execution
	ParallelExecution bool `yaml:"parallel_execution"`
}

ToolUseConfig holds tool usage configuration.

type ToolsConfig added in v0.37.0

type ToolsConfig struct {
	// Registry configuration
	Registry ToolRegistryConfig `yaml:"registry"`

	// MCP configuration
	MCP MCPConfig `yaml:"mcp"`

	// Function tools configuration
	Functions FunctionToolsConfig `yaml:"functions"`
}

ToolsConfig holds tool configuration.

type TracingConfig added in v0.37.0

type TracingConfig struct {
	// Enable tracing
	Enabled bool `yaml:"enabled"`

	// Sampling rate for traces
	SamplingRate float64 `yaml:"sampling_rate" validate:"min=0,max=1"`

	// Trace export configuration
	Exporter TracingExporterConfig `yaml:"exporter"`
}

TracingConfig holds tracing configuration.

type TracingExporterConfig added in v0.37.0

type TracingExporterConfig struct {
	// Exporter type (jaeger, zipkin, otlp)
	Type string `yaml:"type" validate:"oneof=jaeger zipkin otlp"`

	// Endpoint for the exporter
	Endpoint string `yaml:"endpoint"`

	// Additional headers
	Headers map[string]string `yaml:"headers"`
}

TracingExporterConfig holds trace export configuration.

type ValidationError added in v0.37.0

type ValidationError struct {
	Field   string
	Tag     string
	Value   interface{}
	Message string
}

ValidationError represents a configuration validation error.

func (*ValidationError) Error added in v0.37.0

func (e *ValidationError) Error() string

type ValidationErrors added in v0.37.0

type ValidationErrors []ValidationError

ValidationErrors represents multiple validation errors.

func (ValidationErrors) Error added in v0.37.0

func (e ValidationErrors) Error() string

type ValidationInterceptorConfig added in v0.51.0

type ValidationInterceptorConfig struct {
	Enabled             bool     `yaml:"enabled"`
	StrictMode          bool     `yaml:"strict_mode,omitempty"`
	RequiredFields      []string `yaml:"required_fields,omitempty"`
	MaxInputSize        int64    `yaml:"max_input_size,omitempty" validate:"omitempty,min=1"`
	MaxStringLength     int      `yaml:"max_string_length,omitempty" validate:"omitempty,min=1"`
	AllowedContentTypes []string `yaml:"allowed_content_types,omitempty"`
}

ValidationInterceptorConfig holds validation interceptor configuration.

type Validator added in v0.37.0

type Validator struct {
	// contains filtered or unexported fields
}

Validator provides configuration validation.

func GetValidator added in v0.37.0

func GetValidator() *Validator

GetValidator returns the global validator instance.

func NewValidator added in v0.37.0

func NewValidator() (*Validator, error)

NewValidator creates a new configuration validator.

func (*Validator) ValidateConfig added in v0.37.0

func (v *Validator) ValidateConfig(config *Config) error

ValidateConfig validates a configuration struct.

type WorkflowPersistenceConfig added in v0.37.0

type WorkflowPersistenceConfig struct {
	// Enable persistence
	Enabled bool `yaml:"enabled"`

	// Storage backend
	Backend string `yaml:"backend" validate:"oneof=file sqlite redis"`

	// Storage configuration
	Config map[string]interface{} `yaml:"config"`
}

WorkflowPersistenceConfig holds workflow persistence configuration.

type WorkflowsConfig added in v0.37.0

type WorkflowsConfig struct {
	// Default workflow timeout
	DefaultTimeout time.Duration `yaml:"default_timeout" validate:"min=1s"`

	// Maximum parallel workflows
	MaxParallel int `yaml:"max_parallel" validate:"min=1"`

	// Workflow persistence
	Persistence WorkflowPersistenceConfig `yaml:"persistence"`
}

WorkflowsConfig holds workflow configuration.

Jump to

Keyboard shortcuts

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