permamind
Version:
An MCP server that provides an immortal memory layer for AI agents and clients
41 lines (40 loc) • 1.11 kB
JavaScript
export class ToolFactory {
config;
tools = [];
constructor(config) {
this.config = config;
}
getCategoryDescription() {
return this.config.categoryDescription;
}
getCategoryName() {
return this.config.categoryName;
}
getContext() {
return this.config.context;
}
getToolByName(name) {
return this.getTools().find((tool) => tool.getMetadata().name === name);
}
getToolCount() {
return this.getTools().length;
}
getTools() {
if (this.tools.length === 0) {
this.tools = this.createTools();
}
return this.tools;
}
registerTools(registry) {
if (this.tools.length === 0) {
this.tools = this.createTools();
}
registry.registerCategory(this.config.categoryName, this.config.categoryDescription, this.tools);
}
}
export class BaseToolFactory extends ToolFactory {
createTools() {
const ToolClasses = this.getToolClasses();
return ToolClasses.map((ToolClass) => new ToolClass(this.config.context));
}
}