@claritylabs/cl-sdk 3.1.16 → 3.1.18

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,2 +1,2 @@
1
- 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, ak as BackfillProvider, al as BuildApplicationPacketInput, am as BuildApplicationPacketResult, aq as ContextProposalResult, au as CreateApplicationRunInput, aM as FieldExtractionResult, aN as FieldExtractionResultSchema, aO as FieldType, aP as FieldTypeSchema, aQ as FlatPdfPlacement, aR as FlatPdfPlacementSchema, aT as LookupFill, aU as LookupFillResult, aV as LookupFillResultSchema, aW as LookupFillSchema, aX as LookupRequest, aY as LookupRequestSchema, b7 as ParsedAnswer, b8 as ParsedAnswerSchema, bg as PriorAnswer, bh as ProcessApplicationInput, bi as ProcessApplicationResult, bj as ProcessReplyInput, bk as ProcessReplyResult, bl as QuestionBatchResult, bm as QuestionBatchResultSchema, bp as ReplyIntent, bq as ReplyIntentSchema, 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, b_ as validateApplicationPacket } from './index-CTxWtbqE.mjs';
1
+ 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, ak as BackfillProvider, al as BuildApplicationPacketInput, am as BuildApplicationPacketResult, aq as ContextProposalResult, au as CreateApplicationRunInput, aM as FieldExtractionResult, aN as FieldExtractionResultSchema, aO as FieldType, aP as FieldTypeSchema, aQ as FlatPdfPlacement, aR as FlatPdfPlacementSchema, aT as LookupFill, aU as LookupFillResult, aV as LookupFillResultSchema, aW as LookupFillSchema, aX as LookupRequest, aY as LookupRequestSchema, b7 as ParsedAnswer, b8 as ParsedAnswerSchema, bg as PriorAnswer, bh as ProcessApplicationInput, bi as ProcessApplicationResult, bj as ProcessReplyInput, bk as ProcessReplyResult, bl as QuestionBatchResult, bm as QuestionBatchResultSchema, bp as ReplyIntent, bq as ReplyIntentSchema, 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, b_ as validateApplicationPacket } from './index-q8LQXen9.mjs';
2
2
  import 'zod';
@@ -1,2 +1,2 @@
1
- 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, ak as BackfillProvider, al as BuildApplicationPacketInput, am as BuildApplicationPacketResult, aq as ContextProposalResult, au as CreateApplicationRunInput, aM as FieldExtractionResult, aN as FieldExtractionResultSchema, aO as FieldType, aP as FieldTypeSchema, aQ as FlatPdfPlacement, aR as FlatPdfPlacementSchema, aT as LookupFill, aU as LookupFillResult, aV as LookupFillResultSchema, aW as LookupFillSchema, aX as LookupRequest, aY as LookupRequestSchema, b7 as ParsedAnswer, b8 as ParsedAnswerSchema, bg as PriorAnswer, bh as ProcessApplicationInput, bi as ProcessApplicationResult, bj as ProcessReplyInput, bk as ProcessReplyResult, bl as QuestionBatchResult, bm as QuestionBatchResultSchema, bp as ReplyIntent, bq as ReplyIntentSchema, 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, b_ as validateApplicationPacket } from './index-CTxWtbqE.js';
1
+ 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, ak as BackfillProvider, al as BuildApplicationPacketInput, am as BuildApplicationPacketResult, aq as ContextProposalResult, au as CreateApplicationRunInput, aM as FieldExtractionResult, aN as FieldExtractionResultSchema, aO as FieldType, aP as FieldTypeSchema, aQ as FlatPdfPlacement, aR as FlatPdfPlacementSchema, aT as LookupFill, aU as LookupFillResult, aV as LookupFillResultSchema, aW as LookupFillSchema, aX as LookupRequest, aY as LookupRequestSchema, b7 as ParsedAnswer, b8 as ParsedAnswerSchema, bg as PriorAnswer, bh as ProcessApplicationInput, bi as ProcessApplicationResult, bj as ProcessReplyInput, bk as ProcessReplyResult, bl as QuestionBatchResult, bm as QuestionBatchResultSchema, bp as ReplyIntent, bq as ReplyIntentSchema, 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, b_ as validateApplicationPacket } from './index-q8LQXen9.js';
2
2
  import 'zod';
