/**
 * 验证工具函数
 *
 * 提供通用的验证和转换函数
 */
/**
 * 解析布尔值
 * 支持多种格式的布尔值转换
 *
 * @param value - 待解析的值
 * @param defaultValue - 默认值
 * @returns 解析后的布尔值
 */
export function parseBoolean(value, defaultValue = true) {
    if (value == null) {
        return defaultValue;
    }
    if (typeof value === 'boolean') {
        return value;
    }
    const normalized = String(value).trim().toLowerCase();
    if (['true', '1', 'yes', 'y', 'on'].includes(normalized)) {
        return true;
    }
    if (['false', '0', 'no', 'n', 'off'].includes(normalized)) {
        return false;
    }
    return defaultValue;
}
/**
 * 确保启用的工具列表有效
 * 如果传入的数组无效或为空，返回默认工具列表
 *
 * @param rawTools - 原始工具列表
 * @returns 有效的工具列表
 */
export function ensureEnabledTools(rawTools) {
    const defaults = ['acode', 'claude', 'opencode', 'codex'];
    if (!Array.isArray(rawTools) || rawTools.length === 0) {
        return defaults;
    }
    const result = [];
    for (const item of rawTools) {
        const normalized = String(item || '').trim().toLowerCase();
        if (!normalized) {
            continue;
        }
        if (!result.includes(normalized)) {
            result.push(normalized);
        }
    }
    return result.length > 0 ? result : defaults;
}
