@claritylabs/cl-sdk 1.3.6 → 1.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +25 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -6883,6 +6883,20 @@ function sourcePrecedence(sectionRef) {
|
|
|
6883
6883
|
if (normalized.includes("coverage form") || normalized.includes("policy form")) return 1;
|
|
6884
6884
|
return 0;
|
|
6885
6885
|
}
|
|
6886
|
+
function looksDeductibleOnlyCoverageRow(coverage) {
|
|
6887
|
+
const name = typeof coverage.name === "string" ? coverage.name : "";
|
|
6888
|
+
const originalContent = typeof coverage.originalContent === "string" ? coverage.originalContent : "";
|
|
6889
|
+
const evidenceText = originalContent || name;
|
|
6890
|
+
const normalizedEvidence = evidenceText.toLowerCase();
|
|
6891
|
+
const normalizedName = name.toLowerCase();
|
|
6892
|
+
if (!/\b(deductible|retention|self[-\s]?insured retention|sir)\b/.test(`${normalizedName} ${normalizedEvidence}`)) return false;
|
|
6893
|
+
if (coverage.deductible || coverage.deductibleAmount !== void 0) return false;
|
|
6894
|
+
if (!coverage.limit && coverage.limitAmount === void 0) return false;
|
|
6895
|
+
if (originalContent && /\b(deductible|retention|self[-\s]?insured retention|sir)\b/.test(normalizedEvidence) && !/\b(?:sub[-\s]?limit|limit|coverage)\b/.test(normalizedEvidence)) {
|
|
6896
|
+
return true;
|
|
6897
|
+
}
|
|
6898
|
+
return /[-–—]\s*(?:enhanced\s+|standard\s+)?(?:deductible|retention|sir)\b/.test(normalizedName);
|
|
6899
|
+
}
|
|
6886
6900
|
function buildExtractionReviewReport(params) {
|
|
6887
6901
|
const { memory, reviewRounds } = params;
|
|
6888
6902
|
const deterministicIssues = [];
|
|
@@ -6988,6 +7002,17 @@ function buildExtractionReviewReport(params) {
|
|
|
6988
7002
|
itemName: coverage.name
|
|
6989
7003
|
});
|
|
6990
7004
|
}
|
|
7005
|
+
if (looksDeductibleOnlyCoverageRow(coverage)) {
|
|
7006
|
+
deterministicIssues.push({
|
|
7007
|
+
code: "deductible_row_as_coverage_limit",
|
|
7008
|
+
severity: "blocking",
|
|
7009
|
+
message: `Coverage "${String(coverage.name ?? "unknown")}" appears to store a deductible or retention value as a coverage limit.`,
|
|
7010
|
+
extractorName: "coverage_limits",
|
|
7011
|
+
formNumber,
|
|
7012
|
+
pageNumber: typeof coverage.pageNumber === "number" ? coverage.pageNumber : void 0,
|
|
7013
|
+
itemName: typeof coverage.name === "string" ? coverage.name : void 0
|
|
7014
|
+
});
|
|
7015
|
+
}
|
|
6991
7016
|
if (typeof coverage.pageNumber !== "number") {
|
|
6992
7017
|
deterministicIssues.push({
|
|
6993
7018
|
code: "coverage_missing_page_number",
|