@vcad/mcp 0.10.0-main.88 → 0.10.0-main.90

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 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 1b714132349c51286c24d632137eb59736053ec9 at 2026-09-17T16:32:42.085Z. Source: https://github.com/ecto/vcad
9
+ Built from d3d8fe34fc60d4bda8648ccd6ba1a41ab6dad067 at 2026-10-14T11:27:01.109Z. Source: https://github.com/ecto/vcad
package/index.mjs CHANGED
@@ -4540,7 +4540,7 @@ function __wbg_get_imports() {
4540
4540
  const a = state0.a;
4541
4541
  state0.a = 0;
4542
4542
  try {
4543
- return wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___js_sys_a7eb04f8bd1805db___Function_fn_wasm_bindgen_acf9c2f2c9dd69b6___JsValue_____wasm_bindgen_acf9c2f2c9dd69b6___sys__Undefined___js_sys_a7eb04f8bd1805db___Function_fn_wasm_bindgen_acf9c2f2c9dd69b6___JsValue_____wasm_bindgen_acf9c2f2c9dd69b6___sys__Undefined_______true_(a, state0.b, arg02, arg12);
4543
+ return wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___js_sys_c52f19375726de1___Function_fn_wasm_bindgen_12e6611167e092dc___JsValue_____wasm_bindgen_12e6611167e092dc___sys__Undefined___js_sys_c52f19375726de1___Function_fn_wasm_bindgen_12e6611167e092dc___JsValue_____wasm_bindgen_12e6611167e092dc___sys__Undefined_______true_(a, state0.b, arg02, arg12);
4544
4544
  } finally {
4545
4545
  state0.a = a;
4546
4546
  }
@@ -4578,7 +4578,7 @@ function __wbg_get_imports() {
4578
4578
  const a = state0.a;
4579
4579
  state0.a = 0;
4580
4580
  try {
4581
- return wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___js_sys_a7eb04f8bd1805db___Function_fn_wasm_bindgen_acf9c2f2c9dd69b6___JsValue_____wasm_bindgen_acf9c2f2c9dd69b6___sys__Undefined___js_sys_a7eb04f8bd1805db___Function_fn_wasm_bindgen_acf9c2f2c9dd69b6___JsValue_____wasm_bindgen_acf9c2f2c9dd69b6___sys__Undefined_______true_(a, state0.b, arg02, arg12);
4581
+ return wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___js_sys_c52f19375726de1___Function_fn_wasm_bindgen_12e6611167e092dc___JsValue_____wasm_bindgen_12e6611167e092dc___sys__Undefined___js_sys_c52f19375726de1___Function_fn_wasm_bindgen_12e6611167e092dc___JsValue_____wasm_bindgen_12e6611167e092dc___sys__Undefined_______true_(a, state0.b, arg02, arg12);
4582
4582
  } finally {
4583
4583
  state0.a = a;
4584
4584
  }
@@ -5368,23 +5368,23 @@ function __wbg_get_imports() {
5368
5368
  }, arguments);
5369
5369
  },
5370
5370
  __wbindgen_generic_0000000000000001: function(arg0, arg1) {
5371
- const ret = makeMutClosure(arg0, arg1, wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true_);
5371
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___JsValue__core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true_);
5372
5372
  return ret;
5373
5373
  },
5374
5374
  __wbindgen_generic_0000000000000002: function(arg0, arg1) {
5375
- const ret = makeMutClosure(arg0, arg1, wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true_);
5375
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true_);
5376
5376
  return ret;
5377
5377
  },
5378
5378
  __wbindgen_generic_0000000000000003: function(arg0, arg1) {
5379
- const ret = makeMutClosure(arg0, arg1, wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_);
5379
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_);
5380
5380
  return ret;
5381
5381
  },
5382
5382
  __wbindgen_generic_0000000000000004: function(arg0, arg1) {
5383
- const ret = makeMutClosure(arg0, arg1, wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true__440);
5383
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true__440);
5384
5384
  return ret;
5385
5385
  },
5386
5386
  __wbindgen_generic_0000000000000005: function(arg0, arg1) {
5387
- const ret = makeMutClosure(arg0, arg1, wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true__441);
5387
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true__441);
5388
5388
  return ret;
5389
5389
  },
5390
5390
  __wbindgen_generic_0000000000000006: function(arg0) {
@@ -5458,35 +5458,35 @@ function __wbg_get_imports() {
5458
5458
  "./vcad_kernel_wasm_bg.js": import0
5459
5459
  };
5460
5460
  }
