@geotechcli/core 0.4.27 → 0.4.29

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 (70) hide show
  1. package/dist/evidence/evidence-ref.d.ts +32 -0
  2. package/dist/evidence/evidence-ref.d.ts.map +1 -0
  3. package/dist/evidence/evidence-ref.js +6 -0
  4. package/dist/evidence/evidence-ref.js.map +1 -0
  5. package/dist/evidence/index.d.ts +2 -0
  6. package/dist/evidence/index.d.ts.map +1 -0
  7. package/dist/evidence/index.js +2 -0
  8. package/dist/evidence/index.js.map +1 -0
  9. package/dist/ground-model/builder.d.ts +7 -0
  10. package/dist/ground-model/builder.d.ts.map +1 -0
  11. package/dist/ground-model/builder.js +401 -0
  12. package/dist/ground-model/builder.js.map +1 -0
  13. package/dist/ground-model/index.d.ts +3 -0
  14. package/dist/ground-model/index.d.ts.map +1 -0
  15. package/dist/ground-model/index.js +2 -0
  16. package/dist/ground-model/index.js.map +1 -0
  17. package/dist/ground-model/model.d.ts +119 -0
  18. package/dist/ground-model/model.d.ts.map +1 -0
  19. package/dist/ground-model/model.js +2 -0
  20. package/dist/ground-model/model.js.map +1 -0
  21. package/dist/index.d.ts +5 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +6 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/meta/metadata.json +1 -1
  26. package/dist/tabular/csv.d.ts +17 -0
  27. package/dist/tabular/csv.d.ts.map +1 -0
  28. package/dist/tabular/csv.js +123 -0
  29. package/dist/tabular/csv.js.map +1 -0
  30. package/dist/tabular/index.d.ts +4 -0
  31. package/dist/tabular/index.d.ts.map +1 -0
  32. package/dist/tabular/index.js +4 -0
  33. package/dist/tabular/index.js.map +1 -0
  34. package/dist/tabular/schema-inference.d.ts +45 -0
  35. package/dist/tabular/schema-inference.d.ts.map +1 -0
  36. package/dist/tabular/schema-inference.js +284 -0
  37. package/dist/tabular/schema-inference.js.map +1 -0
  38. package/dist/tabular/xlsx.d.ts +15 -0
  39. package/dist/tabular/xlsx.d.ts.map +1 -0
  40. package/dist/tabular/xlsx.js +190 -0
  41. package/dist/tabular/xlsx.js.map +1 -0
  42. package/dist/verifier/findings.d.ts +22 -0
  43. package/dist/verifier/findings.d.ts.map +1 -0
  44. package/dist/verifier/findings.js +96 -0
  45. package/dist/verifier/findings.js.map +1 -0
  46. package/dist/verifier/index.d.ts +2 -0
  47. package/dist/verifier/index.d.ts.map +1 -0
  48. package/dist/verifier/index.js +2 -0
  49. package/dist/verifier/index.js.map +1 -0
  50. package/dist/workspace/classifier.d.ts +7 -0
  51. package/dist/workspace/classifier.d.ts.map +1 -0
  52. package/dist/workspace/classifier.js +186 -0
  53. package/dist/workspace/classifier.js.map +1 -0
  54. package/dist/workspace/dossier.d.ts +3 -0
  55. package/dist/workspace/dossier.d.ts.map +1 -0
  56. package/dist/workspace/dossier.js +414 -0
  57. package/dist/workspace/dossier.js.map +1 -0
  58. package/dist/workspace/index.d.ts +5 -0
  59. package/dist/workspace/index.d.ts.map +1 -0
  60. package/dist/workspace/index.js +5 -0
  61. package/dist/workspace/index.js.map +1 -0
  62. package/dist/workspace/manifest.d.ts +63 -0
  63. package/dist/workspace/manifest.d.ts.map +1 -0
  64. package/dist/workspace/manifest.js +7 -0
  65. package/dist/workspace/manifest.js.map +1 -0
  66. package/dist/workspace/scanner.d.ts +3 -0
  67. package/dist/workspace/scanner.d.ts.map +1 -0
  68. package/dist/workspace/scanner.js +254 -0
  69. package/dist/workspace/scanner.js.map +1 -0
  70. package/package.json +1 -1
