@geotechcli/core 0.4.35 → 0.4.36

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 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/report/html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/report/html.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,49 @@ export interface IngestDossierNarrativeSection {
43
43
  title: string;
44
44
  paragraphs: string[];
45
45
  }
46
+ export interface IngestDossierExecutiveItem {
47
+ label: string;
48
+ value: string;
49
+ detail?: string;
50
+ tone?: IngestDossierTone;
51
+ }
52
+ export interface IngestDossierInsightCard {
53
+ title: string;
54
+ body: string;
55
+ tone: IngestDossierTone;
56
+ detail?: string;
57
+ }
58
+ export interface IngestDossierTrustItem {
59
+ item: string;
60
+ value: string;
61
+ sourcePage: string;
62
+ confidence: string;
63
+ review: string;
64
+ evidence: string;
65
+ tone: IngestDossierTone;
66
+ }
67
+ export interface IngestDossierBoreholeProfileLayer {
68
+ depthFrom: number;
69
+ depthTo: number;
70
+ label: string;
71
+ description: string;
72
+ uscsSymbol?: string | null;
73
+ tone: IngestDossierTone;
74
+ uncertain?: boolean;
75
+ }
76
+ export interface IngestDossierBoreholeProfileColumn {
77
+ boreholeId: string;
78
+ totalDepth: number | null;
79
+ waterTableDepth: number | null;
80
+ layers: IngestDossierBoreholeProfileLayer[];
81
+ }
82
+ export interface IngestDossierBoreholeProfile {
83
+ title: string;
84
+ maxDepth: number;
85
+ depthUnit: string;
86
+ columns: IngestDossierBoreholeProfileColumn[];
87
+ notes: string[];
88
+ }
46
89
  export interface IngestDossierStoredReview {
47
90
  projectId: string;
48
91
  datasetName: string;
@@ -68,6 +111,10 @@ export interface IngestDossier {
68
111
  tables: IngestDossierTable[];
69
112
  pageCards: IngestDossierPageCard[];
70
113
  sections: IngestDossierNarrativeSection[];
114
+ executiveItems: IngestDossierExecutiveItem[];
115
+ insightCards: IngestDossierInsightCard[];
116
+ trustItems: IngestDossierTrustItem[];
117
+ boreholeProfile?: IngestDossierBoreholeProfile;
71
118
  storedReview?: IngestDossierStoredReview;
72
119
  approval?: IngestDossierApproval;
73
120
  footerNotes: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"ingest-dossier.d.ts","sourceRoot":"","sources":["../../src/report/ingest-dossier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAG7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAGV,2BAA2B,EAE5B,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IACtC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,QAAQ,EAAE,6BAA6B,EAAE,CAAC;IAC1C,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,MAAM,yBAAyB,GACjC,4BAA4B,GAC5B,2BAA2B,CAAC;AAqiBhC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,yBAAyB,GAClC,aAAa,CAyDf"}
1
+ {"version":3,"file":"ingest-dossier.d.ts","sourceRoot":"","sources":["../../src/report/ingest-dossier.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,100 @@ function sourcePageText(value) {
99
99
  .filter((entry) => Boolean(entry));
100
100
  return matches.length > 0 ? [...new Set(matches)].join(', ') : '-';
101
101
  }
102
+ function normalizeBoreholeId(value) {
103
+ const match = value.match(/\bBH[-\s]?0*(\d+)\b/i);
104
+ return match ? `BH${match[1]}` : value.trim().toUpperCase();
105
+ }
106
+ function inferBoreholeIdsFromText(...values) {
107
+ const text = values.filter(Boolean).join('\n');
108
+ const ids = [...text.matchAll(/\bBH[-\s]?0*(\d+)\b/gi)].map((match) => `BH${match[1]}`);
109
+ return [...new Set(ids)].sort((left, right) => left.localeCompare(right, undefined, { numeric: true }));
110
+ }
111
+ function readDepthMeters(value) {
112
+ if (typeof value === 'number') {
113
+ return Number.isFinite(value) ? value : null;
114
+ }
115
+ if (!value) {
116
+ return null;
117
+ }
118
+ const match = String(value).match(/(-?\d+(?:\.\d+)?)\s*m\b/i);
119
+ const numeric = Number(match?.[1] ?? value);
120
+ return Number.isFinite(numeric) ? numeric : null;
121
+ }
122
+ function formatDepthMeters(value) {
123
+ return value != null && Number.isFinite(value) ? `${value.toFixed(2)} m` : 'Unavailable';
124
+ }
125
+ function materialTone(description, uscsSymbol) {
126
+ const text = `${description ?? ''} ${uscsSymbol ?? ''}`.toLowerCase();
127
+ if (/rock|shale|limestone|sandstone|fractured|weathered/.test(text))
128
+ return 'neutral';
129
+ if (/clay|ci|cl|ch/.test(text))
130
+ return 'warning';
131
+ if (/sand|sm|sp|sw|gravel|gm|gp|gw/.test(text))
132
+ return 'accent';
133
+ return 'good';
134
+ }
135
+ function humanDocumentType(value) {
136
+ if (!value) {
137
+ return 'Geotechnical document';
138
+ }
139
+ return value
140
+ .split(/[-_]+/g)
141
+ .filter(Boolean)
142
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
143
+ .join(' ');
144
+ }
145
+ function includesParameter(result, pattern) {
146
+ return result.parameters.some((parameter) => pattern.test(`${parameter.name} ${parameter.valueText} ${parameter.unit ?? ''} ${parameter.material ?? ''} ${parameter.context ?? ''}`));
147
+ }
148
+ function buildMissingCriticalItems(result) {
149
+ const missing = [];
150
+ if (!includesParameter(result, /ground\s*water|water\s*table/i))
151
+ missing.push('groundwater level');
152
+ if (!includesParameter(result, /\bspt\b|standard\s*penetration/i))
153
+ missing.push('SPT N-values');
154
+ if (!includesParameter(result, /\brqd\b/i))
155
+ missing.push('RQD');
156
+ if (!includesParameter(result, /cohesion|\bc\b/i))
157
+ missing.push('cohesion');
158
+ if (!includesParameter(result, /friction|phi|angle/i))
159
+ missing.push('friction angle');
160
+ return missing;
161
+ }
162
+ function firstMeaningful(values, maxLength) {
163
+ return values
164
+ .map((value) => cleanNarrativeText(value, maxLength))
165
+ .find(Boolean)
166
+ ?? 'No concise evidence item was retained.';
167
+ }
168
+ function inferGeotechMaxDepth(result) {
169
+ const depths = result.parameters
170
+ .filter((parameter) => /depth|elevation|thickness/i.test(parameter.name))
171
+ .map((parameter) => readDepthMeters(parameter.numericValue ?? parameter.valueText))
172
+ .filter((value) => value != null && value >= 0);
173
+ const summaryDepth = readDepthMeters(result.summary);
174
+ if (summaryDepth != null) {
175
+ depths.push(summaryDepth);
176
+ }
177
+ return depths.length > 0 ? Math.max(...depths) : null;
178
+ }
179
+ function inferKeyConcern(result) {
180
+ const weatheredRock = result.materials.find((material) => /weathered|fractured|rock/i.test(material.description));
181
+ return firstMeaningful([
182
+ result.risks[0],
183
+ weatheredRock ? `${weatheredRock.description} may affect bearing capacity, excavation stability, or foundation selection.` : null,
184
+ result.synthesis?.interpretation[0],
185
+ ], 180);
186
+ }
187
+ function inferMainLimitation(result) {
188
+ const missing = buildMissingCriticalItems(result);
189
+ return firstMeaningful([
190
+ result.synthesis?.limitations[0],
191
+ missing.length > 0 ? `Missing or unverified: ${missing.join(', ')}.` : null,
192
+ result.reviewReasons[0],
193
+ result.warnings[0],
194
+ ], 180);
195
+ }
102
196
  function countGeotechPageStatuses(result) {
103
197
  return result.pageAudits.reduce((counts, audit) => {
104
198
  counts[audit.parseStatus] += 1;
@@ -449,6 +543,251 @@ function buildBoreholeBadges(result) {
449
543
  { label: 'Auto proceed', value: result.canAutoProceed ? 'Yes' : 'No', tone: toneFromBoolean(result.canAutoProceed) },
450
544
  ];
451
545
  }
546
+ function buildGeotechExecutiveItems(result, sourceLabel) {
547
+ const boreholeIds = inferBoreholeIdsFromText(result.title, result.summary, ...result.materials.map((material) => material.description), ...result.parameters.flatMap((parameter) => [parameter.material, parameter.context]));
548
+ const maxDepth = inferGeotechMaxDepth(result);
549
+ return [
550
+ { label: 'Project/report', value: result.title ?? sourceLabel, detail: sourceLabel, tone: 'accent' },
551
+ { label: 'Document type', value: humanDocumentType(result.documentClass ?? result.documentType), tone: 'accent' },
552
+ {
553
+ label: 'Processing status',
554
+ value: result.reviewRequired ? 'Parsed, review required' : 'Parsed',
555
+ detail: result.parseStatus,
556
+ tone: result.reviewRequired ? 'warning' : 'good',
557
+ },
558
+ { label: 'Confidence', value: `${result.confidence}%`, tone: toneFromParseStatus(result.parseStatus, result.confidence) },
559
+ { label: 'Boreholes detected', value: boreholeIds.length > 0 ? boreholeIds.join(', ') : 'Not explicitly detected', tone: boreholeIds.length > 0 ? 'good' : 'warning' },
560
+ { label: 'Max depth', value: formatDepthMeters(maxDepth), tone: maxDepth != null ? 'good' : 'warning' },
561
+ { label: 'Key engineering concern', value: inferKeyConcern(result), tone: 'warning' },
562
+ { label: 'Main limitation', value: inferMainLimitation(result), tone: result.reviewRequired ? 'warning' : 'neutral' },
563
+ ];
564
+ }
565
+ function buildBoreholeExecutiveItems(result, sourceLabel) {
566
+ const boreholeIds = result.boreholes.map((borehole) => borehole.boreholeId).filter(Boolean);
567
+ const maxDepth = result.boreholes
568
+ .map((borehole) => borehole.totalDepth)
569
+ .filter((value) => value != null && Number.isFinite(value))
570
+ .reduce((max, value) => max == null ? value : Math.max(max, value), null);
571
+ const firstWarning = result.reviewReasons[0] ?? result.warnings[0] ?? null;
572
+ return [
573
+ { label: 'Project/report', value: result.boreholes[0]?.projectName ?? sourceLabel, detail: sourceLabel, tone: 'accent' },
574
+ { label: 'Document type', value: 'Borehole log', tone: 'accent' },
575
+ {
576
+ label: 'Processing status',
577
+ value: result.reviewRequired ? 'Parsed, review required' : 'Parsed',
578
+ tone: result.reviewRequired ? 'warning' : 'good',
579
+ },
580
+ { label: 'Confidence', value: `${result.confidence}%`, tone: result.confidence >= 70 ? 'good' : 'warning' },
581
+ { label: 'Boreholes detected', value: boreholeIds.length > 0 ? boreholeIds.join(', ') : 'Not explicitly detected', tone: boreholeIds.length > 0 ? 'good' : 'warning' },
582
+ { label: 'Max depth', value: formatDepthMeters(maxDepth), tone: maxDepth != null ? 'good' : 'warning' },
583
+ { label: 'Key engineering concern', value: firstMeaningful([firstWarning, result.boreholes[0]?.summary], 180), tone: firstWarning ? 'warning' : 'neutral' },
584
+ { label: 'Main limitation', value: firstWarning ? cleanNarrativeText(firstWarning, 180) : 'No blocking limitation retained.', tone: firstWarning ? 'warning' : 'good' },
585
+ ];
586
+ }
587
+ function buildGeotechInsightCards(result) {
588
+ const groundConditions = firstMeaningful([
589
+ result.synthesis?.groundModel[0],
590
+ result.synthesis?.takeaways[0],
591
+ result.summary,
592
+ result.materials.length > 0
593
+ ? `${result.materials.map((material) => material.description).slice(0, 4).join(', ')}.`
594
+ : null,
595
+ ], 260);
596
+ const designImplications = firstMeaningful([
597
+ result.synthesis?.interpretation[0],
598
+ result.risks[0],
599
+ result.recommendations[0],
600
+ ], 260);
601
+ const missing = buildMissingCriticalItems(result);
602
+ const verificationFocus = result.reviewRequired
603
+ ? 'Human verification is recommended before this extraction is reused for design, reporting, or approval.'
604
+ : 'No retained review gate blocks downstream use, but source-page verification is still recommended.';
605
+ return [
606
+ { title: 'Ground conditions', body: groundConditions, tone: 'accent' },
607
+ { title: 'Design implications', body: designImplications, tone: 'warning' },
608
+ {
609
+ title: 'Missing critical data',
610
+ body: missing.length > 0 ? `Not extracted or not corroborated: ${missing.join(', ')}.` : 'No common critical parameter gap was detected in the retained extraction.',
611
+ tone: missing.length > 0 ? 'warning' : 'good',
612
+ },
613
+ { title: 'Verification focus', body: verificationFocus, tone: result.reviewRequired ? 'warning' : 'good' },
614
+ ];
615
+ }
616
+ function buildBoreholeInsightCards(result) {
617
+ const summaries = result.boreholes.map((borehole) => borehole.summary).filter(Boolean);
618
+ const missingWater = result.boreholes.filter((borehole) => borehole.waterTableDepth == null).length;
619
+ return [
620
+ { title: 'Ground conditions', body: firstMeaningful(summaries, 260), tone: 'accent' },
621
+ {
622
+ title: 'Design implications',
623
+ body: result.reviewRequired
624
+ ? 'At least one borehole or page needs verification before the extracted profile is used as engineering input.'
625
+ : 'The borehole profile is ready for engineering review against the source log.',
626
+ tone: result.reviewRequired ? 'warning' : 'good',
627
+ },
628
+ {
629
+ title: 'Missing critical data',
630
+ body: missingWater > 0 ? `Groundwater was not extracted for ${missingWater} borehole(s).` : 'Groundwater was retained where available.',
631
+ tone: missingWater > 0 ? 'warning' : 'good',
632
+ },
633
+ { title: 'Verification focus', body: result.reviewReasons[0] ?? 'Check layer boundaries, depth scale, and any low-confidence borehole metadata.', tone: result.reviewRequired ? 'warning' : 'neutral' },
634
+ ];
635
+ }
636
+ function buildGeotechTrustItems(result) {
637
+ const visualExtractionUsed = result.pageAudits.some((audit) => audit.textHintSource === 'vision-visual' || audit.textHintSource === 'vision-ocr');
638
+ const rows = result.parameters.slice(0, 16).map((parameter) => {
639
+ const sourcePage = sourcePageText(parameter.context);
640
+ const reviewNeeded = result.reviewRequired || sourcePage === '-' || visualExtractionUsed;
641
+ const valueText = displayTableText(parameter.valueText, 80);
642
+ const unitText = displayTableText(parameter.unit, 28);
643
+ const valueWithUnit = unitText !== '-' && valueText !== '-' && !valueText.toLowerCase().includes(unitText.toLowerCase())
644
+ ? `${valueText} ${unitText}`
645
+ : valueText;
646
+ return {
647
+ item: displayTableText(parameter.name, 80),
648
+ value: valueWithUnit || '-',
649
+ sourcePage,
650
+ confidence: `${result.confidence}%`,
651
+ review: reviewNeeded ? (visualExtractionUsed ? 'Visual verification recommended' : 'Manual review recommended') : 'Ready for review',
652
+ evidence: displayTableText(parameter.context, 180),
653
+ tone: reviewNeeded ? 'warning' : 'good',
654
+ };
655
+ });
656
+ for (const missing of buildMissingCriticalItems(result).slice(0, 6)) {
657
+ rows.push({
658
+ item: missing,
659
+ value: 'Not extracted',
660
+ sourcePage: '-',
661
+ confidence: 'Low',
662
+ review: 'Required',
663
+ evidence: 'No corroborated value was retained in the extraction.',
664
+ tone: 'warning',
665
+ });
666
+ }
667
+ return rows;
668
+ }
669
+ function buildBoreholeTrustItems(result) {
670
+ const rows = [];
671
+ for (const borehole of result.boreholes.slice(0, 8)) {
672
+ rows.push({
673
+ item: `${borehole.boreholeId} total depth`,
674
+ value: formatDepthMeters(borehole.totalDepth),
675
+ sourcePage: borehole.pageNumber != null ? String(borehole.pageNumber) : '-',
676
+ confidence: `${borehole.confidence}%`,
677
+ review: borehole.parseStatus === 'parsed' && !result.reviewRequired ? 'Ready for review' : 'Manual review recommended',
678
+ evidence: cleanNarrativeText(borehole.summary, 180) || 'Borehole depth retained from structured extraction.',
679
+ tone: borehole.parseStatus === 'parsed' && borehole.confidence >= 70 ? 'good' : 'warning',
680
+ });
681
+ rows.push({
682
+ item: `${borehole.boreholeId} groundwater`,
683
+ value: borehole.waterTableDepth != null ? formatDepthMeters(borehole.waterTableDepth) : 'Not extracted',
684
+ sourcePage: borehole.pageNumber != null ? String(borehole.pageNumber) : '-',
685
+ confidence: borehole.waterTableDepth != null ? `${borehole.confidence}%` : 'Low',
686
+ review: borehole.waterTableDepth != null ? 'Verify against source log' : 'Required',
687
+ evidence: borehole.waterTableDepth != null ? 'Groundwater value retained from structured extraction.' : 'No groundwater value was retained.',
688
+ tone: borehole.waterTableDepth != null ? 'good' : 'warning',
689
+ });
690
+ }
691
+ return rows;
692
+ }
693
+ function stratumIndex(description) {
694
+ const text = description ?? '';
695
+ const roman = text.match(/stratum\s+(iv|iii|ii|i)\b/i)?.[1]?.toUpperCase();
696
+ if (roman === 'I')
697
+ return 1;
698
+ if (roman === 'II')
699
+ return 2;
700
+ if (roman === 'III')
701
+ return 3;
702
+ if (roman === 'IV')
703
+ return 4;
704
+ return Number.MAX_SAFE_INTEGER;
705
+ }
706
+ function buildGeotechBoreholeProfile(result) {
707
+ const boreholeIds = inferBoreholeIdsFromText(result.title, result.summary, ...result.parameters.flatMap((parameter) => [parameter.material, parameter.context]));
708
+ const maxDepth = inferGeotechMaxDepth(result);
709
+ if (boreholeIds.length === 0 || maxDepth == null || maxDepth <= 0 || result.materials.length === 0) {
710
+ return undefined;
711
+ }
712
+ const materials = [...result.materials].sort((left, right) => stratumIndex(left.description) - stratumIndex(right.description)
713
+ || left.description.localeCompare(right.description)).slice(0, 8);
714
+ const layerHeight = maxDepth / Math.max(1, materials.length);
715
+ const depthsByBorehole = new Map();
716
+ for (const parameter of result.parameters) {
717
+ if (!/depth/i.test(parameter.name)) {
718
+ continue;
719
+ }
720
+ const id = inferBoreholeIdsFromText(parameter.material, parameter.context)[0];
721
+ const depth = readDepthMeters(parameter.numericValue ?? parameter.valueText);
722
+ if (id && depth != null) {
723
+ depthsByBorehole.set(id, Math.max(depthsByBorehole.get(id) ?? 0, depth));
724
+ }
725
+ }
726
+ return {
727
+ title: 'Borehole Stratigraphy Visualization',
728
+ maxDepth,
729
+ depthUnit: 'm',
730
+ columns: boreholeIds.map((boreholeId) => ({
731
+ boreholeId,
732
+ totalDepth: depthsByBorehole.get(boreholeId) ?? maxDepth,
733
+ waterTableDepth: null,
734
+ layers: materials.map((material, index) => ({
735
+ depthFrom: Number((index * layerHeight).toFixed(2)),
736
+ depthTo: Number(((index + 1) * layerHeight).toFixed(2)),
737
+ label: material.uscsSymbol ?? material.kind,
738
+ description: displayTableText(material.description, 140),
739
+ uscsSymbol: material.uscsSymbol,
740
+ tone: materialTone(material.description, material.uscsSymbol),
741
+ uncertain: true,
742
+ })),
743
+ })),
744
+ notes: [
745
+ 'Conceptual visualization from retained material observations.',
746
+ 'Dashed layer boundaries indicate missing or unverified stratum intervals.',
747
+ ],
748
+ };
749
+ }
750
+ function buildBoreholeProfile(result) {
751
+ if (result.boreholes.length === 0) {
752
+ return undefined;
753
+ }
754
+ const maxDepth = result.boreholes.reduce((max, borehole) => {
755
+ const layerMax = Math.max(0, ...borehole.layers.map((layer) => layer.depthTo ?? layer.depthFrom ?? 0));
756
+ return Math.max(max, borehole.totalDepth ?? 0, layerMax);
757
+ }, 0);
758
+ if (maxDepth <= 0) {
759
+ return undefined;
760
+ }
761
+ return {
762
+ title: 'Borehole Stratigraphy Visualization',
763
+ maxDepth,
764
+ depthUnit: 'm',
765
+ columns: result.boreholes.map((borehole) => ({
766
+ boreholeId: borehole.boreholeId,
767
+ totalDepth: borehole.totalDepth,
768
+ waterTableDepth: borehole.waterTableDepth,
769
+ layers: borehole.layers
770
+ .map((layer, index) => {
771
+ const depthFrom = layer.depthFrom ?? (index === 0 ? 0 : null);
772
+ const depthTo = layer.depthTo ?? borehole.totalDepth ?? maxDepth;
773
+ if (depthFrom == null || depthTo == null || depthTo <= depthFrom) {
774
+ return null;
775
+ }
776
+ return {
777
+ depthFrom,
778
+ depthTo,
779
+ label: layer.uscsSymbol ?? layer.notes ?? `Layer ${index + 1}`,
780
+ description: displayTableText(layer.description, 140),
781
+ uscsSymbol: layer.uscsSymbol ?? null,
782
+ tone: materialTone(layer.description, layer.uscsSymbol),
783
+ uncertain: layer.depthFrom == null || layer.depthTo == null,
784
+ };
785
+ })
786
+ .filter((layer) => layer != null),
787
+ })),
788
+ notes: ['Layer blocks are scaled to extracted depth intervals. Missing boundaries are shown as uncertain.'],
789
+ };
790
+ }
452
791
  function buildFooterNotes(result) {
453
792
  return uniqueStrings([
454
793
  result.source.fileName ?? result.source.filePath ?? null,
@@ -489,6 +828,10 @@ export function buildIngestDossier(result, options) {
489
828
  tables: buildGeotechTables(geotechResult),
490
829
  pageCards: buildGeotechPageCards(geotechResult),
491
830
  sections: buildGeotechSections(geotechResult),
831
+ executiveItems: buildGeotechExecutiveItems(geotechResult, sourceLabel),
832
+ insightCards: buildGeotechInsightCards(geotechResult),
833
+ trustItems: buildGeotechTrustItems(geotechResult),
834
+ boreholeProfile: buildGeotechBoreholeProfile(geotechResult),
492
835
  storedReview,
493
836
  approval,
494
837
  footerNotes: buildFooterNotes(geotechResult),
@@ -512,6 +855,10 @@ export function buildIngestDossier(result, options) {
512
855
  tables: buildBoreholeTables(boreholeResult),
513
856
  pageCards: buildBoreholePageCards(boreholeResult),
514
857
  sections: buildBoreholeSections(boreholeResult),
858
+ executiveItems: buildBoreholeExecutiveItems(boreholeResult, sourceLabel),
859
+ insightCards: buildBoreholeInsightCards(boreholeResult),
860
+ trustItems: buildBoreholeTrustItems(boreholeResult),
861
+ boreholeProfile: buildBoreholeProfile(boreholeResult),
515
862
  storedReview,
516
863
  approval,
517
864
  footerNotes: buildFooterNotes(boreholeResult),