/** * Protocol validation common utilities - ported from lib/validation/protocol-validation-common.sh * * Reusable validation functions for checking output files, manifest fields, * return message format, key findings count, status validity, and provenance. * * @task T4527 * @epic T4454 */ export interface ProtocolViolation { requirement: string; severity: 'error' | 'warning'; message: string; fix?: string; } export interface ProtocolValidationResult { valid: boolean; violations: ProtocolViolation[]; score: number; } /** * Check if expected output file exists. * @task T4527 */ export declare function checkOutputFileExists(taskId: string, expectedDir: string, pattern?: string): boolean; /** * Check if file contains required documentation sections. * @task T4527 */ export declare function checkDocumentationSections(filePath: string, sections: string[]): boolean; /** * Check if return message follows protocol format. * Expected: " . Manifest appended to pipeline_manifest." * * When protocolType is provided, the message type must match the protocol * (e.g., a 'research' protocol must produce a "Research ..." message). * * @task T4527 */ export declare function checkReturnMessageFormat(message: string, protocolType?: string): boolean; /** * Check if manifest entry has a required field (non-null, non-empty). * @task T4527 */ export declare function checkManifestFieldPresent(entry: Record, fieldName: string): boolean; /** * Check if manifest field has expected type. * @task T4527 */ export declare function checkManifestFieldType(entry: Record, fieldName: string, expectedType: 'string' | 'array' | 'number' | 'boolean' | 'object'): boolean; /** * Check if key_findings array has valid count (3-7). * @task T4527 */ export declare function checkKeyFindingsCount(entry: Record): boolean; /** * Check if status is valid enum value. * @task T4527 */ export declare function checkStatusValid(entry: Record): boolean; /** * Check if agent_type matches expected value. * @task T4527 */ export declare function checkAgentType(entry: Record, expectedType: string): boolean; /** * Check if linked_tasks array contains required task IDs. * @task T4527 */ export declare function checkLinkedTasksPresent(entry: Record, requiredIds: string[]): boolean; /** * Check if file contains @task provenance tag. * @task T4527 */ export declare function checkProvenanceTags(filePath: string, taskId?: string): boolean; /** * Validate common manifest requirements across all protocols. * * When protocolType is provided, additionally validates that the manifest * entry's agent_type matches the expected protocol type. * * @task T4527 */ export declare function validateCommonManifestRequirements(entry: Record, protocolType?: string): ProtocolValidationResult; //# sourceMappingURL=protocol-common.d.ts.map