@elixpo/lixsketch 5.6.3 → 5.6.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elixpo/lixsketch",
3
- "version": "5.6.3",
3
+ "version": "5.6.5",
4
4
  "description": "Open-source SVG whiteboard engine + React canvas component with hand-drawn aesthetics — the core of LixSketch",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -48,6 +48,9 @@
48
48
  "url": "https://github.com/elixpo"
49
49
  },
50
50
  "license": "MIT",
51
+ "engines": {
52
+ "node": ">=20.0.0"
53
+ },
51
54
  "homepage": "https://sketch.elixpo.com",
52
55
  "repository": {
53
56
  "type": "git",
package/src/mcp/server.js CHANGED
@@ -180,7 +180,7 @@ export class LixSketchMcpServer {
180
180
  if (method === 'initialize') {
181
181
  const requested = request.params?.protocolVersion;
182
182
  const protocolVersion = SUPPORTED_PROTOCOL_VERSIONS.has(requested) ? requested : PROTOCOL_VERSION;
183
- return { protocolVersion, capabilities: { tools: { listChanged: false }, resources: { subscribe: false, listChanged: false } }, serverInfo: this.serverInfo, instructions: 'Read canvas_get before mutations. Use expectedRevision and dryRun for safe edits. Prefer template_insert for reusable component packs.' };
183
+ return { protocolVersion, capabilities: { tools: { listChanged: false }, resources: { subscribe: false, listChanged: false } }, serverInfo: this.serverInfo, instructions: 'Before any mutation, call canvas_get and retain its revision. Preserve unrelated shapes. Send expectedRevision and dryRun: true first, inspect canvas_preview for layout changes, then commit the same validated operation with dryRun: false. Never clear or replace a canvas unless the user explicitly requests it. Prefer lixscript_apply for diagrams and template_insert for reusable component packs.' };
184
184
  }
185
185
  if (method === 'ping') return {};
186
186
  if (method === 'tools/list') return { tools: this.listTools() };