mcp-3d-printer-server 1.2.9 → 1.2.12
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/CHANGELOG.md +222 -0
- package/CONTRIBUTORS.md +56 -0
- package/README.md +528 -811
- package/dist/3mf_parser.js +8 -8
- package/dist/blender-mcp-bridge.d.ts +1 -0
- package/dist/blender-mcp-bridge.js +209 -21
- package/dist/fulu-orca.js +29 -5
- package/dist/index.js +614 -110
- package/dist/printers/bambu-node-guard.d.ts +2 -0
- package/dist/printers/bambu-node-guard.js +38 -0
- package/dist/printers/bambu.d.ts +53 -7
- package/dist/printers/bambu.js +420 -126
- package/dist/printers/creality.d.ts +15 -6
- package/dist/printers/creality.js +42 -9
- package/dist/printers/duet.d.ts +11 -6
- package/dist/printers/duet.js +57 -34
- package/dist/printers/generic-base.d.ts +69 -0
- package/dist/printers/generic-base.js +209 -0
- package/dist/printers/klipper.d.ts +17 -6
- package/dist/printers/klipper.js +63 -16
- package/dist/printers/octoprint.d.ts +18 -6
- package/dist/printers/octoprint.js +64 -9
- package/dist/printers/printer-factory.d.ts +11 -2
- package/dist/printers/printer-factory.js +9 -8
- package/dist/printers/prusa.d.ts +14 -6
- package/dist/printers/prusa.js +56 -9
- package/dist/printers/repetier.d.ts +18 -6
- package/dist/printers/repetier.js +48 -6
- package/dist/safety/archive.d.ts +11 -0
- package/dist/safety/archive.js +214 -0
- package/dist/safety/artifact.d.ts +6 -0
- package/dist/safety/artifact.js +66 -0
- package/dist/safety/confirmation.d.ts +22 -0
- package/dist/safety/confirmation.js +43 -0
- package/dist/safety/expected-peaks.d.ts +24 -0
- package/dist/safety/expected-peaks.js +24 -0
- package/dist/safety/gcode-thermal.d.ts +64 -0
- package/dist/safety/gcode-thermal.js +382 -0
- package/dist/safety/limits.d.ts +31 -0
- package/dist/safety/limits.js +105 -0
- package/dist/safety/print-file.d.ts +25 -0
- package/dist/safety/print-file.js +610 -0
- package/dist/safety/printer-state.d.ts +51 -0
- package/dist/safety/printer-state.js +371 -0
- package/dist/slicer/bambu-cli.d.ts +110 -0
- package/dist/slicer/bambu-cli.js +547 -0
- package/dist/slicer/profile-flatten.d.ts +104 -0
- package/dist/slicer/profile-flatten.js +676 -0
- package/dist/slicer/run-slicer.d.ts +18 -0
- package/dist/slicer/run-slicer.js +102 -0
- package/dist/slicer/slicer-error.d.ts +27 -0
- package/dist/slicer/slicer-error.js +53 -0
- package/dist/slicer/templates.d.ts +126 -0
- package/dist/slicer/templates.js +255 -0
- package/dist/stl/stl-manipulator.d.ts +25 -3
- package/dist/stl/stl-manipulator.js +214 -232
- package/package.json +16 -9
- package/server.json +56 -0
- package/src/3mf_parser.ts +8 -8
- package/src/blender-mcp-bridge.ts +200 -19
- package/src/fulu-orca.ts +36 -6
- package/src/index.ts +686 -137
- package/src/printers/bambu-node-guard.ts +44 -0
- package/src/printers/bambu.ts +458 -164
- package/src/printers/creality.ts +40 -9
- package/src/printers/duet.ts +64 -53
- package/src/printers/generic-base.ts +286 -0
- package/src/printers/klipper.ts +83 -28
- package/src/printers/octoprint.ts +74 -21
- package/src/printers/printer-factory.ts +21 -11
- package/src/printers/prusa.ts +53 -10
- package/src/printers/repetier.ts +55 -17
- package/src/safety/archive.ts +181 -0
- package/src/safety/artifact.ts +58 -0
- package/src/safety/confirmation.ts +56 -0
- package/src/safety/expected-peaks.ts +47 -0
- package/src/safety/gcode-thermal.ts +404 -0
- package/src/safety/limits.ts +98 -0
- package/src/safety/print-file.ts +429 -0
- package/src/safety/printer-state.ts +344 -0
- package/src/slicer/bambu-cli.ts +633 -0
- package/src/slicer/profile-flatten.ts +830 -0
- package/src/slicer/run-slicer.ts +126 -0
- package/src/slicer/slicer-error.ts +72 -0
- package/src/slicer/templates.ts +288 -0
- package/src/stl/stl-manipulator.ts +247 -275
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unpatched bambu-node 3.22.21 parses every MQTT report in an async listener and
|
|
3
|
+
* throws from it for printers or state transitions it does not model: H2S/H2D/
|
|
4
|
+
* H2C/H2D Pro/P2S serial prefixes, a get_version reply without an ota module, and
|
|
5
|
+
* transitions such as PAUSE -> IDLE after a cancel. Those throws become unhandled
|
|
6
|
+
* promise rejections, which terminate Node by default. bambu-printer-mcp avoids
|
|
7
|
+
* this with a postinstall patch; this package does not install one.
|
|
8
|
+
*
|
|
9
|
+
* Safety checks here never rely on bambu-node's model or job tracking: they read
|
|
10
|
+
* fresh raw MQTT reports. Only these exact internal errors originating inside
|
|
11
|
+
* bambu-node are logged and ignored. Every other unhandled rejection is rethrown,
|
|
12
|
+
* preserving Node's default crash behavior.
|
|
13
|
+
*/
|
|
14
|
+
const KNOWN_INTERNAL_ERRORS = new Set([
|
|
15
|
+
"Printer model not supported!",
|
|
16
|
+
"OTA module version data not found, unable to determine printer model!",
|
|
17
|
+
"Edge case detected while updating printer status!",
|
|
18
|
+
]);
|
|
19
|
+
|
|
20
|
+
let installed = false;
|
|
21
|
+
|
|
22
|
+
export function isKnownBambuNodeInternalError(reason: unknown): boolean {
|
|
23
|
+
return (
|
|
24
|
+
reason instanceof Error &&
|
|
25
|
+
KNOWN_INTERNAL_ERRORS.has(reason.message) &&
|
|
26
|
+
typeof reason.stack === "string" &&
|
|
27
|
+
/[\\/]bambu-node[\\/]/.test(reason.stack)
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function installBambuNodeRejectionGuard(): void {
|
|
32
|
+
if (installed) return;
|
|
33
|
+
installed = true;
|
|
34
|
+
process.on("unhandledRejection", (reason) => {
|
|
35
|
+
if (isKnownBambuNodeInternalError(reason)) {
|
|
36
|
+
console.error(
|
|
37
|
+
`[bambu-node] Ignored internal status-tracking error: ${(reason as Error).message} ` +
|
|
38
|
+
"Safety checks use fresh raw MQTT reports instead."
|
|
39
|
+
);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
throw reason;
|
|
43
|
+
});
|
|
44
|
+
}
|