@geotechcli/core 0.4.90 → 0.4.92

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 (87) hide show
  1. package/dist/agents/brain.d.ts +2 -0
  2. package/dist/agents/brain.d.ts.map +1 -1
  3. package/dist/agents/brain.js +92 -2
  4. package/dist/agents/brain.js.map +1 -1
  5. package/dist/agents/data-tools.js +1 -6
  6. package/dist/agents/data-tools.js.map +1 -1
  7. package/dist/agents/fem-tools.js +99 -3
  8. package/dist/agents/fem-tools.js.map +1 -1
  9. package/dist/agents/safety.d.ts.map +1 -1
  10. package/dist/agents/safety.js +35 -2
  11. package/dist/agents/safety.js.map +1 -1
  12. package/dist/agents/swarm-planner.js +2 -2
  13. package/dist/agents/swarm-planner.js.map +1 -1
  14. package/dist/agents/swarm.d.ts.map +1 -1
  15. package/dist/agents/swarm.js +3 -0
  16. package/dist/agents/swarm.js.map +1 -1
  17. package/dist/agents/tool-normalization.d.ts.map +1 -1
  18. package/dist/agents/tool-normalization.js +372 -0
  19. package/dist/agents/tool-normalization.js.map +1 -1
  20. package/dist/config/index.d.ts.map +1 -1
  21. package/dist/config/index.js +4 -4
  22. package/dist/config/index.js.map +1 -1
  23. package/dist/fem/ground-model-draft.d.ts +19 -0
  24. package/dist/fem/ground-model-draft.d.ts.map +1 -1
  25. package/dist/fem/ground-model-draft.js +273 -6
  26. package/dist/fem/ground-model-draft.js.map +1 -1
  27. package/dist/fem/index.d.ts +3 -1
  28. package/dist/fem/index.d.ts.map +1 -1
  29. package/dist/fem/index.js +3 -1
  30. package/dist/fem/index.js.map +1 -1
  31. package/dist/fem/production-readiness.d.ts +34 -0
  32. package/dist/fem/production-readiness.d.ts.map +1 -0
  33. package/dist/fem/production-readiness.js +174 -0
  34. package/dist/fem/production-readiness.js.map +1 -0
  35. package/dist/fem/routing.js +3 -3
  36. package/dist/fem/routing.js.map +1 -1
  37. package/dist/fem/scenario-validation.d.ts +53 -0
  38. package/dist/fem/scenario-validation.d.ts.map +1 -0
  39. package/dist/fem/scenario-validation.js +125 -0
  40. package/dist/fem/scenario-validation.js.map +1 -0
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/ingest/document-evidence-packet.d.ts +50 -50
  46. package/dist/ingest/geotech-benchmark-corpus.d.ts +124 -2
  47. package/dist/ingest/geotech-benchmark-corpus.d.ts.map +1 -1
  48. package/dist/ingest/geotech-benchmark-corpus.js +420 -55
  49. package/dist/ingest/geotech-benchmark-corpus.js.map +1 -1
  50. package/dist/ingest/geotech-document-benchmark.d.ts +4 -0
  51. package/dist/ingest/geotech-document-benchmark.d.ts.map +1 -1
  52. package/dist/ingest/geotech-document-benchmark.js +196 -41
  53. package/dist/ingest/geotech-document-benchmark.js.map +1 -1
  54. package/dist/ingest/index.d.ts +2 -1
  55. package/dist/ingest/index.d.ts.map +1 -1
  56. package/dist/ingest/index.js +2 -1
  57. package/dist/ingest/index.js.map +1 -1
  58. package/dist/ingest/preprocessing-fixture-benchmark.d.ts +175 -0
  59. package/dist/ingest/preprocessing-fixture-benchmark.d.ts.map +1 -0
  60. package/dist/ingest/preprocessing-fixture-benchmark.js +598 -0
  61. package/dist/ingest/preprocessing-fixture-benchmark.js.map +1 -0
  62. package/dist/llm/byok-benchmark.d.ts +61 -0
  63. package/dist/llm/byok-benchmark.d.ts.map +1 -1
  64. package/dist/llm/byok-benchmark.js +382 -6
  65. package/dist/llm/byok-benchmark.js.map +1 -1
  66. package/dist/llm/index.d.ts +1 -1
  67. package/dist/llm/index.d.ts.map +1 -1
  68. package/dist/llm/index.js +1 -1
  69. package/dist/llm/index.js.map +1 -1
  70. package/dist/meta/metadata.json +1 -1
  71. package/dist/signal/index.d.ts +112 -0
  72. package/dist/signal/index.d.ts.map +1 -1
  73. package/dist/signal/index.js +648 -1
  74. package/dist/signal/index.js.map +1 -1
  75. package/dist/standards/index.d.ts +6 -0
  76. package/dist/standards/index.d.ts.map +1 -1
  77. package/dist/standards/index.js +243 -0
  78. package/dist/standards/index.js.map +1 -1
  79. package/dist/verifier/findings.d.ts +6 -0
  80. package/dist/verifier/findings.d.ts.map +1 -1
  81. package/dist/verifier/findings.js +192 -1
  82. package/dist/verifier/findings.js.map +1 -1
  83. package/dist/verifier/index.d.ts +1 -1
  84. package/dist/verifier/index.d.ts.map +1 -1
  85. package/dist/verifier/index.js +1 -1
  86. package/dist/verifier/index.js.map +1 -1
  87. package/package.json +1 -1
