@nomyx/assistant
Version:
A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)
54 lines (53 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PromptRegistry = void 0;
class PromptRegistry {
constructor() {
this.prompts = new Map();
}
register(prompt) {
this.prompts.set(prompt.definition.name, prompt);
}
get(name) {
const prompt = this.prompts.get(name);
if (!prompt) {
throw new Error(`Prompt not found: ${name}`);
}
return prompt;
}
getAllPrompts() {
return Array.from(this.prompts.values());
}
getPromptNames() {
return Array.from(this.prompts.keys());
}
removePrompt(name) {
return this.prompts.delete(name);
}
clear() {
this.prompts.clear();
}
size() {
return this.prompts.size;
}
getPromptsSortedByPriority() {
return this.getAllPrompts().sort((a, b) => {
const priorityA = a.getPriority() ?? 0;
const priorityB = b.getPriority() ?? 0;
return priorityB - priorityA; // Sort in descending order
});
}
getHighestPriorityPrompt() {
const sortedPrompts = this.getPromptsSortedByPriority();
return sortedPrompts[0];
}
getPromptsByConfig(config) {
return this.getAllPrompts().filter(prompt => {
const promptConfig = prompt.getConfig();
if (!promptConfig)
return false;
return Object.entries(config).every(([key, value]) => promptConfig[key] === value);
});
}
}
exports.PromptRegistry = PromptRegistry;