@geotechcli/core 0.4.76 → 0.4.78

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.
Files changed (131) hide show
  1. package/dist/agents/data-tools.js +38 -1
  2. package/dist/agents/data-tools.js.map +1 -1
  3. package/dist/agents/fem-artifact-guards.d.ts +14 -0
  4. package/dist/agents/fem-artifact-guards.d.ts.map +1 -0
  5. package/dist/agents/fem-artifact-guards.js +53 -0
  6. package/dist/agents/fem-artifact-guards.js.map +1 -0
  7. package/dist/agents/fem-tools.js +86 -1
  8. package/dist/agents/fem-tools.js.map +1 -1
  9. package/dist/agents/filesystem-tools.js +13 -0
  10. package/dist/agents/filesystem-tools.js.map +1 -1
  11. package/dist/agents/provider-operating-contract.d.ts +3 -3
  12. package/dist/agents/provider-operating-contract.d.ts.map +1 -1
  13. package/dist/agents/provider-operating-contract.js +10 -46
  14. package/dist/agents/provider-operating-contract.js.map +1 -1
  15. package/dist/agents/runtime-bootstrap.d.ts +1 -0
  16. package/dist/agents/runtime-bootstrap.d.ts.map +1 -1
  17. package/dist/agents/runtime-bootstrap.js +1 -0
  18. package/dist/agents/runtime-bootstrap.js.map +1 -1
  19. package/dist/agents/safety.d.ts.map +1 -1
  20. package/dist/agents/safety.js +33 -0
  21. package/dist/agents/safety.js.map +1 -1
  22. package/dist/agents/signal-tools.d.ts +2 -0
  23. package/dist/agents/signal-tools.d.ts.map +1 -0
  24. package/dist/agents/signal-tools.js +96 -0
  25. package/dist/agents/signal-tools.js.map +1 -0
  26. package/dist/agents/swarm-planner.js +1 -1
  27. package/dist/agents/swarm-planner.js.map +1 -1
  28. package/dist/agents/swarm.d.ts +1 -0
  29. package/dist/agents/swarm.d.ts.map +1 -1
  30. package/dist/agents/swarm.js +202 -31
  31. package/dist/agents/swarm.js.map +1 -1
  32. package/dist/fem/ground-model-draft.d.ts +14 -0
  33. package/dist/fem/ground-model-draft.d.ts.map +1 -1
  34. package/dist/fem/ground-model-draft.js +86 -21
  35. package/dist/fem/ground-model-draft.js.map +1 -1
  36. package/dist/fem/index.d.ts +1 -1
  37. package/dist/fem/index.d.ts.map +1 -1
  38. package/dist/fem/index.js +1 -1
  39. package/dist/fem/index.js.map +1 -1
  40. package/dist/fem/routing.d.ts +15 -1
  41. package/dist/fem/routing.d.ts.map +1 -1
  42. package/dist/fem/routing.js +192 -14
  43. package/dist/fem/routing.js.map +1 -1
  44. package/dist/fem/validation.d.ts.map +1 -1
  45. package/dist/fem/validation.js +715 -30
  46. package/dist/fem/validation.js.map +1 -1
  47. package/dist/fem/webgl.d.ts.map +1 -1
  48. package/dist/fem/webgl.js +24 -8
  49. package/dist/fem/webgl.js.map +1 -1
  50. package/dist/index.d.ts +1 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +1 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/ingest/document-evidence-packet.d.ts +603 -45
  55. package/dist/ingest/document-evidence-packet.d.ts.map +1 -1
  56. package/dist/ingest/document-evidence-packet.js +145 -5
  57. package/dist/ingest/document-evidence-packet.js.map +1 -1
  58. package/dist/ingest/geotech-benchmark-corpus.d.ts +108 -0
  59. package/dist/ingest/geotech-benchmark-corpus.d.ts.map +1 -0
  60. package/dist/ingest/geotech-benchmark-corpus.js +423 -0
  61. package/dist/ingest/geotech-benchmark-corpus.js.map +1 -0
  62. package/dist/ingest/geotech-document-benchmark.d.ts +133 -0
  63. package/dist/ingest/geotech-document-benchmark.d.ts.map +1 -1
  64. package/dist/ingest/geotech-document-benchmark.js +370 -2
  65. package/dist/ingest/geotech-document-benchmark.js.map +1 -1
  66. package/dist/ingest/geotech-document.d.ts +3 -0
  67. package/dist/ingest/geotech-document.d.ts.map +1 -1
  68. package/dist/ingest/geotech-document.js +7 -0
  69. package/dist/ingest/geotech-document.js.map +1 -1
  70. package/dist/ingest/index.d.ts +2 -1
  71. package/dist/ingest/index.d.ts.map +1 -1
  72. package/dist/ingest/index.js +1 -0
  73. package/dist/ingest/index.js.map +1 -1
  74. package/dist/ingest/job-store.d.ts.map +1 -1
  75. package/dist/ingest/job-store.js +193 -0
  76. package/dist/ingest/job-store.js.map +1 -1
  77. package/dist/ingest/job-worker.d.ts.map +1 -1
  78. package/dist/ingest/job-worker.js +5 -0
  79. package/dist/ingest/job-worker.js.map +1 -1
  80. package/dist/ingest/page-evidence-cache.d.ts +6 -2
  81. package/dist/ingest/page-evidence-cache.d.ts.map +1 -1
  82. package/dist/ingest/page-evidence-cache.js +226 -4
  83. package/dist/ingest/page-evidence-cache.js.map +1 -1
  84. package/dist/ingest/pdf.d.ts.map +1 -1
  85. package/dist/ingest/pdf.js +2 -2
  86. package/dist/ingest/pdf.js.map +1 -1
  87. package/dist/ingest/review-store.d.ts +3 -0
  88. package/dist/ingest/review-store.d.ts.map +1 -1
  89. package/dist/ingest/review-store.js +28 -0
  90. package/dist/ingest/review-store.js.map +1 -1
  91. package/dist/llm/capabilities.d.ts +6 -1
  92. package/dist/llm/capabilities.d.ts.map +1 -1
  93. package/dist/llm/capabilities.js +66 -0
  94. package/dist/llm/capabilities.js.map +1 -1
  95. package/dist/llm/index.d.ts +2 -2
  96. package/dist/llm/index.d.ts.map +1 -1
  97. package/dist/llm/index.js +1 -1
  98. package/dist/llm/index.js.map +1 -1
  99. package/dist/llm/types.d.ts +20 -0
  100. package/dist/llm/types.d.ts.map +1 -1
  101. package/dist/llm/types.js.map +1 -1
  102. package/dist/meta/metadata.json +1 -1
  103. package/dist/report/ingest-dossier.d.ts.map +1 -1
  104. package/dist/report/ingest-dossier.js +13 -1
  105. package/dist/report/ingest-dossier.js.map +1 -1
  106. package/dist/report/project-workflow.js +3 -3
  107. package/dist/report/project-workflow.js.map +1 -1
  108. package/dist/signal/index.d.ts +95 -0
  109. package/dist/signal/index.d.ts.map +1 -0
  110. package/dist/signal/index.js +375 -0
  111. package/dist/signal/index.js.map +1 -0
  112. package/dist/verifier/findings.d.ts +1 -1
  113. package/dist/verifier/findings.d.ts.map +1 -1
  114. package/dist/verifier/findings.js +329 -0
  115. package/dist/verifier/findings.js.map +1 -1
  116. package/dist/vision/ocr.d.ts +2 -0
  117. package/dist/vision/ocr.d.ts.map +1 -1
  118. package/dist/vision/ocr.js +78 -2
  119. package/dist/vision/ocr.js.map +1 -1
  120. package/dist/vision/preprocess.d.ts +65 -0
  121. package/dist/vision/preprocess.d.ts.map +1 -1
  122. package/dist/vision/preprocess.js +620 -7
  123. package/dist/vision/preprocess.js.map +1 -1
  124. package/dist/workspace/project-workflow-executor.d.ts +1 -1
  125. package/dist/workspace/project-workflow-executor.d.ts.map +1 -1
  126. package/dist/workspace/project-workflow-executor.js +275 -5
  127. package/dist/workspace/project-workflow-executor.js.map +1 -1
  128. package/dist/workspace/project-workflow-router.d.ts.map +1 -1
  129. package/dist/workspace/project-workflow-router.js +63 -1
  130. package/dist/workspace/project-workflow-router.js.map +1 -1
  131. package/package.json +1 -1
