@vcad/mcp 0.10.0-main.105 → 0.10.0-main.108
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 +168 -62
- package/package.json +3 -3
- package/vcad_kernel_wasm_bg.wasm +0 -0
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 4142e4f65547ee1e2e893302fedbaa05961d0d83 at 2026-10-20T21:28:47.814Z. Source: https://github.com/ecto/vcad
|
package/index.mjs
CHANGED
|
@@ -5380,11 +5380,11 @@ function __wbg_get_imports() {
|
|
|
5380
5380
|
return ret;
|
|
5381
5381
|
},
|
|
5382
5382
|
__wbindgen_generic_0000000000000004: function(arg0, arg1) {
|
|
5383
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
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__447);
|
|
5384
5384
|
return ret;
|
|
5385
5385
|
},
|
|
5386
5386
|
__wbindgen_generic_0000000000000005: function(arg0, arg1) {
|
|
5387
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
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__448);
|
|
5388
5388
|
return ret;
|
|
5389
5389
|
},
|
|
5390
5390
|
__wbindgen_generic_0000000000000006: function(arg0) {
|
|
@@ -5473,14 +5473,14 @@ function wasm_bindgen_d8ba3021eaa32f54___convert__closures_____invoke___wasm_bin
|
|
|
5473
5473
|
throw takeFromExternrefTable0(ret[0]);
|
|
5474
5474
|
}
|
|
5475
5475
|
}
|
|
5476
|
-
function
|
|
5477
|
-
const ret = wasm.
|
|
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__447(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__447(arg0, arg1, arg2);
|
|
5478
5478
|
if (ret[1]) {
|
|
5479
5479
|
throw takeFromExternrefTable0(ret[0]);
|
|
5480
5480
|
}
|
|
5481
5481
|
}
|
|
5482
|
-
function
|
|
5483
|
-
const ret = wasm.
|
|
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__448(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__448(arg0, arg1, arg2);
|
|
5484
5484
|
if (ret[1]) {
|
|
5485
5485
|
throw takeFromExternrefTable0(ret[0]);
|
|
5486
5486
|
}
|
|
@@ -8030,6 +8030,52 @@ var init_vcad_kernel_wasm = __esm({
|
|
|
8030
8030
|
const ret = wasm.wasmdocumentengine_add_feature(this.__wbg_ptr, ptr0, len0);
|
|
8031
8031
|
return ret;
|
|
8032
8032
|
}
|
|
8033
|
+
/**
|
|
8034
|
+
* Apply a JSON `DocCommand` (see `vcad_app::command`). Returns the
|
|
8035
|
+
* shared JSON envelope: `{"ok":true,"result":{…}}` or
|
|
8036
|
+
* `{"ok":false,"error":{"kind":…,"message":…}}`. Unlike the per-method
|
|
8037
|
+
* calls, unknown ids and malformed input are reported, not ignored.
|
|
8038
|
+
* @param {string} command_json
|
|
8039
|
+
* @returns {string}
|
|
8040
|
+
*/
|
|
8041
|
+
apply(command_json) {
|
|
8042
|
+
let deferred2_0;
|
|
8043
|
+
let deferred2_1;
|
|
8044
|
+
try {
|
|
8045
|
+
const ptr0 = passStringToWasm0(command_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
8046
|
+
const len0 = WASM_VECTOR_LEN;
|
|
8047
|
+
const ret = wasm.wasmdocumentengine_apply(this.__wbg_ptr, ptr0, len0);
|
|
8048
|
+
deferred2_0 = ret[0];
|
|
8049
|
+
deferred2_1 = ret[1];
|
|
8050
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
8051
|
+
} finally {
|
|
8052
|
+
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
8053
|
+
}
|
|
8054
|
+
}
|
|
8055
|
+
/**
|
|
8056
|
+
* Lower an AI tool call (`create`, `translate`, `linear_pattern`, …)
|
|
8057
|
+
* to a `DocCommand` in Rust and apply it. Same envelope as `apply`;
|
|
8058
|
+
* tools the engine can't lower yet report `{"kind":"unsupported"}`.
|
|
8059
|
+
* @param {string} tool
|
|
8060
|
+
* @param {string} args_json
|
|
8061
|
+
* @returns {string}
|
|
8062
|
+
*/
|
|
8063
|
+
apply_tool(tool, args_json) {
|
|
8064
|
+
let deferred3_0;
|
|
8065
|
+
let deferred3_1;
|
|
8066
|
+
try {
|
|
8067
|
+
const ptr0 = passStringToWasm0(tool, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
8068
|
+
const len0 = WASM_VECTOR_LEN;
|
|
8069
|
+
const ptr1 = passStringToWasm0(args_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
8070
|
+
const len1 = WASM_VECTOR_LEN;
|
|
8071
|
+
const ret = wasm.wasmdocumentengine_apply_tool(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
8072
|
+
deferred3_0 = ret[0];
|
|
8073
|
+
deferred3_1 = ret[1];
|
|
8074
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
8075
|
+
} finally {
|
|
8076
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
8077
|
+
}
|
|
8078
|
+
}
|
|
8033
8079
|
/**
|
|
8034
8080
|
* Whether redo is available.
|
|
8035
8081
|
* @returns {boolean}
|
|
@@ -8420,6 +8466,22 @@ var init_vcad_kernel_wasm = __esm({
|
|
|
8420
8466
|
const ret = wasm.wasmdocumentengine_set_visible(this.__wbg_ptr, ptr0, len0, visible);
|
|
8421
8467
|
return ret;
|
|
8422
8468
|
}
|
|
8469
|
+
/**
|
|
8470
|
+
* Deterministic state fingerprint; matches `vcad_engine_state_hash`.
|
|
8471
|
+
* @returns {string}
|
|
8472
|
+
*/
|
|
8473
|
+
stateHash() {
|
|
8474
|
+
let deferred1_0;
|
|
8475
|
+
let deferred1_1;
|
|
8476
|
+
try {
|
|
8477
|
+
const ret = wasm.wasmdocumentengine_stateHash(this.__wbg_ptr);
|
|
8478
|
+
deferred1_0 = ret[0];
|
|
8479
|
+
deferred1_1 = ret[1];
|
|
8480
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
8481
|
+
} finally {
|
|
8482
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
8483
|
+
}
|
|
8484
|
+
}
|
|
8423
8485
|
/**
|
|
8424
8486
|
* Undo the last action.
|
|
8425
8487
|
* @returns {any}
|
|
@@ -8442,6 +8504,16 @@ var init_vcad_kernel_wasm = __esm({
|
|
|
8442
8504
|
const ret = wasm.wasmdocumentengine_update_feature(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
8443
8505
|
return ret;
|
|
8444
8506
|
}
|
|
8507
|
+
/**
|
|
8508
|
+
* Create an empty engine with a fixed replica id (deterministic stable
|
|
8509
|
+
* ids — used by the parity harness and by hosts that persist replicas).
|
|
8510
|
+
* @param {number} replica_id
|
|
8511
|
+
* @returns {WasmDocumentEngine}
|
|
8512
|
+
*/
|
|
8513
|
+
static withReplica(replica_id) {
|
|
8514
|
+
const ret = wasm.wasmdocumentengine_withReplica(replica_id);
|
|
8515
|
+
return _WasmDocumentEngine.__wrap(ret);
|
|
8516
|
+
}
|
|
8445
8517
|
};
|
|
8446
8518
|
if (Symbol.dispose) WasmDocumentEngine.prototype[Symbol.dispose] = WasmDocumentEngine.prototype.free;
|
|
8447
8519
|
WasmKeybindings = class {
|
|
@@ -30738,8 +30810,6 @@ var init_esm2 = __esm({
|
|
|
30738
30810
|
|
|
30739
30811
|
// ../core/dist/stores/engine-command.js
|
|
30740
30812
|
function applyCommand(engine, command) {
|
|
30741
|
-
if (typeof engine.apply !== "function")
|
|
30742
|
-
return applyLegacy(engine, command);
|
|
30743
30813
|
const envelope = JSON.parse(engine.apply(JSON.stringify(command)));
|
|
30744
30814
|
if (!envelope.ok)
|
|
30745
30815
|
throw new DocCommandError(command, envelope.error);
|
|
@@ -30748,8 +30818,6 @@ function applyCommand(engine, command) {
|
|
|
30748
30818
|
return envelope.result;
|
|
30749
30819
|
}
|
|
30750
30820
|
function applyToolCall(engine, tool, args) {
|
|
30751
|
-
if (typeof engine.apply_tool !== "function")
|
|
30752
|
-
return null;
|
|
30753
30821
|
const envelope = JSON.parse(engine.apply_tool(tool, JSON.stringify(args)));
|
|
30754
30822
|
if (envelope.ok) {
|
|
30755
30823
|
for (const w of envelope.result.warnings ?? [])
|
|
@@ -30757,52 +30825,6 @@ function applyToolCall(engine, tool, args) {
|
|
|
30757
30825
|
}
|
|
30758
30826
|
return envelope;
|
|
30759
30827
|
}
|
|
30760
|
-
function applyLegacy(engine, c) {
|
|
30761
|
-
switch (c.type) {
|
|
30762
|
-
case "add_feature": {
|
|
30763
|
-
const r = engine.add_feature(JSON.stringify(c.feature));
|
|
30764
|
-
if (c.name && r.createdFeatureId) {
|
|
30765
|
-
return { ...engine.rename_feature(r.createdFeatureId, c.name), createdFeatureId: r.createdFeatureId };
|
|
30766
|
-
}
|
|
30767
|
-
return r;
|
|
30768
|
-
}
|
|
30769
|
-
case "delete_feature":
|
|
30770
|
-
return engine.delete_feature_by_id(c.id);
|
|
30771
|
-
case "set_translation":
|
|
30772
|
-
return engine.set_translation(c.id, ...c.offset);
|
|
30773
|
-
case "set_rotation":
|
|
30774
|
-
return engine.set_rotation(c.id, ...c.angles);
|
|
30775
|
-
case "set_scale":
|
|
30776
|
-
return engine.set_scale(c.id, ...c.factor);
|
|
30777
|
-
case "set_material":
|
|
30778
|
-
return engine.set_material(c.id, c.material);
|
|
30779
|
-
case "set_visible":
|
|
30780
|
-
return engine.set_visible(c.id, c.visible);
|
|
30781
|
-
case "rename":
|
|
30782
|
-
return engine.rename_feature(c.id, c.name);
|
|
30783
|
-
case "set_joint_state":
|
|
30784
|
-
return engine.set_joint_state(c.id, c.state);
|
|
30785
|
-
case "import_ir":
|
|
30786
|
-
return { consumedPartIds: [], ...engine.import_ir(JSON.stringify(c.document)) };
|
|
30787
|
-
case "set_param":
|
|
30788
|
-
return { consumedPartIds: [], ...engine.set_param(c.id, c.key, JSON.stringify(c.value)) };
|
|
30789
|
-
case "create_feature":
|
|
30790
|
-
return { consumedPartIds: [], ...engine.create_feature(c.kind, JSON.stringify(c.params ?? {})) };
|
|
30791
|
-
case "reorder": {
|
|
30792
|
-
const others = JSON.parse(engine.get_ordered_features_json()).filter((f) => f.id !== c.id);
|
|
30793
|
-
const before = c.index > 0 ? others[c.index - 1]?.id ?? "" : "";
|
|
30794
|
-
const after = others[c.index]?.id ?? "";
|
|
30795
|
-
const position = engine.compute_position_between(before, after);
|
|
30796
|
-
return { consumedPartIds: [], ...engine.move_feature(c.id, position) };
|
|
30797
|
-
}
|
|
30798
|
-
case "undo":
|
|
30799
|
-
return { consumedPartIds: [], ...engine.undo() };
|
|
30800
|
-
case "redo":
|
|
30801
|
-
return { consumedPartIds: [], ...engine.redo() };
|
|
30802
|
-
default:
|
|
30803
|
-
throw new Error(`[vcad] ${c.type} needs a kernel WASM with WasmDocumentEngine.apply`);
|
|
30804
|
-
}
|
|
30805
|
-
}
|
|
30806
30828
|
var DocCommandError;
|
|
30807
30829
|
var init_engine_command = __esm({
|
|
30808
30830
|
"../core/dist/stores/engine-command.js"() {
|
|
@@ -41443,9 +41465,7 @@ var init_camera_framing = __esm({
|
|
|
41443
41465
|
var init_executors = __esm({
|
|
41444
41466
|
"../core/dist/commands/executors.js"() {
|
|
41445
41467
|
"use strict";
|
|
41446
|
-
init_registry2();
|
|
41447
41468
|
init_engine_store();
|
|
41448
|
-
init_dist2();
|
|
41449
41469
|
init_dist();
|
|
41450
41470
|
init_camera_framing();
|
|
41451
41471
|
}
|
|
@@ -41907,6 +41927,20 @@ var init_CHANGELOG = __esm({
|
|
|
41907
41927
|
migration: "Use https://vcad.io (printing works through the local relay at 127.0.0.1:7878) or build apple/VcadApp with build-ffi.sh and bundle.sh."
|
|
41908
41928
|
}
|
|
41909
41929
|
},
|
|
41930
|
+
{
|
|
41931
|
+
id: "2026-10-20-reduced-order-thermal-stress",
|
|
41932
|
+
version: "undefined",
|
|
41933
|
+
date: "2026-10-20",
|
|
41934
|
+
category: "perf",
|
|
41935
|
+
title: "10x faster thermal-stress sweeps via superposition",
|
|
41936
|
+
summary: "Voxel FEA now exposes per-element stress tensors; a POD reduced-order sweep solves 61 transient thermal-stress frames with 6 solves (2e-4 MPa vs full).",
|
|
41937
|
+
features: [
|
|
41938
|
+
"fea",
|
|
41939
|
+
"thermal",
|
|
41940
|
+
"simulation",
|
|
41941
|
+
"animation"
|
|
41942
|
+
]
|
|
41943
|
+
},
|
|
41910
41944
|
{
|
|
41911
41945
|
id: "2026-10-20-pcb3d-kernel-ratsnest",
|
|
41912
41946
|
version: "undefined",
|
|
@@ -41919,6 +41953,37 @@ var init_CHANGELOG = __esm({
|
|
|
41919
41953
|
"pcb"
|
|
41920
41954
|
]
|
|
41921
41955
|
},
|
|
41956
|
+
{
|
|
41957
|
+
id: "2026-10-20-multiphysics-field-stack",
|
|
41958
|
+
version: "undefined",
|
|
41959
|
+
date: "2026-10-20",
|
|
41960
|
+
category: "feat",
|
|
41961
|
+
title: "Multiphysics field stacks on the part",
|
|
41962
|
+
summary: "View thermal, stress, displacement and EM fields on one part, compressed 70x with per-layer error bounds; surface, slice and probe views in web and macOS.",
|
|
41963
|
+
features: [
|
|
41964
|
+
"viewport",
|
|
41965
|
+
"simulation",
|
|
41966
|
+
"thermal",
|
|
41967
|
+
"fea",
|
|
41968
|
+
"em",
|
|
41969
|
+
"compression",
|
|
41970
|
+
"native"
|
|
41971
|
+
]
|
|
41972
|
+
},
|
|
41973
|
+
{
|
|
41974
|
+
id: "2026-10-20-lossless-import",
|
|
41975
|
+
version: "undefined",
|
|
41976
|
+
date: "2026-10-20",
|
|
41977
|
+
category: "fix",
|
|
41978
|
+
title: "Opening older documents keeps everything",
|
|
41979
|
+
summary: "Opening an older .vcad file no longer drops PCB boards, schematics, parameters, imported meshes, part inertials and colliders, or operations the editor has no tool for.",
|
|
41980
|
+
features: [
|
|
41981
|
+
"documents",
|
|
41982
|
+
"import",
|
|
41983
|
+
"electronics",
|
|
41984
|
+
"assembly"
|
|
41985
|
+
]
|
|
41986
|
+
},
|
|
41922
41987
|
{
|
|
41923
41988
|
id: "2026-10-20-live-part-stock-check",
|
|
41924
41989
|
version: "0.10.0",
|
|
@@ -41977,6 +42042,47 @@ var init_CHANGELOG = __esm({
|
|
|
41977
42042
|
"get_footprint"
|
|
41978
42043
|
]
|
|
41979
42044
|
},
|
|
42045
|
+
{
|
|
42046
|
+
id: "2026-10-20-coupled-multiphysics-bracket",
|
|
42047
|
+
version: "undefined",
|
|
42048
|
+
date: "2026-10-20",
|
|
42049
|
+
category: "feat",
|
|
42050
|
+
title: "Thermal-expansion stress in voxel FEA",
|
|
42051
|
+
summary: "analyze_fields_thermal adds \u03B1\xB7\u0394T initial strain to static voxel FEA; the bracket demo now chains busbar Joule heat \u2192 temperature \u2192 thermal + load stress.",
|
|
42052
|
+
features: [
|
|
42053
|
+
"fea",
|
|
42054
|
+
"thermal",
|
|
42055
|
+
"em",
|
|
42056
|
+
"simulation"
|
|
42057
|
+
]
|
|
42058
|
+
},
|
|
42059
|
+
{
|
|
42060
|
+
id: "2026-10-20-compressed-field-viewer",
|
|
42061
|
+
version: "undefined",
|
|
42062
|
+
date: "2026-10-20",
|
|
42063
|
+
category: "feat",
|
|
42064
|
+
title: "View error-bounded compressed solver fields",
|
|
42065
|
+
summary: "Load a tang-compress field (?field=...), decode it in-browser on WebGPU or WASM, and view a colormapped slice with its max-error bound and native hash check.",
|
|
42066
|
+
features: [
|
|
42067
|
+
"viewport",
|
|
42068
|
+
"simulation",
|
|
42069
|
+
"thermal",
|
|
42070
|
+
"compression"
|
|
42071
|
+
]
|
|
42072
|
+
},
|
|
42073
|
+
{
|
|
42074
|
+
id: "2026-10-20-collab-order-and-exact-floats",
|
|
42075
|
+
version: "undefined",
|
|
42076
|
+
date: "2026-10-20",
|
|
42077
|
+
category: "fix",
|
|
42078
|
+
title: "Collaborators see the same part order; exact reloads",
|
|
42079
|
+
summary: "Parts added at the same moment by two collaborators now order identically for both; one edit is one undo step; reloading a document no longer nudges dimensions by a rounding bit.",
|
|
42080
|
+
features: [
|
|
42081
|
+
"collaboration",
|
|
42082
|
+
"undo",
|
|
42083
|
+
"documents"
|
|
42084
|
+
]
|
|
42085
|
+
},
|
|
41980
42086
|
{
|
|
41981
42087
|
id: "2026-10-20-ai-update-targets-owner",
|
|
41982
42088
|
version: "undefined",
|
|
@@ -86874,8 +86980,8 @@ var init_server3 = __esm({
|
|
|
86874
86980
|
init_order_feed();
|
|
86875
86981
|
init_animate();
|
|
86876
86982
|
PKG_VERSION = (() => {
|
|
86877
|
-
if ("0.10.0-main.
|
|
86878
|
-
return "0.10.0-main.
|
|
86983
|
+
if ("0.10.0-main.108") {
|
|
86984
|
+
return "0.10.0-main.108";
|
|
86879
86985
|
}
|
|
86880
86986
|
try {
|
|
86881
86987
|
const req = createRequire2(import.meta.url);
|
|
@@ -86884,8 +86990,8 @@ var init_server3 = __esm({
|
|
|
86884
86990
|
return "0.0.0";
|
|
86885
86991
|
}
|
|
86886
86992
|
})();
|
|
86887
|
-
BUILD_SHA = "
|
|
86888
|
-
BUILD_TIME = "2026-10-
|
|
86993
|
+
BUILD_SHA = "4142e4f65547ee1e2e893302fedbaa05961d0d83";
|
|
86994
|
+
BUILD_TIME = "2026-10-20T21:28:47.814Z";
|
|
86889
86995
|
SHORT_SHA = BUILD_SHA === "unknown" ? "unknown" : BUILD_SHA.slice(0, 7);
|
|
86890
86996
|
VERSION_WITH_BUILD = SHORT_SHA === "unknown" ? PKG_VERSION : `${PKG_VERSION}+${SHORT_SHA}`;
|
|
86891
86997
|
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.108",
|
|
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": "4142e4f65547ee1e2e893302fedbaa05961d0d83",
|
|
23
|
+
"builtAt": "2026-10-20T21:28:47.814Z"
|
|
24
24
|
}
|
|
25
25
|
}
|
package/vcad_kernel_wasm_bg.wasm
CHANGED
|
Binary file
|