/** * 数据主权审计记录(4 维) * 每次模型调用 / 工具调用生成一条 */ export interface DataSovereigntyRecord { cloudCall: { timestamp: string; provider: string; model: string; endpoint: string; tokenCount: { input: number; output: number; }; purpose: string; }; localAction: { type: 'file-read' | 'file-write' | 'tool-call' | 'model-inference'; target: string; description: string; auditResult: 'PASS' | 'WARN' | 'FAIL'; }; dataFlow: { direction: 'outbound' | 'inbound' | 'local-only'; sensitivity: 'public' | 'internal' | 'restricted' | 'confidential'; fields: string[]; destination: 'cloud-api' | 'local-model' | 'local-file' | 'local-tool'; redacted: boolean; }; taskContext: { taskId: string; parentTaskId?: string; userIntent: string; workflowId?: string; agentRole: string; }; } /** 落盘条目:记录 + 哈希链字段 */ export interface SovereigntyLogEntry extends DataSovereigntyRecord { /** 前一条记录的 hash(链完整性验证) */ prevHash?: string; /** hash 算法版本:2 = 环境指纹(对齐 audit-history v1.0.6+) */ hashVersion?: number; /** HMAC-SHA256 签名(有密钥时存在) */ hmacSig?: string; /** 写入侧签名算法标记(stable = stableStringify) */ hmacAlgo?: 'stable'; } /** * 脱敏整条记录——fields[] 元素与 userIntent 摘要中的敏感串替换为占位符。 * 返回新对象,不改入参。redacted 标记置 true(只要发生了替换)。 */ export declare function sanitizeRecord(record: DataSovereigntyRecord, customPatterns?: { pattern: RegExp; replacement: string; }[]): DataSovereigntyRecord; /** * 解析某日的 JSONL 日志文件路径 * 结构:data/audit/data-sovereignty/{年}/{月}/YYYY-MM-DD.jsonl * @param isoDate ISO 日期(如 2026-07-28),或 Date 对象 * @param overrideHome 测试隔离用 fake home */ export declare function resolveSovereigntyLogPath(isoDate: string | Date, overrideHome?: string): string; /** * 数据主权日志写入器 * * 用法: * const logger = new DataSovereigntyLogger(); * logger.append(record); // 写今日文件(按 record.cloudCall.timestamp 分日) * logger.queryRecent({ date: 'today' }); // 读今日记录 */ export declare class DataSovereigntyLogger { private readonly overrideHome?; constructor(overrideHome?: string); /** * 追加一条记录(append-only)。 * 先脱敏 → 算 prevHash → 签名 → 原子追加。 * 写失败不抛出(审计是辅助通道,绝不阻断业务流程)。 */ append(record: DataSovereigntyRecord): void; /** * 查询最近记录 * @param opts.date 'today' | 'yesterday' | 'YYYY-MM-DD'(默认 today) * @param opts.limit 返回最近 N 条(默认 100) * @returns 按时间正序的记录数组 */ queryRecent(opts?: { date?: string; limit?: number; }): DataSovereigntyRecord[]; /** * 查询日期区间内的所有记录(周/月报用) * 扫描目录结构,聚合区间内所有日文件。 * @param startISO 起始日期(含) * @param endISO 结束日期(含) */ queryRange(startISO: string, endISO: string): DataSovereigntyRecord[]; } /** * 解析 date 参数为 YYYY-MM-DD * 'today' → 今天;'yesterday' → 昨天;其余原样(校验格式) */ export declare function resolveDateArg(date: string): string; //# sourceMappingURL=data-sovereignty.d.ts.map