@@ -0,0 +1,375 @@
1
+ import { extname, basename } from 'node:path';
2
+ import { parseDelimitedFile, parseXlsxFile } from '../tabular/index.js';
3
+ const DEFAULT_MAX_ROWS = 5000;
4
+ const EPSILON = 1e-9;
5
+ const EXCEL_SERIAL_MIN = 20_000;
6
+ const EXCEL_SERIAL_MAX = 80_000;
7
+ const EXCEL_SERIAL_EPOCH_MS = Date.UTC(1899, 11, 30);
8
+ function normalizeHeader(value) {
9
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, '');
10
+ }
11
+ function columnNames(rows) {
12
+ const names = new Set();
13
+ rows.forEach((row) => Object.keys(row).forEach((key) => names.add(key)));
14
+ return [...names];
15
+ }
16
+ function findColumn(columns, explicit, patterns) {
17
+ if (explicit) {
18
+ const match = columns.find((column) => column === explicit || normalizeHeader(column) === normalizeHeader(explicit));
19
+ if (!match)
20
+ throw new Error(`Column "${explicit}" was not found.`);
21
+ return match;
22
+ }
23
+ return columns.find((column) => patterns.some((pattern) => pattern.test(normalizeHeader(column))));
24
+ }
25
+ function inferSignalType(sourceName, columns, option) {
26
+ if (option && option !== 'unknown')
27
+ return option;
28
+ const text = [sourceName, ...columns].map(normalizeHeader).join(' ');
29
+ if (/settlement|settle|subsidence|heave/.test(text))
30
+ return 'settlement';
31
+ if (/piezometer|porepressure|pwp|waterlevel|groundwater/.test(text))
32
+ return 'piezometer';
33
+ if (/inclinometer|inclino|deflection|lateralmovement/.test(text))
34
+ return 'inclinometer';
35
+ if (/vibration|ppv|velocity|acceler/.test(text))
36
+ return 'vibration';
37
+ if (/loadtest|load|plate|piletest/.test(text))
38
+ return 'load-test';
39
+ return 'unknown';
40
+ }
41
+ function asNumber(value) {
42
+ if (typeof value === 'number' && Number.isFinite(value))
43
+ return value;
44
+ if (typeof value === 'string') {
45
+ const parsed = Number(value.trim().replace(/,/g, ''));
46
+ if (Number.isFinite(parsed))
47
+ return parsed;
48
+ }
49
+ return undefined;
50
+ }
51
+ function asString(value) {
52
+ if (value == null)
53
+ return undefined;
54
+ const text = String(value).trim();
55
+ return text.length > 0 ? text : undefined;
56
+ }
57
+ function timestampFromExcelSerial(value) {
58
+ if (!Number.isFinite(value) || value < EXCEL_SERIAL_MIN || value > EXCEL_SERIAL_MAX)
59
+ return undefined;
60
+ const date = new Date(EXCEL_SERIAL_EPOCH_MS + value * 86_400_000);
61
+ return Number.isNaN(date.getTime()) ? undefined : date.toISOString();
62
+ }
63
+ function toTimestamp(value) {
64
+ if (typeof value === 'number')
65
+ return timestampFromExcelSerial(value);
66
+ const raw = asString(value);
67
+ if (!raw)
68
+ return undefined;
69
+ const numeric = Number(raw.replace(/,/g, ''));
70
+ if (Number.isFinite(numeric)
71
+ && /^[+-]?(?:\d+\.?\d*|\.\d+)$/.test(raw.replace(/,/g, ''))) {
72
+ const serial = timestampFromExcelSerial(numeric);
73
+ if (serial)
74
+ return serial;
75
+ }
76
+ const date = new Date(raw);
77
+ if (Number.isNaN(date.getTime()))
78
+ return undefined;
79
+ return date.toISOString();
80
+ }
81
+ function round(value) {
82
+ return Number(value.toFixed(6));
83
+ }
84
+ function mean(values) {
85
+ if (values.length === 0)
86
+ return null;
87
+ return round(values.reduce((sum, value) => sum + value, 0) / values.length);
88
+ }
89
+ function min(values) {
90
+ return values.length > 0 ? round(Math.min(...values)) : null;
91
+ }
92
+ function max(values) {
93
+ return values.length > 0 ? round(Math.max(...values)) : null;
94
+ }
95
+ function sortPoints(points) {
96
+ return [...points].sort((left, right) => {
97
+ if (left.timestamp && right.timestamp)
98
+ return new Date(left.timestamp).getTime() - new Date(right.timestamp).getTime();
99
+ if (left.depth != null && right.depth != null)
100
+ return left.depth - right.depth;
101
+ return 0;
102
+ });
103
+ }
104
+ function xValue(point, index) {
105
+ if (point.timestamp)
106
+ return point.timestamp;
107
+ if (point.depth != null)
108
+ return point.depth;
109
+ return index;
110
+ }
111
+ function slopeUnit(points) {
112
+ if (points.every((point) => point.timestamp))
113
+ return 'per-day';
114
+ if (points.every((point) => point.depth != null))
115
+ return 'per-meter';
116
+ return 'per-sample';
117
+ }
118
+ function deltaX(left, right, unit) {
119
+ if (unit === 'per-day' && left.timestamp && right.timestamp) {
120
+ return (new Date(right.timestamp).getTime() - new Date(left.timestamp).getTime()) / 86_400_000;
121
+ }
122
+ if (unit === 'per-meter' && left.depth != null && right.depth != null)
123
+ return right.depth - left.depth;
124
+ return 1;
125
+ }
126
+ function linearSlope(points, unit) {
127
+ if (points.length < 2)
128
+ return null;
129
+ const origin = points[0];
130
+ const xs = points.map((point, index) => {
131
+ if (unit === 'per-day' && origin.timestamp && point.timestamp) {
132
+ return (new Date(point.timestamp).getTime() - new Date(origin.timestamp).getTime()) / 86_400_000;
133
+ }
134
+ if (unit === 'per-meter' && origin.depth != null && point.depth != null)
135
+ return point.depth - origin.depth;
136
+ return index;
137
+ });
138
+ const ys = points.map((point) => point.value);
139
+ const meanX = mean(xs) ?? 0;
140
+ const meanY = mean(ys) ?? 0;
141
+ const numerator = xs.reduce((sum, x, index) => sum + (x - meanX) * (ys[index] - meanY), 0);
142
+ const denominator = xs.reduce((sum, x) => sum + (x - meanX) ** 2, 0);
143
+ if (Math.abs(denominator) < EPSILON)
144
+ return null;
145
+ return round(numerator / denominator);
146
+ }
147
+ function directionFromSlope(slope) {
148
+ if (slope == null)
149
+ return 'insufficient-data';
150
+ if (Math.abs(slope) < 1e-6)
151
+ return 'stable';
152
+ return slope > 0 ? 'increasing' : 'decreasing';
153
+ }
154
+ async function loadTable(filePath, options) {
155
+ const extension = extname(filePath).toLowerCase();
156
+ const maxRows = Math.max(1, options.maxRows ?? DEFAULT_MAX_ROWS);
157
+ if (extension === '.csv' || extension === '.tsv') {
158
+ const parsed = await parseDelimitedFile(filePath, { maxRows });
159
+ return { rows: parsed.rows, warnings: parsed.warnings, format: 'csv' };
160
+ }
161
+ if (extension === '.xlsx') {
162
+ const workbook = await parseXlsxFile(filePath, { maxRows });
163
+ const sheet = options.sheetName
164
+ ? workbook.sheets.find((candidate) => candidate.name === options.sheetName)
165
+ : workbook.sheets[0];
166
+ if (!sheet) {
167
+ throw new Error(options.sheetName ? `Workbook sheet "${options.sheetName}" was not found.` : 'Workbook has no readable sheets.');
168
+ }
169
+ return {
170
+ rows: sheet.rows,
171
+ warnings: [...workbook.warnings, ...sheet.warnings],
172
+ format: 'xlsx',
173
+ sheetName: sheet.name,
174
+ };
175
+ }
176
+ throw new Error(`Unsupported signal input "${extension}". Use CSV, TSV, or XLSX.`);
177
+ }
178
+ function buildPoints(rows, columns) {
179
+ const points = [];
180
+ const warnings = [];
181
+ let rejected = 0;
182
+ rows.forEach((row) => {
183
+ const value = asNumber(row[columns.value]);
184
+ if (value == null) {
185
+ rejected += 1;
186
+ return;
187
+ }
188
+ const timestamp = columns.timestamp ? toTimestamp(row[columns.timestamp]) : undefined;
189
+ const depth = columns.depth ? asNumber(row[columns.depth]) : undefined;
190
+ if (columns.timestamp && !timestamp) {
191
+ rejected += 1;
192
+ warnings.push(`Rejected row with invalid timestamp in column "${columns.timestamp}".`);
193
+ return;
194
+ }
195
+ points.push({
196
+ timestamp,
197
+ depth,
198
+ value,
199
+ instrumentId: columns.instrumentId ? asString(row[columns.instrumentId]) : undefined,
200
+ location: columns.location ? asString(row[columns.location]) : undefined,
201
+ });
202
+ });
203
+ return { points, rejected, warnings: [...new Set(warnings)].slice(0, 5) };
204
+ }
205
+ function groupSeries(points) {
206
+ const groups = new Map();
207
+ points.forEach((point) => {
208
+ const key = point.instrumentId ?? point.location ?? 'series';
209
+ groups.set(key, [...(groups.get(key) ?? []), point]);
210
+ });
211
+ return [...groups.entries()].map(([key, group]) => {
212
+ const ordered = sortPoints(group);
213
+ return {
214
+ id: key,
215
+ label: key === 'series' ? 'Signal' : key,
216
+ x: ordered.map((point, index) => xValue(point, index)),
217
+ y: ordered.map((point) => point.value),
218
+ points: ordered,
219
+ };
220
+ });
221
+ }
222
+ function summarizeSeries(series) {
223
+ const values = series.points.map((point) => point.value);
224
+ const unit = slopeUnit(series.points);
225
+ const slope = linearSlope(series.points, unit);
226
+ const firstValue = values[0] ?? null;
227
+ const lastValue = values.at(-1) ?? null;
228
+ return {
229
+ seriesId: series.id,
230
+ label: series.label,
231
+ count: series.points.length,
232
+ firstValue: firstValue == null ? null : round(firstValue),
233
+ lastValue: lastValue == null ? null : round(lastValue),
234
+ min: min(values),
235
+ max: max(values),
236
+ mean: mean(values),
237
+ delta: firstValue == null || lastValue == null ? null : round(lastValue - firstValue),
238
+ slope,
239
+ slopeUnit: unit,
240
+ direction: directionFromSlope(slope),
241
+ };
242
+ }
243
+ function ratesForSeries(series) {
244
+ const unit = slopeUnit(series.points);
245
+ const rates = [];
246
+ for (let index = 1; index < series.points.length; index += 1) {
247
+ const previous = series.points[index - 1];
248
+ const current = series.points[index];
249
+ const dx = deltaX(previous, current, unit);
250
+ if (Math.abs(dx) > EPSILON)
251
+ rates.push((current.value - previous.value) / dx);
252
+ }
253
+ return {
254
+ seriesId: series.id,
255
+ unit,
256
+ min: min(rates),
257
+ max: max(rates),
258
+ mean: mean(rates),
259
+ latest: rates.length > 0 ? round(rates[rates.length - 1]) : null,
260
+ };
261
+ }
262
+ function thresholdFlagsForSeries(series, valueThreshold, rateThreshold) {
263
+ const flags = [];
264
+ if (valueThreshold != null) {
265
+ series.points.forEach((point, index) => {
266
+ if (Math.abs(point.value) > valueThreshold) {
267
+ flags.push({
268
+ seriesId: series.id,
269
+ kind: 'value-threshold',
270
+ severity: 'warning',
271
+ message: `Value ${round(point.value)} exceeds threshold ${valueThreshold}.`,
272
+ index,
273
+ timestamp: point.timestamp,
274
+ depth: point.depth,
275
+ value: round(point.value),
276
+ threshold: valueThreshold,
277
+ });
278
+ }
279
+ });
280
+ }
281
+ if (rateThreshold != null) {
282
+ const unit = slopeUnit(series.points);
283
+ for (let index = 1; index < series.points.length; index += 1) {
284
+ const previous = series.points[index - 1];
285
+ const current = series.points[index];
286
+ const dx = deltaX(previous, current, unit);
287
+ if (Math.abs(dx) <= EPSILON)
288
+ continue;
289
+ const rate = (current.value - previous.value) / dx;
290
+ if (Math.abs(rate) > rateThreshold) {
291
+ flags.push({
292
+ seriesId: series.id,
293
+ kind: 'rate-threshold',
294
+ severity: 'warning',
295
+ message: `Rate ${round(rate)} ${unit} exceeds threshold ${rateThreshold}.`,
296
+ index,
297
+ timestamp: current.timestamp,
298
+ depth: current.depth,
299
+ value: round(rate),
300
+ threshold: rateThreshold,
301
+ });
302
+ }
303
+ }
304
+ }
305
+ return flags;
306
+ }
307
+ function detectMissingIntervals(series, expectedIntervalHours) {
308
+ if (expectedIntervalHours == null || expectedIntervalHours <= 0)
309
+ return [];
310
+ const result = [];
311
+ const expectedMs = expectedIntervalHours * 3_600_000;
312
+ for (let index = 1; index < series.points.length; index += 1) {
313
+ const previous = series.points[index - 1];
314
+ const current = series.points[index];
315
+ if (!previous.timestamp || !current.timestamp)
316
+ continue;
317
+ const gapMs = new Date(current.timestamp).getTime() - new Date(previous.timestamp).getTime();
318
+ if (gapMs > expectedMs * 1.5) {
319
+ result.push({
320
+ seriesId: series.id,
321
+ from: previous.timestamp,
322
+ to: current.timestamp,
323
+ gapHours: round(gapMs / 3_600_000),
324
+ expectedIntervalHours,
325
+ missingIntervals: Math.max(1, Math.round(gapMs / expectedMs) - 1),
326
+ });
327
+ }
328
+ }
329
+ return result;
330
+ }
331
+ export async function analyzeSignalFile(filePath, options = {}) {
332
+ const table = await loadTable(filePath, options);
333
+ const columns = columnNames(table.rows);
334
+ if (columns.length === 0)
335
+ throw new Error('Signal input has no readable columns.');
336
+ const timestamp = findColumn(columns, options.timestampColumn, [/^time$/, /^timestamp$/, /^datetime$/, /^date$/, /readingdate/, /observedat/]);
337
+ const depth = findColumn(columns, options.depthColumn, [/^depthm?$/, /depth/, /elevation/]);
338
+ const value = findColumn(columns, options.valueColumn, [/^value$/, /reading/, /settlement/, /porepressure/, /waterlevel/, /displacement/, /deflection/, /^ppv$/, /vibration/, /^load$/, /force/]);
339
+ const instrumentId = findColumn(columns, options.instrumentIdColumn, [/instrument/, /sensor/, /gauge/, /id$/]);
340
+ const location = findColumn(columns, options.locationColumn, [/location/, /^loc$/, /station/, /chainage/]);
341
+ if (!value) {
342
+ throw new Error('Could not infer a signal value column. Provide --value <column>.');
343
+ }
344
+ if (!timestamp && !depth) {
345
+ throw new Error('Could not infer a timestamp or depth column. Provide --timestamp or --depth.');
346
+ }
347
+ const signalType = inferSignalType(basename(filePath), columns, options.type);
348
+ const selectedColumns = { timestamp, depth, value, instrumentId, location };
349
+ const built = buildPoints(table.rows, selectedColumns);
350
+ if (built.points.length === 0) {
351
+ throw new Error('Signal input has no analyzable rows after rejecting invalid values or timestamps.');
352
+ }
353
+ const series = groupSeries(built.points);
354
+ const valueThreshold = options.threshold;
355
+ const rateThreshold = options.rateThreshold;
356
+ return {
357
+ schemaVersion: 'signal-analysis.v0',
358
+ source: {
359
+ path: filePath,
360
+ format: table.format,
361
+ sheetName: table.sheetName,
362
+ rowsAnalyzed: built.points.length,
363
+ rowsRejected: built.rejected,
364
+ },
365
+ signalType,
366
+ columns: selectedColumns,
367
+ trendSummary: series.map(summarizeSeries),
368
+ thresholdFlags: series.flatMap((item) => thresholdFlagsForSeries(item, valueThreshold, rateThreshold)),
369
+ missingIntervals: series.flatMap((item) => detectMissingIntervals(item, options.expectedIntervalHours)),
370
+ rateOfChange: series.map(ratesForSeries),
371
+ series,
372
+ warnings: [...table.warnings, ...built.warnings],
373
+ };
374
+ }
375
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signal/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { GroundModel } from '../ground-model/index.js';
2
2
  import { type StandardProfileId } from '../standards/index.js';
