fix: harden AI analysis provider responses
This commit is contained in:
@@ -256,6 +256,7 @@ export function validateElderAiAnalysisOutput(value: unknown): ElderAiAnalysisOu
|
||||
if (!isRecord(value)) {
|
||||
return null;
|
||||
}
|
||||
const confidenceValue = typeof value.confidence === "string" ? Number(value.confidence) : value.confidence;
|
||||
const keyFindings = Array.isArray(value.keyFindings) ? value.keyFindings.map(validateFinding) : null;
|
||||
const recommendations = Array.isArray(value.recommendations) ? value.recommendations.map(validateRecommendation) : null;
|
||||
const citations = Array.isArray(value.citations) ? value.citations.map(validateCitation) : null;
|
||||
@@ -265,7 +266,8 @@ export function validateElderAiAnalysisOutput(value: unknown): ElderAiAnalysisOu
|
||||
if (
|
||||
!ELDER_AI_RISK_LEVELS.includes(value.overallRiskLevel as ElderAiRiskLevel) ||
|
||||
typeof value.summary !== "string" ||
|
||||
typeof value.confidence !== "number" ||
|
||||
typeof confidenceValue !== "number" ||
|
||||
!Number.isFinite(confidenceValue) ||
|
||||
!keyFindings ||
|
||||
keyFindings.includes(null) ||
|
||||
!recommendations ||
|
||||
@@ -285,7 +287,7 @@ export function validateElderAiAnalysisOutput(value: unknown): ElderAiAnalysisOu
|
||||
recommendations: recommendations.filter((item): item is ElderAiRecommendation => Boolean(item)),
|
||||
dataGaps,
|
||||
citations: citations.filter((item): item is AiCitation => Boolean(item)),
|
||||
confidence: Math.max(0, Math.min(1, value.confidence)),
|
||||
confidence: Math.max(0, Math.min(1, confidenceValue)),
|
||||
modelSummary,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user