@claritylabs/cl-sdk 3.1.19 → 3.1.20

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.
@@ -1,6 +1,6 @@
1
1
  import { ZodSchema, z } from 'zod';
2
2
 
3
- type ModelTaskKind = "extraction_classify" | "extraction_source_tree" | "extraction_operational_profile" | "extraction_form_inventory" | "extraction_page_map" | "extraction_focused" | "extraction_long_list" | "extraction_referential_lookup" | "extraction_coverage_cleanup" | "extraction_review" | "extraction_summary" | "extraction_format" | "query_attachment" | "query_classify" | "query_reason" | "query_verify" | "query_respond" | "application_classify" | "application_extract_fields" | "application_auto_fill" | "application_lookup" | "application_parse_answers" | "application_batch" | "application_email" | "application_pdf_mapping" | "pce_impact_analysis" | "pce_reply_parse" | "pce_packet_generation";
3
+ type ModelTaskKind = "extraction_classify" | "extraction_source_tree" | "extraction_operational_profile" | "extraction_form_inventory" | "extraction_visual_table_repair" | "extraction_page_map" | "extraction_focused" | "extraction_long_list" | "extraction_referential_lookup" | "extraction_coverage_cleanup" | "extraction_review" | "extraction_summary" | "extraction_format" | "query_attachment" | "query_classify" | "query_reason" | "query_verify" | "query_respond" | "application_classify" | "application_extract_fields" | "application_auto_fill" | "application_lookup" | "application_parse_answers" | "application_batch" | "application_email" | "application_pdf_mapping" | "pce_impact_analysis" | "pce_reply_parse" | "pce_packet_generation";
4
4
  interface ModelCapabilities {
5
5
  /** Human-readable model identifier for diagnostics. */
6
6
  model?: string;
@@ -1,6 +1,6 @@
1
1
  import { ZodSchema, z } from 'zod';
2
2
 
3
- type ModelTaskKind = "extraction_classify" | "extraction_source_tree" | "extraction_operational_profile" | "extraction_form_inventory" | "extraction_page_map" | "extraction_focused" | "extraction_long_list" | "extraction_referential_lookup" | "extraction_coverage_cleanup" | "extraction_review" | "extraction_summary" | "extraction_format" | "query_attachment" | "query_classify" | "query_reason" | "query_verify" | "query_respond" | "application_classify" | "application_extract_fields" | "application_auto_fill" | "application_lookup" | "application_parse_answers" | "application_batch" | "application_email" | "application_pdf_mapping" | "pce_impact_analysis" | "pce_reply_parse" | "pce_packet_generation";
3
+ type ModelTaskKind = "extraction_classify" | "extraction_source_tree" | "extraction_operational_profile" | "extraction_form_inventory" | "extraction_visual_table_repair" | "extraction_page_map" | "extraction_focused" | "extraction_long_list" | "extraction_referential_lookup" | "extraction_coverage_cleanup" | "extraction_review" | "extraction_summary" | "extraction_format" | "query_attachment" | "query_classify" | "query_reason" | "query_verify" | "query_respond" | "application_classify" | "application_extract_fields" | "application_auto_fill" | "application_lookup" | "application_parse_answers" | "application_batch" | "application_email" | "application_pdf_mapping" | "pce_impact_analysis" | "pce_reply_parse" | "pce_packet_generation";
4
4
  interface ModelCapabilities {
5
5
  /** Human-readable model identifier for diagnostics. */
6
6
  model?: string;
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { L as LogFn, M as ModelTaskKind, a as ModelBudgetResolution, b as ModelCallTrace, G as GenerateObject, T as TokenUsage, S as SourceSpanLocation, c as SourceSpan, D as DocumentSourceNode, d as SourceKind, e as SourceSpanUnit, f as SourceSpanTableLocation, g as SourceChunk, h as SourceSpanBBox, U as UnifiedQualityReport, B as BaseQualityIssue, Q as QualityGateStatus, I as InsuranceDocument, P as PdfInput, i as DocumentChunk, j as PolicyOperationalProfile, k as PerformanceReport, l as GenerateText, C as ConvertPdfToImagesFn, m as QualityGateMode, n as ModelCapabilities, o as ModelBudgetConstraint, A as AgentContext, p as DocumentStore, q as MemoryStore, r as Platform } from './index-q8LQXen9.mjs';
2
- export { s as AcroFormMapping, t as AcroFormMappingSchema, u as AnswerParsingResult, v as AnswerParsingResultSchema, w as ApplicationClassifyResult, x as ApplicationClassifyResultSchema, y as ApplicationContextProposal, z as ApplicationContextProposalSchema, E as ApplicationEmailReviewSchema, F as ApplicationField, H as ApplicationFieldSchema, J as ApplicationListFilters, K as ApplicationNextQuestions, N as ApplicationPacket, O as ApplicationPacketAnswer, R as ApplicationPacketAnswerSchema, V as ApplicationPacketSchema, W as ApplicationPipelineConfig, X as ApplicationQualityArtifactSchema, Y as ApplicationQualityIssueSchema, Z as ApplicationQualityReportSchema, _ as ApplicationQualityRoundSchema, $ as ApplicationQuestionCondition, a0 as ApplicationQuestionConditionSchema, a1 as ApplicationQuestionGraph, a2 as ApplicationQuestionGraphSchema, a3 as ApplicationQuestionNode, a4 as ApplicationQuestionNodeSchema, a5 as ApplicationRepeat, a6 as ApplicationRepeatSchema, a7 as ApplicationState, a8 as ApplicationStateSchema, a9 as ApplicationStore, aa as ApplicationTemplate, ab as ApplicationTemplateListFilters, ac as ApplicationTemplateSchema, ad as ApplicationTemplateStore, ae as AutoFillMatch, af as AutoFillMatchSchema, ag as AutoFillResult, ah as AutoFillResultSchema, ai as AuxiliaryFact, aj as AuxiliaryFactSchema, ak as BackfillProvider, al as BuildApplicationPacketInput, am as BuildApplicationPacketResult, an as ChunkFilter, ao as CommunicationIntent, ap as CommunicationIntentSchema, aq as ContextProposalResult, ar as ConversationTurn, as as CoveredReason, at as CoveredReasonSchema, au as CreateApplicationRunInput, av as Definition, aw as DefinitionSchema, ax as DocumentAgentGuidance, ay as DocumentAgentGuidanceSchema, az as DocumentFilters, aA as DocumentMetadata, aB as DocumentMetadataSchema, aC as DocumentNode, aD as DocumentNodeSchema, aE as DocumentPageMapEntry, aF as DocumentPageMapEntrySchema, aG as DocumentSourceNodeKind, aH as DocumentSourceNodeKindSchema, aI as DocumentSourceNodeSchema, aJ as DocumentTableOfContentsEntry, aK as DocumentTableOfContentsEntrySchema, aL as EmbedText, aM as FieldExtractionResult, aN as FieldExtractionResultSchema, aO as FieldType, aP as FieldTypeSchema, aQ as FlatPdfPlacement, aR as FlatPdfPlacementSchema, aS as InsuranceDocumentSchema, aT as LookupFill, aU as LookupFillResult, aV as LookupFillResultSchema, aW as LookupFillSchema, aX as LookupRequest, aY as LookupRequestSchema, aZ as ModelCallReport, a_ as OperationalCoverageLine, a$ as OperationalCoverageLineSchema, b0 as OperationalCoverageTerm, b1 as OperationalCoverageTermSchema, b2 as OperationalEndorsementSupport, b3 as OperationalEndorsementSupportSchema, b4 as OperationalParty, b5 as OperationalPartySchema, b6 as PLATFORM_CONFIGS, b7 as ParsedAnswer, b8 as ParsedAnswerSchema, b9 as PlatformConfig, ba as PlatformSchema, bb as PolicyDocument, bc as PolicyDocumentSchema, bd as PolicyOperationalProfileSchema, be as PremiumLine, bf as PremiumLineSchema, bg as PriorAnswer, bh as ProcessApplicationInput, bi as ProcessApplicationResult, bj as ProcessReplyInput, bk as ProcessReplyResult, bl as QuestionBatchResult, bm as QuestionBatchResultSchema, bn as QuoteDocument, bo as QuoteDocumentSchema, bp as ReplyIntent, bq as ReplyIntentSchema, br as ResolveModelBudgetParams, bs as Section, bt as SectionSchema, bu as SourceBackedValue, bv as SourceBackedValueSchema, bw as SourceChunkSchema, bx as SourceKindSchema, by as SourceSpanBBoxSchema, bz as SourceSpanKind, bA as SourceSpanKindSchema, bB as SourceSpanLocationSchema, bC as SourceSpanRef, bD as SourceSpanRefSchema, bE as SourceSpanSchema, bF as SourceSpanTableLocationSchema, bG as SourceSpanUnitSchema, bH as Subjectivity, bI as SubjectivitySchema, bJ as Subsection, bK as SubsectionSchema, bL as UnderwritingCondition, bM as UnderwritingConditionSchema, bN as applyApplicationAnswers, bO as buildApplicationPacket, bP as buildQuestionGraphFromFields, bQ as createApplicationPipeline, bR as createApplicationRun, bS as extractQuestionGraphFromFields, bT as flattenQuestionGraph, bU as getActiveApplicationFields, bV as getNextApplicationQuestions, bW as normalizeApplicationQuestionGraph, bX as planNextApplicationQuestions, bY as proposeContextWrites, bZ as resolveModelBudget, b_ as validateApplicationPacket } from './index-q8LQXen9.mjs';
1
+ import { L as LogFn, M as ModelTaskKind, a as ModelBudgetResolution, b as ModelCallTrace, G as GenerateObject, T as TokenUsage, S as SourceSpanLocation, c as SourceSpan, D as DocumentSourceNode, d as SourceKind, e as SourceSpanUnit, f as SourceSpanTableLocation, g as SourceChunk, h as SourceSpanBBox, U as UnifiedQualityReport, B as BaseQualityIssue, Q as QualityGateStatus, I as InsuranceDocument, P as PdfInput, i as DocumentChunk, j as PolicyOperationalProfile, k as PerformanceReport, l as GenerateText, C as ConvertPdfToImagesFn, m as QualityGateMode, n as ModelCapabilities, o as ModelBudgetConstraint, A as AgentContext, p as DocumentStore, q as MemoryStore, r as Platform } from './index-DUBsVEev.mjs';
2
+ export { s as AcroFormMapping, t as AcroFormMappingSchema, u as AnswerParsingResult, v as AnswerParsingResultSchema, w as ApplicationClassifyResult, x as ApplicationClassifyResultSchema, y as ApplicationContextProposal, z as ApplicationContextProposalSchema, E as ApplicationEmailReviewSchema, F as ApplicationField, H as ApplicationFieldSchema, J as ApplicationListFilters, K as ApplicationNextQuestions, N as ApplicationPacket, O as ApplicationPacketAnswer, R as ApplicationPacketAnswerSchema, V as ApplicationPacketSchema, W as ApplicationPipelineConfig, X as ApplicationQualityArtifactSchema, Y as ApplicationQualityIssueSchema, Z as ApplicationQualityReportSchema, _ as ApplicationQualityRoundSchema, $ as ApplicationQuestionCondition, a0 as ApplicationQuestionConditionSchema, a1 as ApplicationQuestionGraph, a2 as ApplicationQuestionGraphSchema, a3 as ApplicationQuestionNode, a4 as ApplicationQuestionNodeSchema, a5 as ApplicationRepeat, a6 as ApplicationRepeatSchema, a7 as ApplicationState, a8 as ApplicationStateSchema, a9 as ApplicationStore, aa as ApplicationTemplate, ab as ApplicationTemplateListFilters, ac as ApplicationTemplateSchema, ad as ApplicationTemplateStore, ae as AutoFillMatch, af as AutoFillMatchSchema, ag as AutoFillResult, ah as AutoFillResultSchema, ai as AuxiliaryFact, aj as AuxiliaryFactSchema, ak as BackfillProvider, al as BuildApplicationPacketInput, am as BuildApplicationPacketResult, an as ChunkFilter, ao as CommunicationIntent, ap as CommunicationIntentSchema, aq as ContextProposalResult, ar as ConversationTurn, as as CoveredReason, at as CoveredReasonSchema, au as CreateApplicationRunInput, av as Definition, aw as DefinitionSchema, ax as DocumentAgentGuidance, ay as DocumentAgentGuidanceSchema, az as DocumentFilters, aA as DocumentMetadata, aB as DocumentMetadataSchema, aC as DocumentNode, aD as DocumentNodeSchema, aE as DocumentPageMapEntry, aF as DocumentPageMapEntrySchema, aG as DocumentSourceNodeKind, aH as DocumentSourceNodeKindSchema, aI as DocumentSourceNodeSchema, aJ as DocumentTableOfContentsEntry, aK as DocumentTableOfContentsEntrySchema, aL as EmbedText, aM as FieldExtractionResult, aN as FieldExtractionResultSchema, aO as FieldType, aP as FieldTypeSchema, aQ as FlatPdfPlacement, aR as FlatPdfPlacementSchema, aS as InsuranceDocumentSchema, aT as LookupFill, aU as LookupFillResult, aV as LookupFillResultSchema, aW as LookupFillSchema, aX as LookupRequest, aY as LookupRequestSchema, aZ as ModelCallReport, a_ as OperationalCoverageLine, a$ as OperationalCoverageLineSchema, b0 as OperationalCoverageTerm, b1 as OperationalCoverageTermSchema, b2 as OperationalEndorsementSupport, b3 as OperationalEndorsementSupportSchema, b4 as OperationalParty, b5 as OperationalPartySchema, b6 as PLATFORM_CONFIGS, b7 as ParsedAnswer, b8 as ParsedAnswerSchema, b9 as PlatformConfig, ba as PlatformSchema, bb as PolicyDocument, bc as PolicyDocumentSchema, bd as PolicyOperationalProfileSchema, be as PremiumLine, bf as PremiumLineSchema, bg as PriorAnswer, bh as ProcessApplicationInput, bi as ProcessApplicationResult, bj as ProcessReplyInput, bk as ProcessReplyResult, bl as QuestionBatchResult, bm as QuestionBatchResultSchema, bn as QuoteDocument, bo as QuoteDocumentSchema, bp as ReplyIntent, bq as ReplyIntentSchema, br as ResolveModelBudgetParams, bs as Section, bt as SectionSchema, bu as SourceBackedValue, bv as SourceBackedValueSchema, bw as SourceChunkSchema, bx as SourceKindSchema, by as SourceSpanBBoxSchema, bz as SourceSpanKind, bA as SourceSpanKindSchema, bB as SourceSpanLocationSchema, bC as SourceSpanRef, bD as SourceSpanRefSchema, bE as SourceSpanSchema, bF as SourceSpanTableLocationSchema, bG as SourceSpanUnitSchema, bH as Subjectivity, bI as SubjectivitySchema, bJ as Subsection, bK as SubsectionSchema, bL as UnderwritingCondition, bM as UnderwritingConditionSchema, bN as applyApplicationAnswers, bO as buildApplicationPacket, bP as buildQuestionGraphFromFields, bQ as createApplicationPipeline, bR as createApplicationRun, bS as extractQuestionGraphFromFields, bT as flattenQuestionGraph, bU as getActiveApplicationFields, bV as getNextApplicationQuestions, bW as normalizeApplicationQuestionGraph, bX as planNextApplicationQuestions, bY as proposeContextWrites, bZ as resolveModelBudget, b_ as validateApplicationPacket } from './index-DUBsVEev.mjs';
3
3
  import * as zod from 'zod';
4
4
  import { ZodTypeAny, z, ZodSchema } from 'zod';
5
5
  import { PDFDocument } from 'pdf-lib';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { L as LogFn, M as ModelTaskKind, a as ModelBudgetResolution, b as ModelCallTrace, G as GenerateObject, T as TokenUsage, S as SourceSpanLocation, c as SourceSpan, D as DocumentSourceNode, d as SourceKind, e as SourceSpanUnit, f as SourceSpanTableLocation, g as SourceChunk, h as SourceSpanBBox, U as UnifiedQualityReport, B as BaseQualityIssue, Q as QualityGateStatus, I as InsuranceDocument, P as PdfInput, i as DocumentChunk, j as PolicyOperationalProfile, k as PerformanceReport, l as GenerateText, C as ConvertPdfToImagesFn, m as QualityGateMode, n as ModelCapabilities, o as ModelBudgetConstraint, A as AgentContext, p as DocumentStore, q as MemoryStore, r as Platform } from './index-q8LQXen9.js';
2
- export { s as AcroFormMapping, t as AcroFormMappingSchema, u as AnswerParsingResult, v as AnswerParsingResultSchema, w as ApplicationClassifyResult, x as ApplicationClassifyResultSchema, y as ApplicationContextProposal, z as ApplicationContextProposalSchema, E as ApplicationEmailReviewSchema, F as ApplicationField, H as ApplicationFieldSchema, J as ApplicationListFilters, K as ApplicationNextQuestions, N as ApplicationPacket, O as ApplicationPacketAnswer, R as ApplicationPacketAnswerSchema, V as ApplicationPacketSchema, W as ApplicationPipelineConfig, X as ApplicationQualityArtifactSchema, Y as ApplicationQualityIssueSchema, Z as ApplicationQualityReportSchema, _ as ApplicationQualityRoundSchema, $ as ApplicationQuestionCondition, a0 as ApplicationQuestionConditionSchema, a1 as ApplicationQuestionGraph, a2 as ApplicationQuestionGraphSchema, a3 as ApplicationQuestionNode, a4 as ApplicationQuestionNodeSchema, a5 as ApplicationRepeat, a6 as ApplicationRepeatSchema, a7 as ApplicationState, a8 as ApplicationStateSchema, a9 as ApplicationStore, aa as ApplicationTemplate, ab as ApplicationTemplateListFilters, ac as ApplicationTemplateSchema, ad as ApplicationTemplateStore, ae as AutoFillMatch, af as AutoFillMatchSchema, ag as AutoFillResult, ah as AutoFillResultSchema, ai as AuxiliaryFact, aj as AuxiliaryFactSchema, ak as BackfillProvider, al as BuildApplicationPacketInput, am as BuildApplicationPacketResult, an as ChunkFilter, ao as CommunicationIntent, ap as CommunicationIntentSchema, aq as ContextProposalResult, ar as ConversationTurn, as as CoveredReason, at as CoveredReasonSchema, au as CreateApplicationRunInput, av as Definition, aw as DefinitionSchema, ax as DocumentAgentGuidance, ay as DocumentAgentGuidanceSchema, az as DocumentFilters, aA as DocumentMetadata, aB as DocumentMetadataSchema, aC as DocumentNode, aD as DocumentNodeSchema, aE as DocumentPageMapEntry, aF as DocumentPageMapEntrySchema, aG as DocumentSourceNodeKind, aH as DocumentSourceNodeKindSchema, aI as DocumentSourceNodeSchema, aJ as DocumentTableOfContentsEntry, aK as DocumentTableOfContentsEntrySchema, aL as EmbedText, aM as FieldExtractionResult, aN as FieldExtractionResultSchema, aO as FieldType, aP as FieldTypeSchema, aQ as FlatPdfPlacement, aR as FlatPdfPlacementSchema, aS as InsuranceDocumentSchema, aT as LookupFill, aU as LookupFillResult, aV as LookupFillResultSchema, aW as LookupFillSchema, aX as LookupRequest, aY as LookupRequestSchema, aZ as ModelCallReport, a_ as OperationalCoverageLine, a$ as OperationalCoverageLineSchema, b0 as OperationalCoverageTerm, b1 as OperationalCoverageTermSchema, b2 as OperationalEndorsementSupport, b3 as OperationalEndorsementSupportSchema, b4 as OperationalParty, b5 as OperationalPartySchema, b6 as PLATFORM_CONFIGS, b7 as ParsedAnswer, b8 as ParsedAnswerSchema, b9 as PlatformConfig, ba as PlatformSchema, bb as PolicyDocument, bc as PolicyDocumentSchema, bd as PolicyOperationalProfileSchema, be as PremiumLine, bf as PremiumLineSchema, bg as PriorAnswer, bh as ProcessApplicationInput, bi as ProcessApplicationResult, bj as ProcessReplyInput, bk as ProcessReplyResult, bl as QuestionBatchResult, bm as QuestionBatchResultSchema, bn as QuoteDocument, bo as QuoteDocumentSchema, bp as ReplyIntent, bq as ReplyIntentSchema, br as ResolveModelBudgetParams, bs as Section, bt as SectionSchema, bu as SourceBackedValue, bv as SourceBackedValueSchema, bw as SourceChunkSchema, bx as SourceKindSchema, by as SourceSpanBBoxSchema, bz as SourceSpanKind, bA as SourceSpanKindSchema, bB as SourceSpanLocationSchema, bC as SourceSpanRef, bD as SourceSpanRefSchema, bE as SourceSpanSchema, bF as SourceSpanTableLocationSchema, bG as SourceSpanUnitSchema, bH as Subjectivity, bI as SubjectivitySchema, bJ as Subsection, bK as SubsectionSchema, bL as UnderwritingCondition, bM as UnderwritingConditionSchema, bN as applyApplicationAnswers, bO as buildApplicationPacket, bP as buildQuestionGraphFromFields, bQ as createApplicationPipeline, bR as createApplicationRun, bS as extractQuestionGraphFromFields, bT as flattenQuestionGraph, bU as getActiveApplicationFields, bV as getNextApplicationQuestions, bW as normalizeApplicationQuestionGraph, bX as planNextApplicationQuestions, bY as proposeContextWrites, bZ as resolveModelBudget, b_ as validateApplicationPacket } from './index-q8LQXen9.js';
1
+ import { L as LogFn, M as ModelTaskKind, a as ModelBudgetResolution, b as ModelCallTrace, G as GenerateObject, T as TokenUsage, S as SourceSpanLocation, c as SourceSpan, D as DocumentSourceNode, d as SourceKind, e as SourceSpanUnit, f as SourceSpanTableLocation, g as SourceChunk, h as SourceSpanBBox, U as UnifiedQualityReport, B as BaseQualityIssue, Q as QualityGateStatus, I as InsuranceDocument, P as PdfInput, i as DocumentChunk, j as PolicyOperationalProfile, k as PerformanceReport, l as GenerateText, C as ConvertPdfToImagesFn, m as QualityGateMode, n as ModelCapabilities, o as ModelBudgetConstraint, A as AgentContext, p as DocumentStore, q as MemoryStore, r as Platform } from './index-DUBsVEev.js';
2
+ export { s as AcroFormMapping, t as AcroFormMappingSchema, u as AnswerParsingResult, v as AnswerParsingResultSchema, w as ApplicationClassifyResult, x as ApplicationClassifyResultSchema, y as ApplicationContextProposal, z as ApplicationContextProposalSchema, E as ApplicationEmailReviewSchema, F as ApplicationField, H as ApplicationFieldSchema, J as ApplicationListFilters, K as ApplicationNextQuestions, N as ApplicationPacket, O as ApplicationPacketAnswer, R as ApplicationPacketAnswerSchema, V as ApplicationPacketSchema, W as ApplicationPipelineConfig, X as ApplicationQualityArtifactSchema, Y as ApplicationQualityIssueSchema, Z as ApplicationQualityReportSchema, _ as ApplicationQualityRoundSchema, $ as ApplicationQuestionCondition, a0 as ApplicationQuestionConditionSchema, a1 as ApplicationQuestionGraph, a2 as ApplicationQuestionGraphSchema, a3 as ApplicationQuestionNode, a4 as ApplicationQuestionNodeSchema, a5 as ApplicationRepeat, a6 as ApplicationRepeatSchema, a7 as ApplicationState, a8 as ApplicationStateSchema, a9 as ApplicationStore, aa as ApplicationTemplate, ab as ApplicationTemplateListFilters, ac as ApplicationTemplateSchema, ad as ApplicationTemplateStore, ae as AutoFillMatch, af as AutoFillMatchSchema, ag as AutoFillResult, ah as AutoFillResultSchema, ai as AuxiliaryFact, aj as AuxiliaryFactSchema, ak as BackfillProvider, al as BuildApplicationPacketInput, am as BuildApplicationPacketResult, an as ChunkFilter, ao as CommunicationIntent, ap as CommunicationIntentSchema, aq as ContextProposalResult, ar as ConversationTurn, as as CoveredReason, at as CoveredReasonSchema, au as CreateApplicationRunInput, av as Definition, aw as DefinitionSchema, ax as DocumentAgentGuidance, ay as DocumentAgentGuidanceSchema, az as DocumentFilters, aA as DocumentMetadata, aB as DocumentMetadataSchema, aC as DocumentNode, aD as DocumentNodeSchema, aE as DocumentPageMapEntry, aF as DocumentPageMapEntrySchema, aG as DocumentSourceNodeKind, aH as DocumentSourceNodeKindSchema, aI as DocumentSourceNodeSchema, aJ as DocumentTableOfContentsEntry, aK as DocumentTableOfContentsEntrySchema, aL as EmbedText, aM as FieldExtractionResult, aN as FieldExtractionResultSchema, aO as FieldType, aP as FieldTypeSchema, aQ as FlatPdfPlacement, aR as FlatPdfPlacementSchema, aS as InsuranceDocumentSchema, aT as LookupFill, aU as LookupFillResult, aV as LookupFillResultSchema, aW as LookupFillSchema, aX as LookupRequest, aY as LookupRequestSchema, aZ as ModelCallReport, a_ as OperationalCoverageLine, a$ as OperationalCoverageLineSchema, b0 as OperationalCoverageTerm, b1 as OperationalCoverageTermSchema, b2 as OperationalEndorsementSupport, b3 as OperationalEndorsementSupportSchema, b4 as OperationalParty, b5 as OperationalPartySchema, b6 as PLATFORM_CONFIGS, b7 as ParsedAnswer, b8 as ParsedAnswerSchema, b9 as PlatformConfig, ba as PlatformSchema, bb as PolicyDocument, bc as PolicyDocumentSchema, bd as PolicyOperationalProfileSchema, be as PremiumLine, bf as PremiumLineSchema, bg as PriorAnswer, bh as ProcessApplicationInput, bi as ProcessApplicationResult, bj as ProcessReplyInput, bk as ProcessReplyResult, bl as QuestionBatchResult, bm as QuestionBatchResultSchema, bn as QuoteDocument, bo as QuoteDocumentSchema, bp as ReplyIntent, bq as ReplyIntentSchema, br as ResolveModelBudgetParams, bs as Section, bt as SectionSchema, bu as SourceBackedValue, bv as SourceBackedValueSchema, bw as SourceChunkSchema, bx as SourceKindSchema, by as SourceSpanBBoxSchema, bz as SourceSpanKind, bA as SourceSpanKindSchema, bB as SourceSpanLocationSchema, bC as SourceSpanRef, bD as SourceSpanRefSchema, bE as SourceSpanSchema, bF as SourceSpanTableLocationSchema, bG as SourceSpanUnitSchema, bH as Subjectivity, bI as SubjectivitySchema, bJ as Subsection, bK as SubsectionSchema, bL as UnderwritingCondition, bM as UnderwritingConditionSchema, bN as applyApplicationAnswers, bO as buildApplicationPacket, bP as buildQuestionGraphFromFields, bQ as createApplicationPipeline, bR as createApplicationRun, bS as extractQuestionGraphFromFields, bT as flattenQuestionGraph, bU as getActiveApplicationFields, bV as getNextApplicationQuestions, bW as normalizeApplicationQuestionGraph, bX as planNextApplicationQuestions, bY as proposeContextWrites, bZ as resolveModelBudget, b_ as validateApplicationPacket } from './index-DUBsVEev.js';
3
3
  import * as zod from 'zod';
4
4
  import { ZodTypeAny, z, ZodSchema } from 'zod';
5
5
  import { PDFDocument } from 'pdf-lib';
package/dist/index.js CHANGED
@@ -10129,6 +10129,12 @@ function endorsementDescription(title, node) {
10129
10129
  title
10130
10130
  );
10131
10131
  }
10132
+ function endorsementTitleKey(node) {
10133
+ const title = endorsementTitle(sourceNodeText(node));
10134
+ if (title) return title.toLowerCase();
10135
+ const fallback = cleanText(node.title, "");
10136
+ return fallback ? fallback.toLowerCase() : void 0;
10137
+ }
10132
10138
  function nodePageEnd2(node) {
10133
10139
  return node.pageEnd ?? node.pageStart;
10134
10140
  }
@@ -11050,7 +11056,76 @@ function applyEndorsementGrouping(sourceTree) {
11050
11056
  (node) => endorsementGroupChildIds.has(node.id) ? { ...node, parentId: groupId, order: node.order + 1e-3 } : node
11051
11057
  );
11052
11058
  }
