@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.
- package/README.md +1 -1
- package/index.mjs +107 -4
- 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
|
|
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.
|
|
86906
|
-
return "0.10.0-main.
|
|
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 = "
|
|
86916
|
-
BUILD_TIME = "2026-10-
|
|
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.
|
|
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": "
|
|
23
|
-
"builtAt": "2026-10-
|
|
22
|
+
"sha": "cb926fa0eb538b57dde7e948d6f98ffa3e66b1ee",
|
|
23
|
+
"builtAt": "2026-10-21T15:04:03.835Z"
|
|
24
24
|
}
|
|
25
25
|
}
|