// Configuration adapter (T026)
// Reads environment and provides normalized configuration with defaults
import { ValidationError } from '../utils/errors.mjs';
export function loadConfig(env = process.env) {
const root = env.RUNBOOK_ROOT || env.DOCS_ROOT || env.FEATURE_DIR; // multiple fallbacks
if (!root) throw new ValidationError('RUNBOOK_ROOT (or DOCS_ROOT/FEATURE_DIR) required');
const freshnessDays = parseInt(env.FRESHNESS_DAYS || '90', 10);
const topKDefault = parseInt(env.TOPK_DEFAULT || '5', 10);
return Object.freeze({
root,
freshnessDays: Number.isFinite(freshnessDays) ? freshnessDays : 90,
topKDefault: Number.isFinite(topKDefault) ? topKDefault : 5
});
}
export default { loadConfig };