@vcad/mcp 0.10.0-main.127 → 0.10.0-main.128

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 +107 -4
  3. package/package.json +3 -3
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 29cbe4343d120465c4b5eda7f7ccfc72d65a2171 at 2026-10-21T14:37:18.317Z. Source: https://github.com/ecto/vcad
9
+ Built from cb926fa0eb538b57dde7e948d6f98ffa3e66b1ee at 2026-10-21T15:04:03.835Z. Source: https://github.com/ecto/vcad
package/index.mjs CHANGED
@@ -10798,6 +10798,75 @@ var init_diff = __esm({
10798
10798
  }
10799
10799
  });
10800
10800
 
10801
+ // ../engine/dist/delta.js
10802
+ function stateFromEnvelope(json) {
10803
+ const env = typeof json === "string" ? JSON.parse(json) : json;
10804
+ if (!env.ok || !env.result)
10805
+ throw new EngineRefusal(env.error);
10806
+ return { document: env.result.document, parts: env.result.parts };
10807
+ }
10808
+ function parseDeltaEnvelope(json) {
10809
+ const env = typeof json === "string" ? JSON.parse(json) : json;
10810
+ if (!env.ok || !env.result)
10811
+ throw new EngineRefusal(env.error);
10812
+ return env.result;
10813
+ }
10814
+ function applyDocumentDelta(doc, delta) {
10815
+ const out = { ...doc };
10816
+ for (const key3 of delta.removedFields)
10817
+ delete out[key3];
10818
+ for (const [key3, value] of Object.entries(delta.fields))
10819
+ out[key3] = value;
10820
+ for (const [key3, patch] of Object.entries(delta.maps)) {
10821
+ const prev = out[key3];
10822
+ const map = prev && typeof prev === "object" && !Array.isArray(prev) ? { ...prev } : {};
10823
+ for (const k of patch.remove)
10824
+ delete map[k];
10825
+ for (const [k, v] of Object.entries(patch.set))
10826
+ map[k] = v;
10827
+ out[key3] = map;
10828
+ }
10829
+ return out;
10830
+ }
10831
+ function applyPartsDelta(parts, delta) {
10832
+ const order = delta.order ?? parts.map((p) => p.id);
10833
+ const byId = new Map(parts.map((p) => [p.id, p]));
10834
+ for (const p of [...delta.added, ...delta.updated])
10835
+ byId.set(p.id, p);
10836
+ for (const id of delta.removed)
10837
+ byId.delete(id);
10838
+ return order.flatMap((id) => {
10839
+ const p = byId.get(id);
10840
+ return p ? [p] : [];
10841
+ });
10842
+ }
10843
+ function applyEngineDelta(state, delta) {
10844
+ return {
10845
+ state: {
10846
+ document: applyDocumentDelta(state.document, delta.document),
10847
+ parts: applyPartsDelta(state.parts, delta.parts)
10848
+ },
10849
+ changes: {
10850
+ rebuild: [...delta.parts.added, ...delta.parts.updated].map((p) => p.id),
10851
+ removed: [...delta.parts.removed]
10852
+ }
10853
+ };
10854
+ }
10855
+ var EngineRefusal;
10856
+ var init_delta = __esm({
10857
+ "../engine/dist/delta.js"() {
10858
+ "use strict";
10859
+ EngineRefusal = class extends Error {
10860
+ error;
10861
+ constructor(error2) {
10862
+ super(error2.message);
10863
+ this.error = error2;
10864
+ this.name = "EngineRefusal";
10865
+ }
10866
+ };
10867
+ }
10868
+ });
10869
+
10801
10870
  // ../engine/dist/sequence.js
