@vcad/mcp 0.10.0-main.92 → 0.10.0-main.94

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 1d21427596581d6f5946230ce1a272c3832d7e54 at 2026-10-14T20:34:30.208Z. Source: https://github.com/ecto/vcad
9
+ Built from 6176496f3a4b9477437d5eec85aea4bc40cde13c at 2026-10-17T18:45:10.765Z. 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_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);
4543
+ return wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___js_sys_7c82484d4a1d6091___Function_fn_wasm_bindgen_d8ba3021eaa32f54___JsValue_____wasm_bindgen_d8ba3021eaa32f54___sys__Undefined___js_sys_7c82484d4a1d6091___Function_fn_wasm_bindgen_d8ba3021eaa32f54___JsValue_____wasm_bindgen_d8ba3021eaa32f54___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_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);
4581
+ return wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___js_sys_7c82484d4a1d6091___Function_fn_wasm_bindgen_d8ba3021eaa32f54___JsValue_____wasm_bindgen_d8ba3021eaa32f54___sys__Undefined___js_sys_7c82484d4a1d6091___Function_fn_wasm_bindgen_d8ba3021eaa32f54___JsValue_____wasm_bindgen_d8ba3021eaa32f54___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_12e6611167e092dc___convert__closures_____invoke___wasm_bindgen_12e6611167e092dc___JsValue__core_608f92abc48d28da___result__Result_____wasm_bindgen_12e6611167e092dc___JsError___true_);
5371
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___JsValue__core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___JsError___true_);
5372
5372
  return ret;
5373
5373
  },
5374
5374
  __wbindgen_generic_0000000000000002: function(arg0, arg1) {
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_);
5375
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___JsError___true_);
5376
5376
  return ret;
5377
5377
  },
5378
5378
  __wbindgen_generic_0000000000000003: function(arg0, arg1) {
5379
- const ret = makeMutClosure(arg0, arg1, wasm_bindgen_12e6611167e092dc___convert__closures_____invoke___wgpu_65c4c42ce715acb5___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_);
5379
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wgpu_f894171a91484cea___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_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);
5383
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___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_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);
5387
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___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_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);
5461
+ function wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_(arg0, arg1, arg2) {
5462
+ wasm.wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_(arg0, arg1, arg2);
5463
5463
  }
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);
5464
+ function wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___JsValue__core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___JsError___true_(arg0, arg1, arg2) {
5465
+ const ret = wasm.wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___JsValue__core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___JsError___true_(arg0, arg1, arg2);
5466
5466
  if (ret[1]) {
5467
5467
  throw takeFromExternrefTable0(ret[0]);
5468
5468
  }
5469
5469
  }
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);
5470
+ function wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___JsError___true_(arg0, arg1, arg2) {
5471
+ const ret = wasm.wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___JsError___true_(arg0, arg1, arg2);
5472
5472
  if (ret[1]) {
5473
5473
  throw takeFromExternrefTable0(ret[0]);
5474
5474
  }
5475
5475
  }
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);
5476
+ function wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___JsError___true__440(arg0, arg1, arg2) {
5477
+ const ret = wasm.wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___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_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);
5482
+ function wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___JsError___true__441(arg0, arg1, arg2) {
5483
+ const ret = wasm.wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bindgen_d8ba3021eaa32f54___sys__JsNullable_wgpu_f894171a91484cea___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_37ee0ce0c4cd57d5___result__Result_____wasm_bindgen_d8ba3021eaa32f54___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_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);
5488
+ function wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___js_sys_7c82484d4a1d6091___Function_fn_wasm_bindgen_d8ba3021eaa32f54___JsValue_____wasm_bindgen_d8ba3021eaa32f54___sys__Undefined___js_sys_7c82484d4a1d6091___Function_fn_wasm_bindgen_d8ba3021eaa32f54___JsValue_____wasm_bindgen_d8ba3021eaa32f54___sys__Undefined_______true_(arg0, arg1, arg2, arg3) {
5489
+ wasm.wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___js_sys_7c82484d4a1d6091___Function_fn_wasm_bindgen_d8ba3021eaa32f54___JsValue_____wasm_bindgen_d8ba3021eaa32f54___sys__Undefined___js_sys_7c82484d4a1d6091___Function_fn_wasm_bindgen_d8ba3021eaa32f54___JsValue_____wasm_bindgen_d8ba3021eaa32f54___sys__Undefined_______true_(arg0, arg1, arg2, arg3);
5490
5490
  }
