package dialoguectx import ( "os" "strconv" "strings" ) // InjectionEnabled reports whether dialogue context injection is on. // Default is on; set DIALOGUE_CTX_INJECTION=off|false|0 to disable urgently. func InjectionEnabled() bool { v := strings.TrimSpace(strings.ToLower(os.Getenv("DIALOGUE_CTX_INJECTION"))) switch v { case "off", "false", "0", "no": return false default: return true } } // MaxDaysFromEnv returns the configured day window (default 7, cap 31). func MaxDaysFromEnv() int { return envInt("DIALOGUE_CTX_MAX_DAYS", DefaultMaxDays, 1, MaxDaysCap) } // MaxTurnsFromEnv returns the configured turn cap (default 80, cap 200). func MaxTurnsFromEnv() int { return envInt("DIALOGUE_CTX_MAX_TURNS", DefaultMaxTurns, 1, MaxTurnsCap) } func envInt(key string, def, min, max int) int { raw := strings.TrimSpace(os.Getenv(key)) if raw == "" { return def } n, err := strconv.Atoi(raw) if err != nil { return def } if n < min { return min } if n > max { return max } return n }