10802
10871
  function requireWasm2() {
10803
10872
  const mod = getKernelWasmSync();
@@ -11955,6 +12024,7 @@ __export(dist_exports, {
11955
12024
  DEFAULT_SHOP_PROFILE: () => DEFAULT_SHOP_PROFILE,
11956
12025
  DependencyGraph: () => DependencyGraph,
11957
12026
  Engine: () => Engine,
12027
+ EngineRefusal: () => EngineRefusal,
11958
12028
  ExpressionEvalError: () => EvalError,
11959
12029
  ExpressionParseError: () => ParseError,
11960
12030
  MdEnv: () => MdEnv,
@@ -11963,7 +12033,10 @@ __export(dist_exports, {
11963
12033
  SolidCache: () => SolidCache,
11964
12034
  airgapFluxDensity: () => airgapFluxDensity,
11965
12035
  airgapSolve: () => airgapSolve,
12036
+ applyDocumentDelta: () => applyDocumentDelta,
12037
+ applyEngineDelta: () => applyEngineDelta,
11966
12038
  applyForwardKinematics: () => applyForwardKinematics,
12039
+ applyPartsDelta: () => applyPartsDelta,
11967
12040
  buildMoleculeReceipt: () => buildReceipt2,
11968
12041
  buildPartDocument: () => buildPartDocument,
11969
12042
  buildReceipt: () => buildReceipt,
@@ -12033,6 +12106,7 @@ __export(dist_exports, {
12033
12106
  parseAltiumPcbDoc: () => parseAltiumPcbDoc2,
12034
12107
  parseAltiumPcbLib: () => parseAltiumPcbLib2,
12035
12108
  parseBindingKey: () => parseBindingKey,
12109
+ parseDeltaEnvelope: () => parseDeltaEnvelope,
12036
12110
  parseEagleBrd: () => parseEagleBrd2,
12037
12111
  parseExpression: () => parse,
12038
12112
  parseKicadPcb: () => parseKicadPcb2,
@@ -12066,6 +12140,7 @@ __export(dist_exports, {
12066
12140
  semanticDiff: () => semanticDiff,
12067
12141
  solveDesignConstraints: () => solveDesignConstraints2,
12068
12142
  solveForwardKinematics: () => solveForwardKinematics2,
12143
+ stateFromEnvelope: () => stateFromEnvelope,
12069
12144
  threeWayMerge: () => threeWayMerge,
12070
12145
  toWorld: () => toWorld,
12071
12146
  transformMesh: () => transformMesh,
@@ -12092,6 +12167,7 @@ var init_dist = __esm({
12092
12167
  init_gpu();
12093
12168
  init_diff();
12094
12169
  init_solid_cache();
12170
+ init_delta();
12095
12171
  init_mesh_cache();
12096
12172
  init_dependency_graph();
12097
12173
  init_evaluate();
@@ -41395,6 +41471,19 @@ var init_CHANGELOG = __esm({
41395
41471
  "render"
41396
41472
  ]
41397
41473
  },
41474
+ {
41475
+ id: "2026-10-21-photoreal-focus-dist",
41476
+ version: "0.10.0",
41477
+ date: "2026-10-21",
41478
+ category: "feat",
41479
+ title: "Depth of field controls for photoreal renders",
41480
+ summary: "--focus-dist sets the thin-lens plane of focus in vcad-render; vcad render --photoreal gains --aperture, --focus-dist and --focus-part.",
41481
+ features: [
41482
+ "photoreal",
41483
+ "render",
41484
+ "cli"
41485
+ ]
41486
+ },
41398
41487
  {
41399
41488
  id: "2026-10-21-mac-sim-teardown-race",
41400
41489
  version: "0.10.0",
@@ -41419,6 +41508,20 @@ var init_CHANGELOG = __esm({
41419
41508
  "file-io"
41420
41509
  ]
41421
41510
  },
41511
+ {
41512
+ id: "2026-10-21-mac-exports-photoreal",
41513
+ version: "0.10.0",
41514
+ date: "2026-10-21",
41515
+ category: "feat",
41516
+ title: "Mac app exports STEP and GLB, renders photoreal",
41517
+ summary: "File \u25B8 Export now writes STL, STEP and GLB with the CLI's writers, and File \u25B8 Render Photoreal\u2026 path-traces the current view with progress and cancel, no external binary.",
41518
+ features: [
41519
+ "desktop",
41520
+ "mac",
41521
+ "export",
41522
+ "photoreal"
41523
+ ]
41524
+ },
41422
41525
  {
41423
41526
  id: "2026-10-21-mac-app-updates",
41424
41527
  version: "0.10.0",
@@ -86902,8 +87005,8 @@ var init_server3 = __esm({
86902
87005
  init_order_feed();
86903
87006
  init_animate();
86904
87007
  PKG_VERSION = (() => {
86905
- if ("0.10.0-main.127") {
86906
- return "0.10.0-main.127";
87008
+ if ("0.10.0-main.128") {
87009
+ return "0.10.0-main.128";
86907
87010
  }
86908
87011
  try {
86909
87012
  const req = createRequire2(import.meta.url);
@@ -86912,8 +87015,8 @@ var init_server3 = __esm({
86912
87015
  return "0.0.0";
86913
87016
  }
86914
87017
  })();
86915
- BUILD_SHA = "29cbe4343d120465c4b5eda7f7ccfc72d65a2171";
86916
- BUILD_TIME = "2026-10-21T14:37:18.317Z";
87018
+ BUILD_SHA = "cb926fa0eb538b57dde7e948d6f98ffa3e66b1ee";
87019
+ BUILD_TIME = "2026-10-21T15:04:03.835Z";
86917
87020
  SHORT_SHA = BUILD_SHA === "unknown" ? "unknown" : BUILD_SHA.slice(0, 7);
86918
87021
  VERSION_WITH_BUILD = SHORT_SHA === "unknown" ? PKG_VERSION : `${PKG_VERSION}+${SHORT_SHA}`;
86919
87022
  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.127",
3
+ "version": "0.10.0-main.128",
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": "29cbe4343d120465c4b5eda7f7ccfc72d65a2171",
23
- "builtAt": "2026-10-21T14:37:18.317Z"
22
+ "sha": "cb926fa0eb538b57dde7e948d6f98ffa3e66b1ee",
23
+ "builtAt": "2026-10-21T15:04:03.835Z"
24
24
  }
25
25
  }