#!/usr/bin/env node
/**
* 🧾 Audit log manager.
*/
class AuditManager {
constructor(logger, auditService) {
this.logger = logger.child('audit');
this.auditService = auditService;
}
async handleAction(args = {}) {
const { action } = args;
switch (action) {
case 'audit_list':
return this.auditService.readEntries({
limit: args.limit,
offset: args.offset,
reverse: args.reverse === true,
filters: {
trace_id: args.trace_id,
tool: args.tool,
action: args.audit_action,
status: args.status,
since: args.since,
},
});
case 'audit_tail':
return this.auditService.readEntries({
limit: args.limit || 50,
offset: 0,
reverse: true,
filters: {
trace_id: args.trace_id,
tool: args.tool,
action: args.audit_action,
status: args.status,
since: args.since,
},
});
case 'audit_clear':
return this.auditService.clear();
case 'audit_stats':
return { success: true, stats: this.auditService.getStats() };
default:
throw new Error(`Unknown audit action: ${action}`);
}
}
getStats() {
return this.auditService.getStats();
}
async cleanup() {
await this.auditService.cleanup();
}
}
module.exports = AuditManager;