| 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); |
| } |
| } |
|
|