@@ -0,0 +1,414 @@
1
+ function escapeHtml(value) {
2
+ return String(value ?? '')
3
+ .replace(/&/g, '&')
4
+ .replace(/</g, '&lt;')
5
+ .replace(/>/g, '&gt;')
6
+ .replace(/"/g, '&quot;')
7
+ .replace(/'/g, '&#39;');
8
+ }
9
+ function formatBytes(bytes) {
10
+ if (bytes < 1024)
11
+ return `${bytes} B`;
12
+ if (bytes < 1024 * 1024)
13
+ return `${(bytes / 1024).toFixed(1)} KB`;
14
+ return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
15
+ }
16
+ function percent(confidence) {
17
+ return `${Math.round(confidence * 100)}%`;
18
+ }
19
+ function renderMetric(label, value) {
20
+ return `<div class="metric"><span>${escapeHtml(label)}</span><strong>${escapeHtml(value)}</strong></div>`;
21
+ }
22
+ function renderFileRows(files) {
23
+ return files.map((file) => {
24
+ const schema = file.schemas?.[0];
25
+ const schemaText = schema
26
+ ? `${schema.datasetType}${schema.sheetName ? ` / ${schema.sheetName}` : ''}`
27
+ : file.classification.datasetType;
28
+ return `<tr>
29
+ <td><code>${escapeHtml(file.path)}</code></td>
30
+ <td>${escapeHtml(file.classification.kind)}</td>
31
+ <td>${escapeHtml(schemaText)}</td>
32
+ <td>${escapeHtml(file.classification.branches.join(', ') || '-')}</td>
33
+ <td>${escapeHtml(percent(file.classification.confidence))}</td>
34
+ <td>${escapeHtml(formatBytes(file.sizeBytes))}</td>
35
+ </tr>`;
36
+ }).join('\n');
37
+ }
38
+ function renderSchemaRows(files) {
39
+ const rows = files.flatMap((file) => (file.schemas ?? []).map((schema) => ({
40
+ file,
41
+ schema,
42
+ })));
43
+ if (rows.length === 0) {
44
+ return '<p class="empty">No tabular schemas were sampled in this workspace.</p>';
45
+ }
46
+ return `<table>
47
+ <thead>
48
+ <tr>
49
+ <th>Source</th>
50
+ <th>Schema</th>
51
+ <th>Rows</th>
52
+ <th>Detected Columns</th>
53
+ </tr>
54
+ </thead>
55
+ <tbody>
56
+ ${rows.map(({ file, schema }) => {
57
+ const detected = [
58
+ ...schema.detected.depthColumns.map((column) => `depth:${column}`),
59
+ ...schema.detected.coordinateColumns.map((column) => `coord:${column}`),
60
+ ...schema.detected.sptColumns.map((column) => `SPT:${column}`),
61
+ ...schema.detected.cptColumns.map((column) => `CPT:${column}`),
62
+ ...schema.detected.labColumns.map((column) => `lab:${column}`),
63
+ ...schema.detected.monitoringColumns.map((column) => `monitor:${column}`),
64
+ ].slice(0, 8);
65
+ return `<tr>
66
+ <td><code>${escapeHtml(file.path)}${schema.sheetName ? `#${escapeHtml(schema.sheetName)}` : ''}</code></td>
67
+ <td>${escapeHtml(schema.datasetType)} (${escapeHtml(percent(schema.confidence))})</td>
68
+ <td>${escapeHtml(schema.sampledRowCount)}</td>
69
+ <td>${escapeHtml(detected.join(', ') || 'generic numeric/text table')}</td>
70
+ </tr>`;
71
+ }).join('\n')}
72
+ </tbody>
73
+ </table>`;
74
+ }
75
+ function renderGroundModelSection(manifest) {
76
+ const model = manifest.groundModel;
77
+ if (!model) {
78
+ return '<p class="empty">GroundModel was not generated for this analysis.</p>';
79
+ }
80
+ const boreholeRows = model.boreholes.slice(0, 40).map((borehole) => `<tr>
81
+ <td><code>${escapeHtml(borehole.id)}</code></td>
82
+ <td>${escapeHtml(borehole.coordinates
83
+ ? borehole.coordinates.latitude != null
84
+ ? `${borehole.coordinates.latitude}, ${borehole.coordinates.longitude}`
85
+ : `${borehole.coordinates.easting}, ${borehole.coordinates.northing}`
86
+ : '-')}</td>
87
+ <td>${escapeHtml(borehole.sptTests.length)}</td>
88
+ <td>${escapeHtml(borehole.strata.length)}</td>
89
+ <td>${escapeHtml(borehole.groundwater.length)}</td>
90
+ <td>${escapeHtml(percent(borehole.confidence))}</td>
91
+ </tr>`).join('\n');
92
+ const parameterRows = model.parameters.slice(0, 40).map((parameter) => `<tr>
93
+ <td>${escapeHtml(parameter.name)}</td>
94
+ <td>${escapeHtml(parameter.value)}${parameter.unit ? ` ${escapeHtml(parameter.unit)}` : ''}</td>
95
+ <td>${escapeHtml(parameter.boreholeId ?? '-')}</td>
96
+ <td>${escapeHtml(parameter.sampleId ?? '-')}</td>
97
+ <td>${escapeHtml(parameter.depth ?? '-')}</td>
98
+ <td>${escapeHtml(parameter.evidenceIds.join(', '))}</td>
99
+ </tr>`).join('\n');
100
+ return `
101
+ <div class="metrics">
102
+ ${renderMetric('Boreholes', model.stats.boreholes)}
103
+ ${renderMetric('SPT tests', model.stats.sptTests)}
104
+ ${renderMetric('Lab tests', model.stats.labTests)}
105
+ ${renderMetric('Parameters', model.stats.parameters)}
106
+ ${renderMetric('Evidence refs', model.stats.evidenceRefs)}
107
+ ${renderMetric('Rejected', model.stats.rejectedObservations)}
108
+ </div>
109
+ <div class="subgrid">
110
+ <div>
111
+ <h3>Boreholes</h3>
112
+ ${boreholeRows
113
+ ? `<table><thead><tr><th>ID</th><th>Location</th><th>SPT</th><th>Strata</th><th>GWL</th><th>Confidence</th></tr></thead><tbody>${boreholeRows}</tbody></table>`
114
+ : '<p class="empty">No boreholes were bound to evidence yet.</p>'}
115
+ </div>
116
+ <div>
117
+ <h3>Parameters</h3>
118
+ ${parameterRows
119
+ ? `<table><thead><tr><th>Name</th><th>Value</th><th>BH</th><th>Sample</th><th>Depth</th><th>Evidence</th></tr></thead><tbody>${parameterRows}</tbody></table>`
120
+ : '<p class="empty">No lab or design parameters were bound to evidence yet.</p>'}
121
+ </div>
122
+ </div>
123
+ `;
124
+ }
125
+ function renderVerifierSection(manifest) {
126
+ const verifier = manifest.verifier;
127
+ if (!verifier) {
128
+ return '<p class="empty">Verifier was not run for this analysis.</p>';
129
+ }
130
+ if (verifier.findings.length === 0) {
131
+ return '<p class="empty">No verifier findings. Evidence-bound data passed the current deterministic checks.</p>';
132
+ }
133
+ return `<table>
134
+ <thead>
135
+ <tr>
136
+ <th>Severity</th>
137
+ <th>Code</th>
138
+ <th>Finding</th>
139
+ <th>Evidence</th>
140
+ <th>Recommendation</th>
141
+ </tr>
142
+ </thead>
143
+ <tbody>
144
+ ${verifier.findings.map((finding) => `<tr>
145
+ <td><span class="badge ${escapeHtml(finding.severity)}">${escapeHtml(finding.severity)}</span></td>
146
+ <td><code>${escapeHtml(finding.code)}</code></td>
147
+ <td>${escapeHtml(finding.message)}</td>
148
+ <td>${escapeHtml(finding.evidenceIds.join(', ') || '-')}</td>
149
+ <td>${escapeHtml(finding.recommendation ?? '-')}</td>
150
+ </tr>`).join('\n')}
151
+ </tbody>
152
+ </table>`;
153
+ }
154
+ function renderEvidenceRows(manifest) {
155
+ const evidence = manifest.groundModel?.evidence ?? [];
156
+ if (evidence.length === 0) {
157
+ return '<p class="empty">No evidence references were generated.</p>';
158
+ }
159
+ return `<table>
160
+ <thead>
161
+ <tr>
162
+ <th>ID</th>
163
+ <th>Source</th>
164
+ <th>Location</th>
165
+ <th>Value</th>
166
+ <th>Confidence</th>
167
+ </tr>
168
+ </thead>
169
+ <tbody>
170
+ ${evidence.slice(0, 80).map((ref) => `<tr>
171
+ <td><code>${escapeHtml(ref.id)}</code></td>
172
+ <td><code>${escapeHtml(ref.sourcePath)}</code></td>
173
+ <td>${escapeHtml([
174
+ ref.location.sheetName ? `sheet ${ref.location.sheetName}` : '',
175
+ ref.location.rowNumber ? `row ${ref.location.rowNumber}` : '',
176
+ ref.location.columnName ? `col ${ref.location.columnName}` : '',
177
+ ].filter(Boolean).join(', ') || '-')}</td>
178
+ <td>${escapeHtml(ref.normalizedValue ?? ref.rawValue ?? '-')}</td>
179
+ <td>${escapeHtml(percent(ref.confidence))}</td>
180
+ </tr>`).join('\n')}
181
+ </tbody>
182
+ </table>`;
183
+ }
184
+ export function renderWorkspaceManifestAsHtml(manifest) {
185
+ const title = 'geotechCLI Workspace Dossier';
186
+ const fileRows = renderFileRows(manifest.files);
187
+ const warnings = manifest.warnings.slice(0, 20);
188
+ const verifier = manifest.verifier;
189
+ return `<!doctype html>
190
+ <html lang="en">
191
+ <head>
192
+ <meta charset="utf-8" />
193
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
194
+ <title>${escapeHtml(title)}</title>
195
+ <style>
196
+ :root {
197
+ color-scheme: light;
198
+ --ink: #17201d;
199
+ --muted: #64706b;
200
+ --line: #d8dfdc;
201
+ --soft: #f3f6f4;
202
+ --accent: #006b5a;
203
+ --warning: #8a4b00;
204
+ }
205
+ * { box-sizing: border-box; }
206
+ body {
207
+ margin: 0;
208
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
209
+ color: var(--ink);
210
+ background: #fbfcfb;
211
+ line-height: 1.5;
212
+ }
213
+ main {
214
+ max-width: 1180px;
215
+ margin: 0 auto;
216
+ padding: 40px 22px 64px;
217
+ }
218
+ header {
219
+ border-bottom: 1px solid var(--line);
220
+ padding-bottom: 26px;
221
+ margin-bottom: 28px;
222
+ }
223
+ .eyebrow {
224
+ color: var(--accent);
225
+ font-size: 12px;
226
+ font-weight: 700;
227
+ letter-spacing: .12em;
228
+ text-transform: uppercase;
229
+ }
230
+ h1 {
231
+ margin: 6px 0 8px;
232
+ font-size: clamp(30px, 5vw, 56px);
233
+ line-height: 1.02;
234
+ letter-spacing: 0;
235
+ }
236
+ .subhead {
237
+ max-width: 840px;
238
+ color: var(--muted);
239
+ font-size: 17px;
240
+ }
241
+ section {
242
+ border-top: 1px solid var(--line);
243
+ padding: 28px 0;
244
+ }
245
+ h2 {
246
+ margin: 0 0 14px;
247
+ font-size: 20px;
248
+ letter-spacing: 0;
249
+ }
250
+ .metrics {
251
+ display: grid;
252
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
253
+ gap: 1px;
254
+ background: var(--line);
255
+ border: 1px solid var(--line);
256
+ }
257
+ .metric {
258
+ background: white;
259
+ padding: 16px;
260
+ min-height: 86px;
261
+ }
262
+ .metric span {
263
+ display: block;
264
+ color: var(--muted);
265
+ font-size: 12px;
266
+ }
267
+ .metric strong {
268
+ display: block;
269
+ margin-top: 8px;
270
+ font-size: 28px;
271
+ line-height: 1.1;
272
+ }
273
+ table {
274
+ width: 100%;
275
+ border-collapse: collapse;
276
+ background: white;
277
+ border: 1px solid var(--line);
278
+ overflow-wrap: anywhere;
279
+ }
280
+ th, td {
281
+ padding: 11px 12px;
282
+ border-bottom: 1px solid var(--line);
283
+ text-align: left;
284
+ vertical-align: top;
285
+ font-size: 13px;
286
+ }
287
+ th {
288
+ color: var(--muted);
289
+ background: var(--soft);
290
+ font-size: 12px;
291
+ font-weight: 700;
292
+ }
293
+ code {
294
+ font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
295
+ color: #183d36;
296
+ }
297
+ .list {
298
+ margin: 0;
299
+ padding-left: 18px;
300
+ color: var(--ink);
301
+ }
302
+ .list li { margin: 8px 0; }
303
+ .warning { color: var(--warning); }
304
+ .empty { color: var(--muted); }
305
+ h3 {
306
+ margin: 22px 0 10px;
307
+ font-size: 15px;
308
+ }
309
+ .subgrid {
310
+ display: grid;
311
+ grid-template-columns: 1fr;
312
+ gap: 22px;
313
+ margin-top: 20px;
314
+ }
315
+ .badge {
316
+ display: inline-block;
317
+ min-width: 68px;
318
+ padding: 3px 7px;
319
+ border: 1px solid var(--line);
320
+ font-size: 11px;
321
+ font-weight: 700;
322
+ text-transform: uppercase;
323
+ }
324
+ .badge.blocking { color: #8c1d18; background: #fff0ee; }
325
+ .badge.review { color: #7b4a00; background: #fff7e8; }
326
+ .badge.info { color: #165766; background: #edf8fa; }
327
+ @media (max-width: 720px) {
328
+ main { padding: 26px 14px 46px; }
329
+ table { display: block; overflow-x: auto; }
330
+ th, td { white-space: nowrap; }
331
+ }
332
+ </style>
333
+ </head>
334
+ <body>
335
+ <main>
336
+ <header>
337
+ <div class="eyebrow">geotechCLI analyze</div>
338
+ <h1>Workspace Dossier</h1>
339
+ <p class="subhead">${escapeHtml(manifest.rootPath)}</p>
340
+ </header>
341
+
342
+ <section>
343
+ <h2>Overview</h2>
344
+ <div class="metrics">
345
+ ${renderMetric('Files', manifest.summary.totalFiles)}
346
+ ${renderMetric('Supported', manifest.summary.supportedFiles)}
347
+ ${renderMetric('Tabular', manifest.summary.tabularFiles)}
348
+ ${renderMetric('PDFs', manifest.summary.pdfFiles)}
349
+ ${renderMetric('Branches', manifest.summary.branches.length || '-')}
350
+ ${renderMetric('Skipped', manifest.summary.skippedFiles)}
351
+ ${renderMetric('Verifier', verifier?.status ?? '-')}
352
+ </div>
353
+ </section>
354
+
355
+ <section>
356
+ <h2>Detected Branches</h2>
357
+ <p>${escapeHtml(manifest.summary.branches.join(', ') || 'No branch-specific evidence detected yet.')}</p>
358
+ </section>
359
+
360
+ <section>
361
+ <h2>Recommended Next Steps</h2>
362
+ <ul class="list">
363
+ ${manifest.summary.recommendations.map((item) => `<li>${escapeHtml(item)}</li>`).join('\n')}
364
+ </ul>
365
+ </section>
366
+
367
+ <section>
368
+ <h2>File Manifest</h2>
369
+ <table>
370
+ <thead>
371
+ <tr>
372
+ <th>File</th>
373
+ <th>Kind</th>
374
+ <th>Dataset</th>
375
+ <th>Branches</th>
376
+ <th>Confidence</th>
377
+ <th>Size</th>
378
+ </tr>
379
+ </thead>
380
+ <tbody>${fileRows}</tbody>
381
+ </table>
382
+ </section>
383
+
384
+ <section>
385
+ <h2>Tabular Schemas</h2>
386
+ ${renderSchemaRows(manifest.files)}
387
+ </section>
388
+
389
+ <section>
390
+ <h2>GroundModel</h2>
391
+ ${renderGroundModelSection(manifest)}
392
+ </section>
393
+
394
+ <section>
395
+ <h2>Verifier Findings</h2>
396
+ ${renderVerifierSection(manifest)}
397
+ </section>
398
+
399
+ <section>
400
+ <h2>Evidence Table</h2>
401
+ ${renderEvidenceRows(manifest)}
402
+ </section>
403
+
404
+ <section>
405
+ <h2>Warnings</h2>
406
+ ${warnings.length > 0
407
+ ? `<ul class="list warning">${warnings.map((warning) => `<li>${escapeHtml(warning)}</li>`).join('\n')}</ul>`
408
+ : '<p class="empty">No manifest warnings.</p>'}
409
+ </section>
410
+ </main>
411
+ </body>
412
+ </html>`;
413
+ }
414
+ //# sourceMappingURL=dossier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dossier.js","sourceRoot":"","sources":["../../src/workspace/dossier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { analyzeWorkspace, } from './scanner.js';
2
+ export { classifyWorkspaceFile, } from './classifier.js';
3
+ export { renderWorkspaceManifestAsHtml, } from './dossier.js';
4
+ export { DEFAULT_ANALYZE_WORKSPACE_OPTIONS, type AnalyzeWorkspaceOptions, type ProjectManifest, type ProjectManifestSummary, type WorkspaceDatasetType, type WorkspaceFileClassification, type WorkspaceFileEntry, type WorkspaceFileKind, } from './manifest.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iCAAiC,EACjC,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { analyzeWorkspace, } from './scanner.js';
2
+ export { classifyWorkspaceFile, } from './classifier.js';
3
+ export { renderWorkspaceManifestAsHtml, } from './dossier.js';
4
+ export { DEFAULT_ANALYZE_WORKSPACE_OPTIONS, } from './manifest.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iCAAiC,GAQlC,MAAM,eAAe,CAAC"}
@@ -0,0 +1,63 @@
1
+ import type { TabularSchemaInference } from '../tabular/index.js';
2
+ import type { GroundModel } from '../ground-model/index.js';
3
+ import type { GroundModelVerification } from '../verifier/index.js';
4
+ export type WorkspaceFileKind = 'pdf' | 'csv' | 'xlsx' | 'ags' | 'json' | 'image' | 'gis' | 'cad' | 'office' | 'text' | 'unknown';
5
+ export type WorkspaceDatasetType = 'geotechnical-report' | 'borehole-log' | 'borehole-table' | 'cpt-profile' | 'spt-profile' | 'lab-test-summary' | 'coordinate-table' | 'monitoring-time-series' | 'pile-load-test' | 'signal-record' | 'ags-ground-investigation' | 'map-or-gis' | 'calculation-result' | 'image-evidence' | 'unknown';
6
+ export interface WorkspaceFileClassification {
7
+ kind: WorkspaceFileKind;
8
+ datasetType: WorkspaceDatasetType;
9
+ branches: string[];
10
+ confidence: number;
11
+ signals: string[];
12
+ warnings: string[];
13
+ }
14
+ export interface WorkspaceFileEntry {
15
+ path: string;
16
+ absolutePath: string;
17
+ name: string;
18
+ extension: string;
19
+ sizeBytes: number;
20
+ modifiedAt: string;
21
+ classification: WorkspaceFileClassification;
22
+ schemas?: TabularSchemaInference[];
23
+ }
24
+ export interface ProjectManifestSummary {
25
+ totalFiles: number;
26
+ supportedFiles: number;
27
+ tabularFiles: number;
28
+ pdfFiles: number;
29
+ imageFiles: number;
30
+ skippedFiles: number;
31
+ kinds: Record<string, number>;
32
+ datasetTypes: Record<string, number>;
33
+ branches: string[];
34
+ recommendations: string[];
35
+ }
36
+ export interface ProjectManifest {
37
+ schemaVersion: 'workspace-manifest.v1';
38
+ generatedAt: string;
39
+ rootPath: string;
40
+ requestedBranch?: string;
41
+ requestedStandard?: string;
42
+ files: WorkspaceFileEntry[];
43
+ summary: ProjectManifestSummary;
44
+ groundModel?: GroundModel;
45
+ verifier?: GroundModelVerification;
46
+ warnings: string[];
47
+ }
48
+ export interface AnalyzeWorkspaceOptions {
49
+ maxDepth?: number;
50
+ maxFiles?: number;
51
+ maxSampleBytes?: number;
52
+ maxRows?: number;
53
+ branch?: string;
54
+ standard?: string;
55
+ includeGroundModel?: boolean;
56
+ }
57
+ export declare const DEFAULT_ANALYZE_WORKSPACE_OPTIONS: {
58
+ readonly maxDepth: 5;
59
+ readonly maxFiles: 600;
60
+ readonly maxSampleBytes: 2500000;
61
+ readonly maxRows: 200;
62
+ };
63
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/workspace/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GACzB,KAAK,GACL,KAAK,GACL,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,KAAK,GACL,KAAK,GACL,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,eAAe,GACf,0BAA0B,GAC1B,YAAY,GACZ,oBAAoB,GACpB,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,oBAAoB,CAAC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,2BAA2B,CAAC;IAC5C,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,uBAAuB,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,OAAO,EAAE,sBAAsB,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,iCAAiC;;;;;CAKpC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const DEFAULT_ANALYZE_WORKSPACE_OPTIONS = {
2
+ maxDepth: 5,
3
+ maxFiles: 600,
4
+ maxSampleBytes: 2_500_000,
5
+ maxRows: 200,
6
+ };
7
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/workspace/manifest.ts"],"names":[],"mappings":"AA0FA,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,GAAG;IACb,cAAc,EAAE,SAAS;IACzB,OAAO,EAAE,GAAG;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type AnalyzeWorkspaceOptions, type ProjectManifest } from './manifest.js';
2
+ export declare function analyzeWorkspace(workspacePath: string, options?: AnalyzeWorkspaceOptions): Promise<ProjectManifest>;
3
+ //# sourceMappingURL=scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/workspace/scanner.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EAErB,MAAM,eAAe,CAAC;AAsMvB,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,eAAe,CAAC,CA6F1B"}