chore: 初始化仓库

This commit is contained in:
Lydanne
2026-02-15 22:02:21 +08:00
commit 08d011d63f
381 changed files with 87202 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
/**
* 日志级别(字符串模式)
* - "silent": 静默模式,不输出任何日志
* - "info": 显示过程日志(如 "开始审查"、"完成审查"
* - "verbose": 显示详细日志
* - "debug": 显示调试日志(包括大模型的输入提示词和输出过程)
*/
export type LogLevel = "silent" | "info" | "verbose" | "debug";
/**
* Verbose 日志级别(数字模式,向后兼容)
* - 0 / false: 静默模式,只返回结果
* - 1 / true: 显示过程日志
* - 2: 显示详细日志
* - 3: 显示调试日志
*/
export type VerboseLevel = 0 | 1 | 2 | 3 | false | true;
/** 日志级别优先级映射 */
export const LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {
silent: 0,
info: 1,
verbose: 2,
debug: 3,
} as const;
/** VerboseLevel 数字到 LogLevel 字符串的映射 */
const VERBOSE_TO_LOG_LEVEL: Record<number, LogLevel> = {
0: "silent",
1: "info",
2: "verbose",
3: "debug",
} as const;
/**
* 将任意级别值统一转为 LogLevel 字符串
* @param level 日志级别(字符串、数字、布尔值)
* @returns LogLevel 字符串
*/
export const toLogLevel = (level: LogLevel | VerboseLevel | undefined): LogLevel => {
if (level === undefined) return "info";
if (typeof level === "string") return level;
if (level === true) return "info";
if (level === false) return "silent";
return VERBOSE_TO_LOG_LEVEL[level] ?? "info";
};
/**
* 将 verbose 值规范化为数字
* @param verbose verbose 值(支持字符串、数字、布尔值)
* @returns 规范化后的数字 (0, 1, 2, 3)
*/
export function normalizeVerbose(
verbose: LogLevel | VerboseLevel | boolean | undefined,
): 0 | 1 | 2 | 3 {
if (verbose === undefined || verbose === false || verbose === 0 || verbose === "silent") return 0;
if (verbose === true || verbose === 1 || verbose === "info") return 1;
if (verbose === 2 || verbose === "verbose") return 2;
return 3;
}
/**
* 判断是否应该打印指定级别的日志
* @param verbose 当前 verbose 级别(支持字符串或数字)
* @param requiredLevel 需要的最低级别 (1, 2, 3)
* @returns 是否应该打印
*/
export function shouldLog(
verbose: LogLevel | VerboseLevel | undefined,
requiredLevel: 1 | 2 | 3,
): boolean {
return normalizeVerbose(verbose) >= requiredLevel;
}