3
3
  export type GroundModelFindingSeverity = 'blocking' | 'review' | 'info';
4
- export type GroundModelCalculationWorkflow = 'bearing-capacity' | 'settlement' | 'fem-foundation-settlement' | 'fem-excavation-deformation' | 'pile-capacity' | 'liquefaction' | 'slope-stability';
4
+ export type GroundModelCalculationWorkflow = 'bearing-capacity' | 'settlement' | 'fem-foundation-settlement' | 'fem-excavation-deformation' | 'fem-tunnel-volume-loss-settlement' | 'fem-shaft-deformation' | 'fem-pile-group-elastic-interaction' | 'fem-slope-embankment-deformation' | 'fem-retaining-wall-excavation-support' | 'fem-seepage-groundwater-coupling' | 'fem-staged-settlement-consolidation' | 'pile-capacity' | 'liquefaction' | 'slope-stability';
5
5
  export type GroundModelCalculationReadinessStatus = 'ready' | 'ready_with_assumptions' | 'blocked';
6
6
  export interface GroundModelFinding {
7
7
  severity: GroundModelFindingSeverity;
@@ -1 +1 @@
1
- {"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/verifier/findings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExE,MAAM,MAAM,8BAA8B,GACtC,kBAAkB,GAClB,YAAY,GACZ,2BAA2B,GAC3B,4BAA4B,GAC5B,eAAe,GACf,cAAc,GACd,iBAAiB,CAAC;AAEtB,MAAM,MAAM,qCAAqC,GAAG,OAAO,GAAG,wBAAwB,GAAG,SAAS,CAAC;AAEnG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,8BAA8B,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,qCAAqC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,gCAAgC,CAAC;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,8BAA8B,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,sCAAsC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,0BAA0B,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IACvC,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,oBAAoB,EAAE;QACpB,aAAa,EAAE,uCAAuC,CAAC;QACvD,OAAO,EAAE,sCAAsC,CAAC;QAChD,SAAS,EAAE,+BAA+B,EAAE,CAAC;KAC9C,CAAC;CACH;AAMD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CAsGzB"}
1
+ {"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/verifier/findings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExE,MAAM,MAAM,8BAA8B,GACtC,kBAAkB,GAClB,YAAY,GACZ,2BAA2B,GAC3B,4BAA4B,GAC5B,mCAAmC,GACnC,uBAAuB,GACvB,oCAAoC,GACpC,kCAAkC,GAClC,uCAAuC,GACvC,kCAAkC,GAClC,qCAAqC,GACrC,eAAe,GACf,cAAc,GACd,iBAAiB,CAAC;AAEtB,MAAM,MAAM,qCAAqC,GAAG,OAAO,GAAG,wBAAwB,GAAG,SAAS,CAAC;AAEnG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,8BAA8B,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,qCAAqC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,gCAAgC,CAAC;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,8BAA8B,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,sCAAsC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,0BAA0B,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IACvC,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,oBAAoB,EAAE;QACpB,aAAa,EAAE,uCAAuC,CAAC;QACvD,OAAO,EAAE,sCAAsC,CAAC;QAChD,SAAS,EAAE,+BAA+B,EAAE,CAAC;KAC9C,CAAC;CACH;AAMD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CAsGzB"}