Documentation
¶
Overview ¶
Package config loads and validates gantry configuration from the environment. Boot is fail-fast: missing required values return a clear error.
Index ¶
Constants ¶
View Source
const ( ChannelTelegram = "telegram" ChannelDiscord = "discord" ChannelSlack = "slack" ChannelStdio = "stdio" )
Channel names accepted by CHANNEL.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
LLMBaseURL string `env:"LLM_BASE_URL,required"`
LLMAPIKey string `env:"LLM_API_KEY,required"`
LLMModel string `env:"LLM_MODEL,required"`
// LLMMaxTokens caps completion output (incl. tool-call args). 0 = provider default.
LLMMaxTokens int `env:"LLM_MAX_TOKENS" envDefault:"4096"`
TelegramBotToken string `env:"TELEGRAM_BOT_TOKEN"`
TelegramAllowedUsers []int64 `env:"TELEGRAM_ALLOWED_USERS" envSeparator:","`
DiscordBotToken string `env:"DISCORD_BOT_TOKEN"`
DiscordAllowedUsers []string `env:"DISCORD_ALLOWED_USERS" envSeparator:","`
SlackBotToken string `env:"SLACK_BOT_TOKEN"` // xoxb-
SlackAppToken string `env:"SLACK_APP_TOKEN"` // xapp- (Socket Mode)
SlackAllowedUsers []string `env:"SLACK_ALLOWED_USERS" envSeparator:","`
Channel string `env:"CHANNEL" envDefault:"telegram"`
PersonaDir string `env:"PERSONA_DIR" envDefault:"/persona"`
DataDir string `env:"DATA_DIR" envDefault:"/data"`
MCPManifest string `env:"MCP_MANIFEST" envDefault:"/etc/gantry/mcp.toml"`
HistoryMaxMessages int `env:"HISTORY_MAX_MESSAGES" envDefault:"200"`
HistoryMaxTokens int `env:"HISTORY_MAX_TOKENS" envDefault:"128000"` // estimated (chars/4)
ToolResultMaxChars int `env:"TOOL_RESULT_MAX_CHARS" envDefault:"16000"`
ToolMaxIterations int `env:"TOOL_MAX_ITERATIONS" envDefault:"20"`
// ToolSchemaMaxTokens is an optional hard cap on estimated tool-schema tokens
// (chars/4 of name+description+parameters). 0 = log estimate only.
ToolSchemaMaxTokens int `env:"TOOL_SCHEMA_MAX_TOKENS" envDefault:"0"`
MemoryEnabled bool `env:"MEMORY_ENABLED" envDefault:"true"`
MemoryBackend string `env:"MEMORY_BACKEND" envDefault:"builtin"`
MemoryConsolidateMinutes int `env:"MEMORY_CONSOLIDATE_MINUTES" envDefault:"30"` // 0 = off
CronEnabled bool `env:"CRON_ENABLED" envDefault:"true"`
CronTZ string `env:"CRON_TZ" envDefault:"UTC"`
CronMaxJobs int `env:"CRON_MAX_JOBS" envDefault:"50"`
CronTickSeconds int `env:"CRON_TICK_SECONDS" envDefault:"15"`
StreamReplies bool `env:"STREAM_REPLIES" envDefault:"false"`
LogLevel string `env:"LOG_LEVEL" envDefault:"info"`
}
Config is the complete env-driven configuration surface. Secrets and scalars live here; structure (persona, MCP manifest) is mounts.
Click to show internal directories.
Click to hide internal directories.