/** * ReasoningEnforcer - Inject explicit reasoning instructions into prompts * * Purpose: Force GLM models to use structured reasoning output format () * This complements API parameters (reasoning: true) with explicit prompt instructions. * * Strategy: * 1. If system prompt exists: Prepend reasoning instruction * 2. If no system prompt: Prepend to first user message * 3. Select prompt template based on effort level (low/medium/high/max) * 4. Preserve message structure (string vs array content) */ type EffortLevel = 'low' | 'medium' | 'high' | 'max'; interface ContentBlock { type: string; text?: string; [key: string]: unknown; } interface Message { role: string; content: string | ContentBlock[]; } interface ThinkingConfig { thinking?: boolean; effort?: string; } interface ReasoningEnforcerOptions { enabled?: boolean; prompts?: Record; } export declare class ReasoningEnforcer { private enabled; private prompts; constructor(options?: ReasoningEnforcerOptions); /** * Inject reasoning instruction into messages * @param messages - Messages array to modify * @param thinkingConfig - { thinking: boolean, effort: string } * @returns Modified messages array */ injectInstruction(messages: Message[], thinkingConfig?: ThinkingConfig): Message[]; /** * Select prompt template based on effort level */ private selectPrompt; /** * Get default prompt templates */ private getDefaultPrompts; } export default ReasoningEnforcer; //# sourceMappingURL=reasoning-enforcer.d.ts.map