@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.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/index.mjs +187 -4
  3. 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 6ca36502681cbcd14c0248e16ea270d62193338f at 2026-11-11T16:44:44.291Z. Source: https://github.com/muni-works/vcad
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.159") {
92455
- return "0.11.0-main.159";
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 = "6ca36502681cbcd14c0248e16ea270d62193338f";
92465
- BUILD_TIME = "2026-11-11T16:44:44.291Z";
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.159",
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": "6ca36502681cbcd14c0248e16ea270d62193338f",
23
- "builtAt": "2026-11-11T16:44:44.291Z"
22
+ "sha": "7d787f258ea026c36d80b9cb137c3f0064fcce3c",
23
+ "builtAt": "2026-11-11T19:59:54.944Z"
24
24
  }
25
25
  }