@dollhousemcp/mcp-server
Version:
DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.
51 lines • 5.92 kB
JavaScript
export class FileLockManagerCollector {
lockManager;
name = 'file-lock';
description = 'Metrics from the FileLockManager: requests, active locks, timeouts, and concurrent waits.';
constructor(lockManager) {
this.lockManager = lockManager;
}
collect() {
try {
const m = this.lockManager.getMetrics();
return [
{
type: 'counter',
name: 'lock.file.requests_total',
source: 'FileLockManager',
unit: 'count',
description: 'Total number of file lock requests.',
value: m.totalRequests,
},
{
type: 'gauge',
name: 'lock.file.active_current',
source: 'FileLockManager',
unit: 'count',
description: 'Number of currently active file locks.',
value: m.activeLocksCount,
},
{
type: 'counter',
name: 'lock.file.timeouts_total',
source: 'FileLockManager',
unit: 'count',
description: 'Total number of file lock timeouts.',
value: m.timeouts,
},
{
type: 'counter',
name: 'lock.file.concurrent_waits_total',
source: 'FileLockManager',
unit: 'count',
description: 'Total number of concurrent lock wait events.',
value: m.concurrentWaits,
},
];
}
catch {
return [];
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUxvY2tNYW5hZ2VyQ29sbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21ldHJpY3MvY29sbGVjdG9ycy9GaWxlTG9ja01hbmFnZXJDb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFPLHdCQUF3QjtJQUlOO0lBSHBCLElBQUksR0FBRyxXQUFXLENBQUM7SUFDbkIsV0FBVyxHQUFHLDJGQUEyRixDQUFDO0lBRW5ILFlBQTZCLFdBQTRCO1FBQTVCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtJQUFHLENBQUM7SUFFN0QsT0FBTztRQUNMLElBQUksQ0FBQztZQUNILE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7WUFFeEMsT0FBTztnQkFDTDtvQkFDRSxJQUFJLEVBQUUsU0FBa0I7b0JBQ3hCLElBQUksRUFBRSwwQkFBMEI7b0JBQ2hDLE1BQU0sRUFBRSxpQkFBaUI7b0JBQ3pCLElBQUksRUFBRSxPQUFnQjtvQkFDdEIsV0FBVyxFQUFFLHFDQUFxQztvQkFDbEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxhQUFhO2lCQUN2QjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsT0FBZ0I7b0JBQ3RCLElBQUksRUFBRSwwQkFBMEI7b0JBQ2hDLE1BQU0sRUFBRSxpQkFBaUI7b0JBQ3pCLElBQUksRUFBRSxPQUFnQjtvQkFDdEIsV0FBVyxFQUFFLHdDQUF3QztvQkFDckQsS0FBSyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7aUJBQzFCO2dCQUNEO29CQUNFLElBQUksRUFBRSxTQUFrQjtvQkFDeEIsSUFBSSxFQUFFLDBCQUEwQjtvQkFDaEMsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsSUFBSSxFQUFFLE9BQWdCO29CQUN0QixXQUFXLEVBQUUscUNBQXFDO29CQUNsRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLFFBQVE7aUJBQ2xCO2dCQUNEO29CQUNFLElBQUksRUFBRSxTQUFrQjtvQkFDeEIsSUFBSSxFQUFFLGtDQUFrQztvQkFDeEMsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsSUFBSSxFQUFFLE9BQWdCO29CQUN0QixXQUFXLEVBQUUsOENBQThDO29CQUMzRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLGVBQWU7aUJBQ3pCO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbGxlY3RvciBmb3IgRmlsZUxvY2tNYW5hZ2VyIG1ldHJpY3MuXG4gKlxuICogRXhwb3NlcyBsb2NrIHJlcXVlc3QgdG90YWxzLCBhY3RpdmUgbG9jayBjb3VudCwgdGltZW91dCBjb3VudCwgYW5kXG4gKiBjb25jdXJyZW50LXdhaXQgY291bnQgc291cmNlZCBmcm9tIGBGaWxlTG9ja01hbmFnZXIuZ2V0TWV0cmljcygpYC5cbiAqL1xuaW1wb3J0IHR5cGUgeyBJTWV0cmljQ29sbGVjdG9yLCBNZXRyaWNFbnRyeSB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRmlsZUxvY2tNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc2VjdXJpdHkvZmlsZUxvY2tNYW5hZ2VyLmpzJztcblxuZXhwb3J0IGNsYXNzIEZpbGVMb2NrTWFuYWdlckNvbGxlY3RvciBpbXBsZW1lbnRzIElNZXRyaWNDb2xsZWN0b3Ige1xuICByZWFkb25seSBuYW1lID0gJ2ZpbGUtbG9jayc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gJ01ldHJpY3MgZnJvbSB0aGUgRmlsZUxvY2tNYW5hZ2VyOiByZXF1ZXN0cywgYWN0aXZlIGxvY2tzLCB0aW1lb3V0cywgYW5kIGNvbmN1cnJlbnQgd2FpdHMuJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2tNYW5hZ2VyOiBGaWxlTG9ja01hbmFnZXIpIHt9XG5cbiAgY29sbGVjdCgpOiBNZXRyaWNFbnRyeVtdIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbSA9IHRoaXMubG9ja01hbmFnZXIuZ2V0TWV0cmljcygpO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2NvdW50ZXInIGFzIGNvbnN0LFxuICAgICAgICAgIG5hbWU6ICdsb2NrLmZpbGUucmVxdWVzdHNfdG90YWwnLFxuICAgICAgICAgIHNvdXJjZTogJ0ZpbGVMb2NrTWFuYWdlcicsXG4gICAgICAgICAgdW5pdDogJ2NvdW50JyBhcyBjb25zdCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RvdGFsIG51bWJlciBvZiBmaWxlIGxvY2sgcmVxdWVzdHMuJyxcbiAgICAgICAgICB2YWx1ZTogbS50b3RhbFJlcXVlc3RzLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2dhdWdlJyBhcyBjb25zdCxcbiAgICAgICAgICBuYW1lOiAnbG9jay5maWxlLmFjdGl2ZV9jdXJyZW50JyxcbiAgICAgICAgICBzb3VyY2U6ICdGaWxlTG9ja01hbmFnZXInLFxuICAgICAgICAgIHVuaXQ6ICdjb3VudCcgYXMgY29uc3QsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdOdW1iZXIgb2YgY3VycmVudGx5IGFjdGl2ZSBmaWxlIGxvY2tzLicsXG4gICAgICAgICAgdmFsdWU6IG0uYWN0aXZlTG9ja3NDb3VudCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdjb3VudGVyJyBhcyBjb25zdCxcbiAgICAgICAgICBuYW1lOiAnbG9jay5maWxlLnRpbWVvdXRzX3RvdGFsJyxcbiAgICAgICAgICBzb3VyY2U6ICdGaWxlTG9ja01hbmFnZXInLFxuICAgICAgICAgIHVuaXQ6ICdjb3VudCcgYXMgY29uc3QsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdUb3RhbCBudW1iZXIgb2YgZmlsZSBsb2NrIHRpbWVvdXRzLicsXG4gICAgICAgICAgdmFsdWU6IG0udGltZW91dHMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnY291bnRlcicgYXMgY29uc3QsXG4gICAgICAgICAgbmFtZTogJ2xvY2suZmlsZS5jb25jdXJyZW50X3dhaXRzX3RvdGFsJyxcbiAgICAgICAgICBzb3VyY2U6ICdGaWxlTG9ja01hbmFnZXInLFxuICAgICAgICAgIHVuaXQ6ICdjb3VudCcgYXMgY29uc3QsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdUb3RhbCBudW1iZXIgb2YgY29uY3VycmVudCBsb2NrIHdhaXQgZXZlbnRzLicsXG4gICAgICAgICAgdmFsdWU6IG0uY29uY3VycmVudFdhaXRzLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==