feat(小宝预警): 增加趋势与解读缓存

This commit is contained in:
Script Generator
2026-06-29 18:37:39 +08:00
parent dda453ab5d
commit db72a420f5
4 changed files with 174 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
import type { XiaobaoRiskSnapshot } from './xiaobao-risk-trend';
export interface XiaobaoRiskInsight {
summary: string;
why: string[];
forecast: string;
recommendedReleaseWindow?: string;
suggestedActions: string[];
ownerHints: string[];
generatedAt: string;
}
export interface XiaobaoRiskInsightCacheItem {
versionId: string;
riskSignature: string;
insight: XiaobaoRiskInsight;
generatedAt: string;
providerInfo?: { providerId?: string; model?: string };
}
export function findCachedInsight(
rows: XiaobaoRiskInsightCacheItem[],
versionId: string,
riskSignature: string,
): XiaobaoRiskInsightCacheItem | undefined {
return rows.find((row) => row.versionId === versionId && row.riskSignature === riskSignature);
}
export function upsertInsight(
rows: XiaobaoRiskInsightCacheItem[],
item: XiaobaoRiskInsightCacheItem,
): XiaobaoRiskInsightCacheItem[] {
return [
item,
...rows.filter((row) => row.versionId !== item.versionId || row.riskSignature !== item.riskSignature),
];
}
export function upsertDailySnapshot(
rows: XiaobaoRiskSnapshot[],
item: XiaobaoRiskSnapshot,
): XiaobaoRiskSnapshot[] {
return [
item,
...rows.filter((row) => row.versionId !== item.versionId || row.date !== item.date),
];
}