| import { getSystemPrompt } from './prompts/prompts'; | |
| import optimized from './prompts/optimized'; | |
| export interface PromptOptions { | |
| cwd: string; | |
| allowedHtmlElements: string[]; | |
| modificationTagName: string; | |
| } | |
| export class PromptLibrary { | |
| static library: Record< | |
| string, | |
| { | |
| label: string; | |
| description: string; | |
| get: (options: PromptOptions) => string; | |
| } | |
| > = { | |
| default: { | |
| label: 'Default Prompt', | |
| description: 'This is the battle tested default system Prompt', | |
| get: (options) => getSystemPrompt(options.cwd), | |
| }, | |
| optimized: { | |
| label: 'Optimized Prompt (experimental)', | |
| description: 'an Experimental version of the prompt for lower token usage', | |
| get: (options) => optimized(options), | |
| }, | |
| }; | |
| static getList() { | |
| return Object.entries(this.library).map(([key, value]) => { | |
| const { label, description } = value; | |
| return { | |
| id: key, | |
| label, | |
| description, | |
| }; | |
| }); | |
| } | |
| static getPropmtFromLibrary(promptId: string, options: PromptOptions) { | |
| const prompt = this.library[promptId]; | |
| if (!prompt) { | |
| throw 'Prompt Now Found'; | |
| } | |
| return this.library[promptId]?.get(options); | |
| } | |
| } | |