/**
 * patch-reset.js — 修改 openclaw.json 的 session.reset 字段
 * 
 * 使用 patchConfig 精准修改，不影响其他配置。
 * 
 * 入口: myclaw reset-idle [--minutes N]
 */

const { patchConfig, readConfig } = require('../find-config');

/**
 * 将 session.reset 设为 idle 模式，默认 90720 分钟（≈63 天）
 * @param {number} [idleMinutes=90720] - idle 超时分钟数
 */
function run(cliArgs) {
  // 解析 --minutes 参数
  let idleMinutes = 90720;
  if (cliArgs) {
    for (let i = 0; i < cliArgs.length; i++) {
      if (cliArgs[i] === '--minutes' && cliArgs[i + 1]) {
        idleMinutes = parseInt(cliArgs[i + 1], 10);
        if (isNaN(idleMinutes) || idleMinutes <= 0) {
          console.error('❌ --minutes 必须是正整数');
          process.exit(1);
        }
        i++;
      }
    }
  }

  console.log('📝 修改 session.reset...');
  console.log('  mode:        idle');
  console.log('  idleMinutes: ' + idleMinutes + ' (' + Math.round(idleMinutes / 1440) + ' 天)');
  console.log('');

  try {
    const { config, configPath } = patchConfig({
      session: {
        reset: {
          mode: "idle",
          idleMinutes: idleMinutes
        }
      }
    });

    // 验证
    const reset = config.session?.reset;
    console.log('✅ 已修改: ' + configPath);
    console.log('  [验证] session.reset.mode:        ' + (reset?.mode || '???'));
    console.log('  [验证] session.reset.idleMinutes:  ' + (reset?.idleMinutes || '???'));
  } catch (err) {
    console.error('❌ ' + err.message);
    process.exit(1);
  }

  console.log('');
}

module.exports = { run };