5461
- function wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_(arg0, arg1, arg2) {
5462
- wasm.wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_(arg0, arg1, arg2);
5461
+ function wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_(arg0, arg1, arg2) {
5462
+ wasm.wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_(arg0, arg1, arg2);
5463
5463
  }
5464
- function wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true_(arg0, arg1, arg2) {
5465
- const ret = wasm.wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true_(arg0, arg1, arg2);
5464
+ function wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___JsValue__core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true_(arg0, arg1, arg2) {
5465
+ const ret = wasm.wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___JsValue__core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true_(arg0, arg1, arg2);
5466
5466
  if (ret[1]) {
5467
5467
  throw takeFromExternrefTable0(ret[0]);
5468
5468
  }
5469
5469
  }
5470
- function wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true_(arg0, arg1, arg2) {
5471
- const ret = wasm.wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true_(arg0, arg1, arg2);
5470
+ function wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true_(arg0, arg1, arg2) {
5471
+ const ret = wasm.wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true_(arg0, arg1, arg2);
5472
5472
  if (ret[1]) {
5473
5473
  throw takeFromExternrefTable0(ret[0]);
5474
5474
  }
5475
5475
  }
5476
- function wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true__440(arg0, arg1, arg2) {
5477
- const ret = wasm.wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true__440(arg0, arg1, arg2);
5476
+ function wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true__440(arg0, arg1, arg2) {
5477
+ const ret = wasm.wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true__440(arg0, arg1, arg2);
5478
5478
  if (ret[1]) {
5479
5479
  throw takeFromExternrefTable0(ret[0]);
5480
5480
  }
5481
5481
  }
5482
- function wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true__441(arg0, arg1, arg2) {
5483
- const ret = wasm.wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___wasm_bindgen_acf9c2f2c9dd69b6___sys__JsNullable_wgpu_13387fd488b29474___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_ed718c3d60ebd546___result__Result_____wasm_bindgen_acf9c2f2c9dd69b6___JsError___true__441(arg0, arg1, arg2);
5482
+ function wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true__441(arg0, arg1, arg2) {
5483
+ const ret = wasm.wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___sys__JsNullable_wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true__441(arg0, arg1, arg2);
5484
5484
  if (ret[1]) {
5485
5485
  throw takeFromExternrefTable0(ret[0]);
5486
5486
  }
5487
5487
  }
5488
- function wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___js_sys_a7eb04f8bd1805db___Function_fn_wasm_bindgen_acf9c2f2c9dd69b6___JsValue_____wasm_bindgen_acf9c2f2c9dd69b6___sys__Undefined___js_sys_a7eb04f8bd1805db___Function_fn_wasm_bindgen_acf9c2f2c9dd69b6___JsValue_____wasm_bindgen_acf9c2f2c9dd69b6___sys__Undefined_______true_(arg0, arg1, arg2, arg3) {
5489
- wasm.wasm_bindgen_acf9c2f2c9dd69b6___convert__closures_____invoke___js_sys_a7eb04f8bd1805db___Function_fn_wasm_bindgen_acf9c2f2c9dd69b6___JsValue_____wasm_bindgen_acf9c2f2c9dd69b6___sys__Undefined___js_sys_a7eb04f8bd1805db___Function_fn_wasm_bindgen_acf9c2f2c9dd69b6___JsValue_____wasm_bindgen_acf9c2f2c9dd69b6___sys__Undefined_______true_(arg0, arg1, arg2, arg3);
5488
+ function wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___js_sys_c52f19375726de1___Function_fn_wasm_bindgen_12e6611167e092dc___JsValue_____wasm_bindgen_12e6611167e092dc___sys__Undefined___js_sys_c52f19375726de1___Function_fn_wasm_bindgen_12e6611167e092dc___JsValue_____wasm_bindgen_12e6611167e092dc___sys__Undefined_______true_(arg0, arg1, arg2, arg3) {
5489
+ wasm.wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___js_sys_c52f19375726de1___Function_fn_wasm_bindgen_12e6611167e092dc___JsValue_____wasm_bindgen_12e6611167e092dc___sys__Undefined___js_sys_c52f19375726de1___Function_fn_wasm_bindgen_12e6611167e092dc___JsValue_____wasm_bindgen_12e6611167e092dc___sys__Undefined_______true_(arg0, arg1, arg2, arg3);
5490
5490
  }
5491
5491
  function addToExternrefTable0(obj) {
5492
5492
  const idx = wasm.__externref_table_alloc();
@@ -41713,6 +41713,19 @@ var init_CHANGELOG = __esm({
41713
41713
  CHANGELOG_default = {
41714
41714
  $schema: "./changelog.schema.json",
41715
41715
  entries: [
41716
+ {
41717
+ id: "2026-10-13-render-hole-callouts-and-tinted-style",
41718
+ version: "0.10.0",
41719
+ date: "2026-10-13",
41720
+ category: "feat",
41721
+ title: "vcad-render: hole/PCD callouts and material tints",
41722
+ summary: "--callouts annotates holes and bosses with \xD8 leaders and collapses equal-pitch bolt circles to one 'n\xD7 \xD8d on \xD8pcd PCD' callout; --style tinted keeps the drafting look but tints fills by material so steel, aluminium and black parts read apart.",
41723
+ features: [
41724
+ "render",
41725
+ "drafting",
41726
+ "manufacture"
41727
+ ]
41728
+ },
41716
41729
  {
41717
41730
  id: "2026-09-17-native-instant-open-contour-cam",
41718
41731
  version: "0.10.0",
@@ -41729,6 +41742,32 @@ var init_CHANGELOG = __esm({
41729
41742
  "performance"
41730
41743
  ]
41731
41744
  },
41745
+ {
41746
+ id: "2026-09-17-coplanar-cap-unions-stay-analytic",
41747
+ version: "0.10.0",
41748
+ date: "2026-09-17",
41749
+ category: "fix",
41750
+ title: "Unions of flush prismatic parts stay analytic",
41751
+ summary: "Posts, tabs and bosses unioned into a body with shared top and bottom faces no longer double or drop the caps over their overlap; operand order no longer changes the result.",
41752
+ details: "A small coplanar face lying inside a larger one was judged coincident from one side only, so `post \u222A ring` kept both copies of the overlap while `ring \u222A post` was exact; the larger face now wins. Planar faces are no longer cut by full-width chords from faces that merely end flush on them, which scrambled classification once two such chords crossed (twelve posts into a ring lost 9% of their volume). A line crossing a notched face in several spans now cuts the span it was recorded on rather than always the first. The rana-60 stator goes from 105k triangles of mesh fallback to 11.7k analytic triangles at +0.06% of its reference volume, in under half the time.",
41753
+ features: [
41754
+ "kernel",
41755
+ "booleans"
41756
+ ]
41757
+ },
41758
+ {
41759
+ id: "2026-09-17-contour-cam-side-and-tabs",
41760
+ version: "0.10.0",
41761
+ date: "2026-09-17",
41762
+ category: "fix",
41763
+ title: "Inside contours cut inside; holding tabs hold",
41764
+ summary: "Inside contour toolpaths were offset outward, into the part. Tabs now survive every pass at their stated width, avoid notches and corners, and cut depth follows stock thickness.",
41765
+ features: [
41766
+ "cam",
41767
+ "native-app",
41768
+ "manufacture"
41769
+ ]
41770
+ },
41732
41771
  {
41733
41772
  id: "2026-09-16-native-app-hig-polish",
41734
41773
  version: "0.10.0",
@@ -62359,7 +62398,7 @@ function validatePinType(raw, where) {
62359
62398
  }
62360
62399
  function isTwoPinPassiveFootprint(footprint) {
62361
62400
  if (typeof footprint !== "string") return false;
62362
- const fp = footprint.trim();
62401
+ const fp = footprint.trim().split(":").pop();
62363
62402
  if (/^[RCLD]_/i.test(fp)) return true;
62364
62403
  return CHIP_SIZE_CODES.has(fp);
62365
62404
  }
@@ -84528,8 +84567,8 @@ var init_server3 = __esm({
84528
84567
  init_order_feed();
84529
84568
  init_animate();
84530
84569
  PKG_VERSION = (() => {
84531
- if ("0.10.0-main.88") {
84532
- return "0.10.0-main.88";
84570
+ if ("0.10.0-main.90") {
84571
+ return "0.10.0-main.90";
84533
84572
  }
84534
84573
  try {
84535
84574
  const req = createRequire2(import.meta.url);
@@ -84538,8 +84577,8 @@ var init_server3 = __esm({
84538
84577
  return "0.0.0";
84539
84578
  }
84540
84579
  })();
84541
- BUILD_SHA = "1b714132349c51286c24d632137eb59736053ec9";
84542
- BUILD_TIME = "2026-09-17T16:32:42.085Z";
84580
+ BUILD_SHA = "d3d8fe34fc60d4bda8648ccd6ba1a41ab6dad067";
84581
+ BUILD_TIME = "2026-10-14T11:27:01.109Z";
84543
84582
  SHORT_SHA = BUILD_SHA === "unknown" ? "unknown" : BUILD_SHA.slice(0, 7);
84544
84583
  VERSION_WITH_BUILD = SHORT_SHA === "unknown" ? PKG_VERSION : `${PKG_VERSION}+${SHORT_SHA}`;
84545
84584
  INSTANCE_ID = randomUUID7().slice(0, 8);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcad/mcp",
3
- "version": "0.10.0-main.88",
3
+ "version": "0.10.0-main.90",
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": "1b714132349c51286c24d632137eb59736053ec9",
23
- "builtAt": "2026-09-17T16:32:42.085Z"
22
+ "sha": "d3d8fe34fc60d4bda8648ccd6ba1a41ab6dad067",
23
+ "builtAt": "2026-10-14T11:27:01.109Z"
24
24
  }
25
25
  }
Binary file