11053
- return normalizeSemanticHierarchy(nextTree);
11059
+ return collapseNestedDuplicateEndorsements(normalizeSemanticHierarchy(nextTree));
11060
+ }
11061
+ function nearestEndorsementAncestor(node, byId) {
11062
+ let parentId = node.parentId;
11063
+ const seen = /* @__PURE__ */ new Set();
11064
+ while (parentId) {
11065
+ if (seen.has(parentId)) return void 0;
11066
+ seen.add(parentId);
11067
+ const parent = byId.get(parentId);
11068
+ if (!parent) return void 0;
11069
+ if (parent.kind === "endorsement") return parent;
11070
+ parentId = parent.parentId;
11071
+ }
11072
+ return void 0;
11073
+ }
11074
+ function collapseNestedDuplicateEndorsements(sourceTree) {
11075
+ const byId = new Map(sourceTree.map((node) => [node.id, node]));
11076
+ const replacementById = /* @__PURE__ */ new Map();
11077
+ const duplicateEvidenceByTarget = /* @__PURE__ */ new Map();
11078
+ for (const node of sourceTree) {
11079
+ if (node.kind !== "endorsement") continue;
11080
+ const ancestor = nearestEndorsementAncestor(node, byId);
11081
+ if (!ancestor) continue;
11082
+ if (endorsementTitleKey(node) !== endorsementTitleKey(ancestor)) continue;
11083
+ replacementById.set(node.id, ancestor.id);
11084
+ duplicateEvidenceByTarget.set(ancestor.id, [
11085
+ ...duplicateEvidenceByTarget.get(ancestor.id) ?? [],
11086
+ node
11087
+ ]);
11088
+ }
11089
+ if (replacementById.size === 0) return sourceTree;
11090
+ const replacementParent = (parentId) => {
11091
+ let next = parentId;
11092
+ const seen = /* @__PURE__ */ new Set();
11093
+ while (next && replacementById.has(next) && !seen.has(next)) {
11094
+ seen.add(next);
11095
+ next = replacementById.get(next);
11096
+ }
11097
+ return next;
11098
+ };
11099
+ const updated = sourceTree.filter((node) => !replacementById.has(node.id)).map((node) => {
11100
+ const evidence = duplicateEvidenceByTarget.get(node.id);
11101
+ const parentId = replacementParent(node.parentId);
11102
+ if (!evidence?.length) {
11103
+ return parentId === node.parentId ? node : {
11104
+ ...node,
11105
+ parentId,
11106
+ metadata: {
11107
+ ...node.metadata,
11108
+ organizerRepair: "collapse_duplicate_endorsement_wrapper"
11109
+ }
11110
+ };
11111
+ }
11112
+ const evidenceNodes = [node, ...evidence];
11113
+ const pageStarts = evidenceNodes.map((item) => item.pageStart).filter((page) => typeof page === "number");
11114
+ const pageEnds = evidenceNodes.map((item) => item.pageEnd ?? item.pageStart).filter((page) => typeof page === "number");
11115
+ return {
11116
+ ...node,
11117
+ parentId,
11118
+ sourceSpanIds: [...new Set(evidenceNodes.flatMap((item) => item.sourceSpanIds))],
11119
+ pageStart: pageStarts.length ? Math.min(...pageStarts) : node.pageStart,
11120
+ pageEnd: pageEnds.length ? Math.max(...pageEnds) : node.pageEnd,
11121
+ bbox: evidenceNodes.flatMap((item) => item.bbox ?? []).slice(0, 12),
11122
+ metadata: {
11123
+ ...node.metadata,
11124
+ organizerRepair: "collapse_duplicate_endorsement_wrapper"
11125
+ }
11126
+ };
11127
+ });
11128
+ return normalizeDocumentSourceTreePaths(normalizeContainerEvidenceFromChildren(updated));
11054
11129
  }
