UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

56 lines (55 loc) 2.21 kB
import Logger from '../../infrastructure/logging/Logger.js'; import type { Constitution, ConstitutionRule } from './Constitution.js'; export interface ValidationRequest { actor?: string; action?: string; resource?: string; data?: Record<string, unknown>; confirmed?: boolean; authorized?: boolean; code?: string; [key: string]: unknown; } export interface Violation { rule: string; reason: string; suggestion: string; } export interface ValidationResult { compliant: boolean; violations: Violation[]; } type RuleChecker = (req: ValidationRequest, rule: ConstitutionRule) => Violation | null; /** * ConstitutionValidator — 数据守护验证器 * * 精简设计: 4 条纯数据完整性规则,不做伦理/价值观判断。 * 每条规则对应 constitution.yaml 中的一个 rule.check 值。 */ export declare class ConstitutionValidator { checkers: Record<string, RuleChecker>; constitution: Constitution; logger: ReturnType<typeof Logger.getInstance>; constructor(constitution: Constitution); /** 验证操作,返回违规列表 */ validate(request: ValidationRequest): Promise<ValidationResult>; /** 强制验证(违规时抛异常) */ enforce(request: ValidationRequest): Promise<ValidationResult>; /** 删除操作需要确认 */ _checkDestructive(req: ValidationRequest, rule: ConstitutionRule): Violation | null; /** 创建候选/Recipe 需要内容 */ _checkContent(req: ValidationRequest, rule: ConstitutionRule): Violation | null; /** AI 不能直接创建/批准 Recipe */ _checkAiRecipe(req: ValidationRequest, rule: ConstitutionRule): Violation | null; /** 批量操作需要授权 */ _checkBatch(req: ValidationRequest, rule: ConstitutionRule): Violation | null; _verb(action: string | undefined): string; _resource(action: string | undefined, resource: string | undefined): string; _isAI(actor: string | undefined): boolean; /** 兼容旧 priorities 格式 */ _checkLegacyPriority(priority: { id: number; [key: string]: unknown; }, request: ValidationRequest): Promise<Violation[]>; } export default ConstitutionValidator;