/** * Structural comparison for drift detection. * * Compares baselines using deterministic structural comparison: * - Tool presence/absence * - Schema changes (hash comparison) * - Description changes (exact string comparison) * - Workflow success/failure changes * * All comparisons are 100% deterministic - no LLM involvement. */ import type { InterviewResult } from '../interview/types.js'; import type { BehavioralBaseline, BehavioralDiff, BehaviorChange, BehaviorAspect, CompareOptions, ChangeSeverity, VersionCompatibilityInfo, SeverityConfig } from './types.js'; /** * Compare current interview results against a baseline. */ export declare function compareWithBaseline(baseline: BehavioralBaseline, current: InterviewResult, serverCommand: string, options?: CompareOptions): BehavioralDiff; /** * Compare two baselines directly. * All changes are structural and deterministic. * * @param previous - The baseline to compare against (source/old) * @param current - The current baseline (target/new) * @param options - Comparison options * @returns Diff result including version compatibility information * @throws BaselineVersionError if versions are incompatible and ignoreVersionMismatch is false */ export declare function compareBaselines(previous: BehavioralBaseline, current: BehavioralBaseline, options?: CompareOptions): BehavioralDiff; export declare function hasBreakingChanges(diff: BehavioralDiff): boolean; export declare function hasSecurityChanges(diff: BehavioralDiff): boolean; export declare function filterByMinimumSeverity(diff: BehavioralDiff, minSeverity: ChangeSeverity): BehaviorChange[]; /** * Compare two severity levels. * Returns negative if a < b, positive if a > b, 0 if equal. */ export declare function compareSeverity(a: ChangeSeverity, b: ChangeSeverity): number; /** * Check if a severity meets or exceeds a threshold. */ export declare function severityMeetsThreshold(severity: ChangeSeverity, threshold: ChangeSeverity): boolean; /** * Apply aspect overrides to a behavior change. * Returns the modified severity based on aspect overrides. */ export declare function applyAspectOverride(change: BehaviorChange, aspectOverrides?: Partial>): ChangeSeverity; /** * Apply severity configuration to a diff result. * Returns a new diff with filtered/modified changes based on config. */ export declare function applySeverityConfig(diff: BehavioralDiff, config: SeverityConfig): BehavioralDiff; /** * Determine the appropriate exit code based on diff severity and config. * Returns true if the check should fail (non-zero exit). */ export declare function shouldFailOnDiff(diff: BehavioralDiff, failOnSeverity?: ChangeSeverity): boolean; /** * Check if two baselines have compatible versions for comparison. * * @param baseline1 - First baseline * @param baseline2 - Second baseline * @returns Version compatibility information */ export declare function checkBaselineVersionCompatibility(baseline1: BehavioralBaseline, baseline2: BehavioralBaseline): VersionCompatibilityInfo; //# sourceMappingURL=comparator.d.ts.map