@eclipse-glsp/server-mcp 2.7.0-next.9
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/LICENSE +642 -0
- package/README.md +57 -0
- package/lib/index.d.ts +23 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +41 -0
- package/lib/index.js.map +1 -0
- package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts +43 -0
- package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts.map +1 -0
- package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.js +96 -0
- package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.js.map +1 -0
- package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts +43 -0
- package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts.map +1 -0
- package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.js +95 -0
- package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.js.map +1 -0
- package/lib/prompts/index.d.ts +18 -0
- package/lib/prompts/index.d.ts.map +1 -0
- package/lib/prompts/index.js +34 -0
- package/lib/prompts/index.js.map +1 -0
- package/lib/resources/handlers/diagram-png-mcp-resource-handler.d.ts +81 -0
- package/lib/resources/handlers/diagram-png-mcp-resource-handler.d.ts.map +1 -0
- package/lib/resources/handlers/diagram-png-mcp-resource-handler.js +174 -0
- package/lib/resources/handlers/diagram-png-mcp-resource-handler.js.map +1 -0
- package/lib/resources/handlers/diagram-svg-mcp-resource-handler.d.ts +52 -0
- package/lib/resources/handlers/diagram-svg-mcp-resource-handler.d.ts.map +1 -0
- package/lib/resources/handlers/diagram-svg-mcp-resource-handler.js +96 -0
- package/lib/resources/handlers/diagram-svg-mcp-resource-handler.js.map +1 -0
- package/lib/resources/index.d.ts +20 -0
- package/lib/resources/index.d.ts.map +1 -0
- package/lib/resources/index.js +36 -0
- package/lib/resources/index.js.map +1 -0
- package/lib/resources/services/element-types-provider.d.ts +65 -0
- package/lib/resources/services/element-types-provider.d.ts.map +1 -0
- package/lib/resources/services/element-types-provider.js +81 -0
- package/lib/resources/services/element-types-provider.js.map +1 -0
- package/lib/resources/services/mcp-model-serializer.d.ts +78 -0
- package/lib/resources/services/mcp-model-serializer.d.ts.map +1 -0
- package/lib/resources/services/mcp-model-serializer.js +188 -0
- package/lib/resources/services/mcp-model-serializer.js.map +1 -0
- package/lib/server/glsp-mcp-server.d.ts +82 -0
- package/lib/server/glsp-mcp-server.d.ts.map +1 -0
- package/lib/server/glsp-mcp-server.js +140 -0
- package/lib/server/glsp-mcp-server.js.map +1 -0
- package/lib/server/index.d.ts +37 -0
- package/lib/server/index.d.ts.map +1 -0
- package/lib/server/index.js +57 -0
- package/lib/server/index.js.map +1 -0
- package/lib/server/lru-event-store.d.ts +53 -0
- package/lib/server/lru-event-store.d.ts.map +1 -0
- package/lib/server/lru-event-store.js +100 -0
- package/lib/server/lru-event-store.js.map +1 -0
- package/lib/server/mcp-diagram-handler-dispatcher.d.ts +144 -0
- package/lib/server/mcp-diagram-handler-dispatcher.d.ts.map +1 -0
- package/lib/server/mcp-diagram-handler-dispatcher.js +382 -0
- package/lib/server/mcp-diagram-handler-dispatcher.js.map +1 -0
- package/lib/server/mcp-diagram-module.d.ts +123 -0
- package/lib/server/mcp-diagram-module.d.ts.map +1 -0
- package/lib/server/mcp-diagram-module.js +186 -0
- package/lib/server/mcp-diagram-module.js.map +1 -0
- package/lib/server/mcp-diagram-prompt-handler-registry.d.ts +33 -0
- package/lib/server/mcp-diagram-prompt-handler-registry.d.ts.map +1 -0
- package/lib/server/mcp-diagram-prompt-handler-registry.js +76 -0
- package/lib/server/mcp-diagram-prompt-handler-registry.js.map +1 -0
- package/lib/server/mcp-diagram-resource-handler-registry.d.ts +35 -0
- package/lib/server/mcp-diagram-resource-handler-registry.d.ts.map +1 -0
- package/lib/server/mcp-diagram-resource-handler-registry.js +94 -0
- package/lib/server/mcp-diagram-resource-handler-registry.js.map +1 -0
- package/lib/server/mcp-diagram-tool-handler-registry.d.ts +57 -0
- package/lib/server/mcp-diagram-tool-handler-registry.d.ts.map +1 -0
- package/lib/server/mcp-diagram-tool-handler-registry.js +111 -0
- package/lib/server/mcp-diagram-tool-handler-registry.js.map +1 -0
- package/lib/server/mcp-handler-shared.d.ts +142 -0
- package/lib/server/mcp-handler-shared.d.ts.map +1 -0
- package/lib/server/mcp-handler-shared.js +199 -0
- package/lib/server/mcp-handler-shared.js.map +1 -0
- package/lib/server/mcp-http-transport.d.ts +93 -0
- package/lib/server/mcp-http-transport.d.ts.map +1 -0
- package/lib/server/mcp-http-transport.js +350 -0
- package/lib/server/mcp-http-transport.js.map +1 -0
- package/lib/server/mcp-id-alias-service.d.ts +70 -0
- package/lib/server/mcp-id-alias-service.d.ts.map +1 -0
- package/lib/server/mcp-id-alias-service.js +85 -0
- package/lib/server/mcp-id-alias-service.js.map +1 -0
- package/lib/server/mcp-input-schemas.d.ts +73 -0
- package/lib/server/mcp-input-schemas.d.ts.map +1 -0
- package/lib/server/mcp-input-schemas.js +67 -0
- package/lib/server/mcp-input-schemas.js.map +1 -0
- package/lib/server/mcp-label-provider.d.ts +45 -0
- package/lib/server/mcp-label-provider.d.ts.map +1 -0
- package/lib/server/mcp-label-provider.js +42 -0
- package/lib/server/mcp-label-provider.js.map +1 -0
- package/lib/server/mcp-log-level-registry.d.ts +54 -0
- package/lib/server/mcp-log-level-registry.d.ts.map +1 -0
- package/lib/server/mcp-log-level-registry.js +80 -0
- package/lib/server/mcp-log-level-registry.js.map +1 -0
- package/lib/server/mcp-logger.d.ts +59 -0
- package/lib/server/mcp-logger.d.ts.map +1 -0
- package/lib/server/mcp-logger.js +104 -0
- package/lib/server/mcp-logger.js.map +1 -0
- package/lib/server/mcp-mime-types.d.ts +28 -0
- package/lib/server/mcp-mime-types.d.ts.map +1 -0
- package/lib/server/mcp-mime-types.js +18 -0
- package/lib/server/mcp-mime-types.js.map +1 -0
- package/lib/server/mcp-options.d.ts +39 -0
- package/lib/server/mcp-options.d.ts.map +1 -0
- package/lib/server/mcp-options.js +53 -0
- package/lib/server/mcp-options.js.map +1 -0
- package/lib/server/mcp-progress-reporter.d.ts +48 -0
- package/lib/server/mcp-progress-reporter.d.ts.map +1 -0
- package/lib/server/mcp-progress-reporter.js +66 -0
- package/lib/server/mcp-progress-reporter.js.map +1 -0
- package/lib/server/mcp-prompt-handler.d.ts +120 -0
- package/lib/server/mcp-prompt-handler.d.ts.map +1 -0
- package/lib/server/mcp-prompt-handler.js +131 -0
- package/lib/server/mcp-prompt-handler.js.map +1 -0
- package/lib/server/mcp-request-context.d.ts +37 -0
- package/lib/server/mcp-request-context.d.ts.map +1 -0
- package/lib/server/mcp-request-context.js +37 -0
- package/lib/server/mcp-request-context.js.map +1 -0
- package/lib/server/mcp-resource-handler.d.ts +212 -0
- package/lib/server/mcp-resource-handler.d.ts.map +1 -0
- package/lib/server/mcp-resource-handler.js +298 -0
- package/lib/server/mcp-resource-handler.js.map +1 -0
- package/lib/server/mcp-server-launcher.d.ts +143 -0
- package/lib/server/mcp-server-launcher.d.ts.map +1 -0
- package/lib/server/mcp-server-launcher.js +355 -0
- package/lib/server/mcp-server-launcher.js.map +1 -0
- package/lib/server/mcp-server-module.d.ts +143 -0
- package/lib/server/mcp-server-module.d.ts.map +1 -0
- package/lib/server/mcp-server-module.js +249 -0
- package/lib/server/mcp-server-module.js.map +1 -0
- package/lib/server/mcp-session.d.ts +44 -0
- package/lib/server/mcp-session.d.ts.map +1 -0
- package/lib/server/mcp-session.js +18 -0
- package/lib/server/mcp-session.js.map +1 -0
- package/lib/server/mcp-tool-handler.d.ts +259 -0
- package/lib/server/mcp-tool-handler.d.ts.map +1 -0
- package/lib/server/mcp-tool-handler.js +355 -0
- package/lib/server/mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/count-elements-mcp-tool-handler.d.ts +46 -0
- package/lib/tools/handlers/count-elements-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/count-elements-mcp-tool-handler.js +76 -0
- package/lib/tools/handlers/count-elements-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/create-edges-mcp-tool-handler.d.ts +112 -0
- package/lib/tools/handlers/create-edges-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/create-edges-mcp-tool-handler.js +190 -0
- package/lib/tools/handlers/create-edges-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/create-nodes-mcp-tool-handler.d.ts +81 -0
- package/lib/tools/handlers/create-nodes-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/create-nodes-mcp-tool-handler.js +123 -0
- package/lib/tools/handlers/create-nodes-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/delete-elements-mcp-tool-handler.d.ts +52 -0
- package/lib/tools/handlers/delete-elements-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/delete-elements-mcp-tool-handler.js +73 -0
- package/lib/tools/handlers/delete-elements-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/diagram-model-mcp-tool-handler.d.ts +59 -0
- package/lib/tools/handlers/diagram-model-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/diagram-model-mcp-tool-handler.js +78 -0
- package/lib/tools/handlers/diagram-model-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/element-types-mcp-tool-handler.d.ts +97 -0
- package/lib/tools/handlers/element-types-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/element-types-mcp-tool-handler.js +155 -0
- package/lib/tools/handlers/element-types-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/get-selection-mcp-tool-handler.d.ts +43 -0
- package/lib/tools/handlers/get-selection-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/get-selection-mcp-tool-handler.js +68 -0
- package/lib/tools/handlers/get-selection-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/layout-mcp-tool-handler.d.ts +43 -0
- package/lib/tools/handlers/layout-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/layout-mcp-tool-handler.js +71 -0
- package/lib/tools/handlers/layout-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/modify-edges-mcp-tool-handler.d.ts +78 -0
- package/lib/tools/handlers/modify-edges-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/modify-edges-mcp-tool-handler.js +136 -0
- package/lib/tools/handlers/modify-edges-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/modify-nodes-mcp-tool-handler.d.ts +92 -0
- package/lib/tools/handlers/modify-nodes-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/modify-nodes-mcp-tool-handler.js +125 -0
- package/lib/tools/handlers/modify-nodes-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/query-elements-mcp-tool-handler.d.ts +102 -0
- package/lib/tools/handlers/query-elements-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/query-elements-mcp-tool-handler.js +158 -0
- package/lib/tools/handlers/query-elements-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/redo-mcp-tool-handler.d.ts +45 -0
- package/lib/tools/handlers/redo-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/redo-mcp-tool-handler.js +73 -0
- package/lib/tools/handlers/redo-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/save-model-mcp-tool-handler.d.ts +55 -0
- package/lib/tools/handlers/save-model-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/save-model-mcp-tool-handler.js +91 -0
- package/lib/tools/handlers/save-model-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/session-info-mcp-tool-handler.d.ts +65 -0
- package/lib/tools/handlers/session-info-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/session-info-mcp-tool-handler.js +108 -0
- package/lib/tools/handlers/session-info-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/set-selection-mcp-tool-handler.d.ts +60 -0
- package/lib/tools/handlers/set-selection-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/set-selection-mcp-tool-handler.js +103 -0
- package/lib/tools/handlers/set-selection-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/set-view-mcp-tool-handler.d.ts +110 -0
- package/lib/tools/handlers/set-view-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/set-view-mcp-tool-handler.js +142 -0
- package/lib/tools/handlers/set-view-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/undo-mcp-tool-handler.d.ts +45 -0
- package/lib/tools/handlers/undo-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/undo-mcp-tool-handler.js +74 -0
- package/lib/tools/handlers/undo-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/validate-diagram-mcp-tool-handler.d.ts +66 -0
- package/lib/tools/handlers/validate-diagram-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/validate-diagram-mcp-tool-handler.js +0 -0
- package/lib/tools/handlers/validate-diagram-mcp-tool-handler.js.map +1 -0
- package/lib/tools/index.d.ts +34 -0
- package/lib/tools/index.d.ts.map +1 -0
- package/lib/tools/index.js +50 -0
- package/lib/tools/index.js.map +1 -0
- package/lib/util/index.d.ts +18 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +34 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/markdown-util.d.ts +20 -0
- package/lib/util/markdown-util.d.ts.map +1 -0
- package/lib/util/markdown-util.js +45 -0
- package/lib/util/markdown-util.js.map +1 -0
- package/lib/util/mcp-util.d.ts +22 -0
- package/lib/util/mcp-util.d.ts.map +1 -0
- package/lib/util/mcp-util.js +29 -0
- package/lib/util/mcp-util.js.map +1 -0
- package/package.json +63 -0
- package/src/index.ts +24 -0
- package/src/prompts/handlers/describe-diagram-mcp-prompt-handler.ts +89 -0
- package/src/prompts/handlers/suggest-improvements-mcp-prompt-handler.ts +86 -0
- package/src/prompts/index.ts +18 -0
- package/src/resources/handlers/diagram-png-mcp-resource-handler.ts +181 -0
- package/src/resources/handlers/diagram-svg-mcp-resource-handler.ts +89 -0
- package/src/resources/index.ts +20 -0
- package/src/resources/services/element-types-provider.ts +105 -0
- package/src/resources/services/mcp-model-serializer.ts +211 -0
- package/src/server/glsp-mcp-server.spec.ts +73 -0
- package/src/server/glsp-mcp-server.ts +196 -0
- package/src/server/index.ts +42 -0
- package/src/server/lru-event-store.spec.ts +121 -0
- package/src/server/lru-event-store.ts +112 -0
- package/src/server/mcp-diagram-handler-dispatcher.spec.ts +231 -0
- package/src/server/mcp-diagram-handler-dispatcher.ts +459 -0
- package/src/server/mcp-diagram-module.ts +248 -0
- package/src/server/mcp-diagram-prompt-handler-registry.ts +59 -0
- package/src/server/mcp-diagram-resource-handler-registry.ts +73 -0
- package/src/server/mcp-diagram-tool-handler-registry.ts +97 -0
- package/src/server/mcp-handler-shared.spec.ts +53 -0
- package/src/server/mcp-handler-shared.ts +247 -0
- package/src/server/mcp-http-transport-e2e.spec.ts +151 -0
- package/src/server/mcp-http-transport.spec.ts +385 -0
- package/src/server/mcp-http-transport.ts +368 -0
- package/src/server/mcp-id-alias-service.spec.ts +106 -0
- package/src/server/mcp-id-alias-service.ts +104 -0
- package/src/server/mcp-input-schemas.ts +82 -0
- package/src/server/mcp-label-provider.ts +52 -0
- package/src/server/mcp-log-level-registry.spec.ts +75 -0
- package/src/server/mcp-log-level-registry.ts +90 -0
- package/src/server/mcp-logger.spec.ts +227 -0
- package/src/server/mcp-logger.ts +91 -0
- package/src/server/mcp-mime-types.ts +31 -0
- package/src/server/mcp-options.ts +43 -0
- package/src/server/mcp-progress-reporter.spec.ts +93 -0
- package/src/server/mcp-progress-reporter.ts +67 -0
- package/src/server/mcp-prompt-handler.ts +157 -0
- package/src/server/mcp-request-context.ts +39 -0
- package/src/server/mcp-resource-handler.ts +389 -0
- package/src/server/mcp-server-launcher.spec.ts +173 -0
- package/src/server/mcp-server-launcher.ts +369 -0
- package/src/server/mcp-server-module.ts +287 -0
- package/src/server/mcp-session.ts +45 -0
- package/src/server/mcp-tool-handler.spec.ts +182 -0
- package/src/server/mcp-tool-handler.ts +431 -0
- package/src/server/raw-http.spec.ts +59 -0
- package/src/tools/handlers/count-elements-mcp-tool-handler.spec.ts +99 -0
- package/src/tools/handlers/count-elements-mcp-tool-handler.ts +66 -0
- package/src/tools/handlers/create-edges-mcp-tool-handler.spec.ts +196 -0
- package/src/tools/handlers/create-edges-mcp-tool-handler.ts +205 -0
- package/src/tools/handlers/create-nodes-mcp-tool-handler.spec.ts +197 -0
- package/src/tools/handlers/create-nodes-mcp-tool-handler.ts +131 -0
- package/src/tools/handlers/delete-elements-mcp-tool-handler.ts +73 -0
- package/src/tools/handlers/diagram-model-mcp-tool-handler.ts +66 -0
- package/src/tools/handlers/element-types-mcp-tool-handler.ts +151 -0
- package/src/tools/handlers/get-selection-mcp-tool-handler.ts +54 -0
- package/src/tools/handlers/layout-mcp-tool-handler.ts +56 -0
- package/src/tools/handlers/modify-edges-mcp-tool-handler.ts +148 -0
- package/src/tools/handlers/modify-nodes-mcp-tool-handler.ts +140 -0
- package/src/tools/handlers/query-elements-mcp-tool-handler.spec.ts +210 -0
- package/src/tools/handlers/query-elements-mcp-tool-handler.ts +161 -0
- package/src/tools/handlers/redo-mcp-tool-handler.ts +62 -0
- package/src/tools/handlers/save-model-mcp-tool-handler.ts +71 -0
- package/src/tools/handlers/session-info-mcp-tool-handler.spec.ts +152 -0
- package/src/tools/handlers/session-info-mcp-tool-handler.ts +97 -0
- package/src/tools/handlers/set-selection-mcp-tool-handler.spec.ts +118 -0
- package/src/tools/handlers/set-selection-mcp-tool-handler.ts +90 -0
- package/src/tools/handlers/set-view-mcp-tool-handler.ts +162 -0
- package/src/tools/handlers/undo-mcp-tool-handler.ts +61 -0
- package/src/tools/handlers/validate-diagram-mcp-tool-handler.ts +0 -0
- package/src/tools/index.ts +34 -0
- package/src/tools/tool-annotations.spec.ts +141 -0
- package/src/util/index.ts +18 -0
- package/src/util/markdown-util.ts +44 -0
- package/src/util/mcp-util.ts +25 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modify-edges-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/modify-edges-mcp-tool-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;AAElF,iDAAmG;AACnG,yCAAuC;AACvC,4BAA4B;AAC5B,yCAQsB;AACtB,qCAA8C;AAE9C,sIAAsI;AACzH,QAAA,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC/C,SAAS,EAAE,kBAAe;IAC1B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IACvG,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IACvG,aAAa,EAAE,CAAC;SACX,KAAK,CAAC,iBAAQ,CAAC;SACf,QAAQ,EAAE;SACV,QAAQ,CACL,kFAAkF;QAC9E,kDAAkD,CACzD;CACR,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,oCAA2B,CAAC,MAAM,CAAC;IACrE,KAAK,EAAE,CAAC;SACH,KAAK,CAAC,4BAAoB,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,mHAAmH,CAAC;CACrI,CAAC,CAAC;AAGU,QAAA,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,8BAAqB,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACpH,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACjG,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,yEAAyE,CAAC;CAClH,CAAC,CAAC;AAGI,IAAM,yBAAyB,iCAA/B,MAAM,yBAA0B,SAAQ,uCAAgD;IAAxF;;QAEM,SAAI,GAAG,2BAAyB,CAAC,IAAI,CAAC;QAC7B,UAAK,GAAG,sBAAsB,CAAC;QACxC,gBAAW,GAChB,qHAAqH;YACrH,qHAAqH;YACrH,+FAA+F;YAC/F,8FAA8F;YAC9F,wEAAwE;YACxE,6DAA6D,CAAC;QACzD,gBAAW,GAAG,8BAAsB,CAAC;QAC5B,iBAAY,GAAG,+BAAuB,CAAC;IA4E7D,CAAC;IA1Ea,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,EAAoB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAExE,2FAA2F;QAC3F,0FAA0F;QAC1F,yDAAyD;QACzD,MAAM,SAAS,GAAG,QAAQ;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,YAAY,cAAK,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,YAAY,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAClF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,qBAAY,CAAC,0CAA0C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC1H,CAAC;QAED,gFAAgF;QAChF,qEAAqE;QACrE,MAAM,UAAU,GAAuE,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE;YAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9G,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE9G,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,eAAe,CAAC,EAAE,CAAC;gBACjF,MAAM,CAAC,IAAI,CAAC,qDAAqD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3F,OAAO;YACX,CAAC;YAED,IAAI,eAAe,IAAI,eAAe,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,6BAA6B,eAAe,EAAE,CAAC,CAAC;oBAC5D,OAAO;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,6BAA6B,eAAe,EAAE,CAAC,CAAC;oBAC5D,OAAO;gBACX,CAAC;gBAED,MAAM,SAAS,GAAG,+BAAsB,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC7G,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC3G,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5B,qGAAqG;gBACrG,OAAO;YACX,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAG,qCAA4B,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;gBAChH,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC3G,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9F,MAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,MAAM,MAAM,EAAE,CAAC,CAAC;gBAC7D,sFAAsF;gBACtF,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,GAAG,eAAe,CAAC;aACrC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;aAC3C,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,OAAO,CACf,yBAAyB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,gBAAgB,UAAU,CAAC,MAAM,aAAa,IAAA,uBAAgB,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EACvI,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CACnE,CAAC;IACN,CAAC;;AAvFQ,8DAAyB;AAClB,8BAAI,GAAG,cAAc,AAAjB,CAAkB;oCAD7B,yBAAyB;IADrC,IAAA,sBAAU,GAAE;GACA,yBAAyB,CAwFrC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import * as z from 'zod/v4';
|
|
17
|
+
import { McpToolResult, OperationMcpDiagramToolHandler } from '../../server';
|
|
18
|
+
/** Strict — any unknown field on the size object surfaces as a validation error. */
|
|
19
|
+
export declare const NodeSizeSchema: z.ZodObject<{
|
|
20
|
+
width: z.ZodNumber;
|
|
21
|
+
height: z.ZodNumber;
|
|
22
|
+
}, z.core.$strict>;
|
|
23
|
+
/** Single node-modification entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */
|
|
24
|
+
export declare const ModifyNodeSpecSchema: z.ZodObject<{
|
|
25
|
+
elementId: z.ZodString;
|
|
26
|
+
position: z.ZodOptional<z.ZodObject<{
|
|
27
|
+
x: z.ZodNumber;
|
|
28
|
+
y: z.ZodNumber;
|
|
29
|
+
}, z.core.$strict>>;
|
|
30
|
+
size: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
width: z.ZodNumber;
|
|
32
|
+
height: z.ZodNumber;
|
|
33
|
+
}, z.core.$strict>>;
|
|
34
|
+
text: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, z.core.$strict>;
|
|
36
|
+
export declare const ModifyNodesInputSchema: z.ZodObject<{
|
|
37
|
+
sessionId: z.ZodString;
|
|
38
|
+
nodes: z.ZodArray<z.ZodObject<{
|
|
39
|
+
elementId: z.ZodString;
|
|
40
|
+
position: z.ZodOptional<z.ZodObject<{
|
|
41
|
+
x: z.ZodNumber;
|
|
42
|
+
y: z.ZodNumber;
|
|
43
|
+
}, z.core.$strict>>;
|
|
44
|
+
size: z.ZodOptional<z.ZodObject<{
|
|
45
|
+
width: z.ZodNumber;
|
|
46
|
+
height: z.ZodNumber;
|
|
47
|
+
}, z.core.$strict>>;
|
|
48
|
+
text: z.ZodOptional<z.ZodString>;
|
|
49
|
+
}, z.core.$strict>>;
|
|
50
|
+
}, z.core.$strip>;
|
|
51
|
+
export type ModifyNodesInput = z.infer<typeof ModifyNodesInputSchema>;
|
|
52
|
+
export declare const ModifyNodesOutputSchema: z.ZodObject<{
|
|
53
|
+
modifiedNodes: z.ZodArray<z.ZodObject<{
|
|
54
|
+
id: z.ZodString;
|
|
55
|
+
elementTypeId: z.ZodString;
|
|
56
|
+
label: z.ZodOptional<z.ZodString>;
|
|
57
|
+
}, z.core.$strip>>;
|
|
58
|
+
dispatchedCommands: z.ZodNumber;
|
|
59
|
+
warnings: z.ZodArray<z.ZodString>;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
export declare class ModifyNodesMcpToolHandler extends OperationMcpDiagramToolHandler<ModifyNodesInput> {
|
|
62
|
+
static readonly NAME = "modify-nodes";
|
|
63
|
+
readonly name = "modify-nodes";
|
|
64
|
+
readonly title = "Modify Diagram Nodes";
|
|
65
|
+
readonly description: string;
|
|
66
|
+
readonly inputSchema: z.ZodObject<{
|
|
67
|
+
sessionId: z.ZodString;
|
|
68
|
+
nodes: z.ZodArray<z.ZodObject<{
|
|
69
|
+
elementId: z.ZodString;
|
|
70
|
+
position: z.ZodOptional<z.ZodObject<{
|
|
71
|
+
x: z.ZodNumber;
|
|
72
|
+
y: z.ZodNumber;
|
|
73
|
+
}, z.core.$strict>>;
|
|
74
|
+
size: z.ZodOptional<z.ZodObject<{
|
|
75
|
+
width: z.ZodNumber;
|
|
76
|
+
height: z.ZodNumber;
|
|
77
|
+
}, z.core.$strict>>;
|
|
78
|
+
text: z.ZodOptional<z.ZodString>;
|
|
79
|
+
}, z.core.$strict>>;
|
|
80
|
+
}, z.core.$strip>;
|
|
81
|
+
readonly outputSchema: z.ZodObject<{
|
|
82
|
+
modifiedNodes: z.ZodArray<z.ZodObject<{
|
|
83
|
+
id: z.ZodString;
|
|
84
|
+
elementTypeId: z.ZodString;
|
|
85
|
+
label: z.ZodOptional<z.ZodString>;
|
|
86
|
+
}, z.core.$strip>>;
|
|
87
|
+
dispatchedCommands: z.ZodNumber;
|
|
88
|
+
warnings: z.ZodArray<z.ZodString>;
|
|
89
|
+
}, z.core.$strip>;
|
|
90
|
+
protected createResult({ nodes }: ModifyNodesInput): Promise<McpToolResult>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=modify-nodes-mcp-tool-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modify-nodes-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/modify-nodes-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAIlF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAIH,aAAa,EACb,8BAA8B,EAGjC,MAAM,cAAc,CAAC;AAGtB,oFAAoF;AACpF,eAAO,MAAM,cAAc;;;kBAGzB,CAAC;AAEH,sIAAsI;AACtI,eAAO,MAAM,oBAAoB;;;;;;;;;;;kBAK/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;iBAUlC,CAAC;AAEH,qBACa,yBAA0B,SAAQ,8BAA8B,CAAC,gBAAgB,CAAC;IAC3F,MAAM,CAAC,QAAQ,CAAC,IAAI,kBAAkB;IACtC,QAAQ,CAAC,IAAI,kBAAkC;IAC/C,SAAkB,KAAK,0BAA0B;IACjD,QAAQ,CAAC,WAAW,SAMsD;IAC1E,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;sBAA0B;IAC9C,SAAkB,YAAY;;;;;;;;sBAA2B;cAEzC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;CA4DpF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/********************************************************************************
|
|
3
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made available under the
|
|
6
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
*
|
|
9
|
+
* This Source Code may also be made available under the following Secondary
|
|
10
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
* with the GNU Classpath Exception which is available at
|
|
13
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
********************************************************************************/
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var ModifyNodesMcpToolHandler_1;
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.ModifyNodesMcpToolHandler = exports.ModifyNodesOutputSchema = exports.ModifyNodesInputSchema = exports.ModifyNodeSpecSchema = exports.NodeSizeSchema = void 0;
|
|
26
|
+
const server_1 = require("@eclipse-glsp/server");
|
|
27
|
+
const inversify_1 = require("inversify");
|
|
28
|
+
const z = require("zod/v4");
|
|
29
|
+
const server_2 = require("../../server");
|
|
30
|
+
const util_1 = require("../../util");
|
|
31
|
+
/** Strict — any unknown field on the size object surfaces as a validation error. */
|
|
32
|
+
exports.NodeSizeSchema = z.strictObject({
|
|
33
|
+
width: z.number().positive().describe('Width of the element in diagram space (must be > 0).'),
|
|
34
|
+
height: z.number().positive().describe('Height of the element in diagram space (must be > 0).')
|
|
35
|
+
});
|
|
36
|
+
/** Single node-modification entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */
|
|
37
|
+
exports.ModifyNodeSpecSchema = z.strictObject({
|
|
38
|
+
elementId: server_2.elementId,
|
|
39
|
+
position: server_2.position.optional().describe('Position where the node should be moved to (absolute diagram coordinates)'),
|
|
40
|
+
size: exports.NodeSizeSchema.optional().describe('New size of the node'),
|
|
41
|
+
text: z.string().optional().describe("Label text to use instead (given that the element's type allows for labels).")
|
|
42
|
+
});
|
|
43
|
+
exports.ModifyNodesInputSchema = server_2.McpDiagramScopedInputSchema.extend({
|
|
44
|
+
nodes: z
|
|
45
|
+
.array(exports.ModifyNodeSpecSchema)
|
|
46
|
+
.min(1)
|
|
47
|
+
.describe('Array of node changes — each entry needs `elementId` plus the fields to update. Must include at least one change.')
|
|
48
|
+
});
|
|
49
|
+
exports.ModifyNodesOutputSchema = z.object({
|
|
50
|
+
modifiedNodes: z
|
|
51
|
+
.array(server_2.ElementIdentitySchema)
|
|
52
|
+
.describe('Identity of each node whose change request was dispatched (post-modification labels).'),
|
|
53
|
+
dispatchedCommands: z.number().int().describe('Number of underlying GLSP operations dispatched (a single change may yield several).'),
|
|
54
|
+
warnings: z
|
|
55
|
+
.array(z.string())
|
|
56
|
+
.describe('Soft notices for inputs whose change applied with caveats (e.g. `text` supplied for a node whose type has no editable label).')
|
|
57
|
+
});
|
|
58
|
+
let ModifyNodesMcpToolHandler = ModifyNodesMcpToolHandler_1 = class ModifyNodesMcpToolHandler extends server_2.OperationMcpDiagramToolHandler {
|
|
59
|
+
constructor() {
|
|
60
|
+
super(...arguments);
|
|
61
|
+
this.name = ModifyNodesMcpToolHandler_1.NAME;
|
|
62
|
+
this.title = 'Modify Diagram Nodes';
|
|
63
|
+
this.description = 'Modify one or more existing nodes by changing their position, size, and/or label text. ' +
|
|
64
|
+
'When modifying position or size, absolutely consider the visual alignment with other nodes — ' +
|
|
65
|
+
'use `query-elements` (inspect mode) first to understand the layout. ' +
|
|
66
|
+
'Each change entry can include any combination of `position`, `size`, and `text`; omitted fields keep their current value. ' +
|
|
67
|
+
'This operation modifies the diagram state and requires user approval. ' +
|
|
68
|
+
'For edges (reconnect / routing-points), use `modify-edges` instead.';
|
|
69
|
+
this.inputSchema = exports.ModifyNodesInputSchema;
|
|
70
|
+
this.outputSchema = exports.ModifyNodesOutputSchema;
|
|
71
|
+
}
|
|
72
|
+
async createResult({ nodes }) {
|
|
73
|
+
const elements = this.lookupElements(nodes, change => change.elementId);
|
|
74
|
+
// Reject edge ids — they have no `position`/`size` semantics and would fail downstream
|
|
75
|
+
// with a misleading "model element not found" error from the operation handler. Aliases
|
|
76
|
+
// are sequential across all element kinds, so an LLM passing an arbitrary id may hit an edge.
|
|
77
|
+
const wrongType = elements.filter(([, element]) => element instanceof server_1.GEdge).map(([change]) => `'${change.elementId}'`);
|
|
78
|
+
if (wrongType.length) {
|
|
79
|
+
throw new server_2.McpToolError(`modify-nodes does not accept edges — got: ${wrongType.join(', ')}. Use modify-edges for edges.`);
|
|
80
|
+
}
|
|
81
|
+
// Reject any other non-shape kinds (labels, compartments, ports, custom kinds) — they
|
|
82
|
+
// reach the index too and would silently produce no-op or undefined-bounds operations.
|
|
83
|
+
const nonShape = elements.filter(([, element]) => !(element instanceof server_1.GShapeElement)).map(([change]) => `'${change.elementId}'`);
|
|
84
|
+
if (nonShape.length) {
|
|
85
|
+
throw new server_2.McpToolError(`modify-nodes only accepts shape elements — got: ${nonShape.join(', ')}. ` +
|
|
86
|
+
'Use `query-elements` (inspect mode) to find shape ids, or pick the parent shape.');
|
|
87
|
+
}
|
|
88
|
+
// Modifications are independent of each other — dispatch in parallel.
|
|
89
|
+
const promises = [];
|
|
90
|
+
const warnings = [];
|
|
91
|
+
elements.forEach(([change, element]) => {
|
|
92
|
+
var _a;
|
|
93
|
+
// Guaranteed non-null and shape-typed by the missing-elements / nonShape checks above.
|
|
94
|
+
const resolved = element;
|
|
95
|
+
const { size, position, text } = change;
|
|
96
|
+
const realId = this.aliasService.lookup(change.elementId);
|
|
97
|
+
if (size || position) {
|
|
98
|
+
const newSize = size !== null && size !== void 0 ? size : resolved.size;
|
|
99
|
+
const newPosition = position !== null && position !== void 0 ? position : resolved.position;
|
|
100
|
+
const operation = server_1.ChangeBoundsOperation.create([{ elementId: realId, newSize, newPosition }]);
|
|
101
|
+
promises.push(this.actionDispatcher.dispatch(operation));
|
|
102
|
+
}
|
|
103
|
+
if (text) {
|
|
104
|
+
const labelId = (_a = this.labelProvider.getLabel(resolved)) === null || _a === void 0 ? void 0 : _a.id;
|
|
105
|
+
if (labelId) {
|
|
106
|
+
promises.push(this.actionDispatcher.dispatch(server_1.ApplyLabelEditOperation.create({ labelId, text })));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
warnings.push(`Ignored \`text\` for '${change.elementId}' (type '${resolved.type}') — this element has no editable label.`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
await Promise.all(promises);
|
|
114
|
+
const modifiedNodes = nodes
|
|
115
|
+
.map(change => this.describeElement(change.elementId))
|
|
116
|
+
.filter((entry) => entry !== undefined);
|
|
117
|
+
return this.success(`Successfully modified ${nodes.length} node(s) (in ${promises.length} commands)` + (0, util_1.formatNoticeList)('warnings', warnings), { modifiedNodes, dispatchedCommands: promises.length, warnings });
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
exports.ModifyNodesMcpToolHandler = ModifyNodesMcpToolHandler;
|
|
121
|
+
ModifyNodesMcpToolHandler.NAME = 'modify-nodes';
|
|
122
|
+
exports.ModifyNodesMcpToolHandler = ModifyNodesMcpToolHandler = ModifyNodesMcpToolHandler_1 = __decorate([
|
|
123
|
+
(0, inversify_1.injectable)()
|
|
124
|
+
], ModifyNodesMcpToolHandler);
|
|
125
|
+
//# sourceMappingURL=modify-nodes-mcp-tool-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modify-nodes-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/modify-nodes-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { GModelElement } from '@eclipse-glsp/server';
|
|
17
|
+
import * as z from 'zod/v4';
|
|
18
|
+
import { McpModelSerializer } from '../../resources/services/mcp-model-serializer';
|
|
19
|
+
import { AbstractMcpDiagramToolHandler, McpToolResult } from '../../server';
|
|
20
|
+
export declare const QueryElementsInputSchema: z.ZodObject<{
|
|
21
|
+
sessionId: z.ZodString;
|
|
22
|
+
elementIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
+
types: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
24
|
+
labelMatch: z.ZodOptional<z.ZodString>;
|
|
25
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export type QueryElementsInput = z.infer<typeof QueryElementsInputSchema>;
|
|
28
|
+
export declare const QueryElementMatchSchema: z.ZodObject<{
|
|
29
|
+
id: z.ZodString;
|
|
30
|
+
type: z.ZodString;
|
|
31
|
+
label: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
/** `.loose()` lets adopter element types attach extra fields (position, size, …) without widening the schema each time. */
|
|
34
|
+
export declare const DiagramElementSchema: z.ZodObject<{
|
|
35
|
+
id: z.ZodString;
|
|
36
|
+
type: z.ZodString;
|
|
37
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, z.core.$loose>;
|
|
39
|
+
export declare const QueryElementsOutputSchema: z.ZodObject<{
|
|
40
|
+
mode: z.ZodEnum<{
|
|
41
|
+
list: "list";
|
|
42
|
+
inspect: "inspect";
|
|
43
|
+
}>;
|
|
44
|
+
matches: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
45
|
+
id: z.ZodString;
|
|
46
|
+
type: z.ZodString;
|
|
47
|
+
label: z.ZodOptional<z.ZodString>;
|
|
48
|
+
}, z.core.$strip>>>;
|
|
49
|
+
elements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
50
|
+
id: z.ZodString;
|
|
51
|
+
type: z.ZodString;
|
|
52
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
53
|
+
}, z.core.$loose>>>;
|
|
54
|
+
truncated: z.ZodOptional<z.ZodBoolean>;
|
|
55
|
+
expandedFromContainers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
/** Two-mode element query — list/filter or inspect-by-id, discriminated by `elementIds` presence. */
|
|
58
|
+
export declare class QueryElementsMcpToolHandler extends AbstractMcpDiagramToolHandler<QueryElementsInput> {
|
|
59
|
+
static readonly NAME = "query-elements";
|
|
60
|
+
readonly name = "query-elements";
|
|
61
|
+
readonly title = "Query Diagram Elements";
|
|
62
|
+
readonly description: string;
|
|
63
|
+
readonly inputSchema: z.ZodObject<{
|
|
64
|
+
sessionId: z.ZodString;
|
|
65
|
+
elementIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
66
|
+
types: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
67
|
+
labelMatch: z.ZodOptional<z.ZodString>;
|
|
68
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
readonly outputSchema: z.ZodObject<{
|
|
71
|
+
mode: z.ZodEnum<{
|
|
72
|
+
list: "list";
|
|
73
|
+
inspect: "inspect";
|
|
74
|
+
}>;
|
|
75
|
+
matches: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
76
|
+
id: z.ZodString;
|
|
77
|
+
type: z.ZodString;
|
|
78
|
+
label: z.ZodOptional<z.ZodString>;
|
|
79
|
+
}, z.core.$strip>>>;
|
|
80
|
+
elements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
81
|
+
id: z.ZodString;
|
|
82
|
+
type: z.ZodString;
|
|
83
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
84
|
+
}, z.core.$loose>>>;
|
|
85
|
+
truncated: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
+
expandedFromContainers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
87
|
+
}, z.core.$strip>;
|
|
88
|
+
protected serializer: McpModelSerializer;
|
|
89
|
+
/** List-mode result cap when the call doesn't override `limit`. Override via subclass. */
|
|
90
|
+
protected readonly defaultLimit: number;
|
|
91
|
+
protected createResult(params: QueryElementsInput): Promise<McpToolResult>;
|
|
92
|
+
protected inspect(inputIds: string[]): McpToolResult;
|
|
93
|
+
/** Builds the LLM-facing summary for inspect mode. Override to customize per-adopter wording. */
|
|
94
|
+
protected summarizeInspect(elements: GModelElement[], expandedFromContainers: string[]): string;
|
|
95
|
+
protected list({ types, labelMatch, limit }: QueryElementsInput): McpToolResult;
|
|
96
|
+
protected renderMarkdown(matches: {
|
|
97
|
+
id: string;
|
|
98
|
+
type: string;
|
|
99
|
+
label?: string;
|
|
100
|
+
}[], truncated: boolean): string;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=query-elements-mcp-tool-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-elements-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/query-elements-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAEH,6BAA6B,EAE7B,aAAa,EAEhB,MAAM,cAAc,CAAC;AAEtB,eAAO,MAAM,wBAAwB;;;;;;iBAOnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AAEH,2HAA2H;AAC3H,eAAO,MAAM,oBAAoB;;;;iBAMrB,CAAC;AAEb,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;iBAYpC,CAAC;AAEH,qGAAqG;AACrG,qBACa,2BAA4B,SAAQ,6BAA6B,CAAC,kBAAkB,CAAC;IAC9F,MAAM,CAAC,QAAQ,CAAC,IAAI,oBAAoB;IACxC,QAAQ,CAAC,IAAI,oBAAoC;IACjD,SAAkB,KAAK,4BAA4B;IACnD,QAAQ,CAAC,WAAW,SAI8E;IAClG,QAAQ,CAAC,WAAW;;;;;;sBAA4B;IAChD,SAAkB,YAAY;;;;;;;;;;;;;;;;;sBAA6B;IAE/B,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAErE,0FAA0F;IAC1F,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAO;cAE9B,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIhF,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa;IA2BpD,iGAAiG;IACjG,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,GAAG,MAAM;IAO/F,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAAG,aAAa;IA8B/E,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM;CAKhH"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/********************************************************************************
|
|
3
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made available under the
|
|
6
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
*
|
|
9
|
+
* This Source Code may also be made available under the following Secondary
|
|
10
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
* with the GNU Classpath Exception which is available at
|
|
13
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
********************************************************************************/
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
var QueryElementsMcpToolHandler_1;
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.QueryElementsMcpToolHandler = exports.QueryElementsOutputSchema = exports.DiagramElementSchema = exports.QueryElementMatchSchema = exports.QueryElementsInputSchema = void 0;
|
|
29
|
+
const inversify_1 = require("inversify");
|
|
30
|
+
const z = require("zod/v4");
|
|
31
|
+
const mcp_model_serializer_1 = require("../../resources/services/mcp-model-serializer");
|
|
32
|
+
const server_1 = require("../../server");
|
|
33
|
+
exports.QueryElementsInputSchema = server_1.McpDiagramScopedInputSchema.extend({
|
|
34
|
+
elementIds: server_1.elementIds
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('Inspect-mode trigger. When set, returns rich per-element data and ignores the filter fields. Throws on unknown id.'),
|
|
37
|
+
types: z.array(z.string()).optional().describe('List-mode type filter. Empty/omitted = any. Ignored when `elementIds` is set.'),
|
|
38
|
+
labelMatch: z.string().optional().describe('List-mode case-insensitive substring on direct-child `GLabel.text`.'),
|
|
39
|
+
limit: z.number().int().min(1).max(1000).optional().describe('List-mode cap, 1–1000. Defaults to 100.')
|
|
40
|
+
});
|
|
41
|
+
exports.QueryElementMatchSchema = z.object({
|
|
42
|
+
id: z.string(),
|
|
43
|
+
type: z.string(),
|
|
44
|
+
label: z.string().optional()
|
|
45
|
+
});
|
|
46
|
+
/** `.loose()` lets adopter element types attach extra fields (position, size, …) without widening the schema each time. */
|
|
47
|
+
exports.DiagramElementSchema = z
|
|
48
|
+
.object({
|
|
49
|
+
id: z.string(),
|
|
50
|
+
type: z.string(),
|
|
51
|
+
parentId: z.string().optional()
|
|
52
|
+
})
|
|
53
|
+
.loose();
|
|
54
|
+
exports.QueryElementsOutputSchema = z.object({
|
|
55
|
+
mode: z.enum(['list', 'inspect']).describe('Echoes which mode the call ran in.'),
|
|
56
|
+
matches: z.array(exports.QueryElementMatchSchema).optional().describe('Present in `list` mode: slim id/type/label entries.'),
|
|
57
|
+
elements: z.array(exports.DiagramElementSchema).optional().describe('Present in `inspect` mode: rich per-element detail.'),
|
|
58
|
+
truncated: z.boolean().optional().describe('Present in `list` mode: true when more elements matched than `limit`.'),
|
|
59
|
+
expandedFromContainers: z
|
|
60
|
+
.array(z.string())
|
|
61
|
+
.optional()
|
|
62
|
+
.describe('Present in `inspect` mode when one or more requested ids referred to containers — lists those container ids. ' +
|
|
63
|
+
'The `elements` array then includes the container plus its descendants.')
|
|
64
|
+
});
|
|
65
|
+
/** Two-mode element query — list/filter or inspect-by-id, discriminated by `elementIds` presence. */
|
|
66
|
+
let QueryElementsMcpToolHandler = QueryElementsMcpToolHandler_1 = class QueryElementsMcpToolHandler extends server_1.AbstractMcpDiagramToolHandler {
|
|
67
|
+
constructor() {
|
|
68
|
+
super(...arguments);
|
|
69
|
+
this.name = QueryElementsMcpToolHandler_1.NAME;
|
|
70
|
+
this.title = 'Query Diagram Elements';
|
|
71
|
+
this.description = 'Find or inspect elements in the session diagram. Pass `elementIds` to inspect specific ' +
|
|
72
|
+
'elements in detail (rich per-element data). Pass `types` and/or `labelMatch` to search by ' +
|
|
73
|
+
'filter (slim id/type/label summaries with truncation). Useful as a precursor to the ' +
|
|
74
|
+
'create/modify/delete tools, and a cheaper alternative to `diagram-model` on large diagrams.';
|
|
75
|
+
this.inputSchema = exports.QueryElementsInputSchema;
|
|
76
|
+
this.outputSchema = exports.QueryElementsOutputSchema;
|
|
77
|
+
/** List-mode result cap when the call doesn't override `limit`. Override via subclass. */
|
|
78
|
+
this.defaultLimit = 100;
|
|
79
|
+
}
|
|
80
|
+
async createResult(params) {
|
|
81
|
+
return params.elementIds && params.elementIds.length > 0 ? this.inspect(params.elementIds) : this.list(params);
|
|
82
|
+
}
|
|
83
|
+
inspect(inputIds) {
|
|
84
|
+
const { realIds, missingIds } = this.resolveIds(inputIds);
|
|
85
|
+
if (missingIds.length > 0) {
|
|
86
|
+
throw new server_1.McpElementsNotFoundError(missingIds);
|
|
87
|
+
}
|
|
88
|
+
const elements = realIds.map(id => this.modelState.index.get(id));
|
|
89
|
+
// Per-input serialize lets us identify which inputs caused expansion: the serializer
|
|
90
|
+
// walks descendants for containers, so a 1-input call may produce N output entries.
|
|
91
|
+
// The structural-children check the previous version used overstated this — a leaf node
|
|
92
|
+
// with a label child counts as having `children.length > 0` but doesn't produce extra
|
|
93
|
+
// entries because the serializer's adjuster drops labels.
|
|
94
|
+
const expandedFromContainers = elements
|
|
95
|
+
.filter(element => {
|
|
96
|
+
// `serializeStructuredArray` returns an open `Record<string, unknown>` per the
|
|
97
|
+
// `McpStructuredContent` contract; narrow before reading `.elements.length`.
|
|
98
|
+
const entries = this.serializer.serializeStructuredArray([element]).elements;
|
|
99
|
+
return Array.isArray(entries) && entries.length > 1;
|
|
100
|
+
})
|
|
101
|
+
.map(element => this.aliasService.alias(element.id));
|
|
102
|
+
// Serializer's `serializeStructuredArray` already returns `{ elements: [...] }`; spread to keep one source of truth.
|
|
103
|
+
return this.success(this.summarizeInspect(elements, expandedFromContainers), {
|
|
104
|
+
mode: 'inspect',
|
|
105
|
+
...this.serializer.serializeStructuredArray(elements),
|
|
106
|
+
...(expandedFromContainers.length > 0 ? { expandedFromContainers } : {})
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/** Builds the LLM-facing summary for inspect mode. Override to customize per-adopter wording. */
|
|
110
|
+
summarizeInspect(elements, expandedFromContainers) {
|
|
111
|
+
const lines = elements.map(element => `- ${this.aliasService.alias(element.id)} (${element.type})`);
|
|
112
|
+
const expansionNote = expandedFromContainers.length > 0 ? `\nContainer(s) ${expandedFromContainers.join(', ')} expanded to include descendants.` : '';
|
|
113
|
+
return `Inspected ${elements.length} element(s); full data in structuredContent.\n${lines.join('\n')}${expansionNote}`;
|
|
114
|
+
}
|
|
115
|
+
list({ types, labelMatch, limit }) {
|
|
116
|
+
var _a;
|
|
117
|
+
const cap = limit !== null && limit !== void 0 ? limit : this.defaultLimit;
|
|
118
|
+
const typeFilter = types && types.length > 0 ? new Set(types) : undefined;
|
|
119
|
+
const needle = labelMatch === null || labelMatch === void 0 ? void 0 : labelMatch.toLowerCase();
|
|
120
|
+
const matches = [];
|
|
121
|
+
let truncated = false;
|
|
122
|
+
for (const id of this.modelState.index.allIds()) {
|
|
123
|
+
const element = this.modelState.index.get(id);
|
|
124
|
+
if (!element) {
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (typeFilter && !typeFilter.has(element.type)) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const label = (_a = this.labelProvider.getLabel(element)) === null || _a === void 0 ? void 0 : _a.text;
|
|
131
|
+
if (needle !== undefined && !(label === null || label === void 0 ? void 0 : label.toLowerCase().includes(needle))) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (matches.length >= cap) {
|
|
135
|
+
truncated = true;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
matches.push({ id: this.aliasService.alias(element.id), type: element.type, ...(label !== undefined ? { label } : {}) });
|
|
139
|
+
}
|
|
140
|
+
const summary = matches.length === 0 ? 'No elements matched the query.' : this.renderMarkdown(matches, truncated);
|
|
141
|
+
return this.success(summary, { mode: 'list', matches, truncated });
|
|
142
|
+
}
|
|
143
|
+
renderMarkdown(matches, truncated) {
|
|
144
|
+
const rows = matches.map(match => `- ${match.id} (${match.type})${match.label ? ` — "${match.label}"` : ''}`).join('\n');
|
|
145
|
+
const tail = truncated ? '\n\n_(truncated — increase `limit` or refine filters to see more)_' : '';
|
|
146
|
+
return `Matched ${matches.length} element${matches.length === 1 ? '' : 's'}:\n${rows}${tail}`;
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
exports.QueryElementsMcpToolHandler = QueryElementsMcpToolHandler;
|
|
150
|
+
QueryElementsMcpToolHandler.NAME = 'query-elements';
|
|
151
|
+
__decorate([
|
|
152
|
+
(0, inversify_1.inject)(mcp_model_serializer_1.McpModelSerializer),
|
|
153
|
+
__metadata("design:type", Object)
|
|
154
|
+
], QueryElementsMcpToolHandler.prototype, "serializer", void 0);
|
|
155
|
+
exports.QueryElementsMcpToolHandler = QueryElementsMcpToolHandler = QueryElementsMcpToolHandler_1 = __decorate([
|
|
156
|
+
(0, inversify_1.injectable)()
|
|
157
|
+
], QueryElementsMcpToolHandler);
|
|
158
|
+
//# sourceMappingURL=query-elements-mcp-tool-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-elements-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/query-elements-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { CommandStack } from '@eclipse-glsp/server';
|
|
17
|
+
import * as z from 'zod/v4';
|
|
18
|
+
import { McpToolResult, OperationMcpDiagramToolHandler } from '../../server';
|
|
19
|
+
export declare const RedoInputSchema: z.ZodObject<{
|
|
20
|
+
sessionId: z.ZodString;
|
|
21
|
+
commandsToRedo: z.ZodDefault<z.ZodNumber>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type RedoInput = z.infer<typeof RedoInputSchema>;
|
|
24
|
+
export declare const RedoOutputSchema: z.ZodObject<{
|
|
25
|
+
commandsRedone: z.ZodNumber;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
/**
|
|
28
|
+
* Redo a given number of the most recent undone actions on the command stack.
|
|
29
|
+
*/
|
|
30
|
+
export declare class RedoMcpToolHandler extends OperationMcpDiagramToolHandler<RedoInput> {
|
|
31
|
+
static readonly NAME = "redo";
|
|
32
|
+
readonly name = "redo";
|
|
33
|
+
readonly title = "Redo Diagram Commands";
|
|
34
|
+
readonly description: string;
|
|
35
|
+
readonly inputSchema: z.ZodObject<{
|
|
36
|
+
sessionId: z.ZodString;
|
|
37
|
+
commandsToRedo: z.ZodDefault<z.ZodNumber>;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
readonly outputSchema: z.ZodObject<{
|
|
40
|
+
commandsRedone: z.ZodNumber;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
protected commandStack: CommandStack;
|
|
43
|
+
protected createResult({ commandsToRedo }: RedoInput): Promise<McpToolResult>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=redo-mcp-tool-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redo-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/redo-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAA6C,aAAa,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAExH,eAAO,MAAM,eAAe;;;iBAE1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,gBAAgB;;iBAE3B,CAAC;AAEH;;GAEG;AACH,qBACa,kBAAmB,SAAQ,8BAA8B,CAAC,SAAS,CAAC;IAC7E,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,QAAQ,CAAC,IAAI,UAA2B;IACxC,SAAkB,KAAK,2BAA2B;IAClD,QAAQ,CAAC,WAAW,SAI8C;IAClE,QAAQ,CAAC,WAAW;;;sBAAmB;IACvC,SAAkB,YAAY;;sBAAoB;IAE5B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;cAE3C,YAAY,CAAC,EAAE,cAAc,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;CAatF"}
|