/** * regex_pattern_scan 执行器 — 从规则文件读取 pattern,对目标文件执行正则扫描。 * * 职责边界: * - 负责:读取 rule_source 指定的规则文件,解析指定 check 的 pattern 字段,正则扫描目标文件 * - 不负责:规则文件的格式验证(由规则治理保障) * * 被谁调用:gate_engine evaluateCheck → gateExecutors.get("regex_pattern_scan") * 调用谁:search_utils(定位规则文件)、source_files(收集完整项目源码) * * 数据流:gate YAML rule_source → 规则文件 → pattern → 正则匹配 → 通过/失败 * 持久化:无 */ import type { GateExecutorFn } from "../gate_executors.js"; /** * 从规则文件中解析指定 check ID 的 pattern 字段。 * * 规则文件格式:每条规则以 `## CHECK-ID: 标题` 开头, * pattern 字段格式为 `pattern: /regex/` 或 ` pattern: /regex/`。 */ export declare function extractPatternFromFile(filePath: string, checkId: string): { pattern: RegExp; languages: string[]; } | null; /** SoloForge 自身状态/审计文件不是用户代码;扫描它会把 waiver reason 当违规代码误报。 */ export declare function isSoloForgeInternalScanPath(file: string): boolean; /** * 全源码模式扫描项目有效代码,不扫描 SoloForge 内部状态、文档/审计日志等非代码文件; * required_artifact 模式保持原样,因为它可能明确要求扫描 markdown 产物。 */ export declare function getRegexScanSkipReason(_checkId: string, file: string, requiredArtifact: boolean, languages?: string[]): string | null; /** 对单个文件执行正则扫描 */ export declare function scanFile(projectRoot: string, relativePath: string, pattern: RegExp, _checkId?: string): Array<{ file: string; line: number; content: string; }>; /** * regex_pattern_scan 执行器入口。 * * 工作流程: * 1. 从 check.rule_source 定位规则文件(包内 templates/ 下,扁平化后按阶段组织) * 2. 解析 check.id 对应的 pattern 字段 * 3. 获取完整项目源码扫描目标 * 4. 逐文件正则匹配 * 5. 返回通过/失败 + 命中详情 */ export declare const executeRegexPatternScan: GateExecutorFn;