UNPKG

@nomyx/assistant

Version:

A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)

46 lines (36 loc) 1.36 kB
import { PromptDefinition } from "../types/common"; export class StructuredPrompt { constructor(public definition: PromptDefinition) {} getPriority(): number | undefined { return this.definition.priority; } setPriority(priority: number): void { this.definition.priority = priority; } getConfig(): PromptDefinition['config'] | undefined { return this.definition.config; } setConfig(config: PromptDefinition['config']): void { this.definition.config = config; } render(variables: Record<string, string>, availablePrompts: PromptDefinition[]): string { let renderedPrompt = this.definition.template; // Replace variables for (const [key, value] of Object.entries(variables)) { renderedPrompt = renderedPrompt.replace(new RegExp(`{{${key}}}`, 'g'), value); } // Add available prompts information const availablePromptsInfo = availablePrompts .map(p => `- ${p.name}: ${p.description}`) .join('\n'); renderedPrompt = renderedPrompt.replace('{{available_prompts}}', availablePromptsInfo); // Add config information if available if (this.definition.config) { renderedPrompt += '\nConfig:'; for (const [key, value] of Object.entries(this.definition.config)) { renderedPrompt += `\n- ${key}: ${value}`; } } return renderedPrompt; } }