config

package
v0.29.0 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EnsureConfigExists added in v0.14.0

func EnsureConfigExists() error

EnsureConfigExists checks if a config file exists and creates a default one if not

func HasEnvVars added in v0.19.0

func HasEnvVars(content string) bool

HasEnvVars checks if content contains environment variable patterns

func HasScriptArgs added in v0.19.0

func HasScriptArgs(content string) bool

HasScriptArgs checks if content contains script argument patterns

func LoadSystemPrompt

func LoadSystemPrompt(input string) (string, error)

LoadSystemPrompt loads system prompt from file or returns the string directly

Types

type ArgsSubstituter added in v0.19.0

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

ArgsSubstituter handles script argument substitution

func NewArgsSubstituter added in v0.19.0

func NewArgsSubstituter(args map[string]string) *ArgsSubstituter

NewArgsSubstituter creates a new args substituter with the given arguments

func (*ArgsSubstituter) SubstituteArgs added in v0.19.0

func (a *ArgsSubstituter) SubstituteArgs(content string) (string, error)

SubstituteArgs replaces ${VAR} and ${VAR:-default} patterns with script arguments

type Config

type Config struct {
	MCPServers     map[string]MCPServerConfig `json:"mcpServers" yaml:"mcpServers"`
	Model          string                     `json:"model,omitempty" yaml:"model,omitempty"`
	MaxSteps       int                        `json:"max-steps,omitempty" yaml:"max-steps,omitempty"`
	Debug          bool                       `json:"debug,omitempty" yaml:"debug,omitempty"`
	Compact        bool                       `json:"compact,omitempty" yaml:"compact,omitempty"`
	SystemPrompt   string                     `json:"system-prompt,omitempty" yaml:"system-prompt,omitempty"`
	ProviderAPIKey string                     `json:"provider-api-key,omitempty" yaml:"provider-api-key,omitempty"`
	ProviderURL    string                     `json:"provider-url,omitempty" yaml:"provider-url,omitempty"`
	Prompt         string                     `json:"prompt,omitempty" yaml:"prompt,omitempty"`
	NoExit         bool                       `json:"no-exit,omitempty" yaml:"no-exit,omitempty"`
	Stream         *bool                      `json:"stream,omitempty" yaml:"stream,omitempty"`

	// Model generation parameters
	MaxTokens     int      `json:"max-tokens,omitempty" yaml:"max-tokens,omitempty"`
	Temperature   *float32 `json:"temperature,omitempty" yaml:"temperature,omitempty"`
	TopP          *float32 `json:"top-p,omitempty" yaml:"top-p,omitempty"`
	TopK          *int32   `json:"top-k,omitempty" yaml:"top-k,omitempty"`
	StopSequences []string `json:"stop-sequences,omitempty" yaml:"stop-sequences,omitempty"`

	// TLS configuration
	TLSSkipVerify bool `json:"tls-skip-verify,omitempty" yaml:"tls-skip-verify,omitempty"`
}

Config represents the application configuration

func LoadAndValidateConfig added in v0.19.0

func LoadAndValidateConfig() (*Config, error)

LoadAndValidateConfig loads config from viper and validates it

func MergeConfigs added in v0.19.0

func MergeConfigs(baseConfig *Config, scriptConfig *Config) *Config

MergeConfigs merges script frontmatter config with base config

func (*Config) Validate added in v0.11.0

func (c *Config) Validate() error

Validate validates the configuration

type EnvSubstituter added in v0.19.0

type EnvSubstituter struct{}

EnvSubstituter handles environment variable substitution

func (*EnvSubstituter) SubstituteEnvVars added in v0.19.0

func (e *EnvSubstituter) SubstituteEnvVars(content string) (string, error)

SubstituteEnvVars replaces ${env://VAR} and ${env://VAR:-default} patterns with environment variables

type MCPServerConfig

type MCPServerConfig struct {
	Type          string            `json:"type"`
	Command       []string          `json:"command,omitempty"`
	Environment   map[string]string `json:"environment,omitempty"`
	URL           string            `json:"url,omitempty"`
	Name          string            `json:"name,omitempty"`    // For builtin servers
	Options       map[string]any    `json:"options,omitempty"` // For builtin servers
	AllowedTools  []string          `json:"allowedTools,omitempty" yaml:"allowedTools,omitempty"`
	ExcludedTools []string          `json:"excludedTools,omitempty" yaml:"excludedTools,omitempty"`

	// Legacy fields for backward compatibility
	Transport string         `json:"transport,omitempty"`
	Args      []string       `json:"args,omitempty"`
	Env       map[string]any `json:"env,omitempty"`
	Headers   []string       `json:"headers,omitempty"`
}

MCPServerConfig represents configuration for an MCP server

func (*MCPServerConfig) GetTransportType added in v0.15.0

func (s *MCPServerConfig) GetTransportType() string

GetTransportType returns the transport type for the server config

func (*MCPServerConfig) UnmarshalJSON added in v0.16.0

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

UnmarshalJSON handles both new and legacy config formats

Jump to

Keyboard shortcuts

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