@@ -71,6 +71,8 @@ interface ModelCallTrace {
71
71
  batchCount?: number;
72
72
  phase?: string;
73
73
  sourceBacked?: boolean;
74
+ coverageGroup?: string;
75
+ itemCount?: number;
74
76
  }
75
77
  /** Callback to generate text from a prompt. Provider-agnostic. */
76
78
  type GenerateText = (params: {
@@ -71,6 +71,8 @@ interface ModelCallTrace {
71
71
  batchCount?: number;
72
72
  phase?: string;
73
73
  sourceBacked?: boolean;
74
+ coverageGroup?: string;
75
+ itemCount?: number;
74
76
  }
75
77
  /** Callback to generate text from a prompt. Provider-agnostic. */
76
78
  type GenerateText = (params: {
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-CTxWtbqE.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-CTxWtbqE.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-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';
3
3
  import * as zod from 'zod';
4
4
  import { ZodTypeAny, z, ZodSchema } from 'zod';
5
5
  import { PDFDocument } from 'pdf-lib';
@@ -8734,6 +8734,7 @@ interface ExtractorConfig {
8734
8734
  sourceStore?: SourceStore;
8735
8735
  qualityGate?: QualityGateMode;
8736
8736
  modelCapabilities?: ModelCapabilities;
8737
+ modelCapabilitiesByTaskKind?: Partial<Record<ModelTaskKind, ModelCapabilities>>;
8737
8738
  modelBudgetConstraints?: Partial<Record<ModelTaskKind, ModelBudgetConstraint>>;
8738
8739
  /** Optional checkpoint persistence callback. */
8739
8740
  onCheckpointSave?: (checkpoint: PipelineCheckpoint<ExtractionState>) => Promise<void>;
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-CTxWtbqE.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-CTxWtbqE.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-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';
3
3
  import * as zod from 'zod';
4
4
  import { ZodTypeAny, z, ZodSchema } from 'zod';
5
5
  import { PDFDocument } from 'pdf-lib';
@@ -8734,6 +8734,7 @@ interface ExtractorConfig {
8734
8734
  sourceStore?: SourceStore;
8735
8735
  qualityGate?: QualityGateMode;
8736
8736
  modelCapabilities?: ModelCapabilities;
8737
+ modelCapabilitiesByTaskKind?: Partial<Record<ModelTaskKind, ModelCapabilities>>;
8737
8738
  modelBudgetConstraints?: Partial<Record<ModelTaskKind, ModelBudgetConstraint>>;
8738
8739
  /** Optional checkpoint persistence callback. */
8739
8740
  onCheckpointSave?: (checkpoint: PipelineCheckpoint<ExtractionState>) => Promise<void>;
package/dist/index.js CHANGED
@@ -9578,11 +9578,20 @@ function coverageTextForSelection(coverage) {
9578
9578
  ])
9579
9579
  ].filter(Boolean).join(" ");
9580
9580
  }
9581
+ function coverageCleanupEntries(profile, coverageIndexes) {
9582
+ if (!coverageIndexes) {
9583
+ return profile.coverages.map((coverage, coverageIndex) => ({ coverage, coverageIndex }));
9584
+ }
9585
+ return [...new Set(coverageIndexes)].sort((left, right) => left - right).map((coverageIndex) => {
9586
+ const coverage = profile.coverages[coverageIndex];
9587
+ return coverage ? { coverage, coverageIndex } : void 0;
9588
+ }).filter((entry) => Boolean(entry));
9589
+ }
9581
9590
  function nodeTextMatchesCoverage(node, coverageTerms) {
9582
9591
  const text = nodeTextForSelection(node).toLowerCase();
9583
9592
  return coverageTerms.some((term) => term.length >= 5 && text.includes(term));
9584
9593
  }
9585
- function selectCoverageCleanupNodes(sourceTree, profile) {
9594
+ function selectCoverageCleanupNodes(sourceTree, coverages) {
9586
9595
  const nodeById = new Map(sourceTree.map((node) => [node.id, node]));
9587
9596
  const childrenByParent = /* @__PURE__ */ new Map();
9588
9597
  for (const node of sourceTree) {
@@ -9600,12 +9609,12 @@ function selectCoverageCleanupNodes(sourceTree, profile) {
9600
9609
  const current = selected.get(node.id);
9601
9610
  if (!current || score > current.score) selected.set(node.id, { node, score });
9602
9611
  };
9603
- const sourceNodeIds = uniqueStrings(profile.coverages.flatMap((coverage) => [
9612
+ const sourceNodeIds = uniqueStrings(coverages.flatMap((coverage) => [
9604
9613
  ...coverage.sourceNodeIds,
9605
9614
  ...coverage.limits.flatMap((term) => term.sourceNodeIds)
9606
9615
  ]));
9607
9616
  const coveragePages2 = /* @__PURE__ */ new Set();
9608
- const coverageTerms = uniqueStrings(profile.coverages.flatMap(
9617
+ const coverageTerms = uniqueStrings(coverages.flatMap(
9609
9618
  (coverage) => coverageTextForSelection(coverage).toLowerCase().split(/[^a-z0-9$,.]+/i).filter((part) => part.length >= 5)
9610
9619
  ));
9611
9620
  for (const id of sourceNodeIds) {
@@ -9648,8 +9657,9 @@ function selectCoverageCleanupNodes(sourceTree, profile) {
9648
9657
  (left, right) => (left.node.pageStart ?? Number.MAX_SAFE_INTEGER) - (right.node.pageStart ?? Number.MAX_SAFE_INTEGER) || left.node.order - right.node.order
9649
9658
  ).map((entry) => entry.node);
9650
9659
  }
9651
- function buildOperationalProfileCleanupPrompt(sourceTree, profile) {
9652
- const nodes = selectCoverageCleanupNodes(sourceTree, profile).map((node) => compactNode(
9660
+ function buildOperationalProfileCleanupPrompt(sourceTree, profile, options = {}) {
9661
+ const coverageEntries = coverageCleanupEntries(profile, options.coverageIndexes);
9662
+ const nodes = selectCoverageCleanupNodes(sourceTree, coverageEntries.map((entry) => entry.coverage)).map((node) => compactNode(
9653
9663
  node,
9654
9664
  node.kind === "page" || node.kind === "page_group" ? 260 : node.kind === "table_row" || node.kind === "table_cell" ? 520 : 360
9655
9665
  ));
@@ -9657,9 +9667,12 @@ function buildOperationalProfileCleanupPrompt(sourceTree, profile) {
9657
9667
  documentType: profile.documentType,
9658
9668
  policyTypes: profile.policyTypes,
9659
9669
  coverageTypes: profile.coverageTypes,
9660
- coverages: profile.coverages.map(compactCoverageForCleanup)
9670
+ coverages: coverageEntries.map(({ coverage, coverageIndex }) => compactCoverageForCleanup(coverage, coverageIndex))
9661
9671
  };
9662
9672
  return `Review and clean a source-backed operational profile projection for an insurance policy.
9673
+ ${options.label ? `
9674
+ Coverage group: ${options.label}
9675
+ ` : ""}
9663
9676
 
9664
9677
  Task:
9665
9678
  - Inspect the candidate coverage projection against the source nodes.
@@ -9723,6 +9736,9 @@ function normalizedTermText(term) {
9723
9736
  function isLimitTerm(term) {
9724
9737
  return ["each_claim_limit", "each_occurrence_limit", "each_loss_limit", "aggregate_limit", "sublimit"].includes(term.kind) || term.kind === "other" && /\b(limit|aggregate|claim|occurrence|loss|proceeding)\b/i.test(normalizedTermText(term));
9725
9738
  }
9739
+ function isPrimaryLimitTerm(term) {
9740
+ return ["each_claim_limit", "each_occurrence_limit", "each_loss_limit", "aggregate_limit"].includes(term.kind);
9741
+ }
9726
9742
  function isDeductibleTerm(term) {
9727
9743
  return term.kind === "deductible" || term.kind === "retention" || /\b(deductible|retention|sir)\b/i.test(normalizedTermText(term));
9728
9744
  }
@@ -9732,8 +9748,41 @@ function isPremiumTerm(term) {
9732
9748
  function isRetroactiveDateTerm(term) {
9733
9749
  return term.kind === "retroactive_date" || /\bretroactive\b/i.test(normalizedTermText(term));
9734
9750
  }
9751
+ function fallbackLimitScope(kind) {
9752
+ switch (kind) {
9753
+ case "each_claim_limit":
9754
+ return "Each Claim";
9755
+ case "each_occurrence_limit":
9756
+ return "Each Occurrence";
9757
+ case "each_loss_limit":
9758
+ return "Each Loss";
9759
+ case "aggregate_limit":
9760
+ return "Aggregate";
9761
+ case "sublimit":
9762
+ return "Sub-Limit";
9763
+ default:
9764
+ return void 0;
9765
+ }
9766
+ }
9767
+ function displayLabelForLimitTerm(term) {
9768
+ const label = cleanProfileValue(term.label)?.replace(/\s+Limit$/i, "");
9769
+ if (label && !/^(?:limit|amount|value)$/i.test(label)) return label;
9770
+ return fallbackLimitScope(term.kind);
9771
+ }
9772
+ function displayValueForLimitTerm(term) {
9773
+ const value = cleanProfileValue(term.value);
9774
+ if (!value) return void 0;
9775
+ if (/\b(each|aggregate|occurrence|claim|loss|proceeding|policy|sublimit|sub-limit)\b/i.test(value)) {
9776
+ return value;
9777
+ }
9778
+ const label = displayLabelForLimitTerm(term);
9779
+ return label ? `${value} ${label}` : value;
9780
+ }
9735
9781
  function primaryLimitFromTerms(terms) {
9736
- return terms.find(isLimitTerm)?.value;
9782
+ const primaryTerms = terms.filter(isPrimaryLimitTerm);
9783
+ const candidateTerms = primaryTerms.length > 0 ? primaryTerms : terms.filter(isLimitTerm);
9784
+ const values = uniqueStrings(candidateTerms.map((term) => displayValueForLimitTerm(term)).filter((value) => Boolean(value)));
9785
+ return values.length > 0 ? values.join(" / ") : void 0;
9737
9786
  }
9738
9787
  function deductibleFromTerms(terms) {
9739
9788
  return terms.find(isDeductibleTerm)?.value;
@@ -9744,6 +9793,13 @@ function premiumFromTerms(terms) {
9744
9793
  function retroactiveDateFromTerms(terms) {
9745
9794
  return terms.find(isRetroactiveDateTerm)?.value;
9746
9795
  }
9796
+ function shouldUseTermLimitDisplay(currentLimit, termLimit) {
9797
+ const current = cleanProfileValue(currentLimit);
9798
+ if (!current) return true;
9799
+ if (/\s+\/\s*$/.test(current)) return true;
9800
+ if (!/\b(each|aggregate|occurrence|claim|loss|proceeding|policy|sublimit|sub-limit)\b/i.test(current)) return true;
9801
+ return !current.includes("/") && termLimit.includes("/");
9802
+ }
9747
9803
  function termDecisionTouches(coverage, decision, predicate) {
9748
9804
  const existing = coverage.limits[decision.termIndex];
9749
9805
  if (existing && predicate(existing)) return true;
@@ -9838,6 +9894,10 @@ function applyCoverageCleanupDecision(coverage, decision, validNodeIds, validSpa
9838
9894
  else delete next.retroactiveDate;
9839
9895
  }
9840
9896
  }
9897
+ const termLimit = primaryLimitFromTerms(next.limits);
9898
+ if (termLimit && shouldUseTermLimitDisplay(next.limit, termLimit)) {
9899
+ next.limit = termLimit;
9900
+ }
9841
9901
  next.sourceNodeIds = uniqueStrings([
9842
9902
  ...next.sourceNodeIds,
9843
9903
  ...next.limits.flatMap((term) => term.sourceNodeIds)
@@ -11697,7 +11757,8 @@ async function runVisualTableRepair(params) {
11697
11757
  if (candidates.length === 0) return { sourceTree: params.sourceTree, warnings: [] };
11698
11758
  let sourceTree = params.sourceTree;
11699
11759
  const warnings = [];
11700
- for (const [index, candidate] of candidates.entries()) {
11760
+ const repairResults = await Promise.all(candidates.map(async (candidate, index) => {
11761
+ const label = `source_tree_visual_table_repair_p${candidate.page}`;
11701
11762
  try {
11702
11763
  const budget = params.resolveBudget("extraction_source_tree", 1800);
11703
11764
  const maxTokens = Math.min(budget.maxTokens, 2400);
@@ -11711,7 +11772,7 @@ async function runVisualTableRepair(params) {
11711
11772
  taskKind: "extraction_source_tree",
11712
11773
  budgetDiagnostics: { ...budget, maxTokens },
11713
11774
  trace: {
11714
- label: `source_tree_visual_table_repair_p${candidate.page}`,
11775
+ label,
11715
11776
  startPage: candidate.page,
11716
11777
  endPage: candidate.page,
11717
11778
  batchIndex: index + 1,
@@ -11724,20 +11785,38 @@ async function runVisualTableRepair(params) {
11724
11785
  log: params.log
11725
11786
  }
11726
11787
  );
11727
- params.trackUsage(response.usage, {
11728
- taskKind: "extraction_source_tree",
11729
- label: `source_tree_visual_table_repair_p${candidate.page}`,
11788
+ return {
11789
+ index,
11790
+ candidate,
11791
+ label,
11730
11792
  maxTokens,
11731
- durationMs: Date.now() - startedAt
11732
- });
11733
- const repair = response.object;
11734
- sourceTree = applyVisualTableRepair(sourceTree, repair);
11735
- warnings.push(...repair.warnings.map(
11736
- (warning) => `Visual table repair warning on page ${candidate.page}: ${warning}`
11737
- ));
11793
+ durationMs: Date.now() - startedAt,
11794
+ usage: response.usage,
11795
+ repair: response.object
11796
+ };
11738
11797
  } catch (error) {
11739
- warnings.push(`Visual table repair skipped on page ${candidate.page}; parsed table kept (${error instanceof Error ? error.message : String(error)})`);
11798
+ return {
11799
+ index,
11800
+ candidate,
11801
+ error: error instanceof Error ? error.message : String(error)
11802
+ };
11803
+ }
11804
+ }));
11805
+ for (const result of repairResults.sort((left, right) => left.index - right.index)) {
11806
+ if ("error" in result) {
11807
+ warnings.push(`Visual table repair skipped on page ${result.candidate.page}; parsed table kept (${result.error})`);
11808
+ continue;
11740
11809
  }
11810
+ params.trackUsage(result.usage, {
11811
+ taskKind: "extraction_source_tree",
11812
+ label: result.label,
11813
+ maxTokens: result.maxTokens,
11814
+ durationMs: result.durationMs
11815
+ });
11816
+ sourceTree = applyVisualTableRepair(sourceTree, result.repair);
11817
+ warnings.push(...result.repair.warnings.map(
11818
+ (warning) => `Visual table repair warning on page ${result.candidate.page}: ${warning}`
11819
+ ));
11741
11820
  }
11742
11821
  return { sourceTree, warnings };
11743
11822
  }
@@ -11834,6 +11913,32 @@ var NORMALIZED_COMPATIBILITY_FIELDS = /* @__PURE__ */ new Set([
11834
11913
  "insurer",
11835
11914
  "broker"
11836
11915
  ]);
11916
+ function coverageBelongsToEndorsementCleanupChunk(coverage) {
11917
+ return coverage.coverageOrigin === "endorsement" || Boolean(coverage.endorsementNumber);
11918
+ }
11919
+ function coverageCleanupChunks(profile) {
11920
+ const basePolicy = [];
11921
+ const endorsements = [];
11922
+ profile.coverages.forEach((coverage, coverageIndex) => {
11923
+ if (coverageBelongsToEndorsementCleanupChunk(coverage)) {
11924
+ endorsements.push(coverageIndex);
11925
+ } else {
11926
+ basePolicy.push(coverageIndex);
11927
+ }
11928
+ });
11929
+ return [
11930
+ basePolicy.length ? {
11931
+ group: "base_policy",
11932
+ label: "Coverage cleanup: base policy",
11933
+ coverageIndexes: basePolicy
11934
+ } : void 0,
11935
+ endorsements.length ? {
11936
+ group: "endorsements",
11937
+ label: "Coverage cleanup: endorsements",
11938
+ coverageIndexes: endorsements
11939
+ } : void 0
11940
+ ].filter((chunk) => Boolean(chunk));
11941
+ }
11837
11942
  function valueOf(profile, key) {
11838
11943
  const value = profile[key];
11839
11944
  if (!value || typeof value !== "object" || Array.isArray(value) || !("value" in value)) return void 0;
@@ -11990,9 +12095,9 @@ async function runSourceTreeExtraction(params) {
11990
12095
  };
11991
12096
  if (shouldRunSourceTreeOrganizer(sourceTree, sourceSpans)) {
11992
12097
  try {
11993
- const organizations = [];
11994
12098
  const batches = organizationBatches(sourceTree);
11995
- for (const [batchIndex, batch] of batches.entries()) {
12099
+ const organizationResults = await Promise.all(batches.map(async (batch, batchIndex) => {
12100
+ const label = batches.length > 1 ? `source_tree_organizer_${batchIndex + 1}` : "source_tree_organizer";
11996
12101
  const budget = params.resolveBudget("extraction_source_tree", 4096);
11997
12102
  const startedAt = Date.now();
11998
12103
  const response = await safeGenerateObject(
@@ -12002,20 +12107,37 @@ async function runSourceTreeExtraction(params) {
12002
12107
  schema: SourceTreeOrganizationSchema,
12003
12108
  maxTokens: budget.maxTokens,
12004
12109
  taskKind: "extraction_source_tree",
12005
- budgetDiagnostics: budget
12110
+ budgetDiagnostics: budget,
12111
+ trace: {
12112
+ label,
12113
+ batchIndex: batchIndex + 1,
12114
+ batchCount: batches.length,
12115
+ sourceBacked: true
12116
+ }
12006
12117
  },
12007
12118
  {
12008
12119
  fallback: { labels: [], groups: [] },
12009
12120
  log: params.log
12010
12121
  }
12011
12122
  );
12012
- localTrack(response.usage, {
12123
+ return {
12124
+ batchIndex,
12125
+ label,
12126
+ budget,
12127
+ durationMs: Date.now() - startedAt,
12128
+ usage: response.usage,
12129
+ organization: response.object
12130
+ };
12131
+ }));
12132
+ const organizations = [];
12133
+ for (const result of organizationResults.sort((left, right) => left.batchIndex - right.batchIndex)) {
12134
+ localTrack(result.usage, {
12013
12135
  taskKind: "extraction_source_tree",
12014
- label: batches.length > 1 ? `source_tree_organizer_${batchIndex + 1}` : "source_tree_organizer",
12015
- maxTokens: budget.maxTokens,
12016
- durationMs: Date.now() - startedAt
12136
+ label: result.label,
12137
+ maxTokens: result.budget.maxTokens,
12138
+ durationMs: result.durationMs
12017
12139
  });
12018
- organizations.push(response.object);
12140
+ organizations.push(result.organization);
12019
12141
  }
12020
12142
  sourceTree = applyOrganization(sourceTree, mergeOrganizationResults(organizations));
12021
12143
  } catch (error) {
@@ -12104,33 +12226,64 @@ async function runSourceTreeExtraction(params) {
12104
12226
  try {
12105
12227
  const validNodeIds = new Set(sourceTree.map((node) => node.id));
12106
12228
  const validSpanIds = new Set(sourceSpans.map((span) => span.id));
12107
- const budget = params.resolveBudget("extraction_coverage_cleanup", 4096);
12108
- const startedAt = Date.now();
12109
- const response = await safeGenerateObject(
12110
- params.generateObject,
12111
- {
12112
- prompt: buildOperationalProfileCleanupPrompt(sourceTree, operationalProfile),
12113
- schema: OperationalProfileCleanupSchema,
12114
- maxTokens: budget.maxTokens,
12229
+ const chunks = coverageCleanupChunks(operationalProfile);
12230
+ if (chunks.length > 1) {
12231
+ await params.log?.(`Operational profile coverage cleanup reviewing ${chunks.length} coverage groups in parallel`);
12232
+ }
12233
+ const cleanupResults = await Promise.all(chunks.map(async (chunk, batchIndex) => {
12234
+ const budget = params.resolveBudget("extraction_coverage_cleanup", 4096);
12235
+ const startedAt = Date.now();
12236
+ const response = await safeGenerateObject(
12237
+ params.generateObject,
12238
+ {
12239
+ prompt: buildOperationalProfileCleanupPrompt(sourceTree, operationalProfile, {
12240
+ coverageIndexes: chunk.coverageIndexes,
12241
+ label: chunk.label
12242
+ }),
12243
+ schema: OperationalProfileCleanupSchema,
12244
+ maxTokens: budget.maxTokens,
12245
+ taskKind: "extraction_coverage_cleanup",
12246
+ budgetDiagnostics: budget,
12247
+ providerOptions: params.providerOptions,
12248
+ trace: {
12249
+ phase: "coverage_cleanup",
12250
+ label: chunk.label,
12251
+ batchIndex: batchIndex + 1,
12252
+ batchCount: chunks.length,
12253
+ coverageGroup: chunk.group,
12254
+ itemCount: chunk.coverageIndexes.length,
12255
+ sourceBacked: true
12256
+ }
12257
+ },
12258
+ {
12259
+ fallback: { coverageDecisions: [], warnings: [] },
12260
+ maxRetries: 0,
12261
+ log: params.log
12262
+ }
12263
+ );
12264
+ return {
12265
+ batchIndex,
12266
+ chunk,
12267
+ budget,
12268
+ durationMs: Date.now() - startedAt,
12269
+ usage: response.usage,
12270
+ cleanup: response.object
12271
+ };
12272
+ }));
12273
+ const cleanup = { coverageDecisions: [], warnings: [] };
12274
+ for (const result of cleanupResults.sort((left, right) => left.batchIndex - right.batchIndex)) {
12275
+ localTrack(result.usage, {
12115
12276
  taskKind: "extraction_coverage_cleanup",
12116
- budgetDiagnostics: budget,
12117
- providerOptions: params.providerOptions,
12118
- trace: { phase: "coverage_cleanup", sourceBacked: true }
12119
- },
12120
- {
12121
- fallback: { coverageDecisions: [], warnings: [] },
12122
- log: params.log
12123
- }
12124
- );
12125
- localTrack(response.usage, {
12126
- taskKind: "extraction_coverage_cleanup",
12127
- label: "operational_profile_cleanup",
12128
- maxTokens: budget.maxTokens,
12129
- durationMs: Date.now() - startedAt
12130
- });
12277
+ label: result.chunk.label,
12278
+ maxTokens: result.budget.maxTokens,
12279
+ durationMs: result.durationMs
12280
+ });
12281
+ cleanup.coverageDecisions.push(...result.cleanup.coverageDecisions);
12282
+ cleanup.warnings.push(...result.cleanup.warnings);
12283
+ }
12131
12284
  operationalProfile = applyOperationalProfileCleanup(
12132
12285
  operationalProfile,
12133
- response.object,
12286
+ cleanup,
12134
12287
  validNodeIds,
12135
12288
  validSpanIds
12136
12289
  );
@@ -12184,6 +12337,7 @@ function createExtractor(config) {
12184
12337
  sourceStore,
12185
12338
  qualityGate = "warn",
12186
12339
  modelCapabilities,
12340
+ modelCapabilitiesByTaskKind,
12187
12341
  modelBudgetConstraints,
12188
12342
  onCheckpointSave
12189
12343
  } = config;
@@ -12200,10 +12354,11 @@ function createExtractor(config) {
12200
12354
  };
12201
12355
  let activeProviderOptions = providerOptions;
12202
12356
  function resolveBudget(taskKind, hintTokens) {
12357
+ const taskModelCapabilities = modelCapabilitiesByTaskKind?.[taskKind] ?? modelCapabilities;
12203
12358
  return resolveModelBudget({
12204
12359
  taskKind,
12205
12360
  hintTokens,
12206
- modelCapabilities,
12361
+ modelCapabilities: taskModelCapabilities,
12207
12362
  constraint: modelBudgetConstraints?.[taskKind]
12208
12363
  });
12209
12364
  }