geotechcli 0.4.56 → 0.4.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/fem.d.ts.map +1 -1
- package/dist/commands/fem.js +168 -44
- package/dist/commands/fem.js.map +1 -1
- package/package.json +2 -2
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"fem.d.ts","sourceRoot":"","sources":["../../src/commands/fem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsNpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoIzD"}
|
package/dist/commands/fem.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
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, buildLLMConfig, buildRaftDemoAnalysisCase, renderFemWebglHtml, runAgent, 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';
|
|
10
|
+
const FEM_AGENT_TOOLS = [
|
|
11
|
+
'list_fem_capabilities',
|
|
12
|
+
'prepare_fem_analysis_case',
|
|
13
|
+
'validate_fem_analysis_case',
|
|
14
|
+
];
|
|
9
15
|
function writeUtf8File(filePath, content) {
|
|
10
16
|
const resolved = resolve(filePath);
|
|
11
17
|
mkdirSync(dirname(resolved), { recursive: true });
|
|
@@ -20,18 +26,51 @@ function buildWarnings(manifest) {
|
|
|
20
26
|
.map((finding) => finding.message),
|
|
21
27
|
];
|
|
22
28
|
}
|
|
29
|
+
function buildFemAgentTask(task, objective) {
|
|
30
|
+
return [
|
|
31
|
+
'FEM planning task:',
|
|
32
|
+
task,
|
|
33
|
+
objective ? `Preferred FEM objective hint: ${objective}` : '',
|
|
34
|
+
'',
|
|
35
|
+
'Use only geotechCLI FEM capability, draft, and validation tools.',
|
|
36
|
+
'Do not invent FEM displacement, reaction, mesh, stage, or result-envelope values.',
|
|
37
|
+
'If a deterministic preview is appropriate, recommend the matching geotech fem demo command instead of claiming you ran it.',
|
|
38
|
+
].filter(Boolean).join('\n');
|
|
39
|
+
}
|
|
40
|
+
function renderFemAgentStep(step, flags) {
|
|
41
|
+
if (flags.json || flags.quiet || !flags.verbose)
|
|
42
|
+
return;
|
|
43
|
+
if (step.type === 'tool_call') {
|
|
44
|
+
console.log(` > ${step.toolName}(${JSON.stringify(step.toolArgs).slice(0, 100)})`);
|
|
45
|
+
}
|
|
46
|
+
else if (step.type === 'tool_result') {
|
|
47
|
+
console.log(` = ${step.content}`);
|
|
48
|
+
}
|
|
49
|
+
else if (step.type === 'error') {
|
|
50
|
+
warn(step.content);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
23
53
|
function renderPlainSummary(manifest, options) {
|
|
24
54
|
if (options.quiet) {
|
|
25
55
|
console.log(`${manifest.envelope.maxSettlementMm.toFixed(2)} mm`);
|
|
26
56
|
return;
|
|
27
57
|
}
|
|
28
58
|
banner();
|
|
29
|
-
heading(
|
|
59
|
+
heading(options.title);
|
|
30
60
|
keyValue('Case', manifest.caseId);
|
|
31
61
|
keyValue('Backend', manifest.backend.label);
|
|
32
62
|
keyValue('Validation', manifest.validation.status);
|
|
33
63
|
keyValue('Max settlement', `${manifest.envelope.maxSettlementMm.toFixed(2)} mm`);
|
|
34
64
|
keyValue('Min settlement', `${manifest.envelope.minSettlementMm.toFixed(2)} mm`);
|
|
65
|
+
if (manifest.envelope.maxHorizontalDisplacementMm != null) {
|
|
66
|
+
keyValue('Max horizontal displacement', `${manifest.envelope.maxHorizontalDisplacementMm.toFixed(2)} mm`);
|
|
67
|
+
}
|
|
68
|
+
if (manifest.envelope.maxWallDeflectionMm != null) {
|
|
69
|
+
keyValue('Max wall deflection proxy', `${manifest.envelope.maxWallDeflectionMm.toFixed(2)} mm`);
|
|
70
|
+
}
|
|
71
|
+
if (manifest.envelope.stageCount != null) {
|
|
72
|
+
keyValue('Stages', String(manifest.envelope.stageCount));
|
|
73
|
+
}
|
|
35
74
|
keyValue('Total load', `${manifest.envelope.totalLoadKn.toFixed(0)} kN`);
|
|
36
75
|
keyValue('Reaction balance', manifest.envelope.reactionBalanceRatio.toFixed(3));
|
|
37
76
|
keyValue('Mesh', `${manifest.mesh.divisions.join(' x ')} ${manifest.mesh.elementType}`);
|
|
@@ -49,9 +88,55 @@ function renderPlainSummary(manifest, options) {
|
|
|
49
88
|
success(`FEM result manifest saved to ${options.resultPath}`);
|
|
50
89
|
}
|
|
51
90
|
}
|
|
91
|
+
async function runFemDemoCommand(demoKind, defaultHtmlPath, title, manifest, opts) {
|
|
92
|
+
const flags = getGlobalFlags(opts);
|
|
93
|
+
if (!opts.experimental) {
|
|
94
|
+
throw new Error('FEM previews are experimental. Re-run with --experimental to acknowledge the limitation.');
|
|
95
|
+
}
|
|
96
|
+
const validation = validateFemResultManifest(manifest);
|
|
97
|
+
if (validation.status === 'blocked') {
|
|
98
|
+
throw new Error(`FEM result manifest failed validation: ${validation.findings.map((item) => item.message).join('; ')}`);
|
|
99
|
+
}
|
|
100
|
+
let htmlPath;
|
|
101
|
+
let opened = false;
|
|
102
|
+
const shouldWriteDefaultHtml = !flags.json && !flags.quiet;
|
|
103
|
+
const requestedHtmlPath = flags.saveHtml ?? (shouldWriteDefaultHtml ? defaultHtmlPath : undefined);
|
|
104
|
+
if (requestedHtmlPath) {
|
|
105
|
+
htmlPath = writeUtf8File(requestedHtmlPath, renderFemWebglHtml(manifest));
|
|
106
|
+
opened = flags.noOpen ? false : openFileInBrowser(htmlPath, {
|
|
107
|
+
disabledEnvVar: 'GEOTECHCLI_FEM_NO_OPEN',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
let resultPath;
|
|
111
|
+
if (flags.output) {
|
|
112
|
+
resultPath = writeUtf8File(flags.output, JSON.stringify(manifest, null, 2));
|
|
113
|
+
}
|
|
114
|
+
const envelope = {
|
|
115
|
+
kind: 'geotech-fem-demo-result',
|
|
116
|
+
schemaVersion: 'fem-demo-command.v0',
|
|
117
|
+
experimental: true,
|
|
118
|
+
demo: demoKind,
|
|
119
|
+
manifest,
|
|
120
|
+
htmlPath,
|
|
121
|
+
resultPath,
|
|
122
|
+
opened,
|
|
123
|
+
warnings: buildWarnings(manifest),
|
|
124
|
+
};
|
|
125
|
+
if (flags.json) {
|
|
126
|
+
renderJSON(envelope);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
renderPlainSummary(manifest, {
|
|
130
|
+
title,
|
|
131
|
+
htmlPath,
|
|
132
|
+
resultPath,
|
|
133
|
+
opened,
|
|
134
|
+
quiet: flags.quiet,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
52
137
|
export function registerFemCommand(program) {
|
|
53
138
|
const fem = new Command('fem')
|
|
54
|
-
.description('Experimental deterministic 3D FEM previews and WebGL artifacts');
|
|
139
|
+
.description('Experimental deterministic 3D FEM previews, scoped FEM agent planning, and WebGL artifacts');
|
|
55
140
|
const demo = new Command('demo')
|
|
56
141
|
.description('Experimental FEM demonstration models');
|
|
57
142
|
const raft = new Command('raft')
|
|
@@ -64,54 +149,93 @@ export function registerFemCommand(program) {
|
|
|
64
149
|
geotech fem demo raft --experimental --output raft-fem.manifest.json --json
|
|
65
150
|
`)
|
|
66
151
|
.action(async (opts) => {
|
|
152
|
+
await runFemDemoCommand('raft', DEFAULT_RAFT_HTML, 'Experimental 3D FEM Raft Demo', runBuiltinElasticRaftDemo(buildRaftDemoAnalysisCase()), opts);
|
|
153
|
+
});
|
|
154
|
+
const excavation = new Command('excavation')
|
|
155
|
+
.description('Experimental staged excavation deformation FEM preview')
|
|
156
|
+
.option('--experimental', 'Acknowledge that this FEM preview is experimental and not a design calculation')
|
|
157
|
+
.addHelpText('after', `
|
|
158
|
+
Examples:
|
|
159
|
+
geotech fem demo excavation --experimental
|
|
160
|
+
geotech fem demo excavation --experimental --save-html excavation-fem.html --no-open
|
|
161
|
+
geotech fem demo excavation --experimental --output excavation-fem.manifest.json --json
|
|
162
|
+
`)
|
|
163
|
+
.action(async (opts) => {
|
|
164
|
+
await runFemDemoCommand('excavation', DEFAULT_EXCAVATION_HTML, 'Experimental 3D FEM Excavation Demo', runBuiltinElasticExcavationDemo(buildExcavationDemoAnalysisCase()), opts);
|
|
165
|
+
});
|
|
166
|
+
addGlobalFlags(raft);
|
|
167
|
+
addGlobalFlags(excavation);
|
|
168
|
+
demo.addCommand(raft);
|
|
169
|
+
demo.addCommand(excavation);
|
|
170
|
+
fem.addCommand(demo);
|
|
171
|
+
const agent = new Command('agent')
|
|
172
|
+
.description('Scoped FEM planning agent that can list, draft, and validate FEM cases without running solvers')
|
|
173
|
+
.argument('<task...>', 'FEM planning or review task in natural language')
|
|
174
|
+
.option('--objective <objective>', 'Optional FEM objective hint, such as foundation-settlement or excavation-deformation')
|
|
175
|
+
.addHelpText('after', `
|
|
176
|
+
Examples:
|
|
177
|
+
geotech fem agent "which FEM route fits a braced excavation near an existing building?"
|
|
178
|
+
geotech fem agent "draft a staged excavation FEM case" --objective excavation-deformation --json
|
|
179
|
+
|
|
180
|
+
This command gives the LLM a narrow FEM brain. It may call only list_fem_capabilities,
|
|
181
|
+
prepare_fem_analysis_case, and validate_fem_analysis_case. It does not run FEM solvers,
|
|
182
|
+
write WebGL artifacts, or produce design-ready FEM results.
|
|
183
|
+
`)
|
|
184
|
+
.action(async (taskParts, opts) => {
|
|
67
185
|
const flags = getGlobalFlags(opts);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
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),
|
|
186
|
+
const task = taskParts.join(' ');
|
|
187
|
+
const objective = typeof opts.objective === 'string' && opts.objective.trim()
|
|
188
|
+
? opts.objective.trim()
|
|
189
|
+
: undefined;
|
|
190
|
+
const config = {
|
|
191
|
+
...buildLLMConfig(),
|
|
192
|
+
skillsEnabled: false,
|
|
100
193
|
};
|
|
194
|
+
const scopedTask = buildFemAgentTask(task, objective);
|
|
195
|
+
const session = await runAgent(scopedTask, config, (step) => renderFemAgentStep(step, flags), undefined, {
|
|
196
|
+
allowedTools: FEM_AGENT_TOOLS,
|
|
197
|
+
systemPromptSuffix: 'FEM scoped-agent rule: use only FEM routing, drafting, and validation tools. Never claim to run a solver or produce FEM numerical results unless they came from a deterministic geotechCLI FEM manifest. Recommend `geotech fem demo ... --experimental` when execution or visualization is needed.',
|
|
198
|
+
});
|
|
199
|
+
const answer = session.steps.find((step) => step.type === 'answer')?.content ?? '';
|
|
200
|
+
if (flags.output && answer) {
|
|
201
|
+
writeUtf8File(flags.output, answer);
|
|
202
|
+
}
|
|
101
203
|
if (flags.json) {
|
|
204
|
+
const envelope = {
|
|
205
|
+
kind: 'geotech-fem-agent-result',
|
|
206
|
+
schemaVersion: 'fem-agent-command.v0',
|
|
207
|
+
task,
|
|
208
|
+
objective,
|
|
209
|
+
answer,
|
|
210
|
+
allowedTools: FEM_AGENT_TOOLS,
|
|
211
|
+
steps: session.steps.map((step) => ({
|
|
212
|
+
type: step.type,
|
|
213
|
+
content: step.content,
|
|
214
|
+
toolName: step.toolName,
|
|
215
|
+
toolArgs: step.toolArgs,
|
|
216
|
+
toolResult: step.toolResult ? {
|
|
217
|
+
success: step.toolResult.success,
|
|
218
|
+
summary: step.toolResult.summary,
|
|
219
|
+
} : undefined,
|
|
220
|
+
})),
|
|
221
|
+
tokens: session.totalTokens,
|
|
222
|
+
latencyMs: session.totalLatencyMs,
|
|
223
|
+
};
|
|
102
224
|
renderJSON(envelope);
|
|
103
225
|
return;
|
|
104
226
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
227
|
+
if (!flags.quiet) {
|
|
228
|
+
banner();
|
|
229
|
+
heading('FEM Agent Plan');
|
|
230
|
+
console.log(answer || 'No FEM agent answer was produced.');
|
|
231
|
+
warn('FEM agent output is route/draft/validation guidance only. Numerical FEM results must come from deterministic geotechCLI FEM manifests.');
|
|
232
|
+
if (flags.output && answer) {
|
|
233
|
+
success(`FEM agent answer saved to ${flags.output}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
111
236
|
});
|
|
112
|
-
addGlobalFlags(
|
|
113
|
-
|
|
114
|
-
fem.addCommand(demo);
|
|
237
|
+
addGlobalFlags(agent);
|
|
238
|
+
fem.addCommand(agent);
|
|
115
239
|
program.addCommand(fem);
|
|
116
240
|
}
|
|
117
241
|
//# sourceMappingURL=fem.js.map
|
package/dist/commands/fem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fem.js","sourceRoot":"","sources":["../../src/commands/fem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,
|
|
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.
|
|
3
|
+
"version": "0.4.58",
|
|
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.
|
|
19
|
+
"@geotechcli/core": "0.4.58",
|
|
20
20
|
"asciichart": "^1.5.25",
|
|
21
21
|
"boxen": "^8.0.1",
|
|
22
22
|
"chalk": "^5.4.0",
|