import type { DiffFile } from '@sofagent/core'; import type { LogEntry } from '@sofagent/core'; import type { AuditConfig } from '@sofagent/core'; import type { RuleCheck } from './types'; import type { AuditHistoryEntry } from '../audit-history'; /** 国标对齐条目 name——exitCode 计算排除键(信息条目,不影响默认审计行为) */ export declare const GB48000_RULE_NAME = "GB48000"; /** * 规则分组(24 条 = 17 默认 + 7 扩展) * * 默认规则(17 条,config.yml 中 enabled: true): * A1-A11, A18-A23 * * 扩展规则(7 条,需主动开启 extensions.enabled: true): * A14-A17, E1-E2, E4 * * 规则数口径(统一): * - 17 条默认规则(normal run,config.yml extendedRulesEnabled=false) * - 24 条全量规则(config fallback 到 safeDefaults 时 extendedRulesEnabled=true, * fail-closed 保护——宁可多查不漏查) * - 24 个规则源文件(rules/ 目录 rule-*.ts 与 24 条规则一一对应,不含 *.test.ts) * - 目录另有 6 个支撑文件(index.ts 注册表 / types.ts / runner.ts / skill-safety 三件套之 engine+reporter+rules)——非规则文件不计入口径 * - 9 条基线规则(不可禁用) * * 注:A12/A13 已在 v0.99.4 合并入 A11,不再独立存在(统一:以 v1.1.4 changelog 为准, * README 与代码此前 v0.99.4/v1.2.0 不一致,真实版本为 v0.99.4)。 * @see engine/audit/src/rules/index.ts defaultRules/extendedRules ——以实际注册表为准。 */ /** * 基线规则——安全底线,不可通过 config.yml 关闭。 * 即使 config.rules.a1 = false,A1 仍然生效。 * 单一事实源 = @sofagent/core BASELINE_RULE_KEYS(9 条:a1/a2/a9/a10/a11/a20/a21/a22/a23) */ export interface AuditResult { rules: RuleCheck[]; exitCode: number; } /** * 审计优先级分组 * - critical: 安全红线——全量跑完收集所有 FAIL,统一 fast-fail 后续层(v1.2.5 变更) * - warning: 业务底线——全部跑完 * - crutch: 拐杖规则——依赖日志,最慢 * - extended: 扩展规则——A 组核心扩展优先,E 组工程规范补充;各组内按编号正序 * * v1.2.5 重构: * critical: A1→A2→A9→A10→A20→A21→A22→A23 (安全红线,fast-fail) * warning: A3→A4→A5→A11→A19 (业务底线 + msg 质量) * crutch: A6→A7→A8→A18 (能力拐杖) * extended: A14→A15→A16→A17→E1→E2→E4 (E3 已并入 A11) * * 变更明细: * - A19 从 critical 移到 warning(msg 质量不是安全红线,不该阻断安全检查) * - A10 从 warning 移到 critical(恶意源 = 安全红线) * - A4 从 critical 移到 warning(配置删除是业务底线) * - A6 从 warning 移到 crutch(构建完整性是能力拐杖) * - A20-A23 新增到 critical(网络外传/后门/提权/路径穿越) * - E3 已并入 A11,从 extended 删除 * - critical 层从"命中即停"改为"全量收集所有 FAIL 后统一 fast-fail"(§4.9.2) * * v1.3.3 #11 单源化:priority 现在定义在 rules/index.ts 的规则对象里(Rule.priority 字段), * 本文件不再维护独立 AUDIT_PRIORITY 常量——新增规则只需在 index.ts 填 priority 字段, * 下方的 groupRulesByPriority() 自动按组归类执行,杜绝双注册漂移。 * 下方的 PRIORITY_ORDER 定义执行顺序(组间),组内顺序按规则 number 正序。 */ declare const PRIORITY_ORDER: readonly ['critical', 'warning', 'crutch', 'extended']; type Priority = (typeof PRIORITY_ORDER)[number]; /** * 向后兼容导出:派生的 AUDIT_PRIORITY(v1.3.3 #11 单源化后保留) * * v1.3.3 #11 把规则 priority 字段并入 index.ts 规则定义,runner.ts 不再维护 * 独立 AUDIT_PRIORITY 常量。但 acceptance-test.sh S186 / 外部脚本仍依赖 * `require('runner.js').AUDIT_PRIORITY.critical.includes('A20')` 形态的查询。 * * 此导出从 index.ts 的规则定义 + defaultRules 动态派生,保证与 priority 字段 * 单源一致——新增规则只需在 index.ts 填 priority,本导出自动更新。 */ export declare const AUDIT_PRIORITY: Record; /** * 运行全部审计规则(fast-fail 模式) * * 按 AUDIT_PRIORITY 定义的顺序分组执行: * 1. critical 层:v1.2.5 变更——全部跑完收集所有 FAIL,统一 fast-fail 后续层 * 2. warning 层:全部跑完 * 3. crutch 层:拐杖规则(A6/A7/A8/A18,其中 A7/A8 为 hybrid 模式需 Agent 日志) * 4. extended 层:扩展规则 * * @param diffFiles git diff 解析出的文件变更列表 * @param logEntries 任务日志条目 * @param task 任务描述(--task 参数) * @param strict 严格模式 * @param silent 沉默模式 * @param commitMsg commit message * @param config 审计配置 */ export declare function runRules(diffFiles: DiffFile[], logEntries: LogEntry[], task?: string, strict?: boolean, silent?: boolean, commitMsg?: string, config?: AuditConfig, history?: AuditHistoryEntry[], gb48000?: boolean, quickMode?: boolean): AuditResult; export {}; //# sourceMappingURL=runner.d.ts.map