fix: validate nested analysis fields before merging and preparation

This commit is contained in:
2026-09-06 09:10:18 +03:00
parent 144724484c
commit 2aaf56ce8b
6 changed files with 96 additions and 5 deletions
+2 -1
View File
@@ -1,4 +1,5 @@
import { verifyAnalysisCitations } from './analysis-citations.mjs';
import { validateAnalysisShape } from './analysis-schema.mjs';
import {createHash} from 'node:crypto';
export function qualifyAnalysis(result,{text='',limit=60000,fileName='',expectedItems=0,repaired=false}={}) {
if(!result || typeof result !== 'object' || Array.isArray(result)) throw new Error('Analiz nesne biçiminde değil.');
@@ -9,7 +10,7 @@ export function qualifyAnalysis(result,{text='',limit=60000,fileName='',expected
if(clean[key] != null && !Array.isArray(clean[key])) throw new Error(`${key} liste biçiminde değil.`);
sections[key]=clean[key]?.length ? 'extracted' : 'not_extracted';
}
const source=String(text),issues=[];
const source=String(text),issues=validateAnalysisShape(clean);
if(source.length>limit)issues.push('Kaynak metnin tamamı analiz edilmedi.');
if(repaired)issues.push('Analiz yanıtı kesildi; yalnız kurtarılabilen alanlar gösteriliyor.');
if(expectedItems>0 && (clean.itemsAndSpecs?.length || 0)<expectedItems)issues.push(`Kaynakta ${expectedItems} kalem var; analiz listesi daha kısa.`);