@vcad/mcp 0.11.0-main.139 → 0.11.0-main.141
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 +428 -27
- package/package.json +3 -3
- package/vcad_kernel_wasm_bg.wasm +2 -2
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 93d764d9d2bc6755352a90c6327045d5dc9ea72d at 2026-11-10T17:12:44.811Z. Source: https://github.com/ecto/vcad
|
package/index.mjs
CHANGED
|
@@ -46,6 +46,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
46
46
|
var vcad_kernel_wasm_exports = {};
|
|
47
47
|
__export(vcad_kernel_wasm_exports, {
|
|
48
48
|
CircuitSim: () => CircuitSim,
|
|
49
|
+
IncrementalEvaluator: () => IncrementalEvaluator,
|
|
49
50
|
MdSim: () => MdSim,
|
|
50
51
|
PhysicsSim: () => PhysicsSim,
|
|
51
52
|
RayTracer: () => RayTracer,
|
|
@@ -71,6 +72,7 @@ __export(vcad_kernel_wasm_exports, {
|
|
|
71
72
|
buildCalibrationReportJson: () => buildCalibrationReportJson,
|
|
72
73
|
buildGlbBytes: () => buildGlbBytes,
|
|
73
74
|
buildPart: () => buildPart,
|
|
75
|
+
buildSheetMetalDocument: () => buildSheetMetalDocument,
|
|
74
76
|
buildStlBytes: () => buildStlBytes,
|
|
75
77
|
build_chat_system_prompt: () => build_chat_system_prompt,
|
|
76
78
|
calibrationDefaultTolerance: () => calibrationDefaultTolerance,
|
|
@@ -166,6 +168,7 @@ __export(vcad_kernel_wasm_exports, {
|
|
|
166
168
|
estimatePrintCost: () => estimatePrintCost,
|
|
167
169
|
estimate_cost_for_process: () => estimate_cost_for_process,
|
|
168
170
|
eulerXyzDegToQuat: () => eulerXyzDegToQuat,
|
|
171
|
+
evalLoonDocument: () => evalLoonDocument,
|
|
169
172
|
evalVcadSource: () => evalVcadSource,
|
|
170
173
|
evalVcadSourceParametric: () => evalVcadSourceParametric,
|
|
171
174
|
evalVcadSourceWithModules: () => evalVcadSourceWithModules,
|
|
@@ -197,11 +200,13 @@ __export(vcad_kernel_wasm_exports, {
|
|
|
197
200
|
get_tool_schemas: () => get_tool_schemas,
|
|
198
201
|
importStepBuffer: () => importStepBuffer,
|
|
199
202
|
importStepBufferWithReport: () => importStepBufferWithReport,
|
|
203
|
+
importStepMeshDocument: () => importStepMeshDocument,
|
|
200
204
|
importUrdfBuffer: () => importUrdfBuffer,
|
|
201
205
|
importUrdfBufferWithOptions: () => importUrdfBufferWithOptions,
|
|
202
206
|
init: () => init,
|
|
203
207
|
initGpu: () => initGpu,
|
|
204
208
|
initSync: () => initSync,
|
|
209
|
+
inlineMeshImports: () => inlineMeshImports,
|
|
205
210
|
inspectDocumentFaces: () => inspectDocumentFaces,
|
|
206
211
|
isCamAvailable: () => isCamAvailable,
|
|
207
212
|
isEcadAvailable: () => isEcadAvailable,
|
|
@@ -277,6 +282,7 @@ __export(vcad_kernel_wasm_exports, {
|
|
|
277
282
|
solveDesignConstraints: () => solveDesignConstraints,
|
|
278
283
|
solveForwardKinematics: () => solveForwardKinematics,
|
|
279
284
|
solveSketchSegments: () => solveSketchSegments,
|
|
285
|
+
stepImportDocument: () => stepImportDocument,
|
|
280
286
|
stepSourceRegistered: () => stepSourceRegistered,
|
|
281
287
|
textBounds: () => textBounds,
|
|
282
288
|
thermalSolve: () => thermalSolve,
|
|
@@ -535,6 +541,27 @@ function buildPart(path, params_json) {
|
|
|
535
541
|
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
536
542
|
}
|
|
537
543
|
}
|
|
544
|
+
function buildSheetMetalDocument(args_json) {
|
|
545
|
+
let deferred3_0;
|
|
546
|
+
let deferred3_1;
|
|
547
|
+
try {
|
|
548
|
+
const ptr0 = passStringToWasm0(args_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
549
|
+
const len0 = WASM_VECTOR_LEN;
|
|
550
|
+
const ret = wasm.buildSheetMetalDocument(ptr0, len0);
|
|
551
|
+
var ptr2 = ret[0];
|
|
552
|
+
var len2 = ret[1];
|
|
553
|
+
if (ret[3]) {
|
|
554
|
+
ptr2 = 0;
|
|
555
|
+
len2 = 0;
|
|
556
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
557
|
+
}
|
|
558
|
+
deferred3_0 = ptr2;
|
|
559
|
+
deferred3_1 = len2;
|
|
560
|
+
return getStringFromWasm0(ptr2, len2);
|
|
561
|
+
} finally {
|
|
562
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
538
565
|
function buildStlBytes(spec_json, f32_data, u32_data) {
|
|
539
566
|
const ptr0 = passStringToWasm0(spec_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
540
567
|
const len0 = WASM_VECTOR_LEN;
|
|
@@ -1805,6 +1832,33 @@ function eulerXyzDegToQuat(x_deg, y_deg, z_deg) {
|
|
|
1805
1832
|
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
1806
1833
|
return v1;
|
|
1807
1834
|
}
|
|
1835
|
+
function evalLoonDocument(source, modules_json, base_dir, path) {
|
|
1836
|
+
let deferred6_0;
|
|
1837
|
+
let deferred6_1;
|
|
1838
|
+
try {
|
|
1839
|
+
const ptr0 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1840
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1841
|
+
const ptr1 = passStringToWasm0(modules_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1842
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1843
|
+
var ptr2 = isLikeNone(base_dir) ? 0 : passStringToWasm0(base_dir, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1844
|
+
var len2 = WASM_VECTOR_LEN;
|
|
1845
|
+
var ptr3 = isLikeNone(path) ? 0 : passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1846
|
+
var len3 = WASM_VECTOR_LEN;
|
|
1847
|
+
const ret = wasm.evalLoonDocument(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
|
|
1848
|
+
var ptr5 = ret[0];
|
|
1849
|
+
var len5 = ret[1];
|
|
1850
|
+
if (ret[3]) {
|
|
1851
|
+
ptr5 = 0;
|
|
1852
|
+
len5 = 0;
|
|
1853
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
1854
|
+
}
|
|
1855
|
+
deferred6_0 = ptr5;
|
|
1856
|
+
deferred6_1 = len5;
|
|
1857
|
+
return getStringFromWasm0(ptr5, len5);
|
|
1858
|
+
} finally {
|
|
1859
|
+
wasm.__wbindgen_free(deferred6_0, deferred6_1, 1);
|
|
1860
|
+
}
|
|
1861
|
+
}
|
|
1808
1862
|
function evalVcadSource(source) {
|
|
1809
1863
|
const ptr0 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1810
1864
|
const len0 = WASM_VECTOR_LEN;
|
|
@@ -2191,6 +2245,21 @@ function importStepBufferWithReport(data) {
|
|
|
2191
2245
|
}
|
|
2192
2246
|
return takeFromExternrefTable0(ret[0]);
|
|
2193
2247
|
}
|
|
2248
|
+
function importStepMeshDocument(data, part_name, material, source) {
|
|
2249
|
+
const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
|
|
2250
|
+
const len0 = WASM_VECTOR_LEN;
|
|
2251
|
+
const ptr1 = passStringToWasm0(part_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2252
|
+
const len1 = WASM_VECTOR_LEN;
|
|
2253
|
+
const ptr2 = passStringToWasm0(material, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2254
|
+
const len2 = WASM_VECTOR_LEN;
|
|
2255
|
+
const ptr3 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2256
|
+
const len3 = WASM_VECTOR_LEN;
|
|
2257
|
+
const ret = wasm.importStepMeshDocument(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
|
|
2258
|
+
if (ret[2]) {
|
|
2259
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
2260
|
+
}
|
|
2261
|
+
return takeFromExternrefTable0(ret[0]);
|
|
2262
|
+
}
|
|
2194
2263
|
function importUrdfBuffer(data) {
|
|
2195
2264
|
let deferred3_0;
|
|
2196
2265
|
let deferred3_1;
|
|
@@ -2242,6 +2311,29 @@ function initGpu() {
|
|
|
2242
2311
|
const ret = wasm.initGpu();
|
|
2243
2312
|
return ret;
|
|
2244
2313
|
}
|
|
2314
|
+
function inlineMeshImports(doc_json, keys, blobs) {
|
|
2315
|
+
let deferred4_0;
|
|
2316
|
+
let deferred4_1;
|
|
2317
|
+
try {
|
|
2318
|
+
const ptr0 = passStringToWasm0(doc_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2319
|
+
const len0 = WASM_VECTOR_LEN;
|
|
2320
|
+
const ptr1 = passArrayJsValueToWasm0(keys, wasm.__wbindgen_malloc);
|
|
2321
|
+
const len1 = WASM_VECTOR_LEN;
|
|
2322
|
+
const ret = wasm.inlineMeshImports(ptr0, len0, ptr1, len1, blobs);
|
|
2323
|
+
var ptr3 = ret[0];
|
|
2324
|
+
var len3 = ret[1];
|
|
2325
|
+
if (ret[3]) {
|
|
2326
|
+
ptr3 = 0;
|
|
2327
|
+
len3 = 0;
|
|
2328
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
2329
|
+
}
|
|
2330
|
+
deferred4_0 = ptr3;
|
|
2331
|
+
deferred4_1 = len3;
|
|
2332
|
+
return getStringFromWasm0(ptr3, len3);
|
|
2333
|
+
} finally {
|
|
2334
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
2335
|
+
}
|
|
2336
|
+
}
|
|
2245
2337
|
function inspectDocumentFaces(doc_json) {
|
|
2246
2338
|
let deferred3_0;
|
|
2247
2339
|
let deferred3_1;
|
|
@@ -3285,6 +3377,33 @@ function solveSketchSegments(segments_json, constraints_json) {
|
|
|
3285
3377
|
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
3286
3378
|
}
|
|
3287
3379
|
}
|
|
3380
|
+
function stepImportDocument(path, solid_indices, part_name, material) {
|
|
3381
|
+
let deferred6_0;
|
|
3382
|
+
let deferred6_1;
|
|
3383
|
+
try {
|
|
3384
|
+
const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3385
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3386
|
+
const ptr1 = passArray32ToWasm0(solid_indices, wasm.__wbindgen_malloc);
|
|
3387
|
+
const len1 = WASM_VECTOR_LEN;
|
|
3388
|
+
const ptr2 = passStringToWasm0(part_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3389
|
+
const len2 = WASM_VECTOR_LEN;
|
|
3390
|
+
const ptr3 = passStringToWasm0(material, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3391
|
+
const len3 = WASM_VECTOR_LEN;
|
|
3392
|
+
const ret = wasm.stepImportDocument(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
|
|
3393
|
+
var ptr5 = ret[0];
|
|
3394
|
+
var len5 = ret[1];
|
|
3395
|
+
if (ret[3]) {
|
|
3396
|
+
ptr5 = 0;
|
|
3397
|
+
len5 = 0;
|
|
3398
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
3399
|
+
}
|
|
3400
|
+
deferred6_0 = ptr5;
|
|
3401
|
+
deferred6_1 = len5;
|
|
3402
|
+
return getStringFromWasm0(ptr5, len5);
|
|
3403
|
+
} finally {
|
|
3404
|
+
wasm.__wbindgen_free(deferred6_0, deferred6_1, 1);
|
|
3405
|
+
}
|
|
3406
|
+
}
|
|
3288
3407
|
function stepSourceRegistered(path) {
|
|
3289
3408
|
const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3290
3409
|
const len0 = WASM_VECTOR_LEN;
|
|
@@ -4540,7 +4659,7 @@ function __wbg_get_imports() {
|
|
|
4540
4659
|
const a = state0.a;
|
|
4541
4660
|
state0.a = 0;
|
|
4542
4661
|
try {
|
|
4543
|
-
return
|
|
4662
|
+
return wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___js_sys_fd485cc146ff22c1___Function_fn_wasm_bindgen_847cf9dc19a95d2a___JsValue_____wasm_bindgen_847cf9dc19a95d2a___sys__Undefined___js_sys_fd485cc146ff22c1___Function_fn_wasm_bindgen_847cf9dc19a95d2a___JsValue_____wasm_bindgen_847cf9dc19a95d2a___sys__Undefined_______true_(a, state0.b, arg02, arg12);
|
|
4544
4663
|
} finally {
|
|
4545
4664
|
state0.a = a;
|
|
4546
4665
|
}
|
|
@@ -4578,7 +4697,7 @@ function __wbg_get_imports() {
|
|
|
4578
4697
|
const a = state0.a;
|
|
4579
4698
|
state0.a = 0;
|
|
4580
4699
|
try {
|
|
4581
|
-
return
|
|
4700
|
+
return wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___js_sys_fd485cc146ff22c1___Function_fn_wasm_bindgen_847cf9dc19a95d2a___JsValue_____wasm_bindgen_847cf9dc19a95d2a___sys__Undefined___js_sys_fd485cc146ff22c1___Function_fn_wasm_bindgen_847cf9dc19a95d2a___JsValue_____wasm_bindgen_847cf9dc19a95d2a___sys__Undefined_______true_(a, state0.b, arg02, arg12);
|
|
4582
4701
|
} finally {
|
|
4583
4702
|
state0.a = a;
|
|
4584
4703
|
}
|
|
@@ -4611,7 +4730,7 @@ function __wbg_get_imports() {
|
|
|
4611
4730
|
return ret;
|
|
4612
4731
|
}, arguments);
|
|
4613
4732
|
},
|
|
4614
|
-
|
|
4733
|
+
__wbg_now_7ea0b064671ccb66: function() {
|
|
4615
4734
|
const ret = performance.now();
|
|
4616
4735
|
return ret;
|
|
4617
4736
|
},
|
|
@@ -5368,23 +5487,23 @@ function __wbg_get_imports() {
|
|
|
5368
5487
|
}, arguments);
|
|
5369
5488
|
},
|
|
5370
5489
|
__wbindgen_generic_0000000000000001: function(arg0, arg1) {
|
|
5371
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
5490
|
+
const ret = makeMutClosure(arg0, arg1, wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___JsValue__core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true_);
|
|
5372
5491
|
return ret;
|
|
5373
5492
|
},
|
|
5374
5493
|
__wbindgen_generic_0000000000000002: function(arg0, arg1) {
|
|
5375
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
5494
|
+
const ret = makeMutClosure(arg0, arg1, wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true_);
|
|
5376
5495
|
return ret;
|
|
5377
5496
|
},
|
|
5378
5497
|
__wbindgen_generic_0000000000000003: function(arg0, arg1) {
|
|
5379
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
5498
|
+
const ret = makeMutClosure(arg0, arg1, wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_);
|
|
5380
5499
|
return ret;
|
|
5381
5500
|
},
|
|
5382
5501
|
__wbindgen_generic_0000000000000004: function(arg0, arg1) {
|
|
5383
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
5502
|
+
const ret = makeMutClosure(arg0, arg1, wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true__460);
|
|
5384
5503
|
return ret;
|
|
5385
5504
|
},
|
|
5386
5505
|
__wbindgen_generic_0000000000000005: function(arg0, arg1) {
|
|
5387
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
5506
|
+
const ret = makeMutClosure(arg0, arg1, wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true__461);
|
|
5388
5507
|
return ret;
|
|
5389
5508
|
},
|
|
5390
5509
|
__wbindgen_generic_0000000000000006: function(arg0) {
|
|
@@ -5458,35 +5577,35 @@ function __wbg_get_imports() {
|
|
|
5458
5577
|
"./vcad_kernel_wasm_bg.js": import0
|
|
5459
5578
|
};
|
|
5460
5579
|
}
|
|
5461
|
-
function
|
|
5462
|
-
wasm.
|
|
5580
|
+
function wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_(arg0, arg1, arg2) {
|
|
5581
|
+
wasm.wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuDeviceLostInfo__GpuDeviceLostInfo______true_(arg0, arg1, arg2);
|
|
5463
5582
|
}
|
|
5464
|
-
function
|
|
5465
|
-
const ret = wasm.
|
|
5583
|
+
function wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___JsValue__core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true_(arg0, arg1, arg2) {
|
|
5584
|
+
const ret = wasm.wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___JsValue__core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true_(arg0, arg1, arg2);
|
|
5466
5585
|
if (ret[1]) {
|
|
5467
5586
|
throw takeFromExternrefTable0(ret[0]);
|
|
5468
5587
|
}
|
|
5469
5588
|
}
|
|
5470
|
-
function
|
|
5471
|
-
const ret = wasm.
|
|
5589
|
+
function wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true_(arg0, arg1, arg2) {
|
|
5590
|
+
const ret = wasm.wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true_(arg0, arg1, arg2);
|
|
5472
5591
|
if (ret[1]) {
|
|
5473
5592
|
throw takeFromExternrefTable0(ret[0]);
|
|
5474
5593
|
}
|
|
5475
5594
|
}
|
|
5476
|
-
function
|
|
5477
|
-
const ret = wasm.
|
|
5595
|
+
function wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true__460(arg0, arg1, arg2) {
|
|
5596
|
+
const ret = wasm.wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true__460(arg0, arg1, arg2);
|
|
5478
5597
|
if (ret[1]) {
|
|
5479
5598
|
throw takeFromExternrefTable0(ret[0]);
|
|
5480
5599
|
}
|
|
5481
5600
|
}
|
|
5482
|
-
function
|
|
5483
|
-
const ret = wasm.
|
|
5601
|
+
function wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true__461(arg0, arg1, arg2) {
|
|
5602
|
+
const ret = wasm.wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___wasm_bindgen_847cf9dc19a95d2a___sys__JsNullable_wgpu_a24c7b14400eaeda___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_847cf9dc19a95d2a___JsError___true__461(arg0, arg1, arg2);
|
|
5484
5603
|
if (ret[1]) {
|
|
5485
5604
|
throw takeFromExternrefTable0(ret[0]);
|
|
5486
5605
|
}
|
|
5487
5606
|
}
|
|
5488
|
-
function
|
|
5489
|
-
wasm.
|
|
5607
|
+
function wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___js_sys_fd485cc146ff22c1___Function_fn_wasm_bindgen_847cf9dc19a95d2a___JsValue_____wasm_bindgen_847cf9dc19a95d2a___sys__Undefined___js_sys_fd485cc146ff22c1___Function_fn_wasm_bindgen_847cf9dc19a95d2a___JsValue_____wasm_bindgen_847cf9dc19a95d2a___sys__Undefined_______true_(arg0, arg1, arg2, arg3) {
|
|
5608
|
+
wasm.wasm_bindgen_847cf9dc19a95d2a___convert__closures_____invoke___js_sys_fd485cc146ff22c1___Function_fn_wasm_bindgen_847cf9dc19a95d2a___JsValue_____wasm_bindgen_847cf9dc19a95d2a___sys__Undefined___js_sys_fd485cc146ff22c1___Function_fn_wasm_bindgen_847cf9dc19a95d2a___JsValue_____wasm_bindgen_847cf9dc19a95d2a___sys__Undefined_______true_(arg0, arg1, arg2, arg3);
|
|
5490
5609
|
}
|
|
5491
5610
|
function addToExternrefTable0(obj) {
|
|
5492
5611
|
const idx = wasm.__externref_table_alloc();
|
|
@@ -5865,7 +5984,7 @@ function __vcad_reset_wasm() {
|
|
|
5865
5984
|
wasm = void 0;
|
|
5866
5985
|
wasmModule = void 0;
|
|
5867
5986
|
}
|
|
5868
|
-
var CircuitSim, MdSim, PhysicsSim, RayTracer, SliceResult, SlicerSettings, Solid, WasmAnnotationLayer, WasmCamSettings, WasmDocumentEngine, WasmKeybindings, WasmSketchSession, __wbindgen_enum_GpuAutoLayoutMode, __wbindgen_enum_GpuBufferBindingType, __wbindgen_enum_GpuPowerPreference, __wbindgen_enum_GpuSamplerBindingType, __wbindgen_enum_GpuStorageTextureAccess, __wbindgen_enum_GpuTextureAspect, __wbindgen_enum_GpuTextureDimension, __wbindgen_enum_GpuTextureFormat, __wbindgen_enum_GpuTextureSampleType, __wbindgen_enum_GpuTextureViewDimension, CircuitSimFinalization, MdSimFinalization, PhysicsSimFinalization, RayTracerFinalization, SliceResultFinalization, SlicerSettingsFinalization, SolidFinalization, WasmAnnotationLayerFinalization, WasmCamSettingsFinalization, WasmDocumentEngineFinalization, WasmKeybindingsFinalization, WasmSketchSessionFinalization, CLOSURE_DTORS, cachedDataViewMemory0, cachedFloat32ArrayMemory0, cachedFloat64ArrayMemory0, cachedInt16ArrayMemory0, cachedInt32ArrayMemory0, cachedInt8ArrayMemory0, cachedUint16ArrayMemory0, cachedUint32ArrayMemory0, cachedUint8ArrayMemory0, cachedTextDecoder, MAX_SAFARI_DECODE_BYTES, numBytesDecoded, cachedTextEncoder, WASM_VECTOR_LEN, wasmModule, wasmInstance, wasm;
|
|
5987
|
+
var CircuitSim, IncrementalEvaluator, MdSim, PhysicsSim, RayTracer, SliceResult, SlicerSettings, Solid, WasmAnnotationLayer, WasmCamSettings, WasmDocumentEngine, WasmKeybindings, WasmSketchSession, __wbindgen_enum_GpuAutoLayoutMode, __wbindgen_enum_GpuBufferBindingType, __wbindgen_enum_GpuPowerPreference, __wbindgen_enum_GpuSamplerBindingType, __wbindgen_enum_GpuStorageTextureAccess, __wbindgen_enum_GpuTextureAspect, __wbindgen_enum_GpuTextureDimension, __wbindgen_enum_GpuTextureFormat, __wbindgen_enum_GpuTextureSampleType, __wbindgen_enum_GpuTextureViewDimension, CircuitSimFinalization, IncrementalEvaluatorFinalization, MdSimFinalization, PhysicsSimFinalization, RayTracerFinalization, SliceResultFinalization, SlicerSettingsFinalization, SolidFinalization, WasmAnnotationLayerFinalization, WasmCamSettingsFinalization, WasmDocumentEngineFinalization, WasmKeybindingsFinalization, WasmSketchSessionFinalization, CLOSURE_DTORS, cachedDataViewMemory0, cachedFloat32ArrayMemory0, cachedFloat64ArrayMemory0, cachedInt16ArrayMemory0, cachedInt32ArrayMemory0, cachedInt8ArrayMemory0, cachedUint16ArrayMemory0, cachedUint32ArrayMemory0, cachedUint8ArrayMemory0, cachedTextDecoder, MAX_SAFARI_DECODE_BYTES, numBytesDecoded, cachedTextEncoder, WASM_VECTOR_LEN, wasmModule, wasmInstance, wasm;
|
|
5869
5988
|
var init_vcad_kernel_wasm = __esm({
|
|
5870
5989
|
"../kernel-wasm/vcad_kernel_wasm.js"() {
|
|
5871
5990
|
CircuitSim = class {
|
|
@@ -5941,6 +6060,59 @@ var init_vcad_kernel_wasm = __esm({
|
|
|
5941
6060
|
}
|
|
5942
6061
|
};
|
|
5943
6062
|
if (Symbol.dispose) CircuitSim.prototype[Symbol.dispose] = CircuitSim.prototype.free;
|
|
6063
|
+
IncrementalEvaluator = class {
|
|
6064
|
+
__destroy_into_raw() {
|
|
6065
|
+
const ptr = this.__wbg_ptr;
|
|
6066
|
+
this.__wbg_ptr = 0;
|
|
6067
|
+
IncrementalEvaluatorFinalization.unregister(this);
|
|
6068
|
+
return ptr;
|
|
6069
|
+
}
|
|
6070
|
+
free() {
|
|
6071
|
+
const ptr = this.__destroy_into_raw();
|
|
6072
|
+
wasm.__wbg_incrementalevaluator_free(ptr, 0);
|
|
6073
|
+
}
|
|
6074
|
+
/**
|
|
6075
|
+
* Drop everything carried (the next evaluation is cold).
|
|
6076
|
+
*/
|
|
6077
|
+
clear() {
|
|
6078
|
+
wasm.incrementalevaluator_clear(this.__wbg_ptr);
|
|
6079
|
+
}
|
|
6080
|
+
/**
|
|
6081
|
+
* `evaluateDocument`, reusing everything the edit didn't touch.
|
|
6082
|
+
* @param {string} doc_json
|
|
6083
|
+
* @param {boolean} skip_clash_detection
|
|
6084
|
+
* @returns {any}
|
|
6085
|
+
*/
|
|
6086
|
+
evaluate(doc_json, skip_clash_detection) {
|
|
6087
|
+
const ptr0 = passStringToWasm0(doc_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
6088
|
+
const len0 = WASM_VECTOR_LEN;
|
|
6089
|
+
const ret = wasm.incrementalevaluator_evaluate(this.__wbg_ptr, ptr0, len0, skip_clash_detection);
|
|
6090
|
+
if (ret[2]) {
|
|
6091
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
6092
|
+
}
|
|
6093
|
+
return takeFromExternrefTable0(ret[0]);
|
|
6094
|
+
}
|
|
6095
|
+
/**
|
|
6096
|
+
* A fresh evaluator (its first `evaluate` is cold).
|
|
6097
|
+
*/
|
|
6098
|
+
constructor() {
|
|
6099
|
+
const ret = wasm.incrementalevaluator_new();
|
|
6100
|
+
this.__wbg_ptr = ret;
|
|
6101
|
+
IncrementalEvaluatorFinalization.register(this, this.__wbg_ptr, this);
|
|
6102
|
+
return this;
|
|
6103
|
+
}
|
|
6104
|
+
/**
|
|
6105
|
+
* `[reusedSolids, evaluatedSolids, reusedMeshes]` from the last evaluation.
|
|
6106
|
+
* @returns {Uint32Array}
|
|
6107
|
+
*/
|
|
6108
|
+
stats() {
|
|
6109
|
+
const ret = wasm.incrementalevaluator_stats(this.__wbg_ptr);
|
|
6110
|
+
var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
6111
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
6112
|
+
return v1;
|
|
6113
|
+
}
|
|
6114
|
+
};
|
|
6115
|
+
if (Symbol.dispose) IncrementalEvaluator.prototype[Symbol.dispose] = IncrementalEvaluator.prototype.free;
|
|
5944
6116
|
MdSim = class {
|
|
5945
6117
|
__destroy_into_raw() {
|
|
5946
6118
|
const ptr = this.__wbg_ptr;
|
|
@@ -8030,6 +8202,48 @@ var init_vcad_kernel_wasm = __esm({
|
|
|
8030
8202
|
const ret = wasm.wasmdocumentengine_add_feature(this.__wbg_ptr, ptr0, len0);
|
|
8031
8203
|
return ret;
|
|
8032
8204
|
}
|
|
8205
|
+
/**
|
|
8206
|
+
* `apply`, answered with an `EngineDeltaEnvelope` (what changed since
|
|
8207
|
+
* the state before the command) instead of the whole document.
|
|
8208
|
+
* @param {string} command_json
|
|
8209
|
+
* @returns {string}
|
|
8210
|
+
*/
|
|
8211
|
+
applyDelta(command_json) {
|
|
8212
|
+
let deferred2_0;
|
|
8213
|
+
let deferred2_1;
|
|
8214
|
+
try {
|
|
8215
|
+
const ptr0 = passStringToWasm0(command_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
8216
|
+
const len0 = WASM_VECTOR_LEN;
|
|
8217
|
+
const ret = wasm.wasmdocumentengine_applyDelta(this.__wbg_ptr, ptr0, len0);
|
|
8218
|
+
deferred2_0 = ret[0];
|
|
8219
|
+
deferred2_1 = ret[1];
|
|
8220
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
8221
|
+
} finally {
|
|
8222
|
+
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
8223
|
+
}
|
|
8224
|
+
}
|
|
8225
|
+
/**
|
|
8226
|
+
* `apply_tool`, answered with an `EngineDeltaEnvelope`.
|
|
8227
|
+
* @param {string} tool
|
|
8228
|
+
* @param {string} args_json
|
|
8229
|
+
* @returns {string}
|
|
8230
|
+
*/
|
|
8231
|
+
applyToolDelta(tool, args_json) {
|
|
8232
|
+
let deferred3_0;
|
|
8233
|
+
let deferred3_1;
|
|
8234
|
+
try {
|
|
8235
|
+
const ptr0 = passStringToWasm0(tool, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
8236
|
+
const len0 = WASM_VECTOR_LEN;
|
|
8237
|
+
const ptr1 = passStringToWasm0(args_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
8238
|
+
const len1 = WASM_VECTOR_LEN;
|
|
8239
|
+
const ret = wasm.wasmdocumentengine_applyToolDelta(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
8240
|
+
deferred3_0 = ret[0];
|
|
8241
|
+
deferred3_1 = ret[1];
|
|
8242
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
8243
|
+
} finally {
|
|
8244
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
8245
|
+
}
|
|
8246
|
+
}
|
|
8033
8247
|
/**
|
|
8034
8248
|
* Apply a JSON `DocCommand` (see `vcad_app::command`). Returns the
|
|
8035
8249
|
* shared JSON envelope: `{"ok":true,"result":{…}}` or
|
|
@@ -8152,6 +8366,27 @@ var init_vcad_kernel_wasm = __esm({
|
|
|
8152
8366
|
const ret = wasm.wasmdocumentengine_delete_feature_by_id(this.__wbg_ptr, ptr0, len0);
|
|
8153
8367
|
return ret;
|
|
8154
8368
|
}
|
|
8369
|
+
/**
|
|
8370
|
+
* Evaluate this engine's document through `evaluator` without a JSON
|
|
8371
|
+
* round trip: the materialized document never leaves Rust. `overlay_json`
|
|
8372
|
+
* is `{"parameters"?, "bindings"?}` (host-held parameter state, merged
|
|
8373
|
+
* over the document like `mergeParametersIntoDocument`); pass `""` for
|
|
8374
|
+
* none. Returns the same scene shape as `evaluateDocument`.
|
|
8375
|
+
* @param {IncrementalEvaluator} evaluator
|
|
8376
|
+
* @param {string} overlay_json
|
|
8377
|
+
* @param {boolean} skip_clash_detection
|
|
8378
|
+
* @returns {any}
|
|
8379
|
+
*/
|
|
8380
|
+
evaluateIncremental(evaluator, overlay_json, skip_clash_detection) {
|
|
8381
|
+
_assertClass(evaluator, IncrementalEvaluator);
|
|
8382
|
+
const ptr0 = passStringToWasm0(overlay_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
8383
|
+
const len0 = WASM_VECTOR_LEN;
|
|
8384
|
+
const ret = wasm.wasmdocumentengine_evaluateIncremental(this.__wbg_ptr, evaluator.__wbg_ptr, ptr0, len0, skip_clash_detection);
|
|
8385
|
+
if (ret[2]) {
|
|
8386
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
8387
|
+
}
|
|
8388
|
+
return takeFromExternrefTable0(ret[0]);
|
|
8389
|
+
}
|
|
8155
8390
|
/**
|
|
8156
8391
|
* Load a legacy v1 JSON document and migrate to CRDT.
|
|
8157
8392
|
* @param {string} json
|
|
@@ -8466,6 +8701,23 @@ var init_vcad_kernel_wasm = __esm({
|
|
|
8466
8701
|
const ret = wasm.wasmdocumentengine_set_visible(this.__wbg_ptr, ptr0, len0, visible);
|
|
8467
8702
|
return ret;
|
|
8468
8703
|
}
|
|
8704
|
+
/**
|
|
8705
|
+
* The current state as a full-document envelope (always `ok`) — the
|
|
8706
|
+
* base a host applies deltas to.
|
|
8707
|
+
* @returns {string}
|
|
8708
|
+
*/
|
|
8709
|
+
stateEnvelope() {
|
|
8710
|
+
let deferred1_0;
|
|
8711
|
+
let deferred1_1;
|
|
8712
|
+
try {
|
|
8713
|
+
const ret = wasm.wasmdocumentengine_stateEnvelope(this.__wbg_ptr);
|
|
8714
|
+
deferred1_0 = ret[0];
|
|
8715
|
+
deferred1_1 = ret[1];
|
|
8716
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
8717
|
+
} finally {
|
|
8718
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
8719
|
+
}
|
|
8720
|
+
}
|
|
8469
8721
|
/**
|
|
8470
8722
|
* Deterministic state fingerprint; matches `vcad_engine_state_hash`.
|
|
8471
8723
|
* @returns {string}
|
|
@@ -8909,6 +9161,9 @@ var init_vcad_kernel_wasm = __esm({
|
|
|
8909
9161
|
CircuitSimFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
8910
9162
|
}, unregister: () => {
|
|
8911
9163
|
} } : new FinalizationRegistry((ptr) => wasm.__wbg_circuitsim_free(ptr, 1));
|
|
9164
|
+
IncrementalEvaluatorFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
9165
|
+
}, unregister: () => {
|
|
9166
|
+
} } : new FinalizationRegistry((ptr) => wasm.__wbg_incrementalevaluator_free(ptr, 1));
|
|
8912
9167
|
MdSimFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
8913
9168
|
}, unregister: () => {
|
|
8914
9169
|
} } : new FinalizationRegistry((ptr) => wasm.__wbg_mdsim_free(ptr, 1));
|
|
@@ -41804,6 +42059,152 @@ var init_CHANGELOG = __esm({
|
|
|
41804
42059
|
CHANGELOG_default = {
|
|
41805
42060
|
$schema: "./changelog.schema.json",
|
|
41806
42061
|
entries: [
|
|
42062
|
+
{
|
|
42063
|
+
id: "2026-11-08-native-ux-niceties",
|
|
42064
|
+
version: "0.11.0",
|
|
42065
|
+
date: "2026-11-08",
|
|
42066
|
+
category: "feat",
|
|
42067
|
+
title: "Mac app: tool shortcuts, non-modal commands, undo toasts",
|
|
42068
|
+
summary: "Single-key tool shortcuts in every workspace with a ? cheat sheet, feature commands as non-modal panels that keep the viewport live, a Spotlight-style palette, and undo/redo toasts.",
|
|
42069
|
+
features: [
|
|
42070
|
+
"native",
|
|
42071
|
+
"ux",
|
|
42072
|
+
"shortcuts"
|
|
42073
|
+
],
|
|
42074
|
+
mcpTools: [
|
|
42075
|
+
"press_key"
|
|
42076
|
+
]
|
|
42077
|
+
},
|
|
42078
|
+
{
|
|
42079
|
+
id: "2026-11-07-native-liquid-glass-shell",
|
|
42080
|
+
version: "0.11.0",
|
|
42081
|
+
date: "2026-11-07",
|
|
42082
|
+
category: "feat",
|
|
42083
|
+
title: "Mac app: Liquid Glass shell, edit bar, history, agent pill",
|
|
42084
|
+
summary: "Floating glass sidebar/inspector, one centered dock across five workspaces, a Keynote-style edit bar with live feedback, a history filmstrip, and agent suggestion pills.",
|
|
42085
|
+
features: [
|
|
42086
|
+
"native",
|
|
42087
|
+
"ui",
|
|
42088
|
+
"agent"
|
|
42089
|
+
],
|
|
42090
|
+
mcpTools: [
|
|
42091
|
+
"suggest_edit",
|
|
42092
|
+
"history_seek",
|
|
42093
|
+
"set_workspace",
|
|
42094
|
+
"select_feature",
|
|
42095
|
+
"app_screenshot"
|
|
42096
|
+
]
|
|
42097
|
+
},
|
|
42098
|
+
{
|
|
42099
|
+
id: "2026-11-07-native-fabrication",
|
|
42100
|
+
version: "0.11.0",
|
|
42101
|
+
date: "2026-11-07",
|
|
42102
|
+
category: "feat",
|
|
42103
|
+
title: "Sheet metal, 3D print and multi-tool CAM in the Mac app",
|
|
42104
|
+
summary: "Fabricate panel: flat pattern from any sheet solid (volume-checked DXF), bend table, cost, nesting; slicing with print prediction and 3MF/G-code; stock-sim verified multi-tool CAM.",
|
|
42105
|
+
features: [
|
|
42106
|
+
"native-app",
|
|
42107
|
+
"sheet-metal",
|
|
42108
|
+
"3d-print",
|
|
42109
|
+
"cam"
|
|
42110
|
+
]
|
|
42111
|
+
},
|
|
42112
|
+
{
|
|
42113
|
+
id: "2026-11-07-native-electronics-codesign",
|
|
42114
|
+
version: "0.11.0",
|
|
42115
|
+
date: "2026-11-07",
|
|
42116
|
+
category: "feat",
|
|
42117
|
+
title: "Electronics co-design in the Mac app",
|
|
42118
|
+
summary: "Import KiCad/Eagle boards, autoroute, DRC + Fix DRC, length tuning, layer stack, gated Gerber export, enclosure fit checks and circuit simulation in the native app.",
|
|
42119
|
+
features: [
|
|
42120
|
+
"electronics",
|
|
42121
|
+
"pcb",
|
|
42122
|
+
"native-app",
|
|
42123
|
+
"enclosure",
|
|
42124
|
+
"simulation"
|
|
42125
|
+
]
|
|
42126
|
+
},
|
|
42127
|
+
{
|
|
42128
|
+
id: "2026-11-07-native-assembly-authoring",
|
|
42129
|
+
version: "0.11.0",
|
|
42130
|
+
date: "2026-11-07",
|
|
42131
|
+
category: "feat",
|
|
42132
|
+
title: "Mac app: assembly, joint, mate and keyframe authoring",
|
|
42133
|
+
summary: "Insert instances, add and edit all five joint kinds with picked anchors, check mates, drag joints via FK, and author keyframes with a timeline that exports video.",
|
|
42134
|
+
features: [
|
|
42135
|
+
"assembly",
|
|
42136
|
+
"joints",
|
|
42137
|
+
"mates",
|
|
42138
|
+
"animation",
|
|
42139
|
+
"native-app"
|
|
42140
|
+
]
|
|
42141
|
+
},
|
|
42142
|
+
{
|
|
42143
|
+
id: "2026-11-07-native-agent-fuzz-fixes",
|
|
42144
|
+
version: "0.11.0",
|
|
42145
|
+
date: "2026-11-07",
|
|
42146
|
+
category: "fix",
|
|
42147
|
+
title: "Mac app: list_parts works, cleaner feature tree",
|
|
42148
|
+
summary: "Agent list_parts returns part ids in part documents, the feature tree shows features instead of identity transforms, and the retired cloud intent bar is hidden.",
|
|
42149
|
+
features: [
|
|
42150
|
+
"native",
|
|
42151
|
+
"mcp",
|
|
42152
|
+
"feature-tree"
|
|
42153
|
+
],
|
|
42154
|
+
mcpTools: [
|
|
42155
|
+
"list_parts"
|
|
42156
|
+
]
|
|
42157
|
+
},
|
|
42158
|
+
{
|
|
42159
|
+
id: "2026-11-07-mac-sample-gallery",
|
|
42160
|
+
version: "0.11.0",
|
|
42161
|
+
date: "2026-11-07",
|
|
42162
|
+
category: "feat",
|
|
42163
|
+
title: "Mac app: 13-sample gallery that opens instantly",
|
|
42164
|
+
summary: "File \u25B8 Open Sample adds the K1 humanoid, PCB motor and stator, an FPGA board, FEA and CAM parts; bundled meshes open the PCB motor in 0.06 s instead of 10+ s.",
|
|
42165
|
+
features: [
|
|
42166
|
+
"desktop",
|
|
42167
|
+
"samples",
|
|
42168
|
+
"performance"
|
|
42169
|
+
]
|
|
42170
|
+
},
|
|
42171
|
+
{
|
|
42172
|
+
id: "2026-11-06-native-drawings-workspace",
|
|
42173
|
+
version: "0.11.0",
|
|
42174
|
+
date: "2026-11-06",
|
|
42175
|
+
category: "feat",
|
|
42176
|
+
title: "Drawings workspace in the native Mac app",
|
|
42177
|
+
summary: "Shop drawings natively: orthographic, section and detail views, dimensions, GD&T frames, title block and BOM, with DXF and PDF export matching the web.",
|
|
42178
|
+
features: [
|
|
42179
|
+
"drawings",
|
|
42180
|
+
"drafting",
|
|
42181
|
+
"native-app",
|
|
42182
|
+
"dxf",
|
|
42183
|
+
"pdf"
|
|
42184
|
+
]
|
|
42185
|
+
},
|
|
42186
|
+
{
|
|
42187
|
+
id: "2026-11-06-native-dfm-fea-clearance",
|
|
42188
|
+
version: "0.11.0",
|
|
42189
|
+
date: "2026-11-06",
|
|
42190
|
+
category: "feat",
|
|
42191
|
+
title: "DFM, stress and clearance in the Mac app",
|
|
42192
|
+
summary: "New Analyze panel in the native app: DFM with one-click undoable fixes, in-process FEA on picked faces with stress overlays, and part interference volumes \u2014 also exposed to agents over the app's MCP server.",
|
|
42193
|
+
features: [
|
|
42194
|
+
"dfm",
|
|
42195
|
+
"fea",
|
|
42196
|
+
"clearance",
|
|
42197
|
+
"native-app",
|
|
42198
|
+
"vcad-2"
|
|
42199
|
+
],
|
|
42200
|
+
mcpTools: [
|
|
42201
|
+
"dfm_check",
|
|
42202
|
+
"dfm_apply_fix",
|
|
42203
|
+
"analyze_structure",
|
|
42204
|
+
"check_interference",
|
|
42205
|
+
"inspect_faces"
|
|
42206
|
+
]
|
|
42207
|
+
},
|
|
41807
42208
|
{
|
|
41808
42209
|
id: "2026-11-06-export-all-documents",
|
|
41809
42210
|
version: "0.11.0",
|
|
@@ -81758,7 +82159,7 @@ function resolveMeshPath(filename, urdfDir, packageRoots, confineRoot) {
|
|
|
81758
82159
|
if (urdfDir) return confined(resolve6(urdfDir, stripped));
|
|
81759
82160
|
return null;
|
|
81760
82161
|
}
|
|
81761
|
-
function
|
|
82162
|
+
function inlineMeshImports2(doc, engine, urdfDir, packageRoots, confineRoot) {
|
|
81762
82163
|
const unresolved = [];
|
|
81763
82164
|
const meshes = /* @__PURE__ */ new Map();
|
|
81764
82165
|
const refs = /* @__PURE__ */ new Map();
|
|
@@ -81846,7 +82247,7 @@ function importUrdf(input, engine) {
|
|
|
81846
82247
|
})
|
|
81847
82248
|
);
|
|
81848
82249
|
const commentedFloating = floating_base ? void 0 : engine.urdfCommentedFloatingJoint(arrayBuffer);
|
|
81849
|
-
const meshes =
|
|
82250
|
+
const meshes = inlineMeshImports2(doc, engine, urdfDir, packageRoots, confineRoot);
|
|
81850
82251
|
const robotName = name ?? basename2(sourceLabel).replace(/\.(urdf|xml)$/i, "");
|
|
81851
82252
|
const parts = Object.values(doc.partDefs ?? {}).map((p) => ({
|
|
81852
82253
|
id: p.id,
|
|
@@ -87404,8 +87805,8 @@ var init_server3 = __esm({
|
|
|
87404
87805
|
init_order_feed();
|
|
87405
87806
|
init_animate();
|
|
87406
87807
|
PKG_VERSION = (() => {
|
|
87407
|
-
if ("0.11.0-main.
|
|
87408
|
-
return "0.11.0-main.
|
|
87808
|
+
if ("0.11.0-main.141") {
|
|
87809
|
+
return "0.11.0-main.141";
|
|
87409
87810
|
}
|
|
87410
87811
|
try {
|
|
87411
87812
|
const req = createRequire2(import.meta.url);
|
|
@@ -87414,8 +87815,8 @@ var init_server3 = __esm({
|
|
|
87414
87815
|
return "0.0.0";
|
|
87415
87816
|
}
|
|
87416
87817
|
})();
|
|
87417
|
-
BUILD_SHA = "
|
|
87418
|
-
BUILD_TIME = "2026-11-
|
|
87818
|
+
BUILD_SHA = "93d764d9d2bc6755352a90c6327045d5dc9ea72d";
|
|
87819
|
+
BUILD_TIME = "2026-11-10T17:12:44.811Z";
|
|
87419
87820
|
SHORT_SHA = BUILD_SHA === "unknown" ? "unknown" : BUILD_SHA.slice(0, 7);
|
|
87420
87821
|
VERSION_WITH_BUILD = SHORT_SHA === "unknown" ? PKG_VERSION : `${PKG_VERSION}+${SHORT_SHA}`;
|
|
87421
87822
|
INSTANCE_ID = randomUUID7().slice(0, 8);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vcad/mcp",
|
|
3
|
-
"version": "0.11.0-main.
|
|
3
|
+
"version": "0.11.0-main.141",
|
|
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-11-
|
|
22
|
+
"sha": "93d764d9d2bc6755352a90c6327045d5dc9ea72d",
|
|
23
|
+
"builtAt": "2026-11-10T17:12:44.811Z"
|
|
24
24
|
}
|
|
25
25
|
}
|
package/vcad_kernel_wasm_bg.wasm
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: package/vcad_kernel_wasm_bg.wasm
|
|
3
|
-
size:
|
|
4
|
-
sha256:
|
|
3
|
+
size: 37267118 bytes
|
|
4
|
+
sha256: 345ccd3c52425074524246e9532459d8dc662d94cd9060ac15ef403c17bcbb3c
|