11055
11130
  function compactNode2(node, maxText = 700) {
11056
11131
  return {
@@ -11249,9 +11324,13 @@ Rules:
11249
11324
  - Every returned value must include sourceNodeIds or sourceSpanIds from the provided nodes.
11250
11325
  - If a value is not directly supported, omit it.
11251
11326
  - Prefer declarations, schedules, premium tables, and endorsement schedules over generic policy wording.
11327
+ - Keep each coverage unit tied to one evidence scope: a declaration/core schedule row, a core policy form section, or one specific endorsement schedule. Do not merge declaration facts and endorsement schedule facts into the same coverage unit, even when they use the same coverage name.
11328
+ - If the declarations schedule and an endorsement schedule both list Network Security, Social Engineering Fraud, Regulatory Proceedings, or another same-named coverage, return separate coverage units for each supported source scope.
11329
+ - Use the declaration coverage name for declaration/core schedule rows. Use the endorsement title or endorsement schedule coverage name for endorsement rows, and include formNumber and endorsementNumber when source-backed.
11252
11330
  - For life, critical illness, disability, and long-term care policies, keep named benefit units and benefit subconditions as operational facts even when they do not have dollar limits. Examples include death benefit, disability benefit, total disability, catastrophic disability, return of premium, waiver, and conversion options. Put subcondition details in coverages[].limits with kind "other" when they belong under a broader benefit.
11253
11331
  - Treat an endorsement as one coverage unit when it contains a schedule. Do not split an endorsement schedule into generic rows like "Aggregate Limit".
11254
11332
  - For coverage schedules, put each claim, aggregate, sublimit, retention, deductible, and retroactive date values in coverages[].limits with labels and source IDs. Keep the legacy coverages[].limit as the primary display value only.
11333
+ - Extract coinsurance, participation percentage, or insurer/named-insured split terms as coverages[].limits entries with kind "other" when they are part of a coverage schedule.
11255
11334
  - Use coverageOrigin: "endorsement" for endorsement units and "core" for declarations/core policy coverage units.
11256
11335
  - Do not copy entire policy wording into fields.
11257
11336
  - Extract facts directly from source nodes. There is no deterministic fact baseline.
@@ -11509,6 +11588,26 @@ function findCellByVisualPosition(sourceCell, targetCells) {
11509
11588
  );
11510
11589
  return positioned[0]?.cell;
11511
11590
  }
11591
+ function isDateLikeColumn(label) {
11592
+ return /\b(?:date|effective|expiration|retroactive)\b/i.test(cleanText(label, ""));
11593
+ }
11594
+ function containsDateValue(text) {
11595
+ return /\b\d{1,2}[/-]\d{1,2}[/-]\d{2,4}\b/.test(text) || /\b(?:jan|feb|mar|apr|may|jun|jul|aug|sep|sept|oct|nov|dec)[a-z]*\.?\s+\d{1,2},?\s+\d{2,4}\b/i.test(text);
11596
+ }
11597
+ function looksLikePolicyProse(text) {
11598
+ const words = text.split(/\s+/).filter(Boolean);
11599
+ if (words.length < 8) return false;
11600
+ return /\b(?:are|is|will|shall|must|may|includes?|included|reduce|subject|payment|terms?|conditions?|provided|pursuant)\b/i.test(text);
11601
+ }
11602
+ function shouldMergeVisualContinuation(params) {
11603
+ if (startsNewVisualTableItem(params.sourceCells)) return false;
11604
+ const targetLabel = params.targetCell?.title;
11605
+ if (isDateLikeColumn(targetLabel) && !containsDateValue(params.sourceText)) return false;
11606
+ if (looksLikePolicyProse(params.sourceText) && !/\b(?:description|coverage|remarks?|notes?)\b/i.test(cleanText(targetLabel, ""))) {
11607
+ return false;
11608
+ }
11609
+ return true;
11610
+ }
11512
11611
  function columnLabelStartIndex(rows) {
11513
11612
  const headerIndex = rows.findIndex(
11514
11613
  ({ row, cells }) => isSourceTreeHeaderRow(row) && cells.length > 1
@@ -11658,6 +11757,7 @@ function applyVisualTableRepair(sourceTree, repair) {
11658
11757
  targetColumnIndex: continuation.targetColumnIndex,
11659
11758
  targetColumnLabel: continuation.targetColumnLabel
11660
11759
  });
11760
+ if (!shouldMergeVisualContinuation({ sourceText, sourceCells, targetCell })) continue;
11661
11761
  const sourceNodes = [sourceRow, ...sourceCells];
11662
11762
  const sourceSpanIds = sourceSpanIdsForNodes(sourceNodes);
11663
11763
  let mergedIntoCells = false;
@@ -11760,7 +11860,7 @@ async function runVisualTableRepair(params) {
11760
11860
  const repairResults = await Promise.all(candidates.map(async (candidate, index) => {
11761
11861
  const label = `source_tree_visual_table_repair_p${candidate.page}`;
11762
11862
  try {
11763
- const budget = params.resolveBudget("extraction_source_tree", 1800);
11863
+ const budget = params.resolveBudget("extraction_visual_table_repair", 1800);
11764
11864
  const maxTokens = Math.min(budget.maxTokens, 2400);
11765
11865
  const startedAt = Date.now();
11766
11866
  const response = await safeGenerateObject(
@@ -11769,7 +11869,7 @@ async function runVisualTableRepair(params) {
11769
11869
  prompt: buildVisualTableRepairPrompt(candidate),
11770
11870
  schema: SourceTreeVisualTableRepairSchema,
11771
11871
  maxTokens,
11772
- taskKind: "extraction_source_tree",
11872
+ taskKind: "extraction_visual_table_repair",
11773
11873
  budgetDiagnostics: { ...budget, maxTokens },
11774
11874
  trace: {
11775
11875
  label,
@@ -11810,7 +11910,7 @@ async function runVisualTableRepair(params) {
11810
11910
  continue;
11811
11911
  }
11812
11912
  params.trackUsage(result.usage, {
11813
- taskKind: "extraction_source_tree",
11913
+ taskKind: "extraction_visual_table_repair",
11814
11914
  label: result.label,
11815
11915
  maxTokens: result.maxTokens,
11816
11916
  durationMs: result.durationMs
@@ -12044,6 +12144,105 @@ function materializeDocument(params) {
12044
12144
  retroactiveDate: valueOf(profile, "retroactiveDate")
12045
12145
  };
12046
12146
  }
12147
+ function coverageCleanupGroups(profile) {
12148
+ const groups = [];
12149
+ const coreIndexes = [];
12150
+ const endorsementIndexes = [];
12151
+ const unclassifiedIndexes = [];
12152
+ profile.coverages.forEach((coverage, coverageIndex) => {
12153
+ if (coverage.coverageOrigin === "core") {
12154
+ coreIndexes.push(coverageIndex);
12155
+ } else if (coverage.coverageOrigin === "endorsement") {
12156
+ endorsementIndexes.push(coverageIndex);
12157
+ } else {
12158
+ unclassifiedIndexes.push(coverageIndex);
12159
+ }
12160
+ });
12161
+ if (coreIndexes.length) {
12162
+ groups.push({
12163
+ id: "policy",
12164
+ label: "Coverage schedule cleanup: policy schedules",
12165
+ coverageIndexes: coreIndexes
12166
+ });
12167
+ }
12168
+ if (endorsementIndexes.length) {
12169
+ groups.push({
12170
+ id: "endorsements",
12171
+ label: "Coverage schedule cleanup: endorsement schedules",
12172
+ coverageIndexes: endorsementIndexes
12173
+ });
12174
+ }
12175
+ if (unclassifiedIndexes.length) {
12176
+ groups.push({
12177
+ id: "source_backed",
12178
+ label: "Coverage schedule cleanup: source-backed schedules",
12179
+ coverageIndexes: unclassifiedIndexes
12180
+ });
12181
+ }
12182
+ return groups.length > 1 ? groups : [{
12183
+ id: "all",
12184
+ label: "Coverage schedule cleanup"
12185
+ }];
12186
+ }
12187
+ async function cleanupOperationalCoverageSchedules(params) {
12188
+ const groups = coverageCleanupGroups(params.operationalProfile);
12189
+ const validNodeIds = new Set(params.sourceTree.map((node) => node.id));
12190
+ const validSpanIds = new Set(params.sourceSpans.map((span) => span.id));
12191
+ const results = await Promise.all(groups.map(async (group, groupIndex) => {
12192
+ const budget = params.resolveBudget("extraction_coverage_cleanup", 4096);
12193
+ const startedAt = Date.now();
12194
+ const response = await safeGenerateObject(
12195
+ params.generateObject,
12196
+ {
12197
+ prompt: buildOperationalProfileCleanupPrompt(
12198
+ params.sourceTree,
12199
+ params.operationalProfile,
12200
+ { coverageIndexes: group.coverageIndexes, label: group.label }
12201
+ ),
12202
+ schema: OperationalProfileCleanupSchema,
12203
+ maxTokens: budget.maxTokens,
12204
+ taskKind: "extraction_coverage_cleanup",
12205
+ budgetDiagnostics: budget,
12206
+ providerOptions: params.providerOptions,
12207
+ trace: {
12208
+ phase: "coverage_cleanup",
12209
+ label: group.label,
12210
+ itemCount: group.coverageIndexes?.length ?? params.operationalProfile.coverages.length,
12211
+ coverageGroup: group.id,
12212
+ batchIndex: groups.length > 1 ? groupIndex + 1 : void 0,
12213
+ batchCount: groups.length > 1 ? groups.length : void 0,
12214
+ sourceBacked: true
12215
+ }
12216
+ },
12217
+ {
12218
+ fallback: { coverageDecisions: [], warnings: [] },
12219
+ maxRetries: 0,
12220
+ log: params.log,
12221
+ retry: false
12222
+ }
12223
+ );
12224
+ params.trackUsage(response.usage, {
12225
+ taskKind: "extraction_coverage_cleanup",
12226
+ label: group.id === "all" ? "coverage_cleanup" : `coverage_cleanup_${group.id}`,
12227
+ maxTokens: budget.maxTokens,
12228
+ durationMs: Date.now() - startedAt
12229
+ });
12230
+ return response.object;
12231
+ }));
12232
+ const cleanup = {
12233
+ coverageDecisions: results.flatMap((result) => result.coverageDecisions ?? []),
12234
+ warnings: results.flatMap((result) => result.warnings ?? [])
12235
+ };
12236
+ return {
12237
+ operationalProfile: applyOperationalProfileCleanup(
12238
+ params.operationalProfile,
12239
+ cleanup,
12240
+ validNodeIds,
12241
+ validSpanIds
12242
+ ),
12243
+ warnings: cleanup.warnings
12244
+ };
12245
+ }
12047
12246
  async function runSourceTreeExtraction(params) {
12048
12247
  const sourceSpans = normalizeSourceSpans(params.sourceSpans);
12049
12248
  const formHints = normalizeFormHints(params.formInventory?.forms, sourceSpans);
@@ -12206,45 +12405,18 @@ async function runSourceTreeExtraction(params) {
12206
12405
  }
12207
12406
  if (operationalProfile.coverages.length > 0) {
12208
12407
  try {
12209
- const validNodeIds = new Set(sourceTree.map((node) => node.id));
12210
- const validSpanIds = new Set(sourceSpans.map((span) => span.id));
12211
- const budget = params.resolveBudget("extraction_coverage_cleanup", 4096);
12212
- const startedAt = Date.now();
12213
- const response = await safeGenerateObject(
12214
- params.generateObject,
12215
- {
12216
- prompt: buildOperationalProfileCleanupPrompt(sourceTree, operationalProfile),
12217
- schema: OperationalProfileCleanupSchema,
12218
- maxTokens: budget.maxTokens,
12219
- taskKind: "extraction_coverage_cleanup",
12220
- budgetDiagnostics: budget,
12221
- providerOptions: params.providerOptions,
12222
- trace: {
12223
- phase: "coverage_cleanup",
12224
- label: "Coverage cleanup",
12225
- itemCount: operationalProfile.coverages.length,
12226
- sourceBacked: true
12227
- }
12228
- },
12229
- {
12230
- fallback: { coverageDecisions: [], warnings: [] },
12231
- maxRetries: 0,
12232
- log: params.log,
12233
- retry: false
12234
- }
12235
- );
12236
- localTrack(response.usage, {
12237
- taskKind: "extraction_coverage_cleanup",
12238
- label: "coverage_cleanup",
12239
- maxTokens: budget.maxTokens,
12240
- durationMs: Date.now() - startedAt
12241
- });
12242
- operationalProfile = applyOperationalProfileCleanup(
12408
+ const cleanup = await cleanupOperationalCoverageSchedules({
12409
+ sourceTree,
12410
+ sourceSpans,
12243
12411
  operationalProfile,
12244
- response.object,
12245
- validNodeIds,
12246
- validSpanIds
12247
- );
12412
+ generateObject: params.generateObject,
12413
+ providerOptions: params.providerOptions,
12414
+ resolveBudget: params.resolveBudget,
12415
+ trackUsage: localTrack,
12416
+ log: params.log
12417
+ });
12418
+ operationalProfile = cleanup.operationalProfile;
12419
+ warnings.push(...cleanup.warnings);
12248
12420
  } catch (error) {
12249
12421
  warnings.push(`Operational profile cleanup pass failed; uncleaned profile used (${error instanceof Error ? error.message : String(error)})`);
12250
12422
  }