@vcad/mcp 0.9.4-main.28 → 0.9.4-main.30
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/README.md +1 -1
- package/index.mjs +65 -4
- package/package.json +3 -3
- package/vcad_kernel_wasm_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -6,4 +6,4 @@ vcad's MCP server as a self-contained bundle (server + BRep kernel WASM).
|
|
|
6
6
|
{ "mcpServers": { "vcad": { "command": "npx", "args": ["-y", "@vcad/mcp"] } } }
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Built from
|
|
9
|
+
Built from 974a993addb05edb724d247bbe538bac48ef58dd at 2026-07-26T00:52:54.781Z. Source: https://github.com/ecto/vcad
|
package/index.mjs
CHANGED
|
@@ -113,6 +113,7 @@ __export(vcad_kernel_wasm_exports, {
|
|
|
113
113
|
documentToLoonChecked: () => documentToLoonChecked,
|
|
114
114
|
drawingSheetToPdf: () => drawingSheetToPdf,
|
|
115
115
|
ecadAirgapFluxDensity: () => ecadAirgapFluxDensity,
|
|
116
|
+
ecadAirgapSolve: () => ecadAirgapSolve,
|
|
116
117
|
ecadBuildReceipt: () => ecadBuildReceipt,
|
|
117
118
|
ecadBuiltinSymbols: () => ecadBuiltinSymbols,
|
|
118
119
|
ecadCheckDrc: () => ecadCheckDrc,
|
|
@@ -1142,6 +1143,15 @@ function ecadAirgapFluxDensity(spec_json) {
|
|
|
1142
1143
|
}
|
|
1143
1144
|
return ret[0];
|
|
1144
1145
|
}
|
|
1146
|
+
function ecadAirgapSolve(spec_json) {
|
|
1147
|
+
const ptr0 = passStringToWasm0(spec_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1148
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1149
|
+
const ret = wasm.ecadAirgapSolve(ptr0, len0);
|
|
1150
|
+
if (ret[2]) {
|
|
1151
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
1152
|
+
}
|
|
1153
|
+
return takeFromExternrefTable0(ret[0]);
|
|
1154
|
+
}
|
|
1145
1155
|
function ecadBuildReceipt(pcb_json) {
|
|
1146
1156
|
const ptr0 = passStringToWasm0(pcb_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1147
1157
|
const len0 = WASM_VECTOR_LEN;
|
|
@@ -41204,6 +41214,41 @@ var init_CHANGELOG = __esm({
|
|
|
41204
41214
|
"quote_manufacturing"
|
|
41205
41215
|
]
|
|
41206
41216
|
},
|
|
41217
|
+
{
|
|
41218
|
+
id: "2026-07-25-em-saturated-picard",
|
|
41219
|
+
version: "0.9.4",
|
|
41220
|
+
date: "2026-07-25",
|
|
41221
|
+
category: "fix",
|
|
41222
|
+
title: "simulate_em solves strongly saturating magnetostatics",
|
|
41223
|
+
summary: "Saturated motor cross-sections no longer fail with an unfixable 'Picard not converged': the nonlinear loop's cap, tolerance and relaxation are now caller-settable, and the default cap was raised.",
|
|
41224
|
+
features: [
|
|
41225
|
+
"em",
|
|
41226
|
+
"magnetostatics",
|
|
41227
|
+
"motors"
|
|
41228
|
+
],
|
|
41229
|
+
mcpTools: [
|
|
41230
|
+
"simulate_em"
|
|
41231
|
+
]
|
|
41232
|
+
},
|
|
41233
|
+
{
|
|
41234
|
+
id: "2026-07-25-curved-trim-seams-weld",
|
|
41235
|
+
version: "0.9.4",
|
|
41236
|
+
date: "2026-07-25",
|
|
41237
|
+
category: "fix",
|
|
41238
|
+
title: "Bores and cut curved faces close their seams",
|
|
41239
|
+
summary: "A through-hole left the shell open along the bore wall \u2014 visible as hairline cracks and unusable for 3D print or STL export; bores, holed plates and cut fillet corners now come out watertight.",
|
|
41240
|
+
features: [
|
|
41241
|
+
"kernel",
|
|
41242
|
+
"booleans",
|
|
41243
|
+
"tessellation",
|
|
41244
|
+
"export"
|
|
41245
|
+
],
|
|
41246
|
+
mcpTools: [
|
|
41247
|
+
"create_cad_loon",
|
|
41248
|
+
"inspect_cad",
|
|
41249
|
+
"export_cad"
|
|
41250
|
+
]
|
|
41251
|
+
},
|
|
41207
41252
|
{
|
|
41208
41253
|
id: "2026-07-25-calc-motor-tooth-saturation",
|
|
41209
41254
|
version: "0.9.4",
|
|
@@ -71521,6 +71566,22 @@ var init_em = __esm({
|
|
|
71521
71566
|
type: "number",
|
|
71522
71567
|
description: "SOR sweep cap. Default 200000."
|
|
71523
71568
|
},
|
|
71569
|
+
picard_max_iters: {
|
|
71570
|
+
type: "number",
|
|
71571
|
+
description: "Saturable iron only: cap on the NONLINEAR outer loop over the B-H law. Default 300. Separate from max_sweeps, which caps the inner SOR solve and does nothing for a non-converging material state. A deeply saturated motor section contracts steadily but needs 150-250 iterations; raise this when the error says the residual is still falling."
|
|
71572
|
+
},
|
|
71573
|
+
picard_tol: {
|
|
71574
|
+
type: "number",
|
|
71575
|
+
description: "Saturable iron only: nonlinear convergence tolerance on the largest relative reluctivity update. Default 1e-4. Raise it to accept a looser material state deliberately."
|
|
71576
|
+
},
|
|
71577
|
+
picard_relax: {
|
|
71578
|
+
type: "number",
|
|
71579
|
+
description: "Saturable iron only: under-relaxation of the nonlinear loop, in (0, 1]. Default 0.7. Lower it ONLY when the error reports the residual has stopped falling (a limit cycle); when the residual is still falling, lowering this makes convergence strictly slower \u2014 raise picard_max_iters instead."
|
|
71580
|
+
},
|
|
71581
|
+
picard_adaptive: {
|
|
71582
|
+
type: "boolean",
|
|
71583
|
+
description: "Saturable iron only: back the relaxation off automatically when the nonlinear residual makes no progress over a 10-iteration window. Default FALSE \u2014 on a healthy saturated solve it reacts to ordinary residual jitter and costs ~1.7x the iterations. Turn it on for a device that is demonstrably oscillating."
|
|
71584
|
+
},
|
|
71524
71585
|
drive_coil: {
|
|
71525
71586
|
type: "number",
|
|
71526
71587
|
description: "Axisym: coil index the inductance claim is priced for. Default 0."
|
|
@@ -78990,8 +79051,8 @@ var init_server3 = __esm({
|
|
|
78990
79051
|
init_order_feed();
|
|
78991
79052
|
init_animate();
|
|
78992
79053
|
PKG_VERSION = (() => {
|
|
78993
|
-
if ("0.9.4-main.
|
|
78994
|
-
return "0.9.4-main.
|
|
79054
|
+
if ("0.9.4-main.30") {
|
|
79055
|
+
return "0.9.4-main.30";
|
|
78995
79056
|
}
|
|
78996
79057
|
try {
|
|
78997
79058
|
const req = createRequire2(import.meta.url);
|
|
@@ -79000,8 +79061,8 @@ var init_server3 = __esm({
|
|
|
79000
79061
|
return "0.0.0";
|
|
79001
79062
|
}
|
|
79002
79063
|
})();
|
|
79003
|
-
BUILD_SHA = "
|
|
79004
|
-
BUILD_TIME = "2026-07-26T00:
|
|
79064
|
+
BUILD_SHA = "974a993addb05edb724d247bbe538bac48ef58dd";
|
|
79065
|
+
BUILD_TIME = "2026-07-26T00:52:54.781Z";
|
|
79005
79066
|
SHORT_SHA = BUILD_SHA === "unknown" ? "unknown" : BUILD_SHA.slice(0, 7);
|
|
79006
79067
|
VERSION_WITH_BUILD = SHORT_SHA === "unknown" ? PKG_VERSION : `${PKG_VERSION}+${SHORT_SHA}`;
|
|
79007
79068
|
INSTANCE_ID = randomUUID6().slice(0, 8);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vcad/mcp",
|
|
3
|
-
"version": "0.9.4-main.
|
|
3
|
+
"version": "0.9.4-main.30",
|
|
4
4
|
"description": "vcad MCP server — parametric CAD + PCB design tools for AI agents (self-contained: bundled server + kernel WASM)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"homepage": "https://vcad.io",
|
|
21
21
|
"vcadBuild": {
|
|
22
|
-
"sha": "
|
|
23
|
-
"builtAt": "2026-07-26T00:
|
|
22
|
+
"sha": "974a993addb05edb724d247bbe538bac48ef58dd",
|
|
23
|
+
"builtAt": "2026-07-26T00:52:54.781Z"
|
|
24
24
|
}
|
|
25
25
|
}
|
package/vcad_kernel_wasm_bg.wasm
CHANGED
|
Binary file
|