Documentation
¶
Overview ¶
Package config loads TOML configuration and environment-backed runtime overrides for the kb CLI.
Index ¶
- Constants
- func ApplyEnvOverrides(cfg *Config)
- func DiscoverProjectConfigPath(cwd string) (string, bool, error)
- func LoadDotEnvIfPresent(path string) error
- func ResolveVaultRoot(configPath string, cfg VaultConfig) (string, error)
- type AppConfig
- type Config
- type FirecrawlConfig
- type InstagramConfig
- type LogConfig
- type OpenRouterConfig
- type STTConfig
- type VaultConfig
- type YouTubeConfig
Constants ¶
const ( // DefaultDotEnvPath is the local dotenv file loaded by the CLI entrypoint. DefaultDotEnvPath = ".env" // ProjectConfigFileName is the default repository-local kb config file. ProjectConfigFileName = "kb.toml" // EnvConfigPath overrides the config file path. EnvConfigPath = "APP_CONFIG" // EnvFirecrawlAPIKey stores the Firecrawl API key override. EnvFirecrawlAPIKey = "FIRECRAWL_API_KEY" // EnvFirecrawlAPIURL stores the Firecrawl API URL override. EnvFirecrawlAPIURL = "FIRECRAWL_API_URL" // EnvOpenRouterAPIKey stores the OpenRouter API key override. EnvOpenRouterAPIKey = "OPENROUTER_API_KEY" // EnvOpenRouterAPIURL stores the OpenRouter API URL override. EnvOpenRouterAPIURL = "OPENROUTER_API_URL" // EnvOpenAIAPIKey stores the OpenAI API key override for STT. EnvOpenAIAPIKey = "OPENAI_API_KEY" // EnvOpenAIAPIURL stores the OpenAI API URL override for STT. EnvOpenAIAPIURL = "OPENAI_API_URL" // EnvSTTProvider stores the STT provider override. EnvSTTProvider = "STT_PROVIDER" // EnvSTTModel stores the STT model override. EnvSTTModel = "STT_MODEL" // EnvYouTubeProxy stores the YouTube proxy URL override. EnvYouTubeProxy = "YOUTUBE_PROXY" // EnvYouTubeYTDLPPath stores the yt-dlp executable path override. EnvYouTubeYTDLPPath = "YOUTUBE_YT_DLP_PATH" // EnvYouTubeCookiesFile stores the YouTube cookies file override. EnvYouTubeCookiesFile = "YOUTUBE_COOKIES_FILE" // EnvYouTubeUserAgent stores the YouTube user agent override. EnvYouTubeUserAgent = "YOUTUBE_USER_AGENT" // EnvYouTubeCaptionLanguages stores the caption language preference override. EnvYouTubeCaptionLanguages = "YOUTUBE_CAPTION_LANGUAGES" )
Variables ¶
This section is empty.
Functions ¶
func ApplyEnvOverrides ¶
func ApplyEnvOverrides(cfg *Config)
ApplyEnvOverrides overlays config values that are sourced from environment variables at runtime.
func DiscoverProjectConfigPath ¶ added in v0.0.6
DiscoverProjectConfigPath walks up from cwd looking for kb.toml.
func LoadDotEnvIfPresent ¶
LoadDotEnvIfPresent loads a local dotenv file without overriding env vars already supplied by the shell or process manager.
func ResolveVaultRoot ¶ added in v0.0.6
func ResolveVaultRoot(configPath string, cfg VaultConfig) (string, error)
ResolveVaultRoot resolves cfg.Root relative to the directory containing configPath when cfg.Root is relative.
Types ¶
type Config ¶
type Config struct {
App AppConfig `toml:"app"`
Log LogConfig `toml:"log"`
Vault VaultConfig `toml:"vault"`
Firecrawl FirecrawlConfig `toml:"firecrawl"`
OpenRouter OpenRouterConfig `toml:"openrouter"`
STT STTConfig `toml:"stt"`
YouTube YouTubeConfig `toml:"youtube"`
Instagram InstagramConfig `toml:"instagram"`
}
Config contains the complete TOML-backed runtime configuration.
type FirecrawlConfig ¶
FirecrawlConfig controls URL scraping API access.
type InstagramConfig ¶ added in v0.0.10
type InstagramConfig struct {
YTDLPPath string `toml:"yt_dlp_path"`
Proxy string `toml:"proxy"`
CookiesFile string `toml:"cookies_file"`
UserAgent string `toml:"user_agent"`
Transcription string `toml:"transcription"`
RetryAttempts int `toml:"retry_attempts"`
RetryBackoff string `toml:"retry_backoff"`
}
InstagramConfig controls Instagram network access and retry behavior for `kb ingest instagram`. Cookies are kept separate from YouTube because the two platforms require distinct authenticated sessions.
func (InstagramConfig) RetryBackoffDuration ¶ added in v0.0.10
func (c InstagramConfig) RetryBackoffDuration() (time.Duration, error)
RetryBackoffDuration parses the configured Instagram retry backoff.
func (InstagramConfig) Validate ¶ added in v0.0.10
func (c InstagramConfig) Validate() error
Validate ensures Instagram runtime settings are usable.
type LogConfig ¶
type LogConfig struct {
Level string `toml:"level"`
}
LogConfig controls structured logging output.
type OpenRouterConfig ¶
type OpenRouterConfig struct {
APIKey string `toml:"api_key"`
APIURL string `toml:"api_url"`
STTModel string `toml:"stt_model"`
}
OpenRouterConfig controls the optional OpenRouter STT provider.
type STTConfig ¶ added in v0.0.8
type STTConfig struct {
Provider string `toml:"provider"`
APIKey string `toml:"api_key"`
APIURL string `toml:"api_url"`
Model string `toml:"model"`
Language string `toml:"language"`
Prompt string `toml:"prompt"`
AudioFormat string `toml:"audio_format"`
ChunkDuration string `toml:"chunk_duration"`
MaxChunkBytes int64 `toml:"max_chunk_bytes"`
Concurrency int `toml:"concurrency"`
FFmpegPath string `toml:"ffmpeg_path"`
}
STTConfig controls speech-to-text provider selection and audio chunking.
func (STTConfig) ChunkDurationValue ¶ added in v0.0.8
ChunkDurationValue parses the configured STT chunk duration.
type VaultConfig ¶ added in v0.0.6
VaultConfig controls vault root discovery and topic enumeration.
func (VaultConfig) Validate ¶ added in v0.0.6
func (c VaultConfig) Validate() error
Validate ensures vault discovery settings are usable.
type YouTubeConfig ¶ added in v0.0.6
type YouTubeConfig struct {
YTDLPPath string `toml:"yt_dlp_path"`
Proxy string `toml:"proxy"`
CookiesFile string `toml:"cookies_file"`
UserAgent string `toml:"user_agent"`
Transcription string `toml:"transcription"`
RetryAttempts int `toml:"retry_attempts"`
RetryBackoff string `toml:"retry_backoff"`
// CaptionLanguages controls caption track selection. "orig" means the
// video's original language as reported by yt-dlp metadata.
CaptionLanguages []string `toml:"caption_languages"`
AllowTranslatedCaptions bool `toml:"allow_translated_captions"`
// Bulk* control the kb ingest channel worker pool, inter-request throttle,
// and adaptive backoff used when ingesting an entire channel or playlist.
BulkConcurrency int `toml:"bulk_concurrency"`
BulkThrottle string `toml:"bulk_throttle"`
BulkBackoffMax string `toml:"bulk_backoff_max"`
BulkRetries int `toml:"bulk_retries"`
}
YouTubeConfig controls YouTube network access and retry behavior.
func (YouTubeConfig) BulkBackoffMaxDuration ¶ added in v0.0.10
func (c YouTubeConfig) BulkBackoffMaxDuration() (time.Duration, error)
BulkBackoffMaxDuration parses the configured adaptive backoff ceiling for bulk channel ingestion.
func (YouTubeConfig) BulkThrottleDuration ¶ added in v0.0.10
func (c YouTubeConfig) BulkThrottleDuration() (time.Duration, error)
BulkThrottleDuration parses the configured inter-request throttle for bulk channel ingestion.
func (YouTubeConfig) RetryBackoffDuration ¶ added in v0.0.6
func (c YouTubeConfig) RetryBackoffDuration() (time.Duration, error)
RetryBackoffDuration parses the configured retry backoff.
func (YouTubeConfig) Validate ¶ added in v0.0.6
func (c YouTubeConfig) Validate() error
Validate ensures YouTube runtime settings are usable.