@vcad/mcp 0.11.0-main.159 → 0.11.0-main.162
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 +187 -4
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -9,4 +9,4 @@ vcad's MCP server as a self-contained bundle (server + BRep kernel WASM).
|
|
|
9
9
|
Or install vcad.app, which registers this server with your agents on first launch.
|
|
10
10
|
The agent skill ships at `skill/SKILL.md`.
|
|
11
11
|
|
|
12
|
-
Built from
|
|
12
|
+
Built from 7d787f258ea026c36d80b9cb137c3f0064fcce3c at 2026-11-11T19:59:54.944Z. Source: https://github.com/muni-works/vcad
|
package/index.mjs
CHANGED
|
@@ -10277,6 +10277,11 @@ function evaluateOp(op, nodes, Solid2, cache, depth = 0) {
|
|
|
10277
10277
|
}
|
|
10278
10278
|
case "Sketch2D":
|
|
10279
10279
|
return Solid2.empty();
|
|
10280
|
+
// A sketch attached to a named face: like Sketch2D, it is not a solid
|
|
10281
|
+
// itself. (The native evaluator resolves the face; this legacy TS path
|
|
10282
|
+
// only needs the switch to stay exhaustive.)
|
|
10283
|
+
case "SketchOnFace":
|
|
10284
|
+
return Solid2.empty();
|
|
10280
10285
|
case "Extrude": {
|
|
10281
10286
|
const sketchNode = nodes[String(op.sketch)];
|
|
10282
10287
|
if (!sketchNode) {
|
|
@@ -44782,6 +44787,87 @@ var init_CHANGELOG = __esm({
|
|
|
44782
44787
|
"export_cad"
|
|
44783
44788
|
]
|
|
44784
44789
|
},
|
|
44790
|
+
{
|
|
44791
|
+
id: "2026-11-11-step-interop-audit",
|
|
44792
|
+
version: "0.11.0",
|
|
44793
|
+
date: "2026-11-11",
|
|
44794
|
+
category: "fix",
|
|
44795
|
+
title: "STEP import: no hangs, colours, assembly placement",
|
|
44796
|
+
summary: "KiCad and FreeCAD STEP files no longer hang; reversed face bounds read right; colours, part names and assembly instance poses import and colours export; rational surfaces export.",
|
|
44797
|
+
features: [
|
|
44798
|
+
"step",
|
|
44799
|
+
"import",
|
|
44800
|
+
"export",
|
|
44801
|
+
"native-app"
|
|
44802
|
+
]
|
|
44803
|
+
},
|
|
44804
|
+
{
|
|
44805
|
+
id: "2026-11-11-sketch-on-face",
|
|
44806
|
+
version: "undefined",
|
|
44807
|
+
date: "2026-11-11",
|
|
44808
|
+
category: "feat",
|
|
44809
|
+
title: "Sketches drawn on a face follow that face",
|
|
44810
|
+
summary: "A sketch drawn on a named face now re-attaches to it on every rebuild, so a boss on a plate's top stays on top when the plate gets thicker. An unresolvable face fails closed.",
|
|
44811
|
+
features: [
|
|
44812
|
+
"sketch",
|
|
44813
|
+
"naming",
|
|
44814
|
+
"history"
|
|
44815
|
+
]
|
|
44816
|
+
},
|
|
44817
|
+
{
|
|
44818
|
+
id: "2026-11-11-sketch-inference-smart-dimension",
|
|
44819
|
+
version: "0.11.0",
|
|
44820
|
+
date: "2026-11-11",
|
|
44821
|
+
category: "feat",
|
|
44822
|
+
title: "Mac sketching: inference, Smart Dimension, trim and fillet",
|
|
44823
|
+
summary: "The Mac app's sketcher infers constraints while drawing, sizes or pairs with one Smart Dimension tool, colours by solve state, drags to solve, and adds construction, trim, extend, fillet, mirror, patterns and live profile shading.",
|
|
44824
|
+
features: [
|
|
44825
|
+
"sketch",
|
|
44826
|
+
"constraints",
|
|
44827
|
+
"mac-app"
|
|
44828
|
+
]
|
|
44829
|
+
},
|
|
44830
|
+
{
|
|
44831
|
+
id: "2026-11-11-revolve-profile-on-axis",
|
|
44832
|
+
version: "0.11.0",
|
|
44833
|
+
date: "2026-11-11",
|
|
44834
|
+
category: "fix",
|
|
44835
|
+
title: "Revolve profiles that touch their axis",
|
|
44836
|
+
summary: "Sketch revolve now accepts profiles with vertices on the axis: axis edges add no face, perpendicular edges become full discs, slanted edges become cones with an apex.",
|
|
44837
|
+
features: [
|
|
44838
|
+
"revolve",
|
|
44839
|
+
"sketch"
|
|
44840
|
+
]
|
|
44841
|
+
},
|
|
44842
|
+
{
|
|
44843
|
+
id: "2026-11-11-print-from-vcad",
|
|
44844
|
+
version: "0.11.0",
|
|
44845
|
+
date: "2026-11-11",
|
|
44846
|
+
category: "feat",
|
|
44847
|
+
title: "Print to a Bambu printer straight from vcad",
|
|
44848
|
+
summary: "3D Print is now Orient \u2192 Slice \u2192 Printer \u2192 Print: auto-orientation for fewest supports, LAN pairing, live printer and AMS status, a confirmed gated send, and pause/resume/stop.",
|
|
44849
|
+
features: [
|
|
44850
|
+
"3d-print",
|
|
44851
|
+
"slicer",
|
|
44852
|
+
"printer",
|
|
44853
|
+
"mac-app"
|
|
44854
|
+
]
|
|
44855
|
+
},
|
|
44856
|
+
{
|
|
44857
|
+
id: "2026-11-11-one-click-drawings",
|
|
44858
|
+
version: "0.11.0",
|
|
44859
|
+
date: "2026-11-11",
|
|
44860
|
+
category: "feat",
|
|
44861
|
+
title: "One-click drawings with automatic dimensions",
|
|
44862
|
+
summary: "Drawing workspace lays out front/top/right/iso on an auto-sized sheet with hole callouts, center marks and editable dimensions; exports vector PDF and true-scale DXF.",
|
|
44863
|
+
features: [
|
|
44864
|
+
"drawings",
|
|
44865
|
+
"drafting",
|
|
44866
|
+
"native-app",
|
|
44867
|
+
"gdt"
|
|
44868
|
+
],
|
|
44869
|
+
mcpTools: []
|
|
44870
|
+
},
|
|
44785
44871
|
{
|
|
44786
44872
|
id: "2026-11-11-one-breath-install",
|
|
44787
44873
|
version: "0.11.0",
|
|
@@ -44798,6 +44884,20 @@ var init_CHANGELOG = __esm({
|
|
|
44798
44884
|
"server_info"
|
|
44799
44885
|
]
|
|
44800
44886
|
},
|
|
44887
|
+
{
|
|
44888
|
+
id: "2026-11-11-local-data-trust",
|
|
44889
|
+
version: "undefined",
|
|
44890
|
+
date: "2026-11-11",
|
|
44891
|
+
category: "feat",
|
|
44892
|
+
title: "Autosave, crash recovery, and version history",
|
|
44893
|
+
summary: "The Mac app autosaves every few seconds, offers to restore unsaved work after a crash, and keeps per-document versions you can preview, restore, or duplicate.",
|
|
44894
|
+
features: [
|
|
44895
|
+
"mac-app",
|
|
44896
|
+
"autosave",
|
|
44897
|
+
"versions",
|
|
44898
|
+
"recovery"
|
|
44899
|
+
]
|
|
44900
|
+
},
|
|
44801
44901
|
{
|
|
44802
44902
|
id: "2026-11-11-live-receipt-badges",
|
|
44803
44903
|
version: "0.11.0",
|
|
@@ -44819,6 +44919,33 @@ var init_CHANGELOG = __esm({
|
|
|
44819
44919
|
"ask_user"
|
|
44820
44920
|
]
|
|
44821
44921
|
},
|
|
44922
|
+
{
|
|
44923
|
+
id: "2026-11-11-history-edits-keep-references",
|
|
44924
|
+
version: "undefined",
|
|
44925
|
+
date: "2026-11-11",
|
|
44926
|
+
category: "feat",
|
|
44927
|
+
title: "Edits to earlier features keep downstream references",
|
|
44928
|
+
summary: "Extruded faces are named after their sketch segments and fillets, chamfers and shells keep face names, so picked edges survive edits. Move Up/Down refuses moves that would drop a feature.",
|
|
44929
|
+
features: [
|
|
44930
|
+
"naming",
|
|
44931
|
+
"feature-tree",
|
|
44932
|
+
"history"
|
|
44933
|
+
]
|
|
44934
|
+
},
|
|
44935
|
+
{
|
|
44936
|
+
id: "2026-11-11-direct-manipulation",
|
|
44937
|
+
version: "undefined",
|
|
44938
|
+
date: "2026-11-11",
|
|
44939
|
+
category: "feat",
|
|
44940
|
+
title: "Direct manipulation: press-pull, handles, live dimensions",
|
|
44941
|
+
summary: "Mac app: press-pull planar faces into real features, drag on-canvas handles for extrude/fillet/shell, type exact values into a live dimension, and a redesigned hairline gizmo.",
|
|
44942
|
+
features: [
|
|
44943
|
+
"mac-app",
|
|
44944
|
+
"viewport",
|
|
44945
|
+
"gizmo",
|
|
44946
|
+
"press-pull"
|
|
44947
|
+
]
|
|
44948
|
+
},
|
|
44822
44949
|
{
|
|
44823
44950
|
id: "2026-11-11-counterbore-breakout",
|
|
44824
44951
|
version: "0.11.0",
|
|
@@ -44831,6 +44958,32 @@ var init_CHANGELOG = __esm({
|
|
|
44831
44958
|
"kernel"
|
|
44832
44959
|
]
|
|
44833
44960
|
},
|
|
44961
|
+
{
|
|
44962
|
+
id: "2026-11-11-assembly-export-clearance-step-cache",
|
|
44963
|
+
version: "undefined",
|
|
44964
|
+
date: "2026-11-11",
|
|
44965
|
+
category: "fix",
|
|
44966
|
+
title: "Assembly export, interference and big STEP opens fixed",
|
|
44967
|
+
summary: "Assembly GLB/STL no longer duplicates every part at the origin, STEP exports posed instances, interference scales to big assemblies, and STEP assemblies parse once.",
|
|
44968
|
+
features: [
|
|
44969
|
+
"assembly",
|
|
44970
|
+
"export",
|
|
44971
|
+
"step",
|
|
44972
|
+
"clearance"
|
|
44973
|
+
]
|
|
44974
|
+
},
|
|
44975
|
+
{
|
|
44976
|
+
id: "2026-11-11-arc-extrude-boolean-tearing",
|
|
44977
|
+
version: "0.11.0",
|
|
44978
|
+
date: "2026-11-11",
|
|
44979
|
+
category: "fix",
|
|
44980
|
+
title: "No more tearing when cutting into extruded arc walls",
|
|
44981
|
+
summary: "Booleans that split the curved wall of an arc-bearing sketch extrude no longer tear the wall away from its caps; results stay watertight.",
|
|
44982
|
+
features: [
|
|
44983
|
+
"booleans",
|
|
44984
|
+
"extrude"
|
|
44985
|
+
]
|
|
44986
|
+
},
|
|
44834
44987
|
{
|
|
44835
44988
|
id: "2026-11-11-agent-cursor",
|
|
44836
44989
|
version: "0.11.0",
|
|
@@ -45116,6 +45269,22 @@ var init_CHANGELOG = __esm({
|
|
|
45116
45269
|
"inspect_cad"
|
|
45117
45270
|
]
|
|
45118
45271
|
},
|
|
45272
|
+
{
|
|
45273
|
+
id: "2026-11-10-import-from-photos",
|
|
45274
|
+
version: "0.11.0",
|
|
45275
|
+
date: "2026-11-10",
|
|
45276
|
+
category: "feat",
|
|
45277
|
+
title: "Experimental: import a part from photos",
|
|
45278
|
+
summary: "Mac app: photos of a part beside a tag36h11 AprilTag become an editable document with named, \xB1\u03C3 dimensions. Tested on synthetic renders only, not yet real photos.",
|
|
45279
|
+
features: [
|
|
45280
|
+
"native",
|
|
45281
|
+
"mac",
|
|
45282
|
+
"import",
|
|
45283
|
+
"image-to-cad",
|
|
45284
|
+
"parameters",
|
|
45285
|
+
"experimental"
|
|
45286
|
+
]
|
|
45287
|
+
},
|
|
45119
45288
|
{
|
|
45120
45289
|
id: "2026-11-10-gym-step-angle-units",
|
|
45121
45290
|
version: "0.11.0",
|
|
@@ -47192,6 +47361,20 @@ var init_CHANGELOG = __esm({
|
|
|
47192
47361
|
"manufacture"
|
|
47193
47362
|
]
|
|
47194
47363
|
},
|
|
47364
|
+
{
|
|
47365
|
+
id: "2026-10-13-cone-frustum-radii",
|
|
47366
|
+
version: "0.10.0",
|
|
47367
|
+
date: "2026-10-13",
|
|
47368
|
+
category: "fix",
|
|
47369
|
+
title: "Cone frustum keeps its radii when the top is wider",
|
|
47370
|
+
summary: "A cone/frustum whose top radius exceeds its base no longer swaps the two radii: the apex is now placed from the base radius, so the solid matches the requested geometry.",
|
|
47371
|
+
details: "ConeSurface::from_frustum placed the apex from radius_top in the radius_bottom < radius_top branch, so the lateral surface came out with the radii swapped even though the B-rep circles were correct: Solid::cone(2, 10, 10) produced radius 10 at z=0 and 18 at z=10 instead of 2 and 10, with a volume about 3x the analytic value. Volume and bounding box are symmetric in the two radii, so neither caught it; it only showed in an asymmetric operation or a per-z-band radius sample. This affected any cone with radius_top > radius_bottom, including cylinder(r1 < r2) imported from OpenSCAD and zero-radius cones such as cylinder(h=10, r1=0, r2=5), which additionally tessellated non-watertight.",
|
|
47372
|
+
features: [
|
|
47373
|
+
"kernel",
|
|
47374
|
+
"geometry",
|
|
47375
|
+
"primitives"
|
|
47376
|
+
]
|
|
47377
|
+
},
|
|
47195
47378
|
{
|
|
47196
47379
|
id: "2026-09-17-native-instant-open-contour-cam",
|
|
47197
47380
|
version: "0.10.0",
|
|
@@ -92451,8 +92634,8 @@ var init_server3 = __esm({
|
|
|
92451
92634
|
resolveLoonAssets(doc, { base_dir }, engine);
|
|
92452
92635
|
});
|
|
92453
92636
|
PKG_VERSION = (() => {
|
|
92454
|
-
if ("0.11.0-main.
|
|
92455
|
-
return "0.11.0-main.
|
|
92637
|
+
if ("0.11.0-main.162") {
|
|
92638
|
+
return "0.11.0-main.162";
|
|
92456
92639
|
}
|
|
92457
92640
|
try {
|
|
92458
92641
|
const req = createRequire3(import.meta.url);
|
|
@@ -92461,8 +92644,8 @@ var init_server3 = __esm({
|
|
|
92461
92644
|
return "0.0.0";
|
|
92462
92645
|
}
|
|
92463
92646
|
})();
|
|
92464
|
-
BUILD_SHA = "
|
|
92465
|
-
BUILD_TIME = "2026-11-
|
|
92647
|
+
BUILD_SHA = "7d787f258ea026c36d80b9cb137c3f0064fcce3c";
|
|
92648
|
+
BUILD_TIME = "2026-11-11T19:59:54.944Z";
|
|
92466
92649
|
SHORT_SHA = BUILD_SHA === "unknown" ? "unknown" : BUILD_SHA.slice(0, 7);
|
|
92467
92650
|
VERSION_WITH_BUILD = SHORT_SHA === "unknown" ? PKG_VERSION : `${PKG_VERSION}+${SHORT_SHA}`;
|
|
92468
92651
|
INSTANCE_ID = randomUUID5().slice(0, 8);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vcad/mcp",
|
|
3
|
-
"version": "0.11.0-main.
|
|
3
|
+
"version": "0.11.0-main.162",
|
|
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://github.com/muni-works/vcad",
|
|
21
21
|
"vcadBuild": {
|
|
22
|
-
"sha": "
|
|
23
|
-
"builtAt": "2026-11-
|
|
22
|
+
"sha": "7d787f258ea026c36d80b9cb137c3f0064fcce3c",
|
|
23
|
+
"builtAt": "2026-11-11T19:59:54.944Z"
|
|
24
24
|
}
|
|
25
25
|
}
|