@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 CHANGED
@@ -7211,6 +7211,20 @@ function sourcePrecedence(sectionRef) {
7211
7211
  if (normalized.includes("coverage form") || normalized.includes("policy form")) return 1;
7212
7212
  return 0;
7213
7213
  }
7214
+ function looksDeductibleOnlyCoverageRow(coverage) {
7215
+ const name = typeof coverage.name === "string" ? coverage.name : "";
7216
+ const originalContent = typeof coverage.originalContent === "string" ? coverage.originalContent : "";
7217
+ const evidenceText = originalContent || name;
7218
+ const normalizedEvidence = evidenceText.toLowerCase();
7219
+ const normalizedName = name.toLowerCase();
7220
+ if (!/\b(deductible|retention|self[-\s]?insured retention|sir)\b/.test(`${normalizedName} ${normalizedEvidence}`)) return false;
7221
+ if (coverage.deductible || coverage.deductibleAmount !== void 0) return false;
7222
+ if (!coverage.limit && coverage.limitAmount === void 0) return false;
7223
+ if (originalContent && /\b(deductible|retention|self[-\s]?insured retention|sir)\b/.test(normalizedEvidence) && !/\b(?:sub[-\s]?limit|limit|coverage)\b/.test(normalizedEvidence)) {
7224
+ return true;
7225
+ }
7226
+ return /[-–—]\s*(?:enhanced\s+|standard\s+)?(?:deductible|retention|sir)\b/.test(normalizedName);
7227
+ }
7214
7228
  function buildExtractionReviewReport(params) {
7215
7229
  const { memory, reviewRounds } = params;
7216
7230
  const deterministicIssues = [];
@@ -7316,6 +7330,17 @@ function buildExtractionReviewReport(params) {
7316
7330
  itemName: coverage.name
7317
7331
  });
7318
7332
  }
7333
+ if (looksDeductibleOnlyCoverageRow(coverage)) {
7334
+ deterministicIssues.push({
7335
+ code: "deductible_row_as_coverage_limit",
7336
+ severity: "blocking",
7337
+ message: `Coverage "${String(coverage.name ?? "unknown")}" appears to store a deductible or retention value as a coverage limit.`,
7338
+ extractorName: "coverage_limits",
7339
+ formNumber,
7340
+ pageNumber: typeof coverage.pageNumber === "number" ? coverage.pageNumber : void 0,
7341
+ itemName: typeof coverage.name === "string" ? coverage.name : void 0
7342
+ });
7343
+ }
7319
7344
  if (typeof coverage.pageNumber !== "number") {
7320
7345
  deterministicIssues.push({
7321
7346
  code: "coverage_missing_page_number",