import fs from 'node:fs';
import path from 'node:path';
import os from 'node:os';

function fixPermissions() {
  try {
    // Otomatis berikan izin eksekusi (755 / rwxr-xr-x) ke file JS hasil build
    const cliPath = path.join(__dirname, 'cli.js');
    const hooksPath = path.join(__dirname, 'setup-hooks.js');

    if (fs.existsSync(cliPath)) {
      fs.chmodSync(cliPath, 0o755);
    }
    if (fs.existsSync(hooksPath)) {
      fs.chmodSync(hooksPath, 0o755);
    }
  } catch (err) {
    // Ignore error di OS non-POSIX (misal Windows)
  }
}

function setupClaudeCodeHook() {
  const claudeConfigDir = path.join(os.homedir(), '.claude');
  const settingsPath = path.join(claudeConfigDir, 'settings.json');

  try {
    if (!fs.existsSync(claudeConfigDir)) {
      fs.mkdirSync(claudeConfigDir, { recursive: true });
    }

    let settings: any = {};
    if (fs.existsSync(settingsPath)) {
      try {
        settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
      } catch {
        settings = {};
      }
    }

    // Tambahkan pre-prompt hook
    settings.hooks = settings.hooks || {};
    settings.hooks.prePrompt = 'npx track-prompt 1';

    fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
    console.log('✅ [Agent Tracker] Successfully hooked into AI environment!');
  } catch (err) {
    // Silent ignore jika tidak ada Claude/AI CLI di mesin
  }
}

// Eksekusi perbaikan izin eksekusi & registrasi hook
fixPermissions();
setupClaudeCodeHook();