/** * Layering Detector — 分层职责违规检测(核心代码质量约束的分层禁令部分)。 * * 职责边界: * - 负责:Controller 层禁 SQL/事务注解;.vue 组件禁直调 HTTP 客户端(API 隔离) * - 不负责:结构指标(code_structure_detector)、语义分层质量(对抗审查) * * 被谁调用:gate/executors/executors_layering.ts * 调用谁:code_structure_detector 的行清洗 * * 数据流:文件内容 + 路径 → 角色门控(注解/扩展名)→ 行级禁用模式 → LayeringFinding[] * 持久化:无 * * 判定机制:先识别文件的分层角色(Java 文件含 @RestController/@Controller 注解=Controller; * .vue=组件层——组件不可能是 API 封装层,扩展名即角色),再扫该角色内禁止的模式。 * SQL 片段在字符串字面量内判定(排除 stream 链 select()/from() 误报),注解在清洗后文本判定 * (排除字符串内注解文本误报)。测试文件豁免;残余误报由 waiver 按 finding 精确豁免。 */ export interface LayeringFinding { /** 违规所在层 */ layer: "controller" | "component"; /** 发现位置行号(1-based) */ line_number: number; /** 中文描述 */ message: string; /** 证据片段(原始行内容,截断 120 字符) */ evidence: string; } /** * 对单个文件执行分层违规检测。 * @param content 文件原始内容 * @param filePath 文件路径(角色门控:.java 按 Controller 注解、.vue 按扩展名) */ export declare function detectLayeringViolations(content: string, filePath: string): LayeringFinding[];