@@ -1,5 +1,48 @@
1
1
  import { verifyGroundModel } from '../verifier/index.js';
2
2
  import { prepareFemAnalysisCaseDraft, } from './routing.js';
3
+ const CONTRACT_ONLY_BLOCKED_UNTIL = [
4
+ 'deterministic-analysis-case-schema-accepted',
5
+ 'solver-or-preview-backend-implemented',
6
+ 'result-manifest-validator-implemented',
7
+ 'webgl-renderer-smoke-added',
8
+ 'acceptance-fixture-approved',
9
+ ];
10
+ const CONTRACT_ONLY_DISALLOWED_ACTIONS = [
11
+ 'run-solver',
12
+ 'create-analysis-case',
13
+ 'render-webgl',
14
+ 'invent-results',
15
+ ];
16
+ const FEM_PROHIBITED_RAW_PAYLOAD_KEYS = new Set([
17
+ 'apiKey',
18
+ 'authorization',
19
+ 'headers',
20
+ 'messages',
21
+ 'model',
22
+ 'modelId',
23
+ 'prompt',
24
+ 'provider',
25
+ 'request',
26
+ 'response',
27
+ 'rawText',
28
+ 'sourceEvidence',
29
+ 'sourceEvidenceSnippet',
30
+ 'sourceEvidenceSnippets',
31
+ 'token',
32
+ 'visionModelId',
33
+ ]);
34
+ const FEM_PROHIBITED_EXECUTION_RESULT_KEYS = new Set([
35
+ 'analysisResult',
36
+ 'caseOutput',
37
+ 'caseOutputPath',
38
+ 'modelCalls',
39
+ 'resultManifest',
40
+ 'renderedWebgl',
41
+ 'solverOutput',
42
+ 'webglArtifact',
43
+ 'webglHtml',
44
+ 'webglOutput',
45
+ ]);
3
46
  function isRecord(value) {
4
47
  return !!value && typeof value === 'object' && !Array.isArray(value);
5
48
  }
@@ -56,7 +99,7 @@ function mapGroundModelEvidenceRef(evidence, id) {
56
99
  }
