/**
 * harness-policy.ts — HarnessPolicy 정의·검출 (외부 평가 P0-6)
 *
 * 평가자 진단 (2026-05-19): profile.jsonld 의 4 HarnessPolicy 가 선언만 되어 있고
 * 중앙 enforcement 가 없다. 도구별 분산 방어 (review_safety_document 의 hallucination
 * marker 등) 만 존재.
 *
 * v1.3.0 단계 1 (본 파일): 정의 + 검출 함수 + 메타 부착.
 * v1.3.x 단계 2 (다음 sprint): 모든 tool 응답 wrapping enforce.
 *
 * profile.jsonld 의 policy SSoT:
 *   - safety:policy/no_generated_legal_basis
 *   - safety:policy/cite_graph_sources
 *   - safety:policy/ask_missing_required_fields
 *   - safety:policy/human_fallback_threshold
 */
import type { McpToolResult } from "./types.js";
export type PolicyIRI = "safety:policy/no_generated_legal_basis" | "safety:policy/cite_graph_sources" | "safety:policy/ask_missing_required_fields" | "safety:policy/human_fallback_threshold";
export type PolicySeverity = "blocker" | "warning" | "info";
export interface PolicyCheckResult {
    policy: PolicyIRI;
    severity: PolicySeverity;
    compliant: boolean;
    evidence: string;
    hint?: string;
}
export interface PolicyContext {
    toolName: string;
    /** structuredContent.legalBasis 또는 본문에서 추출한 IRI */
    legalBasisCited?: string[];
    /** graph traversal IRI (예: hazard:, control:, art:, doc:) 인용 여부 */
    graphSourcesCited?: string[];
    /** required field 누락 (사용자 자동 채움 금지) */
    missingRequiredFields?: string[];
    /** high-risk action 여부 (예: archive_safety_document) */
    isHighRiskAction?: boolean;
}
/**
 * 본문 텍스트에서 mandatory trigger 키워드 검출.
 */
export declare function hasMandatoryTrigger(text: string): boolean;
/**
 * 본문/structured 에서 그래프 IRI 인용 검출.
 * prefix: art:, doc:, hazard:, control:, annex:, activity:, chapter:, kosha:
 */
export declare function extractGraphIris(text: string): string[];
/**
 * 4 HarnessPolicy 검증.
 */
export declare function checkPolicies(result: McpToolResult, context: PolicyContext): PolicyCheckResult[];
/**
 * tool 응답 metadata 에 policyCompliance 부착.
 * v1.3.0 단계 1 — detection only (enforcement 는 v1.3.x).
 */
export declare function attachPolicyMetadata(result: McpToolResult, context: PolicyContext): McpToolResult;
//# sourceMappingURL=harness-policy.d.ts.map