promptforge
Version:
Adaptive Prompt Intelligence & Orchestration SDK - Manage, optimize, and serve prompts for LLMs with versioning, feedback loops, and multi-provider support
80 lines • 2.46 kB
TypeScript
import { PromptMetadata, PromptTemplate, PromptVersion, CreatePromptRequest } from '../types.js';
export interface PromptRegistryConfig {
storageBackend: 'database' | 'memory';
enableVersioning: boolean;
maxVersionsPerPrompt: number;
}
export declare class PromptRegistry {
private prompts;
private versions;
private templates;
private nameToIdMap;
private config;
constructor(config?: Partial<PromptRegistryConfig>);
/**
* Create a new prompt with metadata and optional template
*/
createPrompt(request: CreatePromptRequest): Promise<PromptMetadata>;
/**
* Update an existing prompt and create a new version
*/
updatePrompt(promptId: string, content: string, metadata?: Partial<PromptMetadata>): Promise<PromptVersion>;
/**
* Get prompt metadata by ID or name
*/
getPrompt(idOrName: string): Promise<PromptMetadata | undefined>;
/**
* Get specific version of a prompt
*/
getPromptVersion(promptId: string, version?: number): Promise<PromptVersion | undefined>;
/**
* Get all versions of a prompt
*/
getPromptVersions(promptId: string): Promise<PromptVersion[]>;
/**
* Get prompt template
*/
getTemplate(promptId: string): Promise<PromptTemplate | undefined>;
/**
* List all prompts with optional filtering
*/
listPrompts(filter?: {
owner?: string;
tags?: string[];
isActive?: boolean;
}): Promise<PromptMetadata[]>;
/**
* Delete a prompt and all its versions
*/
deletePrompt(promptId: string): Promise<boolean>;
/**
* Deactivate a prompt (soft delete)
*/
deactivatePrompt(promptId: string): Promise<boolean>;
/**
* Increment usage count for a prompt
*/
incrementUsage(promptId: string): Promise<void>;
/**
* Update average score for a prompt
*/
updateScore(promptId: string, score: number): Promise<void>;
/**
* Search prompts by content similarity (semantic search)
*/
searchPrompts(query: string, limit?: number): Promise<PromptMetadata[]>;
/**
* Extract template variables from content
*/
private extractVariables;
/**
* Get registry statistics
*/
getStats(): Promise<{
totalPrompts: number;
activePrompts: number;
totalVersions: number;
totalUsage: number;
}>;
}
//# sourceMappingURL=registry.d.ts.map