/** * ChatStrategy - Default output format for LLM chat interfaces * * Renders domain results as simple, clean markdown optimized for * chat-based LLM interfaces. This is the baseline output strategy. * * @module strategies/chat-strategy * @see {@link https://github.com/Anselmoo/mcp-ai-agent-guidelines/blob/development/plan-v0.13.x/specs/SPEC-001-output-strategy-layer.md SPEC-001} ยง4.1 */ import type { ScoringResult } from "../domain/analysis/types.js"; import type { PromptResult } from "../domain/prompting/types.js"; import type { OutputArtifacts, RenderOptions } from "./output-strategy.js"; import { OutputApproach } from "./output-strategy.js"; import { BaseStrategy } from "./shared/base-strategy.js"; import type { ValidationResult } from "./shared/types.js"; /** * ChatStrategy implements the default chat-optimized markdown output format. * * Supports rendering: * - PromptResult: Hierarchical sections with optional metadata * - ScoringResult: Score breakdown table with recommendations * * @extends {BaseStrategy} */ export declare class ChatStrategy extends BaseStrategy { protected readonly name = "chat"; protected readonly version = "2.0.0"; /** The output approach this strategy implements */ readonly approach = OutputApproach.CHAT; /** * Validate that the input is a supported domain result type. * * @param input - Input to validate * @returns Validation result */ validate(input: PromptResult | ScoringResult): ValidationResult; /** * Execute the chat rendering strategy. * * @param input - The domain result to render * @returns Output artifacts with primary markdown document */ execute(input: PromptResult | ScoringResult, options?: Partial): Promise; /** * Check if this strategy supports rendering a specific domain type. * * @param domainType - The domain type identifier * @returns True if this strategy can render the domain type */ supports(domainType: string): boolean; /** * Render a PromptResult to markdown. * * Converts hierarchical prompt sections to markdown headings and content. * Optionally includes metadata footer with technique and token estimate. * * @param result - The prompt result to render * @param options - Optional rendering options * @returns Output artifacts with formatted prompt * @private */ private renderPrompt; /** * Render a ScoringResult to markdown table. * * Creates a formatted score report with: * - Overall score heading * - Breakdown table with all metrics * - Recommendations list * * @param result - The scoring result to render * @param options - Optional rendering options (currently unused) * @returns Output artifacts with score report * @private */ private renderScoring; /** * Type guard for PromptResult. * * @param result - The value to check * @returns True if result is a PromptResult * @private */ private isPromptResult; /** * Type guard for ScoringResult. * * @param result - The value to check * @returns True if result is a ScoringResult * @private */ private isScoringResult; } //# sourceMappingURL=chat-strategy.d.ts.map