57
100
  return {
58
101
  id: evidence.id,
59
- source: evidence.sourcePath || evidence.location.filePath || 'GroundModel',
102
+ source: sanitizeFemEvidenceSource(evidence.sourcePath || evidence.location.filePath),
60
103
  page: evidence.location.pageNumber,
61
104
  note: [
62
105
  evidence.method,
@@ -205,14 +248,17 @@ function buildExecutionBoundary(command, draft) {
205
248
  const humanRunCommand = draft.recommendedAction === 'run-reviewed-case'
206
249
  ? draft.recommendedCommand
207
250
  : undefined;
208
- const blockedReasons = [
209
- ...draft.missingUserInputs,
210
- ...(draft.contractReadiness?.blockedUntil ?? []),
211
- ...draft.reviewGates.filter((gate) => gate === 'missing-user-inputs'
251
+ const blockedReviewGates = draft.capability.executionMode === 'contract-only'
252
+ ? draft.reviewGates
253
+ : draft.reviewGates.filter((gate) => gate === 'missing-user-inputs'
212
254
  || gate === 'planned-only'
213
255
  || gate === 'solver-backend-not-implemented'
214
256
  || gate === 'agent-run-disabled'
215
- || gate === 'human-review-required'),
257
+ || gate === 'human-review-required');
258
+ const blockedReasons = [
259
+ ...draft.missingUserInputs,
260
+ ...(draft.contractReadiness?.blockedUntil ?? []),
261
+ ...blockedReviewGates,
216
262
  ];
217
263
  return {
218
264
  schemaVersion: 'fem-ground-model-execution-boundary.v1',
@@ -263,4 +309,225 @@ export function buildFemDraftCandidateFromReadiness(workflow, groundModel) {
263
309
  executionBoundary: buildExecutionBoundary(command, draft),
264
310
  };
265
311
  }
312
+ export function validateFemGroundModelDraftCandidate(candidate) {
313
+ const blockers = [];
314
+ const warnings = [];
315
+ const boundary = candidate.executionBoundary;
316
+ const draft = candidate.draft;
317
+ if (candidate.canAutoProceed !== false || draft.canAutoProceed !== false) {
318
+ blockers.push('fem_candidate_auto_proceed_enabled');
319
+ }
320
+ if (!candidate.command.startsWith('geotech fem draft ')) {
321
+ blockers.push('fem_candidate_command_not_draft');
322
+ }
323
+ if (/\bfem run\b/i.test(candidate.command) || /\bfem run\b/i.test(boundary.draftCommand)) {
324
+ blockers.push('fem_candidate_run_command_exposed');
325
+ }
326
+ if (boundary.agentRunAllowed !== false || draft.capability.agentRunAllowed !== false) {
327
+ blockers.push('fem_candidate_agent_run_enabled');
328
+ }
329
+ if (boundary.agentWebglRenderAllowed !== false) {
330
+ blockers.push('fem_candidate_agent_webgl_enabled');
331
+ }
332
+ if (boundary.agentResultManifestAllowed !== false) {
333
+ blockers.push('fem_candidate_agent_result_manifest_enabled');
334
+ }
335
+ if (boundary.humanReviewRequired !== true) {
336
+ blockers.push('fem_candidate_human_review_not_required');
337
+ }
338
+ if (draft.capability.executionMode === 'contract-only') {
339
+ if (draft.recommendedAction !== 'contract-only') {
340
+ blockers.push('fem_contract_route_not_contract_only');
341
+ }
342
+ if (draft.analysisCase != null || boundary.caseOutputAvailable) {
343
+ blockers.push('fem_contract_route_case_output_available');
344
+ }
345
+ if (boundary.humanRunCommand != null) {
346
+ blockers.push('fem_contract_route_human_run_command_available');
347
+ }
348
+ if (boundary.draftCommand.includes('--case-output')) {
349
+ blockers.push('fem_contract_route_case_output_flag_exposed');
350
+ }
351
+ const contract = draft.contractReadiness;
352
+ if (!contract) {
353
+ blockers.push('fem_contract_route_missing_contract_readiness');
354
+ }
355
+ else {
356
+ for (const requirement of CONTRACT_ONLY_BLOCKED_UNTIL) {
357
+ if (!contract.blockedUntil.includes(requirement)) {
358
+ blockers.push(`fem_contract_route_missing_blocked_until_${requirement}`);
359
+ }
360
+ }
361
+ for (const action of CONTRACT_ONLY_DISALLOWED_ACTIONS) {
362
+ if (!contract.disallowedAgentActions.includes(action)) {
363
+ blockers.push(`fem_contract_route_missing_disallowed_action_${action}`);
364
+ }
365
+ }
366
+ if (!contract.reviewGates.includes('agent-run-disabled')) {
367
+ blockers.push('fem_contract_route_missing_agent_run_gate');
368
+ }
369
+ if (!contract.reviewGates.includes('solver-backend-not-implemented')) {
370
+ blockers.push('fem_contract_route_missing_solver_backend_gate');
371
+ }
372
+ if (!contract.reviewGates.includes('human-review-required')) {
373
+ blockers.push('fem_contract_route_missing_human_review_gate');
374
+ }
375
+ }
376
+ }
377
+ else if (draft.recommendedAction === 'run-reviewed-case') {
378
+ if (!draft.analysisCase || !boundary.caseOutputAvailable) {
379
+ blockers.push('fem_preview_route_missing_reviewable_case_output');
380
+ }
381
+ if (!boundary.humanRunCommand?.startsWith('geotech fem run ')) {
382
+ blockers.push('fem_preview_route_missing_human_run_command');
383
+ }
384
+ if (draft.validation?.status === 'blocked') {
385
+ blockers.push('fem_preview_route_validation_blocked_but_runnable');
386
+ }
387
+ }
388
+ else if (boundary.humanRunCommand != null || boundary.caseOutputAvailable) {
389
+ blockers.push('fem_preview_route_unreviewed_run_boundary_exposed');
390
+ }
391
+ for (const keyPath of collectFemRawPayloadKeys(candidate)) {
392
+ blockers.push(`fem_candidate_raw_payload_key_${sanitizeBlockerCode(keyPath)}`);
393
+ }
394
+ for (const keyPath of collectFemExecutionResultKeys(candidate)) {
395
+ blockers.push(`fem_candidate_execution_result_payload_key_${sanitizeBlockerCode(keyPath)}`);
396
+ }
397
+ for (const leakPath of collectFemPrivateLeaks(candidate)) {
398
+ blockers.push(`fem_candidate_private_path_or_token_leak_${sanitizeBlockerCode(leakPath)}`);
399
+ }
400
+ if ((candidate.bridge.input.evidenceRefs?.length ?? 0) === 0 && candidate.evidenceIds.length > 0) {
401
+ warnings.push('fem_candidate_evidence_ids_not_mapped_to_refs');
402
+ }
403
+ return {
404
+ schemaVersion: 'fem-ground-model-draft-candidate-validation.v1',
405
+ status: blockers.length === 0 ? 'accepted' : 'blocked',
406
+ blockerCodes: [...new Set(blockers)],
407
+ warnings,
408
+ };
409
+ }
410
+ export function validateFemWorkspaceToRunAcceptance(candidate) {
411
+ const blockers = [];
412
+ const draft = candidate.draft;
413
+ const boundary = candidate.executionBoundary;
414
+ const evidenceIds = [...new Set([
415
+ ...candidate.evidenceIds,
416
+ ...(candidate.bridge.input.evidenceRefs ?? []).map((ref) => ref.id),
417
+ ...(draft.analysisCase?.evidenceRefs ?? []).map((ref) => ref.id),
418
+ ])];
419
+ if (draft.capability.executionMode !== 'human-reviewed-preview') {
420
+ blockers.push('fem_workspace_route_not_runnable_preview');
421
+ }
422
+ if (draft.capability.status !== 'implemented-demo') {
423
+ blockers.push('fem_workspace_route_backend_not_implemented');
424
+ }
425
+ if (candidate.status !== 'ready') {
426
+ blockers.push(`fem_workspace_ground_model_${candidate.status}`);
427
+ }
428
+ if (candidate.missingUserInputs.length > 0 || candidate.bridge.readiness.missingUserInputs.length > 0) {
429
+ blockers.push('fem_workspace_user_inputs_missing');
430
+ }
431
+ if (!draft.analysisCase || !boundary.caseOutputAvailable) {
432
+ blockers.push('fem_workspace_case_output_not_available');
433
+ }
434
+ if (draft.recommendedAction !== 'run-reviewed-case') {
435
+ blockers.push('fem_workspace_draft_not_recommended_for_reviewed_run');
436
+ }
437
+ if (!boundary.humanRunCommand?.startsWith('geotech fem run ') || !boundary.humanRunCommand.includes('--experimental') || !boundary.humanRunCommand.includes('--reviewed')) {
438
+ blockers.push('fem_workspace_reviewed_run_command_missing');
439
+ }
440
+ if (boundary.humanReviewRequired !== true) {
441
+ blockers.push('fem_workspace_human_review_not_required');
442
+ }
443
+ if (evidenceIds.length === 0 || (candidate.bridge.input.evidenceRefs?.length ?? 0) === 0) {
444
+ blockers.push('fem_workspace_evidence_traceability_missing');
445
+ }
446
+ if (draft.validation?.status === 'blocked' || (draft.validation?.blockers ?? 0) > 0) {
447
+ blockers.push('fem_workspace_validation_blocked');
448
+ }
449
+ if (draft.analysisCase?.experimental !== true) {
450
+ blockers.push('fem_workspace_experimental_gate_missing');
451
+ }
452
+ const reviewCodes = [
453
+ ...draft.reviewGates,
454
+ ...(draft.validation?.findings ?? [])
455
+ .filter((finding) => finding.severity === 'review')
456
+ .map((finding) => finding.code),
457
+ ];
458
+ return {
459
+ schemaVersion: 'fem-workspace-to-run-acceptance.v1',
460
+ status: blockers.length === 0 ? 'accepted' : 'blocked',
461
+ objective: candidate.objective,
462
+ workflow: candidate.workflow,
463
+ caseOutputAvailable: boundary.caseOutputAvailable,
464
+ ...(boundary.humanRunCommand ? { humanRunCommand: boundary.humanRunCommand } : {}),
465
+ blockerCodes: [...new Set(blockers)],
466
+ reviewCodes: [...new Set(reviewCodes)],
467
+ evidenceIds,
468
+ };
469
+ }
470
+ function sanitizeFemEvidenceSource(value) {
471
+ if (!value) {
472
+ return 'GroundModel';
473
+ }
474
+ return isAbsoluteLocalPath(value) || hasSecretLikeValue(value)
475
+ ? basenameLike(value) || 'GroundModel'
476
+ : value;
477
+ }
478
+ function collectFemRawPayloadKeys(value) {
479
+ return collectFemProhibitedKeys(value, FEM_PROHIBITED_RAW_PAYLOAD_KEYS);
480
+ }
481
+ function collectFemExecutionResultKeys(value) {
482
+ return collectFemProhibitedKeys(value, FEM_PROHIBITED_EXECUTION_RESULT_KEYS);
483
+ }
484
+ function collectFemProhibitedKeys(value, prohibitedKeys) {
485
+ const paths = [];
486
+ walkUnknown(value, (entry, path) => {
487
+ if (!isRecord(entry)) {
488
+ return;
489
+ }
490
+ for (const key of Object.keys(entry)) {
491
+ if (prohibitedKeys.has(key)) {
492
+ paths.push(path ? `${path}.${key}` : key);
493
+ }
494
+ }
495
+ });
496
+ return paths;
497
+ }
498
+ function collectFemPrivateLeaks(value) {
499
+ const paths = [];
500
+ walkUnknown(value, (entry, path) => {
501
+ if (typeof entry === 'string' && (isAbsoluteLocalPath(entry) || hasSecretLikeValue(entry))) {
502
+ paths.push(path || '<root>');
503
+ }
504
+ });
505
+ return paths;
506
+ }
507
+ function walkUnknown(value, visit, path = '') {
508
+ visit(value, path);
509
+ if (Array.isArray(value)) {
510
+ value.forEach((item, index) => walkUnknown(item, visit, `${path}[${index}]`));
511
+ return;
512
+ }
513
+ if (!isRecord(value)) {
514
+ return;
515
+ }
516
+ for (const [key, entry] of Object.entries(value)) {
517
+ walkUnknown(entry, visit, path ? `${path}.${key}` : key);
518
+ }
519
+ }
520
+ function isAbsoluteLocalPath(value) {
521
+ return /^[A-Za-z]:[\\/]/.test(value) || /^\/(?:home|Users|tmp|var|mnt)\//i.test(value);
522
+ }
523
+ function hasSecretLikeValue(value) {
524
+ return /(?:sk-(?:or-)?[A-Za-z0-9_-]{12,}|api[_-]?key\s*[:=]\s*[A-Za-z0-9_-]{12,}|token\s*[:=]\s*[A-Za-z0-9_-]{12,})/i.test(value);
525
+ }
526
+ function basenameLike(value) {
527
+ const normalized = value.replace(/\\/g, '/');
528
+ return normalized.split('/').filter(Boolean).pop() ?? '';
529
+ }
530
+ function sanitizeBlockerCode(value) {
531
+ return value.replace(/[^A-Za-z0-9]+/g, '_').replace(/^_+|_+$/g, '');
532
+ }
266
533
  //# sourceMappingURL=ground-model-draft.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ground-model-draft.js","sourceRoot":"","sources":["../../src/fem/ground-model-draft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ground-model-draft.js","sourceRoot":"","sources":["../../src/fem/ground-model-draft.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  export * from './types.js';
2
2
  export { buildExcavationDemoAnalysisCase, buildRaftDemoAnalysisCase, buildTunnelVolumeLossDemoAnalysisCase, runBuiltinElasticExcavationDemo, runBuiltinElasticRaftDemo, runBuiltinTunnelVolumeLossDemo, } from './demo.js';
3
3
  export { getFemCapability, listFemCapabilities, prepareFemAnalysisCaseDraft, type FemAnalysisCaseDraft, type FemCapability, type FemCapabilityStatus, type FemRouteObjective, type PrepareFemAnalysisCaseDraftInput, } from './routing.js';
4
- export { buildFemDraftCandidateFromReadiness, buildFemDraftCandidatesFromGroundModel, buildFemDraftInputFromReadiness, mapGroundModelEvidenceRefs, stripPlaceholderFemValues, type FemGroundModelDraftCandidate, type FemGroundModelDraftBridge, type FemGroundModelExecutionBoundary, } from './ground-model-draft.js';
4
+ export { buildFemDraftCandidateFromReadiness, buildFemDraftCandidatesFromGroundModel, buildFemDraftInputFromReadiness, mapGroundModelEvidenceRefs, stripPlaceholderFemValues, validateFemGroundModelDraftCandidate, validateFemWorkspaceToRunAcceptance, type FemGroundModelDraftCandidate, type FemGroundModelDraftCandidateValidation, type FemGroundModelDraftBridge, type FemGroundModelExecutionBoundary, type FemWorkspaceToRunAcceptance, } from './ground-model-draft.js';
5
5
  export { validateFemAnalysisCase, validateFemResultManifest } from './validation.js';
6
+ export { validateFemScenarioResult, validateFemScenarioSuite, type FemScenarioExpectation, type FemScenarioMetric, type FemScenarioRangeExpectation, type FemScenarioRun, type FemScenarioSuiteValidation, type FemScenarioTrendExpectation, type FemScenarioValidation, } from './scenario-validation.js';
7
+ export { assessFemProductionReadiness, type FemProductionFeature, type FemProductionFeatureRequirement, type FemProductionReadinessReport, } from './production-readiness.js';
6
8
  export { renderFemWebglHtml } from './webgl.js';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fem/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,qCAAqC,EACrC,+BAA+B,EAC/B,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gCAAgC,GACtC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mCAAmC,EACnC,sCAAsC,EACtC,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fem/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,qCAAqC,EACrC,+BAA+B,EAC/B,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gCAAgC,GACtC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mCAAmC,EACnC,sCAAsC,EACtC,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EACzB,oCAAoC,EACpC,mCAAmC,EACnC,KAAK,4BAA4B,EACjC,KAAK,sCAAsC,EAC3C,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
package/dist/fem/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  export * from './types.js';
2
2
  export { buildExcavationDemoAnalysisCase, buildRaftDemoAnalysisCase, buildTunnelVolumeLossDemoAnalysisCase, runBuiltinElasticExcavationDemo, runBuiltinElasticRaftDemo, runBuiltinTunnelVolumeLossDemo, } from './demo.js';
3
3
  export { getFemCapability, listFemCapabilities, prepareFemAnalysisCaseDraft, } from './routing.js';
4
- export { buildFemDraftCandidateFromReadiness, buildFemDraftCandidatesFromGroundModel, buildFemDraftInputFromReadiness, mapGroundModelEvidenceRefs, stripPlaceholderFemValues, } from './ground-model-draft.js';
4
+ export { buildFemDraftCandidateFromReadiness, buildFemDraftCandidatesFromGroundModel, buildFemDraftInputFromReadiness, mapGroundModelEvidenceRefs, stripPlaceholderFemValues, validateFemGroundModelDraftCandidate, validateFemWorkspaceToRunAcceptance, } from './ground-model-draft.js';
5
5
  export { validateFemAnalysisCase, validateFemResultManifest } from './validation.js';
6
+ export { validateFemScenarioResult, validateFemScenarioSuite, } from './scenario-validation.js';
7
+ export { assessFemProductionReadiness, } from './production-readiness.js';
6
8
  export { renderFemWebglHtml } from './webgl.js';
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fem/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,qCAAqC,EACrC,+BAA+B,EAC/B,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,GAM5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mCAAmC,EACnC,sCAAsC,EACtC,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,GAI1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fem/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,qCAAqC,EACrC,+BAA+B,EAC/B,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,GAM5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mCAAmC,EACnC,sCAAsC,EACtC,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EACzB,oCAAoC,EACpC,mCAAmC,GAMpC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GAQzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4BAA4B,GAI7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type FemRouteObjective } from './routing.js';
2
+ export type FemProductionFeature = 'nonlinear-plasticity' | 'consolidation' | 'seepage-pore-pressure-coupling' | 'advanced-staged-construction' | 'support-design' | 'real-project-workspace-to-run-acceptance' | 'independent-benchmark-validation' | 'licensed-engineer-review-workflow';
3
+ export interface FemProductionFeatureRequirement {
4
+ feature: FemProductionFeature;
5
+ status: 'missing' | 'preview-only' | 'accepted';
6
+ currentCoverage: string;
7
+ requiredForAcceptance: string[];
8
+ blockedUntil: string[];
9
+ }
10
+ export interface FemProductionReadinessReport {
11
+ schemaVersion: 'fem-production-readiness.v1';
12
+ productionReady: false;
13
+ status: 'blocked';
14
+ objective?: FemRouteObjective;
15
+ requestedFeatures: FemProductionFeature[];
16
+ currentMode: 'experimental-preview' | 'contract-only' | 'mixed';
17
+ supportedPreviewRoutes: Array<{
18
+ objective: FemRouteObjective;
19
+ deterministicBackend: string | null;
20
+ executionMode: string;
21
+ draftCommandTemplate?: string;
22
+ demoCommand?: string;
23
+ runCommandTemplate?: string;
24
+ }>;
25
+ blockedFeatures: FemProductionFeatureRequirement[];
26
+ blockers: string[];
27
+ safeUserActions: string[];
28
+ releasePositioning: string;
29
+ }
30
+ export declare function assessFemProductionReadiness(options?: {
31
+ objective?: FemRouteObjective;
32
+ requestedFeatures?: readonly FemProductionFeature[];
33
+ }): FemProductionReadinessReport;
34
+ //# sourceMappingURL=production-readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-readiness.d.ts","sourceRoot":"","sources":["../../src/fem/production-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAC5B,sBAAsB,GACtB,eAAe,GACf,gCAAgC,GAChC,8BAA8B,GAC9B,gBAAgB,GAChB,0CAA0C,GAC1C,kCAAkC,GAClC,mCAAmC,CAAC;AAExC,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,6BAA6B,CAAC;IAC7C,eAAe,EAAE,KAAK,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;IAC1C,WAAW,EAAE,sBAAsB,GAAG,eAAe,GAAG,OAAO,CAAC;IAChE,sBAAsB,EAAE,KAAK,CAAC;QAC5B,SAAS,EAAE,iBAAiB,CAAC;QAC7B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC;QACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,eAAe,EAAE,+BAA+B,EAAE,CAAC;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAgID,wBAAgB,4BAA4B,CAAC,OAAO,GAAE;IACpD,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,iBAAiB,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAChD,GAAG,4BAA4B,CAiDpC"}
@@ -0,0 +1,174 @@
1
+ import { listFemCapabilities } from './routing.js';
2
+ const ALL_PRODUCTION_FEATURES = [
3
+ 'nonlinear-plasticity',
4
+ 'consolidation',
5
+ 'seepage-pore-pressure-coupling',
6
+ 'advanced-staged-construction',
7
+ 'support-design',
8
+ 'real-project-workspace-to-run-acceptance',
9
+ 'independent-benchmark-validation',
10
+ 'licensed-engineer-review-workflow',
11
+ ];
12
+ const FEATURE_REQUIREMENTS = {
13
+ 'nonlinear-plasticity': {
14
+ status: 'missing',
15
+ currentCoverage: 'Current FEM preview materials are linear elastic only.',
16
+ requiredForAcceptance: [
17
+ 'constitutive models accepted for geotechnical use, such as Mohr-Coulomb/Hardening Soil or equivalent',
18
+ 'stress-path, yield, plastic strain, and convergence validation fixtures',
19
+ 'independent benchmark comparison against published or commercial-solver reference cases',
20
+ ],
21
+ blockedUntil: [
22
+ 'nonlinear-constitutive-backend-implemented',
23
+ 'plasticity-benchmark-suite-approved',
24
+ 'solver-convergence-audit-passed',
25
+ ],
26
+ },
27
+ consolidation: {
28
+ status: 'missing',
29
+ currentCoverage: 'Current previews do not solve time-dependent consolidation, drainage, or creep.',
30
+ requiredForAcceptance: [
31
+ 'time-stepping consolidation backend with drainage boundary controls',
32
+ 'Cv, mv/Cc, drainage path, stage duration, and monitoring calibration schema',
33
+ 'settlement-time benchmark fixtures and tolerance envelopes',
34
+ ],
35
+ blockedUntil: [
36
+ 'consolidation-time-stepping-backend-implemented',
37
+ 'drainage-boundary-validation-approved',
38
+ 'settlement-time-benchmark-suite-approved',
39
+ ],
40
+ },
41
+ 'seepage-pore-pressure-coupling': {
42
+ status: 'missing',
43
+ currentCoverage: 'Current previews record groundwater assumptions but do not solve pore pressure, seepage, uplift, or coupling.',
44
+ requiredForAcceptance: [
45
+ 'steady/transient seepage solver with hydraulic boundary conditions',
46
+ 'pore-pressure coupling into effective stress/deformation calculations',
47
+ 'uplift, gradient, and dewatering acceptance checks',
48
+ ],
49
+ blockedUntil: [
50
+ 'seepage-solver-implemented',
51
+ 'hydro-mechanical-coupling-accepted',
52
+ 'pore-pressure-benchmark-suite-approved',
53
+ ],
54
+ },
55
+ 'advanced-staged-construction': {
56
+ status: 'preview-only',
57
+ currentCoverage: 'Excavation preview includes deterministic stage visualization and proxies, but not production construction sequencing or nonlinear path-dependence.',
58
+ requiredForAcceptance: [
59
+ 'construction-stage activation/deactivation model with support installation/removal',
60
+ 'stage-specific boundary, load, groundwater, and material state transitions',
61
+ 'path-dependent validation fixtures for excavation and embankment cases',
62
+ ],
63
+ blockedUntil: [
64
+ 'stage-activation-backend-implemented',
65
+ 'support-installation-sequence-validator-approved',
66
+ 'path-dependent-stage-benchmark-suite-approved',
67
+ ],
68
+ },
69
+ 'support-design': {
70
+ status: 'missing',
71
+ currentCoverage: 'Current excavation preview reports support reaction proxies only; it does not design struts, anchors, walls, or basal-heave resistance.',
72
+ requiredForAcceptance: [
73
+ 'wall/strut/anchor structural design checks with explicit standards assumptions',
74
+ 'basal heave, kick-out, surcharge, and toe embedment verification',
75
+ 'support reaction benchmark and safety-factor audit fixtures',
76
+ ],
77
+ blockedUntil: [
78
+ 'support-design-engine-implemented',
79
+ 'basal-heave-and-toe-checks-approved',
80
+ 'support-design-benchmark-suite-approved',
81
+ ],
82
+ },
83
+ 'real-project-workspace-to-run-acceptance': {
84
+ status: 'preview-only',
85
+ currentCoverage: 'Workspace evidence can prefill material, groundwater, and traceability, but geometry, loads, staging, and approval remain explicit review gates.',
86
+ requiredForAcceptance: [
87
+ 'evidence-bound workspace candidate with no missing user inputs',
88
+ 'reviewed analysis case with validation blockers equal to zero',
89
+ 'human-reviewed run command using --experimental --reviewed until a production solver exists',
90
+ ],
91
+ blockedUntil: [
92
+ 'workspace-to-run-acceptance-validator-enforced',
93
+ 'case-output-evidence-traceability-approved',
94
+ 'human-review-record-persisted',
95
+ ],
96
+ },
97
+ 'independent-benchmark-validation': {
98
+ status: 'preview-only',
99
+ currentCoverage: 'Current fixtures verify deterministic preview envelopes and monotonic trends, not full production benchmark equivalence.',
100
+ requiredForAcceptance: [
101
+ 'published analytical and numerical benchmark corpus by route',
102
+ 'tolerance envelopes for displacement, pore pressure, reaction, and settlement-time curves',
103
+ 'cross-solver comparison records and regression thresholds',
104
+ ],
105
+ blockedUntil: [
106
+ 'published-benchmark-corpus-approved',
107
+ 'cross-solver-comparison-suite-approved',
108
+ 'production-tolerance-policy-approved',
109
+ ],
110
+ },
111
+ 'licensed-engineer-review-workflow': {
112
+ status: 'preview-only',
113
+ currentCoverage: 'Current CLI requires --reviewed, but does not persist a named reviewer, license, design responsibility, or approval record.',
114
+ requiredForAcceptance: [
115
+ 'reviewer identity and approval metadata captured for production runs',
116
+ 'assumption, limitation, and change-control audit trail',
117
+ 'jurisdiction/standard-specific sign-off workflow',
118
+ ],
119
+ blockedUntil: [
120
+ 'reviewer-approval-record-implemented',
121
+ 'assumption-change-control-audit-approved',
122
+ 'jurisdiction-signoff-workflow-approved',
123
+ ],
124
+ },
125
+ };
126
+ export function assessFemProductionReadiness(options = {}) {
127
+ const requestedFeatures = options.requestedFeatures && options.requestedFeatures.length > 0
128
+ ? [...new Set(options.requestedFeatures)]
129
+ : ALL_PRODUCTION_FEATURES;
130
+ const capabilities = listFemCapabilities(options.objective);
131
+ const supportedPreviewRoutes = capabilities
132
+ .filter((capability) => capability.executionMode === 'human-reviewed-preview')
133
+ .map((capability) => ({
134
+ objective: capability.objective,
135
+ deterministicBackend: capability.deterministicBackend,
136
+ executionMode: capability.executionMode,
137
+ ...(capability.draftCommandTemplate ? { draftCommandTemplate: capability.draftCommandTemplate } : {}),
138
+ ...(capability.demoCommand ? { demoCommand: capability.demoCommand } : {}),
139
+ ...(capability.runCommandTemplate ? { runCommandTemplate: capability.runCommandTemplate } : {}),
140
+ }));
141
+ const hasPreview = capabilities.some((capability) => capability.executionMode === 'human-reviewed-preview');
142
+ const hasContractOnly = capabilities.some((capability) => capability.executionMode === 'contract-only');
143
+ const currentMode = hasPreview && hasContractOnly
144
+ ? 'mixed'
145
+ : hasPreview
146
+ ? 'experimental-preview'
147
+ : 'contract-only';
148
+ const blockedFeatures = requestedFeatures.map((feature) => ({
149
+ feature,
150
+ ...FEATURE_REQUIREMENTS[feature],
151
+ }));
152
+ return {
153
+ schemaVersion: 'fem-production-readiness.v1',
154
+ productionReady: false,
155
+ status: 'blocked',
156
+ ...(options.objective ? { objective: options.objective } : {}),
157
+ requestedFeatures,
158
+ currentMode,
159
+ supportedPreviewRoutes,
160
+ blockedFeatures,
161
+ blockers: [...new Set(blockedFeatures.flatMap((feature) => feature.blockedUntil))],
162
+ safeUserActions: [
163
+ 'Use implemented routes only as experimental, human-reviewed previews.',
164
+ ...supportedPreviewRoutes.flatMap((route) => [
165
+ ...(route.draftCommandTemplate ? [`Draft command template: ${route.draftCommandTemplate}`] : []),
166
+ ...(route.demoCommand ? [`Built-in demo command: ${route.demoCommand}`] : []),
167
+ ...(route.runCommandTemplate ? [`Reviewed run command template: ${route.runCommandTemplate}`] : []),
168
+ ]),
169
+ 'Keep nonlinear/plasticity, consolidation, seepage, support design, and production acceptance requests in blocked planning state until the required solver and benchmark gates are implemented.',
170
+ ],
171
+ releasePositioning: 'geotechCLI strong-beta must describe FEM as deterministic experimental previews plus contract-only planning for advanced routes; it is not a full production-grade nonlinear geotechnical FEM solver yet.',
172
+ };
173
+ }
174
+ //# sourceMappingURL=production-readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-readiness.js","sourceRoot":"","sources":["../../src/fem/production-readiness.ts"],"names":[],"mappings":"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"}