geotechcli 0.4.55 → 0.4.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"fem.d.ts","sourceRoot":"","sources":["../../src/commands/fem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4FpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyEzD"}
1
+ {"version":3,"file":"fem.d.ts","sourceRoot":"","sources":["../../src/commands/fem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqKpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmDzD"}
@@ -1,11 +1,12 @@
1
1
  import { mkdirSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, resolve } from 'node:path';
3
3
  import { Command } from 'commander';
4
- import { buildRaftDemoAnalysisCase, renderFemWebglHtml, runBuiltinElasticRaftDemo, validateFemResultManifest, } from '@geotechcli/core';
4
+ import { buildExcavationDemoAnalysisCase, buildRaftDemoAnalysisCase, renderFemWebglHtml, runBuiltinElasticExcavationDemo, runBuiltinElasticRaftDemo, validateFemResultManifest, } from '@geotechcli/core';
5
5
  import { banner, heading, keyValue, renderJSON, success, warn, } from '../ui/terminal.js';
6
6
  import { openFileInBrowser } from '../ui/browser.js';
7
7
  import { addGlobalFlags, getGlobalFlags } from '../util/flags.js';
8
8
  const DEFAULT_RAFT_HTML = 'geotech-fem-raft-demo.html';
9
+ const DEFAULT_EXCAVATION_HTML = 'geotech-fem-excavation-demo.html';
9
10
  function writeUtf8File(filePath, content) {
10
11
  const resolved = resolve(filePath);
11
12
  mkdirSync(dirname(resolved), { recursive: true });
@@ -26,12 +27,21 @@ function renderPlainSummary(manifest, options) {
26
27
  return;
27
28
  }
28
29
  banner();
29
- heading('Experimental 3D FEM Raft Demo');
30
+ heading(options.title);
30
31
  keyValue('Case', manifest.caseId);
31
32
  keyValue('Backend', manifest.backend.label);
32
33
  keyValue('Validation', manifest.validation.status);
33
34
  keyValue('Max settlement', `${manifest.envelope.maxSettlementMm.toFixed(2)} mm`);
34
35
  keyValue('Min settlement', `${manifest.envelope.minSettlementMm.toFixed(2)} mm`);
36
+ if (manifest.envelope.maxHorizontalDisplacementMm != null) {
37
+ keyValue('Max horizontal displacement', `${manifest.envelope.maxHorizontalDisplacementMm.toFixed(2)} mm`);
38
+ }
39
+ if (manifest.envelope.maxWallDeflectionMm != null) {
40
+ keyValue('Max wall deflection proxy', `${manifest.envelope.maxWallDeflectionMm.toFixed(2)} mm`);
41
+ }
42
+ if (manifest.envelope.stageCount != null) {
43
+ keyValue('Stages', String(manifest.envelope.stageCount));
44
+ }
35
45
  keyValue('Total load', `${manifest.envelope.totalLoadKn.toFixed(0)} kN`);
36
46
  keyValue('Reaction balance', manifest.envelope.reactionBalanceRatio.toFixed(3));
37
47
  keyValue('Mesh', `${manifest.mesh.divisions.join(' x ')} ${manifest.mesh.elementType}`);
@@ -49,6 +59,52 @@ function renderPlainSummary(manifest, options) {
49
59
  success(`FEM result manifest saved to ${options.resultPath}`);
50
60
  }
51
61
  }
62
+ async function runFemDemoCommand(demoKind, defaultHtmlPath, title, manifest, opts) {
63
+ const flags = getGlobalFlags(opts);
64
+ if (!opts.experimental) {
65
+ throw new Error('FEM previews are experimental. Re-run with --experimental to acknowledge the limitation.');
66
+ }
67
+ const validation = validateFemResultManifest(manifest);
68
+ if (validation.status === 'blocked') {
69
+ throw new Error(`FEM result manifest failed validation: ${validation.findings.map((item) => item.message).join('; ')}`);
70
+ }
71
+ let htmlPath;
72
+ let opened = false;
73
+ const shouldWriteDefaultHtml = !flags.json && !flags.quiet;
74
+ const requestedHtmlPath = flags.saveHtml ?? (shouldWriteDefaultHtml ? defaultHtmlPath : undefined);
75
+ if (requestedHtmlPath) {
76
+ htmlPath = writeUtf8File(requestedHtmlPath, renderFemWebglHtml(manifest));
77
+ opened = flags.noOpen ? false : openFileInBrowser(htmlPath, {
78
+ disabledEnvVar: 'GEOTECHCLI_FEM_NO_OPEN',
79
+ });
80
+ }
81
+ let resultPath;
82
+ if (flags.output) {
83
+ resultPath = writeUtf8File(flags.output, JSON.stringify(manifest, null, 2));
84
+ }
85
+ const envelope = {
86
+ kind: 'geotech-fem-demo-result',
87
+ schemaVersion: 'fem-demo-command.v0',
88
+ experimental: true,
89
+ demo: demoKind,
90
+ manifest,
91
+ htmlPath,
92
+ resultPath,
93
+ opened,
94
+ warnings: buildWarnings(manifest),
95
+ };
96
+ if (flags.json) {
97
+ renderJSON(envelope);
98
+ return;
99
+ }
100
+ renderPlainSummary(manifest, {
101
+ title,
102
+ htmlPath,
103
+ resultPath,
104
+ opened,
105
+ quiet: flags.quiet,
106
+ });
107
+ }
52
108
  export function registerFemCommand(program) {
53
109
  const fem = new Command('fem')
54
110
  .description('Experimental deterministic 3D FEM previews and WebGL artifacts');
@@ -64,53 +120,24 @@ export function registerFemCommand(program) {
64
120
  geotech fem demo raft --experimental --output raft-fem.manifest.json --json
65
121
  `)
66
122
  .action(async (opts) => {
67
- const flags = getGlobalFlags(opts);
68
- if (!opts.experimental) {
69
- throw new Error('FEM previews are experimental. Re-run with --experimental to acknowledge the limitation.');
70
- }
71
- const manifest = runBuiltinElasticRaftDemo(buildRaftDemoAnalysisCase());
72
- const validation = validateFemResultManifest(manifest);
73
- if (validation.status === 'blocked') {
74
- throw new Error(`FEM result manifest failed validation: ${validation.findings.map((item) => item.message).join('; ')}`);
75
- }
76
- let htmlPath;
77
- let opened = false;
78
- const shouldWriteDefaultHtml = !flags.json && !flags.quiet;
79
- const requestedHtmlPath = flags.saveHtml ?? (shouldWriteDefaultHtml ? DEFAULT_RAFT_HTML : undefined);
80
- if (requestedHtmlPath) {
81
- htmlPath = writeUtf8File(requestedHtmlPath, renderFemWebglHtml(manifest));
82
- opened = flags.noOpen ? false : openFileInBrowser(htmlPath, {
83
- disabledEnvVar: 'GEOTECHCLI_FEM_NO_OPEN',
84
- });
85
- }
86
- let resultPath;
87
- if (flags.output) {
88
- resultPath = writeUtf8File(flags.output, JSON.stringify(manifest, null, 2));
89
- }
90
- const envelope = {
91
- kind: 'geotech-fem-demo-result',
92
- schemaVersion: 'fem-demo-command.v0',
93
- experimental: true,
94
- demo: 'raft',
95
- manifest,
96
- htmlPath,
97
- resultPath,
98
- opened,
99
- warnings: buildWarnings(manifest),
100
- };
101
- if (flags.json) {
102
- renderJSON(envelope);
103
- return;
104
- }
105
- renderPlainSummary(manifest, {
106
- htmlPath,
107
- resultPath,
108
- opened,
109
- quiet: flags.quiet,
110
- });
123
+ await runFemDemoCommand('raft', DEFAULT_RAFT_HTML, 'Experimental 3D FEM Raft Demo', runBuiltinElasticRaftDemo(buildRaftDemoAnalysisCase()), opts);
124
+ });
125
+ const excavation = new Command('excavation')
126
+ .description('Experimental staged excavation deformation FEM preview')
127
+ .option('--experimental', 'Acknowledge that this FEM preview is experimental and not a design calculation')
128
+ .addHelpText('after', `
129
+ Examples:
130
+ geotech fem demo excavation --experimental
131
+ geotech fem demo excavation --experimental --save-html excavation-fem.html --no-open
132
+ geotech fem demo excavation --experimental --output excavation-fem.manifest.json --json
133
+ `)
134
+ .action(async (opts) => {
135
+ await runFemDemoCommand('excavation', DEFAULT_EXCAVATION_HTML, 'Experimental 3D FEM Excavation Demo', runBuiltinElasticExcavationDemo(buildExcavationDemoAnalysisCase()), opts);
111
136
  });
112
137
  addGlobalFlags(raft);
138
+ addGlobalFlags(excavation);
113
139
  demo.addCommand(raft);
140
+ demo.addCommand(excavation);
114
141
  fem.addCommand(demo);
115
142
  program.addCommand(fem);
116
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fem.js","sourceRoot":"","sources":["../../src/commands/fem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fem.js","sourceRoot":"","sources":["../../src/commands/fem.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geotechcli",
3
- "version": "0.4.55",
3
+ "version": "0.4.57",
4
4
  "description": "AI-native CLI for geotechnical engineering",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,7 +16,7 @@
16
16
  "start": "node dist/index.js"
17
17
  },
18
18
  "dependencies": {
19
- "@geotechcli/core": "0.4.55",
19
+ "@geotechcli/core": "0.4.57",
20
20
  "asciichart": "^1.5.25",
21
21
  "boxen": "^8.0.1",
22
22
  "chalk": "^5.4.0",