Skip to main content
Glama
interfaces.tsβ€’4.43 kB
/** * Core interfaces for the System Prompt Plugin Architecture * * This module defines the foundational interfaces and types for the * extensible system prompt management system. */ /** * Context information passed to prompt providers for dynamic content generation */ export interface ProviderContext { /** Current timestamp */ timestamp: Date; /** User ID or identifier if available */ userId?: string; /** Session identifier */ sessionId?: string; /** Current memory state or relevant memory chunks */ memoryContext?: Record<string, any>; /** Additional runtime context data */ metadata?: Record<string, any>; } /** * Configuration options for prompt providers */ export interface ProviderConfig { /** Provider name/identifier */ name: string; /** Provider type */ type: ProviderType; /** Execution priority (higher numbers execute first) */ priority: number; /** Whether this provider is enabled */ enabled: boolean; /** Provider-specific configuration */ config?: Record<string, any>; } /** * Types of prompt providers supported by the system */ export enum ProviderType { /** Static content that doesn't change */ STATIC = 'static', /** Dynamic content generated at runtime */ DYNAMIC = 'dynamic', /** Content loaded from external files */ FILE_BASED = 'file-based', } /** * Main interface for all prompt providers */ export interface PromptProvider { /** Unique identifier for this provider */ readonly id: string; /** Human-readable name */ readonly name: string; /** Provider type */ readonly type: ProviderType; /** Execution priority */ readonly priority: number; /** Whether this provider is currently enabled */ enabled: boolean; /** * Generate prompt content * @param context Runtime context for dynamic content generation * @returns Promise resolving to the generated prompt content */ generateContent(context: ProviderContext): Promise<string>; /** * Validate provider configuration * @param config Configuration to validate * @returns True if configuration is valid */ validateConfig(config: Record<string, any>): boolean; /** * Initialize the provider with configuration * @param config Provider configuration */ initialize(config: Record<string, any>): Promise<void>; /** * Clean up resources when provider is destroyed */ destroy(): Promise<void>; } /** * Registry for managing prompt provider generator functions */ export interface ProviderRegistry { /** * Register a provider generator function * @param type Provider type * @param generator Function that creates provider instances */ register(type: string, generator: ProviderGenerator): void; /** * Create a provider instance * @param config Provider configuration * @returns Created provider instance */ create(config: ProviderConfig): Promise<PromptProvider>; /** * Get all registered provider types */ getRegisteredTypes(): string[]; /** * Check if a provider type is registered * @param type Provider type to check */ isRegistered(type: string): boolean; } /** * Function type for creating provider instances */ export type ProviderGenerator = (config: ProviderConfig) => Promise<PromptProvider>; /** * Configuration for the entire prompt management system */ export interface SystemPromptConfig { /** List of provider configurations */ providers: ProviderConfig[]; /** Global settings */ settings: { /** Maximum time to wait for all providers (ms) */ maxGenerationTime: number; /** Whether to fail if any provider fails */ failOnProviderError: boolean; /** Separator between provider outputs */ contentSeparator: string; }; } /** * Result from generating system prompt content */ export interface PromptGenerationResult { /** The complete generated prompt */ content: string; /** Individual provider results */ providerResults: ProviderResult[]; /** Total generation time in milliseconds */ generationTimeMs: number; /** Whether generation was successful */ success: boolean; /** Any errors that occurred */ errors: Error[]; } /** * Result from a single provider */ export interface ProviderResult { /** Provider ID */ providerId: string; /** Generated content */ content: string; /** Generation time for this provider */ generationTimeMs: number; /** Whether this provider succeeded */ success: boolean; /** Error if provider failed */ error?: Error; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/campfirein/cipher'

If you have feedback or need assistance with the MCP directory API, please join our Discord server