@geotechcli/core 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/brain.d.ts +1 -0
- package/dist/agents/brain.d.ts.map +1 -1
- package/dist/agents/brain.js +45 -41
- package/dist/agents/brain.js.map +1 -1
- package/dist/agents/bridge-tools.js +15 -3
- package/dist/agents/bridge-tools.js.map +1 -1
- package/dist/agents/case-file.d.ts +52 -0
- package/dist/agents/case-file.d.ts.map +1 -0
- package/dist/agents/case-file.js +657 -0
- package/dist/agents/case-file.js.map +1 -0
- package/dist/agents/contracts.d.ts +232 -0
- package/dist/agents/contracts.d.ts.map +1 -0
- package/dist/agents/contracts.js +14 -0
- package/dist/agents/contracts.js.map +1 -0
- package/dist/agents/data-tools.js +11 -3
- package/dist/agents/data-tools.js.map +1 -1
- package/dist/agents/deliverable-tools.d.ts +2 -0
- package/dist/agents/deliverable-tools.d.ts.map +1 -0
- package/dist/agents/deliverable-tools.js +497 -0
- package/dist/agents/deliverable-tools.js.map +1 -0
- package/dist/agents/evidence.d.ts +21 -0
- package/dist/agents/evidence.d.ts.map +1 -0
- package/dist/agents/evidence.js +302 -0
- package/dist/agents/evidence.js.map +1 -0
- package/dist/agents/orchestrator.js +13 -13
- package/dist/agents/sandbox.d.ts.map +1 -1
- package/dist/agents/sandbox.js +84 -31
- package/dist/agents/sandbox.js.map +1 -1
- package/dist/agents/swarm.d.ts +2 -0
- package/dist/agents/swarm.d.ts.map +1 -1
- package/dist/agents/swarm.js +177 -152
- package/dist/agents/swarm.js.map +1 -1
- package/dist/agents/tool-normalization.d.ts +4 -0
- package/dist/agents/tool-normalization.d.ts.map +1 -0
- package/dist/agents/tool-normalization.js +92 -0
- package/dist/agents/tool-normalization.js.map +1 -0
- package/dist/bridge/index.js +87 -87
- package/dist/geo/pile-capacity.d.ts.map +1 -1
- package/dist/geo/pile-capacity.js +47 -8
- package/dist/geo/pile-capacity.js.map +1 -1
- package/dist/geo/slope-stability.d.ts.map +1 -1
- package/dist/geo/slope-stability.js +9 -6
- package/dist/geo/slope-stability.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/middleware/metering.js +14 -14
- package/dist/meta/metadata.json +4 -4
- package/dist/report/casefile.d.ts +207 -0
- package/dist/report/casefile.d.ts.map +1 -0
- package/dist/report/casefile.js +438 -0
- package/dist/report/casefile.js.map +1 -0
- package/dist/report/docx.d.ts +0 -4
- package/dist/report/docx.d.ts.map +1 -1
- package/dist/report/docx.js +6 -1
- package/dist/report/docx.js.map +1 -1
- package/dist/report/index.d.ts +1 -0
- package/dist/report/index.d.ts.map +1 -1
- package/dist/report/index.js +21 -20
- package/dist/report/index.js.map +1 -1
- package/dist/report/pdf.d.ts +0 -4
- package/dist/report/pdf.d.ts.map +1 -1
- package/dist/report/pdf.js +6 -1
- package/dist/report/pdf.js.map +1 -1
- package/dist/vision/index.d.ts.map +1 -1
- package/dist/vision/index.js +270 -117
- package/dist/vision/index.js.map +1 -1
- package/dist/vision/parse.d.ts.map +1 -1
- package/dist/vision/parse.js +18 -0
- package/dist/vision/parse.js.map +1 -1
- package/package.json +58 -58
package/dist/vision/index.js
CHANGED
|
@@ -4,11 +4,18 @@ import { clampConfidence, createParseSafety, deriveParseStatus, normalizeWarning
|
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
// Vision retry helper — handles upstream empty-content failures
|
|
6
6
|
// ---------------------------------------------------------------------------
|
|
7
|
+
function isRecoverableVisionEmptyResponse(error) {
|
|
8
|
+
const message = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
|
|
9
|
+
return (message.includes('returned no content') ||
|
|
10
|
+
message.includes('did not contain assistant text') ||
|
|
11
|
+
message.includes('no completion choices') ||
|
|
12
|
+
message.includes('empty completion'));
|
|
13
|
+
}
|
|
7
14
|
/**
|
|
8
15
|
* Execute a vision call with automatic retry on empty/null response.
|
|
9
16
|
* First attempt: strict JSON-only prompt at low temperature.
|
|
10
17
|
* Second attempt: softer plain-text prompt at higher temperature, same image.
|
|
11
|
-
* This handles
|
|
18
|
+
* This handles hosted-beta vision models returning empty content on the first call.
|
|
12
19
|
*/
|
|
13
20
|
async function visionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, systemPrompt, maxTokens) {
|
|
14
21
|
const start = Date.now();
|
|
@@ -23,17 +30,33 @@ async function visionWithRetry(imageBase64, mimeType, config, strictPrompt, soft
|
|
|
23
30
|
return { text: r1.text, latencyMs: r1.latencyMs, usedFallback: false };
|
|
24
31
|
}
|
|
25
32
|
}
|
|
26
|
-
catch {
|
|
27
|
-
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (!isRecoverableVisionEmptyResponse(error)) {
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
28
37
|
}
|
|
29
38
|
// Attempt 2: softer plain text prompt
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
try {
|
|
40
|
+
const r2 = await generateVision(softPrompt, imageBase64, mimeType, config, {
|
|
41
|
+
systemPrompt: systemPrompt + ' Be concise but thorough. You must provide values even if approximate.',
|
|
42
|
+
temperature: 0.3,
|
|
43
|
+
maxTokens: maxTokens + 200,
|
|
44
|
+
});
|
|
45
|
+
if (r2.text && r2.text.trim().length > 0) {
|
|
46
|
+
return {
|
|
47
|
+
text: r2.text,
|
|
48
|
+
latencyMs: Date.now() - start,
|
|
49
|
+
usedFallback: true,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (!isRecoverableVisionEmptyResponse(error)) {
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
35
58
|
return {
|
|
36
|
-
text:
|
|
59
|
+
text: '',
|
|
37
60
|
latencyMs: Date.now() - start,
|
|
38
61
|
usedFallback: true,
|
|
39
62
|
};
|
|
@@ -62,25 +85,137 @@ function asEnumValue(value, allowed, warnings, key) {
|
|
|
62
85
|
function combineWarnings(base, extra) {
|
|
63
86
|
return [...new Set([...base, ...extra])];
|
|
64
87
|
}
|
|
88
|
+
function splitSentences(rawText) {
|
|
89
|
+
return rawText
|
|
90
|
+
.replace(/\s+/g, ' ')
|
|
91
|
+
.split(/(?<=[.!?])\s+/)
|
|
92
|
+
.map((sentence) => sentence.trim())
|
|
93
|
+
.filter(Boolean);
|
|
94
|
+
}
|
|
95
|
+
function firstMatchingSentence(rawText, predicate) {
|
|
96
|
+
return splitSentences(rawText).find(predicate) ?? null;
|
|
97
|
+
}
|
|
98
|
+
function inferSensorType(rawText) {
|
|
99
|
+
const normalized = rawText.toLowerCase();
|
|
100
|
+
if (normalized.includes('piezometer'))
|
|
101
|
+
return 'piezometer';
|
|
102
|
+
if (normalized.includes('inclinometer'))
|
|
103
|
+
return 'inclinometer';
|
|
104
|
+
if (normalized.includes('extensometer'))
|
|
105
|
+
return 'extensometer';
|
|
106
|
+
if (normalized.includes('load cell'))
|
|
107
|
+
return 'load_cell';
|
|
108
|
+
if (normalized.includes('settlement plate'))
|
|
109
|
+
return 'settlement_plate';
|
|
110
|
+
if (normalized.includes('tiltmeter'))
|
|
111
|
+
return 'tiltmeter';
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
function inferSensorEvaluation(rawText) {
|
|
115
|
+
const normalized = rawText.toLowerCase();
|
|
116
|
+
if (/(critical|alarm|urgent|failure|unsafe|exceed)/.test(normalized))
|
|
117
|
+
return 'critical';
|
|
118
|
+
if (/(warning|alert|watch|caution|elevated)/.test(normalized))
|
|
119
|
+
return 'warning';
|
|
120
|
+
if (/(normal|stable|within limit|acceptable|no significant movement)/.test(normalized))
|
|
121
|
+
return 'normal';
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
function extractSensorFallback(rawText) {
|
|
125
|
+
if (!rawText.trim()) {
|
|
126
|
+
return { value: null, baseStatus: 'failed', warnings: [] };
|
|
127
|
+
}
|
|
128
|
+
const sensorType = inferSensorType(rawText);
|
|
129
|
+
const measurements = firstMatchingSentence(rawText, (sentence) => /\d/.test(sentence) || /(reading|pressure|head|displacement|settlement|movement|trend)/i.test(sentence));
|
|
130
|
+
const interpretation = firstMatchingSentence(rawText, (sentence) => /(indicat|show|suggest|trend|behavio|movement|response)/i.test(sentence)) ?? splitSentences(rawText)[0] ?? null;
|
|
131
|
+
const evaluation = inferSensorEvaluation(rawText);
|
|
132
|
+
const recommendations = firstMatchingSentence(rawText, (sentence) => /(recommend|should|monitor|inspect|review|action|recheck)/i.test(sentence));
|
|
133
|
+
const presentCount = [sensorType, measurements, interpretation, evaluation, recommendations]
|
|
134
|
+
.filter((value) => value != null && value !== '')
|
|
135
|
+
.length;
|
|
136
|
+
if (presentCount === 0) {
|
|
137
|
+
return { value: null, baseStatus: 'failed', warnings: [] };
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
value: {
|
|
141
|
+
sensorType,
|
|
142
|
+
measurements,
|
|
143
|
+
interpretation,
|
|
144
|
+
evaluation,
|
|
145
|
+
recommendations,
|
|
146
|
+
},
|
|
147
|
+
baseStatus: 'partial',
|
|
148
|
+
warnings: ['Vision model returned narrative text; extracted partial structured sensor fields.'],
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function inferUscsFromText(rawText) {
|
|
152
|
+
const match = rawText.match(/\b(GW|GP|GM|GC|SW|SP|SM|SC|ML|CL|OL|MH|CH|OH|PT)\b/i);
|
|
153
|
+
return match ? match[1].toUpperCase() : null;
|
|
154
|
+
}
|
|
155
|
+
function extractBoreholeFallback(rawText, boreholeId) {
|
|
156
|
+
if (!rawText.trim()) {
|
|
157
|
+
return { value: null, baseStatus: 'failed', warnings: [] };
|
|
158
|
+
}
|
|
159
|
+
const layers = [];
|
|
160
|
+
const layerRegex = /(\d+(?:\.\d+)?)\s*(?:-|to)\s*(\d+(?:\.\d+)?)\s*m[:\s-]*([^\n.;]+)/gi;
|
|
161
|
+
for (const match of rawText.matchAll(layerRegex)) {
|
|
162
|
+
const description = match[3]?.trim() ?? '';
|
|
163
|
+
const sptMatch = description.match(/(?:spt|n)[-=\s:]*?(\d+(?:\.\d+)?)/i);
|
|
164
|
+
layers.push({
|
|
165
|
+
depthFrom: Number(match[1]),
|
|
166
|
+
depthTo: Number(match[2]),
|
|
167
|
+
description,
|
|
168
|
+
uscsSymbol: inferUscsFromText(description),
|
|
169
|
+
sptN: sptMatch ? Number(sptMatch[1]) : null,
|
|
170
|
+
waterContent: null,
|
|
171
|
+
notes: null,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
const totalDepthMatch = rawText.match(/total depth[^0-9]*(\d+(?:\.\d+)?)\s*m/i)
|
|
175
|
+
?? rawText.match(/depth[^0-9]*(\d+(?:\.\d+)?)\s*m/i);
|
|
176
|
+
const waterTableMatch = rawText.match(/water table[^0-9]*(\d+(?:\.\d+)?)\s*m/i)
|
|
177
|
+
?? rawText.match(/gwl[^0-9]*(\d+(?:\.\d+)?)\s*m/i);
|
|
178
|
+
const boreholeMatch = rawText.match(/\bBH[-_\s]?[A-Z0-9]+\b/i);
|
|
179
|
+
const summary = firstMatchingSentence(rawText, (sentence) => /(summary|consist|encountered|profile|strata|predominant)/i.test(sentence)) ?? splitSentences(rawText)[0] ?? null;
|
|
180
|
+
const value = {};
|
|
181
|
+
if (boreholeMatch?.[0] || boreholeId)
|
|
182
|
+
value.boreholeId = (boreholeMatch?.[0] ?? boreholeId)?.replace(/\s+/g, '');
|
|
183
|
+
if (totalDepthMatch?.[1])
|
|
184
|
+
value.totalDepth = Number(totalDepthMatch[1]);
|
|
185
|
+
if (waterTableMatch?.[1])
|
|
186
|
+
value.waterTableDepth = Number(waterTableMatch[1]);
|
|
187
|
+
if (layers.length > 0)
|
|
188
|
+
value.layers = layers;
|
|
189
|
+
if (summary)
|
|
190
|
+
value.summary = summary;
|
|
191
|
+
if (Object.keys(value).length === 0) {
|
|
192
|
+
return { value: null, baseStatus: 'failed', warnings: [] };
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
value,
|
|
196
|
+
baseStatus: 'partial',
|
|
197
|
+
warnings: ['Vision model returned narrative text; extracted partial structured borehole fields.'],
|
|
198
|
+
};
|
|
199
|
+
}
|
|
65
200
|
export async function analyzeCoreBox(imageBase64, mimeType, config) {
|
|
66
|
-
const strictPrompt = `Analyze this rock core box image. You MUST respond with ONLY a JSON object (no markdown, no backticks, no explanation) with these exact fields:
|
|
67
|
-
{
|
|
68
|
-
"rqd": <number 0-100, Rock Quality Designation percentage>,
|
|
69
|
-
"fractureSpacing": "<string: very close/close/moderate/wide/very wide>",
|
|
70
|
-
"weatheringGrade": "<string: W1-Fresh/W2-Slightly/W3-Moderately/W4-Highly/W5-Completely/W6-Residual>",
|
|
71
|
-
"rockType": "<string: identified lithology>",
|
|
72
|
-
"coreRecovery": <number 0-100, percentage>,
|
|
73
|
-
"discontinuities": "<string: description of joint surfaces, infilling, roughness>",
|
|
74
|
-
"confidence": <number 0-100>,
|
|
75
|
-
"warnings": ["<warning>", "<warning>"]
|
|
201
|
+
const strictPrompt = `Analyze this rock core box image. You MUST respond with ONLY a JSON object (no markdown, no backticks, no explanation) with these exact fields:
|
|
202
|
+
{
|
|
203
|
+
"rqd": <number 0-100, Rock Quality Designation percentage>,
|
|
204
|
+
"fractureSpacing": "<string: very close/close/moderate/wide/very wide>",
|
|
205
|
+
"weatheringGrade": "<string: W1-Fresh/W2-Slightly/W3-Moderately/W4-Highly/W5-Completely/W6-Residual>",
|
|
206
|
+
"rockType": "<string: identified lithology>",
|
|
207
|
+
"coreRecovery": <number 0-100, percentage>,
|
|
208
|
+
"discontinuities": "<string: description of joint surfaces, infilling, roughness>",
|
|
209
|
+
"confidence": <number 0-100>,
|
|
210
|
+
"warnings": ["<warning>", "<warning>"]
|
|
76
211
|
}`;
|
|
77
|
-
const softPrompt = `Examine this rock core box image and describe:
|
|
78
|
-
1. RQD (Rock Quality Designation) as a percentage 0-100
|
|
79
|
-
2. Fracture spacing (very close / close / moderate / wide / very wide)
|
|
80
|
-
3. Weathering grade (W1-Fresh through W6-Residual)
|
|
81
|
-
4. Rock type / lithology
|
|
82
|
-
5. Core recovery percentage
|
|
83
|
-
6. Discontinuity description (surfaces, infilling, roughness)
|
|
212
|
+
const softPrompt = `Examine this rock core box image and describe:
|
|
213
|
+
1. RQD (Rock Quality Designation) as a percentage 0-100
|
|
214
|
+
2. Fracture spacing (very close / close / moderate / wide / very wide)
|
|
215
|
+
3. Weathering grade (W1-Fresh through W6-Residual)
|
|
216
|
+
4. Rock type / lithology
|
|
217
|
+
5. Core recovery percentage
|
|
218
|
+
6. Discontinuity description (surfaces, infilling, roughness)
|
|
84
219
|
Provide approximate values even if uncertain.`;
|
|
85
220
|
const response = await visionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, 'You are an expert engineering geologist performing core logging. Respond with JSON only.', 900);
|
|
86
221
|
const parsed = parseJsonObject(response.text);
|
|
@@ -110,22 +245,22 @@ Provide approximate values even if uncertain.`;
|
|
|
110
245
|
};
|
|
111
246
|
}
|
|
112
247
|
export async function classifyRMRFromImage(imageBase64, mimeType, config) {
|
|
113
|
-
const strictPrompt = `Analyze this rock exposure / tunnel face / core box image for Rock Mass Rating input parameters. Respond with ONLY a JSON object (no markdown):
|
|
114
|
-
{
|
|
115
|
-
"estimatedUCS": <number in MPa, estimate from visual appearance>,
|
|
116
|
-
"estimatedRQD": <number 0-100>,
|
|
117
|
-
"estimatedSpacing": <number in meters, mean discontinuity spacing>,
|
|
118
|
-
"jointCondition": "<very_good|good|fair|poor|very_poor>",
|
|
119
|
-
"groundwaterCondition": "<dry|damp|wet|dripping|flowing>",
|
|
120
|
-
"confidence": <number 0-100>,
|
|
121
|
-
"warnings": ["<warning>", "<warning>"]
|
|
248
|
+
const strictPrompt = `Analyze this rock exposure / tunnel face / core box image for Rock Mass Rating input parameters. Respond with ONLY a JSON object (no markdown):
|
|
249
|
+
{
|
|
250
|
+
"estimatedUCS": <number in MPa, estimate from visual appearance>,
|
|
251
|
+
"estimatedRQD": <number 0-100>,
|
|
252
|
+
"estimatedSpacing": <number in meters, mean discontinuity spacing>,
|
|
253
|
+
"jointCondition": "<very_good|good|fair|poor|very_poor>",
|
|
254
|
+
"groundwaterCondition": "<dry|damp|wet|dripping|flowing>",
|
|
255
|
+
"confidence": <number 0-100>,
|
|
256
|
+
"warnings": ["<warning>", "<warning>"]
|
|
122
257
|
}`;
|
|
123
|
-
const softPrompt = `Look at this rock mass image and estimate:
|
|
124
|
-
1. Uniaxial compressive strength UCS in MPa (from rock appearance)
|
|
125
|
-
2. Rock Quality Designation RQD as % 0-100
|
|
126
|
-
3. Mean discontinuity spacing in meters
|
|
127
|
-
4. Joint condition: very_good, good, fair, poor, or very_poor
|
|
128
|
-
5. Groundwater condition: dry, damp, wet, dripping, or flowing
|
|
258
|
+
const softPrompt = `Look at this rock mass image and estimate:
|
|
259
|
+
1. Uniaxial compressive strength UCS in MPa (from rock appearance)
|
|
260
|
+
2. Rock Quality Designation RQD as % 0-100
|
|
261
|
+
3. Mean discontinuity spacing in meters
|
|
262
|
+
4. Joint condition: very_good, good, fair, poor, or very_poor
|
|
263
|
+
5. Groundwater condition: dry, damp, wet, dripping, or flowing
|
|
129
264
|
Give approximate values based on what you observe.`;
|
|
130
265
|
const response = await visionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, 'You are an expert rock mechanics engineer performing field classification. Respond with JSON only.', 700);
|
|
131
266
|
const parsed = parseJsonObject(response.text);
|
|
@@ -185,19 +320,19 @@ Give approximate values based on what you observe.`;
|
|
|
185
320
|
};
|
|
186
321
|
}
|
|
187
322
|
export async function classifySoilFromDescription(description, config) {
|
|
188
|
-
const prompt = `Given this soil description: "${description}"
|
|
189
|
-
|
|
190
|
-
Classify the soil and estimate engineering properties. Respond with ONLY a JSON object:
|
|
191
|
-
{
|
|
192
|
-
"uscsSymbol": "<USCS symbol e.g. CL, SM, GP>",
|
|
193
|
-
"uscsName": "<full name e.g. Lean Clay, Silty Sand>",
|
|
194
|
-
"estimatedFrictionAngle": <degrees>,
|
|
195
|
-
"estimatedCohesion": <kPa>,
|
|
196
|
-
"estimatedUnitWeight": <kN/m3>,
|
|
197
|
-
"estimatedPermeability": "<e.g. 1e-7 m/s>",
|
|
198
|
-
"engineeringNotes": "<brief note on behavior, compressibility, strength>",
|
|
199
|
-
"confidence": <number 0-100>,
|
|
200
|
-
"warnings": ["<warning>", "<warning>"]
|
|
323
|
+
const prompt = `Given this soil description: "${description}"
|
|
324
|
+
|
|
325
|
+
Classify the soil and estimate engineering properties. Respond with ONLY a JSON object:
|
|
326
|
+
{
|
|
327
|
+
"uscsSymbol": "<USCS symbol e.g. CL, SM, GP>",
|
|
328
|
+
"uscsName": "<full name e.g. Lean Clay, Silty Sand>",
|
|
329
|
+
"estimatedFrictionAngle": <degrees>,
|
|
330
|
+
"estimatedCohesion": <kPa>,
|
|
331
|
+
"estimatedUnitWeight": <kN/m3>,
|
|
332
|
+
"estimatedPermeability": "<e.g. 1e-7 m/s>",
|
|
333
|
+
"engineeringNotes": "<brief note on behavior, compressibility, strength>",
|
|
334
|
+
"confidence": <number 0-100>,
|
|
335
|
+
"warnings": ["<warning>", "<warning>"]
|
|
201
336
|
}`;
|
|
202
337
|
const response = await generateText(prompt, config, {
|
|
203
338
|
systemPrompt: 'You are an expert geotechnical engineer. Classify soils based on verbal descriptions using USCS and estimate engineering properties. Respond with JSON only.',
|
|
@@ -233,37 +368,46 @@ Classify the soil and estimate engineering properties. Respond with ONLY a JSON
|
|
|
233
368
|
};
|
|
234
369
|
}
|
|
235
370
|
export async function interpretBoreholeLog(imageBase64, mimeType, config, boreholeId) {
|
|
236
|
-
const
|
|
237
|
-
{
|
|
238
|
-
"boreholeId": "<ID if visible, or 'BH-unknown'>",
|
|
239
|
-
"totalDepth": <number in meters>,
|
|
240
|
-
"waterTableDepth": <number in meters or null>,
|
|
241
|
-
"layers": [
|
|
242
|
-
{
|
|
243
|
-
"depthFrom": <m>,
|
|
244
|
-
"depthTo": <m>,
|
|
245
|
-
"description": "<soil/rock description>",
|
|
246
|
-
"uscsSymbol": "<USCS if identifiable>",
|
|
247
|
-
"sptN": <number or null>,
|
|
248
|
-
"waterContent": <percent or null>,
|
|
249
|
-
"notes": "<any additional notes>"
|
|
250
|
-
}
|
|
251
|
-
],
|
|
252
|
-
"summary": "<brief engineering summary of the borehole>",
|
|
253
|
-
"confidence": <number 0-100>,
|
|
254
|
-
"warnings": ["<warning>", "<warning>"]
|
|
371
|
+
const strictPrompt = `Extract structured data from this borehole log image. Respond with ONLY a JSON object:
|
|
372
|
+
{
|
|
373
|
+
"boreholeId": "<ID if visible, or 'BH-unknown'>",
|
|
374
|
+
"totalDepth": <number in meters>,
|
|
375
|
+
"waterTableDepth": <number in meters or null>,
|
|
376
|
+
"layers": [
|
|
377
|
+
{
|
|
378
|
+
"depthFrom": <m>,
|
|
379
|
+
"depthTo": <m>,
|
|
380
|
+
"description": "<soil/rock description>",
|
|
381
|
+
"uscsSymbol": "<USCS if identifiable>",
|
|
382
|
+
"sptN": <number or null>,
|
|
383
|
+
"waterContent": <percent or null>,
|
|
384
|
+
"notes": "<any additional notes>"
|
|
385
|
+
}
|
|
386
|
+
],
|
|
387
|
+
"summary": "<brief engineering summary of the borehole>",
|
|
388
|
+
"confidence": <number 0-100>,
|
|
389
|
+
"warnings": ["<warning>", "<warning>"]
|
|
255
390
|
}`;
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
391
|
+
const softPrompt = `Read this borehole log carefully and extract the key structured data:
|
|
392
|
+
1. Borehole ID if visible
|
|
393
|
+
2. Total depth in meters
|
|
394
|
+
3. Water table depth if shown
|
|
395
|
+
4. Each stratigraphic layer with depthFrom, depthTo, description, USCS symbol, SPT N, water content, and notes
|
|
396
|
+
5. A brief engineering summary
|
|
397
|
+
Provide approximate values where necessary, but keep the structure complete.`;
|
|
398
|
+
const response = await visionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, 'You are an expert geotechnical engineer extracting data from borehole log documents. Be precise with depths, descriptions, and test values. Respond with JSON only.', 1500);
|
|
261
399
|
const parsed = parseJsonObject(response.text);
|
|
262
|
-
const
|
|
263
|
-
const
|
|
264
|
-
|
|
400
|
+
const narrativeFallback = extractBoreholeFallback(response.text, boreholeId);
|
|
401
|
+
const mergedValue = {
|
|
402
|
+
...(narrativeFallback.value ?? {}),
|
|
403
|
+
...(parsed.value ?? {}),
|
|
404
|
+
};
|
|
405
|
+
const baseStatus = parsed.baseStatus !== 'failed' ? parsed.baseStatus : narrativeFallback.baseStatus;
|
|
406
|
+
const warnings = [...parsed.warnings, ...narrativeFallback.warnings];
|
|
407
|
+
const parsedLayers = Array.isArray(mergedValue.layers)
|
|
408
|
+
? mergedValue.layers
|
|
265
409
|
: [];
|
|
266
|
-
if (!Array.isArray(
|
|
410
|
+
if (!Array.isArray(mergedValue.layers)) {
|
|
267
411
|
warnings.push('Missing or invalid "layers" array.');
|
|
268
412
|
}
|
|
269
413
|
const layers = parsedLayers.map((layer) => {
|
|
@@ -280,16 +424,16 @@ export async function interpretBoreholeLog(imageBase64, mimeType, config, boreho
|
|
|
280
424
|
warnings.push(...layerWarnings.map((warning) => `Layer warning: ${warning}`));
|
|
281
425
|
return item;
|
|
282
426
|
});
|
|
283
|
-
const totalDepth = readNumber(
|
|
284
|
-
const waterTableDepth =
|
|
427
|
+
const totalDepth = readNumber(mergedValue, 'totalDepth', warnings);
|
|
428
|
+
const waterTableDepth = mergedValue.waterTableDepth == null
|
|
285
429
|
? null
|
|
286
|
-
: readNumber(
|
|
287
|
-
const summary = readString(
|
|
288
|
-
const resolvedBoreholeId = readString(
|
|
289
|
-
const confidence = clampConfidence(
|
|
290
|
-
const status = deriveParseStatus(
|
|
430
|
+
: readNumber(mergedValue, 'waterTableDepth', warnings);
|
|
431
|
+
const summary = readString(mergedValue, 'summary', warnings);
|
|
432
|
+
const resolvedBoreholeId = readString(mergedValue, 'boreholeId', []) ?? boreholeId ?? 'BH-unknown';
|
|
433
|
+
const confidence = clampConfidence(mergedValue.confidence, baseStatus === 'parsed' ? 75 : baseStatus === 'partial' ? 58 : 0);
|
|
434
|
+
const status = deriveParseStatus(baseStatus, [totalDepth, summary, layers.length > 0 ? 'layers' : null].filter((value) => value !== null)
|
|
291
435
|
.length, 3);
|
|
292
|
-
const safety = createParseSafety(status, confidence, combineWarnings(warnings, normalizeWarnings(
|
|
436
|
+
const safety = createParseSafety(status, confidence, combineWarnings(warnings, normalizeWarnings(mergedValue.warnings)));
|
|
293
437
|
return {
|
|
294
438
|
...safety,
|
|
295
439
|
boreholeId: resolvedBoreholeId,
|
|
@@ -302,38 +446,47 @@ export async function interpretBoreholeLog(imageBase64, mimeType, config, boreho
|
|
|
302
446
|
};
|
|
303
447
|
}
|
|
304
448
|
export async function queryGBRDocument(question, documentBase64, mimeType, config) {
|
|
305
|
-
const response = await
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
}
|
|
449
|
+
const response = await visionWithRetry(documentBase64, mimeType, config, `Based on this Geotechnical Baseline Report, answer the following question with a concise, technically accurate response and specific page/section references where possible:\n\n${question}`, `Read this Geotechnical Baseline Report and answer the question directly:\n\n${question}\n\nUse specific values, limits, assumptions, and references if they are visible in the document.`, 'You are an expert geotechnical engineer analyzing a Geotechnical Baseline Report (GBR). Provide precise, actionable answers referencing specific data from the document.', 2000);
|
|
450
|
+
if (!response.text.trim()) {
|
|
451
|
+
throw new Error('Hosted beta upstream returned no content. The document could not be interpreted. Try a smaller PNG or JPG export of the relevant pages.');
|
|
452
|
+
}
|
|
309
453
|
return { answer: response.text, latencyMs: response.latencyMs };
|
|
310
454
|
}
|
|
311
455
|
export async function interpretSensorImage(imageBase64, mimeType, config) {
|
|
312
|
-
const
|
|
313
|
-
{
|
|
314
|
-
"sensorType": "<inclinometer|piezometer|extensometer|load_cell|settlement_plate|tiltmeter|other>",
|
|
315
|
-
"measurements": "<key readings and values observed>",
|
|
316
|
-
"interpretation": "<what the data shows about ground/structure behavior>",
|
|
317
|
-
"evaluation": "<whether conditions are normal, warning, or critical>",
|
|
318
|
-
"recommendations": "<recommended actions if any>",
|
|
319
|
-
"confidence": <number 0-100>,
|
|
320
|
-
"warnings": ["<warning>", "<warning>"]
|
|
456
|
+
const strictPrompt = `Analyze this geotechnical sensor data image. Respond with ONLY a JSON object:
|
|
457
|
+
{
|
|
458
|
+
"sensorType": "<inclinometer|piezometer|extensometer|load_cell|settlement_plate|tiltmeter|other>",
|
|
459
|
+
"measurements": "<key readings and values observed>",
|
|
460
|
+
"interpretation": "<what the data shows about ground/structure behavior>",
|
|
461
|
+
"evaluation": "<whether conditions are normal, warning, or critical>",
|
|
462
|
+
"recommendations": "<recommended actions if any>",
|
|
463
|
+
"confidence": <number 0-100>,
|
|
464
|
+
"warnings": ["<warning>", "<warning>"]
|
|
321
465
|
}`;
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
466
|
+
const softPrompt = `Inspect this geotechnical instrumentation image and extract:
|
|
467
|
+
1. Sensor type
|
|
468
|
+
2. Key readings and visible values
|
|
469
|
+
3. What the measurements indicate about ground or structural behavior
|
|
470
|
+
4. Whether the condition appears normal, warning, or critical
|
|
471
|
+
5. Recommended follow-up actions if any
|
|
472
|
+
If the display is partially unreadable, provide the best approximate interpretation from the visible chart or text.`;
|
|
473
|
+
const response = await visionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, 'You are an expert geotechnical instrumentation engineer. Interpret sensor data precisely.', 800);
|
|
327
474
|
const parsed = parseJsonObject(response.text);
|
|
328
|
-
const
|
|
329
|
-
const
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
const
|
|
334
|
-
const
|
|
335
|
-
const
|
|
336
|
-
const
|
|
475
|
+
const narrativeFallback = extractSensorFallback(response.text);
|
|
476
|
+
const mergedValue = {
|
|
477
|
+
...(narrativeFallback.value ?? {}),
|
|
478
|
+
...(parsed.value ?? {}),
|
|
479
|
+
};
|
|
480
|
+
const baseStatus = parsed.baseStatus !== 'failed' ? parsed.baseStatus : narrativeFallback.baseStatus;
|
|
481
|
+
const warnings = [...parsed.warnings, ...narrativeFallback.warnings];
|
|
482
|
+
const sensorType = readString(mergedValue, 'sensorType', warnings);
|
|
483
|
+
const measurements = readString(mergedValue, 'measurements', warnings);
|
|
484
|
+
const interpretation = readString(mergedValue, 'interpretation', warnings);
|
|
485
|
+
const evaluation = readString(mergedValue, 'evaluation', warnings);
|
|
486
|
+
const recommendations = readString(mergedValue, 'recommendations', warnings);
|
|
487
|
+
const confidence = clampConfidence(mergedValue.confidence, baseStatus === 'parsed' ? 70 : baseStatus === 'partial' ? 55 : 0);
|
|
488
|
+
const status = deriveParseStatus(baseStatus, [sensorType, measurements, interpretation, evaluation, recommendations].filter((value) => value !== null).length, 5);
|
|
489
|
+
const safety = createParseSafety(status, confidence, combineWarnings(warnings, normalizeWarnings(mergedValue.warnings)));
|
|
337
490
|
return {
|
|
338
491
|
...safety,
|
|
339
492
|
sensorType,
|
package/dist/vision/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vision/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vision/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/vision/parse.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,WAAW,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/vision/parse.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,WAAW,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CA8CnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAK1D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIxE;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,WAAW,EACvB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,WAAW,CAKb;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,GACjB,WAAW,CAOb;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,IAAI,CAMf"}
|
package/dist/vision/parse.js
CHANGED
|
@@ -20,6 +20,24 @@ export function parseJsonObject(rawText) {
|
|
|
20
20
|
return { value: parsed, baseStatus: 'parsed', warnings: [] };
|
|
21
21
|
}
|
|
22
22
|
catch {
|
|
23
|
+
const objectStart = cleaned.indexOf('{');
|
|
24
|
+
const objectEnd = cleaned.lastIndexOf('}');
|
|
25
|
+
if (objectStart >= 0 && objectEnd > objectStart) {
|
|
26
|
+
try {
|
|
27
|
+
const extracted = cleaned.slice(objectStart, objectEnd + 1);
|
|
28
|
+
const parsed = JSON.parse(extracted);
|
|
29
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
30
|
+
return {
|
|
31
|
+
value: parsed,
|
|
32
|
+
baseStatus: 'partial',
|
|
33
|
+
warnings: ['Model response included extra text; extracted the JSON object from the response.'],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Fall through to the default invalid-JSON error.
|
|
39
|
+
}
|
|
40
|
+
}
|
|
23
41
|
return {
|
|
24
42
|
value: null,
|
|
25
43
|
baseStatus: 'failed',
|
package/dist/vision/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/vision/parse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/vision/parse.ts"],"names":[],"mappings":"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"}
|