/** * Hooks Metrics API Routes * Serves framework enforcement metrics to admin dashboard */ const express = require('express'); const router = express.Router(); const fs = require('fs'); const path = require('path'); const { authenticateToken, requireAdmin } = require('../middleware/auth.middleware'); const METRICS_PATH = path.join(__dirname, '../../.claude/metrics/hooks-metrics.json'); /** * GET /api/admin/hooks/metrics * Get current hooks metrics */ router.get('/metrics', authenticateToken, requireAdmin, async (req, res) => { try { // Check if metrics file exists if (!fs.existsSync(METRICS_PATH)) { return res.json({ success: true, metrics: { hook_executions: [], blocks: [], session_stats: {} } }); } // Read metrics const metricsData = fs.readFileSync(METRICS_PATH, 'utf8'); const metrics = JSON.parse(metricsData); res.json({ success: true, metrics: metrics }); } catch (error) { console.error('Error fetching hooks metrics:', error); res.status(500).json({ success: false, error: 'Failed to fetch hooks metrics' }); } }); module.exports = router;