5491
5491
  function addToExternrefTable0(obj) {
5492
5492
  const idx = wasm.__externref_table_alloc();
@@ -32576,7 +32576,9 @@ var init_document_store = __esm({
32576
32576
  stackupLayers.push({ layer: "FCu", copperThickness: 0.035 });
32577
32577
  if (layerCount >= 4) {
32578
32578
  const innerCount = layerCount - 2;
32579
- const innerLayerNames = ["In1Cu", "In2Cu", "In3Cu", "In4Cu", "In5Cu", "In6Cu"];
32579
+ if (innerCount > 30)
32580
+ throw new Error(`layers ${layerCount} exceeds 32 copper layers`);
32581
+ const innerLayerNames = Array.from({ length: 30 }, (_, i) => `In${i + 1}Cu`);
32580
32582
  const dielectricPerLayer = thickness / (layerCount - 1);
32581
32583
  for (let i = 0; i < innerCount; i++) {
32582
32584
  stackupLayers.push({
@@ -41713,6 +41715,79 @@ var init_CHANGELOG = __esm({
41713
41715
  CHANGELOG_default = {
41714
41716
  $schema: "./changelog.schema.json",
41715
41717
  entries: [
41718
+ {
41719
+ id: "2026-10-17-tessellate-bspline-bilinear-dispatch",
41720
+ version: "0.10.0",
41721
+ date: "2026-10-17",
41722
+ category: "fix",
41723
+ title: "B-spline and bilinear faces no longer tessellate flat",
41724
+ summary: "Both solid tessellation entry points sent B-spline and bilinear faces to the planar fan, flattening curved faces to their boundary polygon; they now use the true-surface tessellators.",
41725
+ features: [
41726
+ "tessellation",
41727
+ "nurbs",
41728
+ "kernel"
41729
+ ]
41730
+ },
41731
+ {
41732
+ id: "2026-10-17-pcb-32-copper-layers",
41733
+ version: "0.10.0",
41734
+ date: "2026-10-17",
41735
+ category: "fix",
41736
+ title: "PCB: all 32 KiCad copper layers (In1..In30)",
41737
+ summary: "The PCB IR now carries In1Cu..In30Cu; DRC/DFM layer masks widened to 32 bits so copper on layers past In8 is no longer an unconnected island.",
41738
+ features: [
41739
+ "pcb",
41740
+ "ecad",
41741
+ "drc",
41742
+ "ir"
41743
+ ]
41744
+ },
41745
+ {
41746
+ id: "2026-10-17-kicad-import-wildcard-layers",
41747
+ version: "0.10.0",
41748
+ date: "2026-10-17",
41749
+ category: "fix",
41750
+ title: "KiCad import: THT pads, multi-layer zones, arcs",
41751
+ summary: "KiCad import expands *.Cu / F&B.Cu / *.Mask against the board's stack (THT pads were importing with no copper), splits multi-layer zones, imports arc tracks and In9-In30, and warns instead of dropping.",
41752
+ features: [
41753
+ "pcb",
41754
+ "ecad",
41755
+ "kicad",
41756
+ "import",
41757
+ "drc"
41758
+ ],
41759
+ mcpTools: [
41760
+ "import_kicad"
41761
+ ]
41762
+ },
41763
+ {
41764
+ id: "2026-10-17-gerber-filefunction-stack-numbering",
41765
+ version: "0.10.0",
41766
+ date: "2026-10-17",
41767
+ category: "fix",
41768
+ title: "Gerber: number copper layers by real stack position",
41769
+ summary: "Gerber .FileFunction now numbers copper L1 (top) to Ln (bottom) for the board's layer count; B.Cu on a 4-layer board was tagged L2, colliding with In1.Cu.",
41770
+ features: [
41771
+ "pcb",
41772
+ "gerber",
41773
+ "export"
41774
+ ],
41775
+ mcpTools: [
41776
+ "export_gerber"
41777
+ ]
41778
+ },
41779
+ {
41780
+ id: "2026-10-16-root-cache-rigid-placement",
41781
+ version: "0.10.0",
41782
+ date: "2026-10-16",
41783
+ category: "perf",
41784
+ title: "Root mesh cache keys on shape, not placement",
41785
+ summary: "With the on-disk root cache on, a root whose top is a chain of Translate/Rotate nodes is cached under the shape beneath the chain and the rigid placement is applied to the mesh afterwards. A posed assembly re-rendered in a new pose (an arm animation) is all hits: a 242-root two-arm frame goes from ~100 s per frame to 0.3 s after the first.",
41786
+ features: [
41787
+ "render",
41788
+ "cache"
41789
+ ]
41790
+ },
41716
41791
  {
41717
41792
  id: "2026-10-14-vcad-render-dark-theme",
41718
41793
  version: "0.10.0",
@@ -54534,21 +54609,15 @@ var init_registry_dispatch = __esm({
54534
54609
  });
54535
54610
 
54536
54611
  // src/tools/pcb-layers.ts
54537
- var PCB_LAYERS;
54612
+ var INNER_COPPER, PCB_LAYERS, COPPER_STACK;
54538
54613
  var init_pcb_layers = __esm({
54539
54614
  "src/tools/pcb-layers.ts"() {
54540
54615
  "use strict";
54616
+ INNER_COPPER = Array.from({ length: 30 }, (_, i) => `In${i + 1}Cu`);
54541
54617
  PCB_LAYERS = [
54542
54618
  "FCu",
54543
54619
  "BCu",
54544
- "In1Cu",
54545
- "In2Cu",
54546
- "In3Cu",
54547
- "In4Cu",
54548
- "In5Cu",
54549
- "In6Cu",
54550
- "In7Cu",
54551
- "In8Cu",
54620
+ ...INNER_COPPER,
54552
54621
  "FSilkS",
54553
54622
  "BSilkS",
54554
54623
  "FMask",
@@ -54563,6 +54632,7 @@ var init_pcb_layers = __esm({
54563
54632
  "UserDrawings",
54564
54633
  "UserComments"
54565
54634
  ];
54635
+ COPPER_STACK = ["FCu", ...INNER_COPPER, "BCu"];
54566
54636
  }
54567
54637
  });
54568
54638
 
@@ -70315,16 +70385,7 @@ var init_ecad2 = __esm({
70315
70385
  init_remote();
70316
70386
  init_tool_def();
70317
70387
  PCB_LAYER_SET = new Set(PCB_LAYERS);
70318
- COPPER_LAYERS = [
70319
- "FCu",
70320
- "BCu",
70321
- "In1Cu",
70322
- "In2Cu",
70323
- "In3Cu",
70324
- "In4Cu",
70325
- "In5Cu",
70326
- "In6Cu"
70327
- ];
70388
+ COPPER_LAYERS = COPPER_STACK;
70328
70389
  COPPER_LAYER_SET = new Set(COPPER_LAYERS);
70329
70390
  POSITION_TOLERANCE = 0.01;
70330
70391
  PIN_SEP = String.fromCharCode(0);
@@ -73842,6 +73903,7 @@ var init_render2 = __esm({
73842
73903
  init_tool_def();
73843
73904
  init_render_assets();
73844
73905
  init_arg_coerce();
73906
+ init_pcb_layers();
73845
73907
  init_pose();
73846
73908
  renderViewSchema = {
73847
73909
  type: "object",
@@ -73980,16 +74042,7 @@ var init_render2 = __esm({
73980
74042
  },
73981
74043
  required: ["document_id"]
73982
74044
  };
73983
- COPPER_LAYERS2 = [
73984
- "FCu",
73985
- "In1Cu",
73986
- "In2Cu",
73987
- "In3Cu",
73988
- "In4Cu",
73989
- "In5Cu",
73990
- "In6Cu",
73991
- "BCu"
73992
- ];
74045
+ COPPER_LAYERS2 = COPPER_STACK;
73993
74046
  renderStackupSchema = {
73994
74047
  type: "object",
73995
74048
  properties: {
@@ -84580,8 +84633,8 @@ var init_server3 = __esm({
84580
84633
  init_order_feed();
84581
84634
  init_animate();
84582
84635
  PKG_VERSION = (() => {
84583
- if ("0.10.0-main.92") {
84584
- return "0.10.0-main.92";
84636
+ if ("0.10.0-main.94") {
84637
+ return "0.10.0-main.94";
84585
84638
  }
84586
84639
  try {
84587
84640
  const req = createRequire2(import.meta.url);
@@ -84590,8 +84643,8 @@ var init_server3 = __esm({
84590
84643
  return "0.0.0";
84591
84644
  }
84592
84645
  })();
84593
- BUILD_SHA = "1d21427596581d6f5946230ce1a272c3832d7e54";
84594
- BUILD_TIME = "2026-10-14T20:34:30.208Z";
84646
+ BUILD_SHA = "6176496f3a4b9477437d5eec85aea4bc40cde13c";
84647
+ BUILD_TIME = "2026-10-17T18:45:10.765Z";
84595
84648
  SHORT_SHA = BUILD_SHA === "unknown" ? "unknown" : BUILD_SHA.slice(0, 7);
84596
84649
  VERSION_WITH_BUILD = SHORT_SHA === "unknown" ? PKG_VERSION : `${PKG_VERSION}+${SHORT_SHA}`;
84597
84650
  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.92",
3
+ "version": "0.10.0-main.94",
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": "1d21427596581d6f5946230ce1a272c3832d7e54",
23
- "builtAt": "2026-10-14T20:34:30.208Z"
22
+ "sha": "6176496f3a4b9477437d5eec85aea4bc40cde13c",
23
+ "builtAt": "2026-10-17T18:45:10.765Z"
24
24
  }
25
25
  }
Binary file