@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.
43 lines • 5.09 kB
JavaScript
/**
* AutoLoadError - Structured error type for auto-load memory failures
*
* Provides detailed context about memory auto-load failures including:
* - Memory name that failed
* - Phase where failure occurred (load/validate/budget)
* - Descriptive error message
*
* Factory methods provide convenient creation for common scenarios.
*/
export class AutoLoadError extends Error {
memoryName;
phase;
constructor(message, memoryName, phase) {
super(message);
this.name = 'AutoLoadError';
this.memoryName = memoryName;
this.phase = phase;
// Maintains proper stack trace for where error was thrown
if (Error.captureStackTrace) {
Error.captureStackTrace(this, AutoLoadError);
}
}
/**
* Create error for memory load failures
*/
static loadFailed(memoryName, reason) {
return new AutoLoadError(`Failed to load memory: ${reason}`, memoryName, 'load');
}
/**
* Create error for memory validation failures
*/
static validationFailed(memoryName, reason) {
return new AutoLoadError(`Memory validation failed: ${reason}`, memoryName, 'validate');
}
/**
* Create error for budget constraint violations
*/
static budgetExceeded(memoryName, tokens, budget) {
return new AutoLoadError(`Memory exceeds token budget (${tokens} > ${budget} tokens)`, memoryName, 'budget');
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b0xvYWRFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvQXV0b0xvYWRFcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFFSCxNQUFNLE9BQU8sYUFBYyxTQUFRLEtBQUs7SUFDdEIsVUFBVSxDQUFTO0lBQ25CLEtBQUssQ0FBaUM7SUFFdEQsWUFDRSxPQUFlLEVBQ2YsVUFBa0IsRUFDbEIsS0FBcUM7UUFFckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsMERBQTBEO1FBQzFELElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFrQixFQUFFLE1BQWM7UUFDbEQsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsMEJBQTBCLE1BQU0sRUFBRSxFQUNsQyxVQUFVLEVBQ1YsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBa0IsRUFBRSxNQUFjO1FBQ3hELE9BQU8sSUFBSSxhQUFhLENBQ3RCLDZCQUE2QixNQUFNLEVBQUUsRUFDckMsVUFBVSxFQUNWLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFrQixFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ3RFLE9BQU8sSUFBSSxhQUFhLENBQ3RCLGdDQUFnQyxNQUFNLE1BQU0sTUFBTSxVQUFVLEVBQzVELFVBQVUsRUFDVixRQUFRLENBQ1QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXV0b0xvYWRFcnJvciAtIFN0cnVjdHVyZWQgZXJyb3IgdHlwZSBmb3IgYXV0by1sb2FkIG1lbW9yeSBmYWlsdXJlc1xuICpcbiAqIFByb3ZpZGVzIGRldGFpbGVkIGNvbnRleHQgYWJvdXQgbWVtb3J5IGF1dG8tbG9hZCBmYWlsdXJlcyBpbmNsdWRpbmc6XG4gKiAtIE1lbW9yeSBuYW1lIHRoYXQgZmFpbGVkXG4gKiAtIFBoYXNlIHdoZXJlIGZhaWx1cmUgb2NjdXJyZWQgKGxvYWQvdmFsaWRhdGUvYnVkZ2V0KVxuICogLSBEZXNjcmlwdGl2ZSBlcnJvciBtZXNzYWdlXG4gKlxuICogRmFjdG9yeSBtZXRob2RzIHByb3ZpZGUgY29udmVuaWVudCBjcmVhdGlvbiBmb3IgY29tbW9uIHNjZW5hcmlvcy5cbiAqL1xuXG5leHBvcnQgY2xhc3MgQXV0b0xvYWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IG1lbW9yeU5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHBoYXNlOiAnbG9hZCcgfCAndmFsaWRhdGUnIHwgJ2J1ZGdldCc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG1lbW9yeU5hbWU6IHN0cmluZyxcbiAgICBwaGFzZTogJ2xvYWQnIHwgJ3ZhbGlkYXRlJyB8ICdidWRnZXQnXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdBdXRvTG9hZEVycm9yJztcbiAgICB0aGlzLm1lbW9yeU5hbWUgPSBtZW1vcnlOYW1lO1xuICAgIHRoaXMucGhhc2UgPSBwaGFzZTtcblxuICAgIC8vIE1haW50YWlucyBwcm9wZXIgc3RhY2sgdHJhY2UgZm9yIHdoZXJlIGVycm9yIHdhcyB0aHJvd25cbiAgICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcbiAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIEF1dG9Mb2FkRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgZXJyb3IgZm9yIG1lbW9yeSBsb2FkIGZhaWx1cmVzXG4gICAqL1xuICBzdGF0aWMgbG9hZEZhaWxlZChtZW1vcnlOYW1lOiBzdHJpbmcsIHJlYXNvbjogc3RyaW5nKTogQXV0b0xvYWRFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBBdXRvTG9hZEVycm9yKFxuICAgICAgYEZhaWxlZCB0byBsb2FkIG1lbW9yeTogJHtyZWFzb259YCxcbiAgICAgIG1lbW9yeU5hbWUsXG4gICAgICAnbG9hZCdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBlcnJvciBmb3IgbWVtb3J5IHZhbGlkYXRpb24gZmFpbHVyZXNcbiAgICovXG4gIHN0YXRpYyB2YWxpZGF0aW9uRmFpbGVkKG1lbW9yeU5hbWU6IHN0cmluZywgcmVhc29uOiBzdHJpbmcpOiBBdXRvTG9hZEVycm9yIHtcbiAgICByZXR1cm4gbmV3IEF1dG9Mb2FkRXJyb3IoXG4gICAgICBgTWVtb3J5IHZhbGlkYXRpb24gZmFpbGVkOiAke3JlYXNvbn1gLFxuICAgICAgbWVtb3J5TmFtZSxcbiAgICAgICd2YWxpZGF0ZSdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBlcnJvciBmb3IgYnVkZ2V0IGNvbnN0cmFpbnQgdmlvbGF0aW9uc1xuICAgKi9cbiAgc3RhdGljIGJ1ZGdldEV4Y2VlZGVkKG1lbW9yeU5hbWU6IHN0cmluZywgdG9rZW5zOiBudW1iZXIsIGJ1ZGdldDogbnVtYmVyKTogQXV0b0xvYWRFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBBdXRvTG9hZEVycm9yKFxuICAgICAgYE1lbW9yeSBleGNlZWRzIHRva2VuIGJ1ZGdldCAoJHt0b2tlbnN9ID4gJHtidWRnZXR9IHRva2VucylgLFxuICAgICAgbWVtb3J5TmFtZSxcbiAgICAgICdidWRnZXQnXG4gICAgKTtcbiAgfVxufVxuIl19