@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.
Files changed (303) hide show
  1. package/LICENSE +642 -0
  2. package/README.md +57 -0
  3. package/lib/index.d.ts +23 -0
  4. package/lib/index.d.ts.map +1 -0
  5. package/lib/index.js +41 -0
  6. package/lib/index.js.map +1 -0
  7. package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts +43 -0
  8. package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts.map +1 -0
  9. package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.js +96 -0
  10. package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.js.map +1 -0
  11. package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts +43 -0
  12. package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts.map +1 -0
  13. package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.js +95 -0
  14. package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.js.map +1 -0
  15. package/lib/prompts/index.d.ts +18 -0
  16. package/lib/prompts/index.d.ts.map +1 -0
  17. package/lib/prompts/index.js +34 -0
  18. package/lib/prompts/index.js.map +1 -0
  19. package/lib/resources/handlers/diagram-png-mcp-resource-handler.d.ts +81 -0
  20. package/lib/resources/handlers/diagram-png-mcp-resource-handler.d.ts.map +1 -0
  21. package/lib/resources/handlers/diagram-png-mcp-resource-handler.js +174 -0
  22. package/lib/resources/handlers/diagram-png-mcp-resource-handler.js.map +1 -0
  23. package/lib/resources/handlers/diagram-svg-mcp-resource-handler.d.ts +52 -0
  24. package/lib/resources/handlers/diagram-svg-mcp-resource-handler.d.ts.map +1 -0
  25. package/lib/resources/handlers/diagram-svg-mcp-resource-handler.js +96 -0
  26. package/lib/resources/handlers/diagram-svg-mcp-resource-handler.js.map +1 -0
  27. package/lib/resources/index.d.ts +20 -0
  28. package/lib/resources/index.d.ts.map +1 -0
  29. package/lib/resources/index.js +36 -0
  30. package/lib/resources/index.js.map +1 -0
  31. package/lib/resources/services/element-types-provider.d.ts +65 -0
  32. package/lib/resources/services/element-types-provider.d.ts.map +1 -0
  33. package/lib/resources/services/element-types-provider.js +81 -0
  34. package/lib/resources/services/element-types-provider.js.map +1 -0
  35. package/lib/resources/services/mcp-model-serializer.d.ts +78 -0
  36. package/lib/resources/services/mcp-model-serializer.d.ts.map +1 -0
  37. package/lib/resources/services/mcp-model-serializer.js +188 -0
  38. package/lib/resources/services/mcp-model-serializer.js.map +1 -0
  39. package/lib/server/glsp-mcp-server.d.ts +82 -0
  40. package/lib/server/glsp-mcp-server.d.ts.map +1 -0
  41. package/lib/server/glsp-mcp-server.js +140 -0
  42. package/lib/server/glsp-mcp-server.js.map +1 -0
  43. package/lib/server/index.d.ts +37 -0
  44. package/lib/server/index.d.ts.map +1 -0
  45. package/lib/server/index.js +57 -0
  46. package/lib/server/index.js.map +1 -0
  47. package/lib/server/lru-event-store.d.ts +53 -0
  48. package/lib/server/lru-event-store.d.ts.map +1 -0
  49. package/lib/server/lru-event-store.js +100 -0
  50. package/lib/server/lru-event-store.js.map +1 -0
  51. package/lib/server/mcp-diagram-handler-dispatcher.d.ts +144 -0
  52. package/lib/server/mcp-diagram-handler-dispatcher.d.ts.map +1 -0
  53. package/lib/server/mcp-diagram-handler-dispatcher.js +382 -0
  54. package/lib/server/mcp-diagram-handler-dispatcher.js.map +1 -0
  55. package/lib/server/mcp-diagram-module.d.ts +123 -0
  56. package/lib/server/mcp-diagram-module.d.ts.map +1 -0
  57. package/lib/server/mcp-diagram-module.js +186 -0
  58. package/lib/server/mcp-diagram-module.js.map +1 -0
  59. package/lib/server/mcp-diagram-prompt-handler-registry.d.ts +33 -0
  60. package/lib/server/mcp-diagram-prompt-handler-registry.d.ts.map +1 -0
  61. package/lib/server/mcp-diagram-prompt-handler-registry.js +76 -0
  62. package/lib/server/mcp-diagram-prompt-handler-registry.js.map +1 -0
  63. package/lib/server/mcp-diagram-resource-handler-registry.d.ts +35 -0
  64. package/lib/server/mcp-diagram-resource-handler-registry.d.ts.map +1 -0
  65. package/lib/server/mcp-diagram-resource-handler-registry.js +94 -0
  66. package/lib/server/mcp-diagram-resource-handler-registry.js.map +1 -0
  67. package/lib/server/mcp-diagram-tool-handler-registry.d.ts +57 -0
  68. package/lib/server/mcp-diagram-tool-handler-registry.d.ts.map +1 -0
  69. package/lib/server/mcp-diagram-tool-handler-registry.js +111 -0
  70. package/lib/server/mcp-diagram-tool-handler-registry.js.map +1 -0
  71. package/lib/server/mcp-handler-shared.d.ts +142 -0
  72. package/lib/server/mcp-handler-shared.d.ts.map +1 -0
  73. package/lib/server/mcp-handler-shared.js +199 -0
  74. package/lib/server/mcp-handler-shared.js.map +1 -0
  75. package/lib/server/mcp-http-transport.d.ts +93 -0
  76. package/lib/server/mcp-http-transport.d.ts.map +1 -0
  77. package/lib/server/mcp-http-transport.js +350 -0
  78. package/lib/server/mcp-http-transport.js.map +1 -0
  79. package/lib/server/mcp-id-alias-service.d.ts +70 -0
  80. package/lib/server/mcp-id-alias-service.d.ts.map +1 -0
  81. package/lib/server/mcp-id-alias-service.js +85 -0
  82. package/lib/server/mcp-id-alias-service.js.map +1 -0
  83. package/lib/server/mcp-input-schemas.d.ts +73 -0
  84. package/lib/server/mcp-input-schemas.d.ts.map +1 -0
  85. package/lib/server/mcp-input-schemas.js +67 -0
  86. package/lib/server/mcp-input-schemas.js.map +1 -0
  87. package/lib/server/mcp-label-provider.d.ts +45 -0
  88. package/lib/server/mcp-label-provider.d.ts.map +1 -0
  89. package/lib/server/mcp-label-provider.js +42 -0
  90. package/lib/server/mcp-label-provider.js.map +1 -0
  91. package/lib/server/mcp-log-level-registry.d.ts +54 -0
  92. package/lib/server/mcp-log-level-registry.d.ts.map +1 -0
  93. package/lib/server/mcp-log-level-registry.js +80 -0
  94. package/lib/server/mcp-log-level-registry.js.map +1 -0
  95. package/lib/server/mcp-logger.d.ts +59 -0
  96. package/lib/server/mcp-logger.d.ts.map +1 -0
  97. package/lib/server/mcp-logger.js +104 -0
  98. package/lib/server/mcp-logger.js.map +1 -0
  99. package/lib/server/mcp-mime-types.d.ts +28 -0
  100. package/lib/server/mcp-mime-types.d.ts.map +1 -0
  101. package/lib/server/mcp-mime-types.js +18 -0
  102. package/lib/server/mcp-mime-types.js.map +1 -0
  103. package/lib/server/mcp-options.d.ts +39 -0
  104. package/lib/server/mcp-options.d.ts.map +1 -0
  105. package/lib/server/mcp-options.js +53 -0
  106. package/lib/server/mcp-options.js.map +1 -0
  107. package/lib/server/mcp-progress-reporter.d.ts +48 -0
  108. package/lib/server/mcp-progress-reporter.d.ts.map +1 -0
  109. package/lib/server/mcp-progress-reporter.js +66 -0
  110. package/lib/server/mcp-progress-reporter.js.map +1 -0
  111. package/lib/server/mcp-prompt-handler.d.ts +120 -0
  112. package/lib/server/mcp-prompt-handler.d.ts.map +1 -0
  113. package/lib/server/mcp-prompt-handler.js +131 -0
  114. package/lib/server/mcp-prompt-handler.js.map +1 -0
  115. package/lib/server/mcp-request-context.d.ts +37 -0
  116. package/lib/server/mcp-request-context.d.ts.map +1 -0
  117. package/lib/server/mcp-request-context.js +37 -0
  118. package/lib/server/mcp-request-context.js.map +1 -0
  119. package/lib/server/mcp-resource-handler.d.ts +212 -0
  120. package/lib/server/mcp-resource-handler.d.ts.map +1 -0
  121. package/lib/server/mcp-resource-handler.js +298 -0
  122. package/lib/server/mcp-resource-handler.js.map +1 -0
  123. package/lib/server/mcp-server-launcher.d.ts +143 -0
  124. package/lib/server/mcp-server-launcher.d.ts.map +1 -0
  125. package/lib/server/mcp-server-launcher.js +355 -0
  126. package/lib/server/mcp-server-launcher.js.map +1 -0
  127. package/lib/server/mcp-server-module.d.ts +143 -0
  128. package/lib/server/mcp-server-module.d.ts.map +1 -0
  129. package/lib/server/mcp-server-module.js +249 -0
  130. package/lib/server/mcp-server-module.js.map +1 -0
  131. package/lib/server/mcp-session.d.ts +44 -0
  132. package/lib/server/mcp-session.d.ts.map +1 -0
  133. package/lib/server/mcp-session.js +18 -0
  134. package/lib/server/mcp-session.js.map +1 -0
  135. package/lib/server/mcp-tool-handler.d.ts +259 -0
  136. package/lib/server/mcp-tool-handler.d.ts.map +1 -0
  137. package/lib/server/mcp-tool-handler.js +355 -0
  138. package/lib/server/mcp-tool-handler.js.map +1 -0
  139. package/lib/tools/handlers/count-elements-mcp-tool-handler.d.ts +46 -0
  140. package/lib/tools/handlers/count-elements-mcp-tool-handler.d.ts.map +1 -0
  141. package/lib/tools/handlers/count-elements-mcp-tool-handler.js +76 -0
  142. package/lib/tools/handlers/count-elements-mcp-tool-handler.js.map +1 -0
  143. package/lib/tools/handlers/create-edges-mcp-tool-handler.d.ts +112 -0
  144. package/lib/tools/handlers/create-edges-mcp-tool-handler.d.ts.map +1 -0
  145. package/lib/tools/handlers/create-edges-mcp-tool-handler.js +190 -0
  146. package/lib/tools/handlers/create-edges-mcp-tool-handler.js.map +1 -0
  147. package/lib/tools/handlers/create-nodes-mcp-tool-handler.d.ts +81 -0
  148. package/lib/tools/handlers/create-nodes-mcp-tool-handler.d.ts.map +1 -0
  149. package/lib/tools/handlers/create-nodes-mcp-tool-handler.js +123 -0
  150. package/lib/tools/handlers/create-nodes-mcp-tool-handler.js.map +1 -0
  151. package/lib/tools/handlers/delete-elements-mcp-tool-handler.d.ts +52 -0
  152. package/lib/tools/handlers/delete-elements-mcp-tool-handler.d.ts.map +1 -0
  153. package/lib/tools/handlers/delete-elements-mcp-tool-handler.js +73 -0
  154. package/lib/tools/handlers/delete-elements-mcp-tool-handler.js.map +1 -0
  155. package/lib/tools/handlers/diagram-model-mcp-tool-handler.d.ts +59 -0
  156. package/lib/tools/handlers/diagram-model-mcp-tool-handler.d.ts.map +1 -0
  157. package/lib/tools/handlers/diagram-model-mcp-tool-handler.js +78 -0
  158. package/lib/tools/handlers/diagram-model-mcp-tool-handler.js.map +1 -0
  159. package/lib/tools/handlers/element-types-mcp-tool-handler.d.ts +97 -0
  160. package/lib/tools/handlers/element-types-mcp-tool-handler.d.ts.map +1 -0
  161. package/lib/tools/handlers/element-types-mcp-tool-handler.js +155 -0
  162. package/lib/tools/handlers/element-types-mcp-tool-handler.js.map +1 -0
  163. package/lib/tools/handlers/get-selection-mcp-tool-handler.d.ts +43 -0
  164. package/lib/tools/handlers/get-selection-mcp-tool-handler.d.ts.map +1 -0
  165. package/lib/tools/handlers/get-selection-mcp-tool-handler.js +68 -0
  166. package/lib/tools/handlers/get-selection-mcp-tool-handler.js.map +1 -0
  167. package/lib/tools/handlers/layout-mcp-tool-handler.d.ts +43 -0
  168. package/lib/tools/handlers/layout-mcp-tool-handler.d.ts.map +1 -0
  169. package/lib/tools/handlers/layout-mcp-tool-handler.js +71 -0
  170. package/lib/tools/handlers/layout-mcp-tool-handler.js.map +1 -0
  171. package/lib/tools/handlers/modify-edges-mcp-tool-handler.d.ts +78 -0
  172. package/lib/tools/handlers/modify-edges-mcp-tool-handler.d.ts.map +1 -0
  173. package/lib/tools/handlers/modify-edges-mcp-tool-handler.js +136 -0
  174. package/lib/tools/handlers/modify-edges-mcp-tool-handler.js.map +1 -0
  175. package/lib/tools/handlers/modify-nodes-mcp-tool-handler.d.ts +92 -0
  176. package/lib/tools/handlers/modify-nodes-mcp-tool-handler.d.ts.map +1 -0
  177. package/lib/tools/handlers/modify-nodes-mcp-tool-handler.js +125 -0
  178. package/lib/tools/handlers/modify-nodes-mcp-tool-handler.js.map +1 -0
  179. package/lib/tools/handlers/query-elements-mcp-tool-handler.d.ts +102 -0
  180. package/lib/tools/handlers/query-elements-mcp-tool-handler.d.ts.map +1 -0
  181. package/lib/tools/handlers/query-elements-mcp-tool-handler.js +158 -0
  182. package/lib/tools/handlers/query-elements-mcp-tool-handler.js.map +1 -0
  183. package/lib/tools/handlers/redo-mcp-tool-handler.d.ts +45 -0
  184. package/lib/tools/handlers/redo-mcp-tool-handler.d.ts.map +1 -0
  185. package/lib/tools/handlers/redo-mcp-tool-handler.js +73 -0
  186. package/lib/tools/handlers/redo-mcp-tool-handler.js.map +1 -0
  187. package/lib/tools/handlers/save-model-mcp-tool-handler.d.ts +55 -0
  188. package/lib/tools/handlers/save-model-mcp-tool-handler.d.ts.map +1 -0
  189. package/lib/tools/handlers/save-model-mcp-tool-handler.js +91 -0
  190. package/lib/tools/handlers/save-model-mcp-tool-handler.js.map +1 -0
  191. package/lib/tools/handlers/session-info-mcp-tool-handler.d.ts +65 -0
  192. package/lib/tools/handlers/session-info-mcp-tool-handler.d.ts.map +1 -0
  193. package/lib/tools/handlers/session-info-mcp-tool-handler.js +108 -0
  194. package/lib/tools/handlers/session-info-mcp-tool-handler.js.map +1 -0
  195. package/lib/tools/handlers/set-selection-mcp-tool-handler.d.ts +60 -0
  196. package/lib/tools/handlers/set-selection-mcp-tool-handler.d.ts.map +1 -0
  197. package/lib/tools/handlers/set-selection-mcp-tool-handler.js +103 -0
  198. package/lib/tools/handlers/set-selection-mcp-tool-handler.js.map +1 -0
  199. package/lib/tools/handlers/set-view-mcp-tool-handler.d.ts +110 -0
  200. package/lib/tools/handlers/set-view-mcp-tool-handler.d.ts.map +1 -0
  201. package/lib/tools/handlers/set-view-mcp-tool-handler.js +142 -0
  202. package/lib/tools/handlers/set-view-mcp-tool-handler.js.map +1 -0
  203. package/lib/tools/handlers/undo-mcp-tool-handler.d.ts +45 -0
  204. package/lib/tools/handlers/undo-mcp-tool-handler.d.ts.map +1 -0
  205. package/lib/tools/handlers/undo-mcp-tool-handler.js +74 -0
  206. package/lib/tools/handlers/undo-mcp-tool-handler.js.map +1 -0
  207. package/lib/tools/handlers/validate-diagram-mcp-tool-handler.d.ts +66 -0
  208. package/lib/tools/handlers/validate-diagram-mcp-tool-handler.d.ts.map +1 -0
  209. package/lib/tools/handlers/validate-diagram-mcp-tool-handler.js +0 -0
  210. package/lib/tools/handlers/validate-diagram-mcp-tool-handler.js.map +1 -0
  211. package/lib/tools/index.d.ts +34 -0
  212. package/lib/tools/index.d.ts.map +1 -0
  213. package/lib/tools/index.js +50 -0
  214. package/lib/tools/index.js.map +1 -0
  215. package/lib/util/index.d.ts +18 -0
  216. package/lib/util/index.d.ts.map +1 -0
  217. package/lib/util/index.js +34 -0
  218. package/lib/util/index.js.map +1 -0
  219. package/lib/util/markdown-util.d.ts +20 -0
  220. package/lib/util/markdown-util.d.ts.map +1 -0
  221. package/lib/util/markdown-util.js +45 -0
  222. package/lib/util/markdown-util.js.map +1 -0
  223. package/lib/util/mcp-util.d.ts +22 -0
  224. package/lib/util/mcp-util.d.ts.map +1 -0
  225. package/lib/util/mcp-util.js +29 -0
  226. package/lib/util/mcp-util.js.map +1 -0
  227. package/package.json +63 -0
  228. package/src/index.ts +24 -0
  229. package/src/prompts/handlers/describe-diagram-mcp-prompt-handler.ts +89 -0
  230. package/src/prompts/handlers/suggest-improvements-mcp-prompt-handler.ts +86 -0
  231. package/src/prompts/index.ts +18 -0
  232. package/src/resources/handlers/diagram-png-mcp-resource-handler.ts +181 -0
  233. package/src/resources/handlers/diagram-svg-mcp-resource-handler.ts +89 -0
  234. package/src/resources/index.ts +20 -0
  235. package/src/resources/services/element-types-provider.ts +105 -0
  236. package/src/resources/services/mcp-model-serializer.ts +211 -0
  237. package/src/server/glsp-mcp-server.spec.ts +73 -0
  238. package/src/server/glsp-mcp-server.ts +196 -0
  239. package/src/server/index.ts +42 -0
  240. package/src/server/lru-event-store.spec.ts +121 -0
  241. package/src/server/lru-event-store.ts +112 -0
  242. package/src/server/mcp-diagram-handler-dispatcher.spec.ts +231 -0
  243. package/src/server/mcp-diagram-handler-dispatcher.ts +459 -0
  244. package/src/server/mcp-diagram-module.ts +248 -0
  245. package/src/server/mcp-diagram-prompt-handler-registry.ts +59 -0
  246. package/src/server/mcp-diagram-resource-handler-registry.ts +73 -0
  247. package/src/server/mcp-diagram-tool-handler-registry.ts +97 -0
  248. package/src/server/mcp-handler-shared.spec.ts +53 -0
  249. package/src/server/mcp-handler-shared.ts +247 -0
  250. package/src/server/mcp-http-transport-e2e.spec.ts +151 -0
  251. package/src/server/mcp-http-transport.spec.ts +385 -0
  252. package/src/server/mcp-http-transport.ts +368 -0
  253. package/src/server/mcp-id-alias-service.spec.ts +106 -0
  254. package/src/server/mcp-id-alias-service.ts +104 -0
  255. package/src/server/mcp-input-schemas.ts +82 -0
  256. package/src/server/mcp-label-provider.ts +52 -0
  257. package/src/server/mcp-log-level-registry.spec.ts +75 -0
  258. package/src/server/mcp-log-level-registry.ts +90 -0
  259. package/src/server/mcp-logger.spec.ts +227 -0
  260. package/src/server/mcp-logger.ts +91 -0
  261. package/src/server/mcp-mime-types.ts +31 -0
  262. package/src/server/mcp-options.ts +43 -0
  263. package/src/server/mcp-progress-reporter.spec.ts +93 -0
  264. package/src/server/mcp-progress-reporter.ts +67 -0
  265. package/src/server/mcp-prompt-handler.ts +157 -0
  266. package/src/server/mcp-request-context.ts +39 -0
  267. package/src/server/mcp-resource-handler.ts +389 -0
  268. package/src/server/mcp-server-launcher.spec.ts +173 -0
  269. package/src/server/mcp-server-launcher.ts +369 -0
  270. package/src/server/mcp-server-module.ts +287 -0
  271. package/src/server/mcp-session.ts +45 -0
  272. package/src/server/mcp-tool-handler.spec.ts +182 -0
  273. package/src/server/mcp-tool-handler.ts +431 -0
  274. package/src/server/raw-http.spec.ts +59 -0
  275. package/src/tools/handlers/count-elements-mcp-tool-handler.spec.ts +99 -0
  276. package/src/tools/handlers/count-elements-mcp-tool-handler.ts +66 -0
  277. package/src/tools/handlers/create-edges-mcp-tool-handler.spec.ts +196 -0
  278. package/src/tools/handlers/create-edges-mcp-tool-handler.ts +205 -0
  279. package/src/tools/handlers/create-nodes-mcp-tool-handler.spec.ts +197 -0
  280. package/src/tools/handlers/create-nodes-mcp-tool-handler.ts +131 -0
  281. package/src/tools/handlers/delete-elements-mcp-tool-handler.ts +73 -0
  282. package/src/tools/handlers/diagram-model-mcp-tool-handler.ts +66 -0
  283. package/src/tools/handlers/element-types-mcp-tool-handler.ts +151 -0
  284. package/src/tools/handlers/get-selection-mcp-tool-handler.ts +54 -0
  285. package/src/tools/handlers/layout-mcp-tool-handler.ts +56 -0
  286. package/src/tools/handlers/modify-edges-mcp-tool-handler.ts +148 -0
  287. package/src/tools/handlers/modify-nodes-mcp-tool-handler.ts +140 -0
  288. package/src/tools/handlers/query-elements-mcp-tool-handler.spec.ts +210 -0
  289. package/src/tools/handlers/query-elements-mcp-tool-handler.ts +161 -0
  290. package/src/tools/handlers/redo-mcp-tool-handler.ts +62 -0
  291. package/src/tools/handlers/save-model-mcp-tool-handler.ts +71 -0
  292. package/src/tools/handlers/session-info-mcp-tool-handler.spec.ts +152 -0
  293. package/src/tools/handlers/session-info-mcp-tool-handler.ts +97 -0
  294. package/src/tools/handlers/set-selection-mcp-tool-handler.spec.ts +118 -0
  295. package/src/tools/handlers/set-selection-mcp-tool-handler.ts +90 -0
  296. package/src/tools/handlers/set-view-mcp-tool-handler.ts +162 -0
  297. package/src/tools/handlers/undo-mcp-tool-handler.ts +61 -0
  298. package/src/tools/handlers/validate-diagram-mcp-tool-handler.ts +0 -0
  299. package/src/tools/index.ts +34 -0
  300. package/src/tools/tool-annotations.spec.ts +141 -0
  301. package/src/util/index.ts +18 -0
  302. package/src/util/markdown-util.ts +44 -0
  303. package/src/util/mcp-util.ts +25 -0
@@ -0,0 +1,46 @@
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 { AbstractMcpDiagramToolHandler, McpToolResult } from '../../server';
18
+ export declare const CountElementsInputSchema: z.ZodObject<{
19
+ sessionId: z.ZodString;
20
+ }, z.core.$strip>;
21
+ export type CountElementsInput = z.infer<typeof CountElementsInputSchema>;
22
+ export declare const CountElementsOutputSchema: z.ZodObject<{
23
+ total: z.ZodNumber;
24
+ countsByType: z.ZodRecord<z.ZodString, z.ZodNumber>;
25
+ }, z.core.$strip>;
26
+ /**
27
+ * Counts elements in the diagram, grouped by type. Cheap alternative to dumping the full
28
+ * `diagram-model` resource when the agent only needs to know "how big is this" or "do any
29
+ * elements of type X exist".
30
+ */
31
+ export declare class CountElementsMcpToolHandler extends AbstractMcpDiagramToolHandler<CountElementsInput> {
32
+ static readonly NAME = "count-elements";
33
+ readonly name = "count-elements";
34
+ readonly title = "Count Diagram Elements";
35
+ readonly description: string;
36
+ readonly inputSchema: z.ZodObject<{
37
+ sessionId: z.ZodString;
38
+ }, z.core.$strip>;
39
+ readonly outputSchema: z.ZodObject<{
40
+ total: z.ZodNumber;
41
+ countsByType: z.ZodRecord<z.ZodString, z.ZodNumber>;
42
+ }, z.core.$strip>;
43
+ protected createResult(_params: CountElementsInput): Promise<McpToolResult>;
44
+ protected renderMarkdown(total: number, countsByType: Record<string, number>): string;
45
+ }
46
+ //# sourceMappingURL=count-elements-mcp-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count-elements-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/count-elements-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAGlF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAA+B,6BAA6B,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEzG,eAAO,MAAM,wBAAwB;;iBAA8B,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAC;AAEH;;;;GAIG;AACH,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,SAIiC;IACrD,QAAQ,CAAC,WAAW;;sBAA4B;IAChD,SAAkB,YAAY;;;sBAA6B;cAE3C,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAcjF,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAKxF"}
@@ -0,0 +1,76 @@
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 CountElementsMcpToolHandler_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.CountElementsMcpToolHandler = exports.CountElementsOutputSchema = exports.CountElementsInputSchema = void 0;
26
+ const inversify_1 = require("inversify");
27
+ const z = require("zod/v4");
28
+ const server_1 = require("../../server");
29
+ exports.CountElementsInputSchema = server_1.McpDiagramScopedInputSchema;
30
+ exports.CountElementsOutputSchema = z.object({
31
+ total: z.number().int().describe('Total element count across the diagram (root included).'),
32
+ countsByType: z.record(z.string(), z.number().int()).describe('Element count grouped by `GModelElement.type`.')
33
+ });
34
+ /**
35
+ * Counts elements in the diagram, grouped by type. Cheap alternative to dumping the full
36
+ * `diagram-model` resource when the agent only needs to know "how big is this" or "do any
37
+ * elements of type X exist".
38
+ */
39
+ let CountElementsMcpToolHandler = CountElementsMcpToolHandler_1 = class CountElementsMcpToolHandler extends server_1.AbstractMcpDiagramToolHandler {
40
+ constructor() {
41
+ super(...arguments);
42
+ this.name = CountElementsMcpToolHandler_1.NAME;
43
+ this.title = 'Count Diagram Elements';
44
+ this.description = 'Count the elements in the session diagram, grouped by element type. ' +
45
+ 'Cheap sizing primitive — useful before deciding whether to load the full model with `diagram-model` ' +
46
+ '(expensive on large diagrams) or whether a filtered `query-elements` call would suffice. ' +
47
+ 'Returns total count plus a per-type breakdown.';
48
+ this.inputSchema = exports.CountElementsInputSchema;
49
+ this.outputSchema = exports.CountElementsOutputSchema;
50
+ }
51
+ async createResult(_params) {
52
+ var _a;
53
+ const countsByType = {};
54
+ let total = 0;
55
+ for (const id of this.modelState.index.allIds()) {
56
+ const element = this.modelState.index.get(id);
57
+ if (!element) {
58
+ continue;
59
+ }
60
+ countsByType[element.type] = ((_a = countsByType[element.type]) !== null && _a !== void 0 ? _a : 0) + 1;
61
+ total += 1;
62
+ }
63
+ return this.success(this.renderMarkdown(total, countsByType), { total, countsByType });
64
+ }
65
+ renderMarkdown(total, countsByType) {
66
+ const sorted = Object.entries(countsByType).sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
67
+ const rows = sorted.map(([type, count]) => `- ${type}: ${count}`).join('\n');
68
+ return `Total elements: ${total}\n\nBy type:\n${rows}`;
69
+ }
70
+ };
71
+ exports.CountElementsMcpToolHandler = CountElementsMcpToolHandler;
72
+ CountElementsMcpToolHandler.NAME = 'count-elements';
73
+ exports.CountElementsMcpToolHandler = CountElementsMcpToolHandler = CountElementsMcpToolHandler_1 = __decorate([
74
+ (0, inversify_1.injectable)()
75
+ ], CountElementsMcpToolHandler);
76
+ //# sourceMappingURL=count-elements-mcp-tool-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count-elements-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/count-elements-mcp-tool-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;AAElF,yCAAuC;AACvC,4BAA4B;AAC5B,yCAAyG;AAE5F,QAAA,wBAAwB,GAAG,oCAA2B,CAAC;AAGvD,QAAA,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IAC3F,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CAClH,CAAC,CAAC;AAEH;;;;GAIG;AAEI,IAAM,2BAA2B,mCAAjC,MAAM,2BAA4B,SAAQ,sCAAiD;IAA3F;;QAEM,SAAI,GAAG,6BAA2B,CAAC,IAAI,CAAC;QAC/B,UAAK,GAAG,wBAAwB,CAAC;QAC1C,gBAAW,GAChB,sEAAsE;YACtE,sGAAsG;YACtG,2FAA2F;YAC3F,gDAAgD,CAAC;QAC5C,gBAAW,GAAG,gCAAwB,CAAC;QAC9B,iBAAY,GAAG,iCAAyB,CAAC;IAqB/D,CAAC;IAnBa,KAAK,CAAC,YAAY,CAAC,OAA2B;;QACpD,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,SAAS;YACb,CAAC;YACD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,KAAK,IAAI,CAAC,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3F,CAAC;IAES,cAAc,CAAC,KAAa,EAAE,YAAoC;QACxE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,OAAO,mBAAmB,KAAK,iBAAiB,IAAI,EAAE,CAAC;IAC3D,CAAC;;AA9BQ,kEAA2B;AACpB,gCAAI,GAAG,gBAAgB,AAAnB,CAAoB;sCAD/B,2BAA2B;IADvC,IAAA,sBAAU,GAAE;GACA,2BAA2B,CA+BvC"}
@@ -0,0 +1,112 @@
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 { DiagramConfiguration, EdgeCreationChecker } from '@eclipse-glsp/server';
17
+ import * as z from 'zod/v4';
18
+ import { McpToolResult, OperationMcpDiagramToolHandler } from '../../server';
19
+ /** Single edge-creation entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */
20
+ export declare const CreateEdgeSpecSchema: z.ZodObject<{
21
+ elementTypeId: z.ZodString;
22
+ sourceElementId: z.ZodString;
23
+ targetElementId: z.ZodString;
24
+ routingPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
25
+ x: z.ZodNumber;
26
+ y: z.ZodNumber;
27
+ }, z.core.$strict>>>;
28
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
29
+ }, z.core.$strict>;
30
+ export declare const CreateEdgesInputSchema: z.ZodObject<{
31
+ sessionId: z.ZodString;
32
+ edges: z.ZodArray<z.ZodObject<{
33
+ elementTypeId: z.ZodString;
34
+ sourceElementId: z.ZodString;
35
+ targetElementId: z.ZodString;
36
+ routingPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
37
+ x: z.ZodNumber;
38
+ y: z.ZodNumber;
39
+ }, z.core.$strict>>>;
40
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
41
+ }, z.core.$strict>>;
42
+ dryRun: z.ZodOptional<z.ZodBoolean>;
43
+ }, z.core.$strip>;
44
+ export type CreateEdgesInput = z.infer<typeof CreateEdgesInputSchema>;
45
+ export declare const CreateEdgesValidationResultSchema: z.ZodObject<{
46
+ edgeType: z.ZodString;
47
+ sourceElementId: z.ZodString;
48
+ targetElementId: z.ZodString;
49
+ isValid: z.ZodBoolean;
50
+ reason: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>;
52
+ export declare const CreateEdgesOutputSchema: z.ZodObject<{
53
+ createdEdges: z.ZodArray<z.ZodObject<{
54
+ id: z.ZodString;
55
+ elementTypeId: z.ZodString;
56
+ label: z.ZodOptional<z.ZodString>;
57
+ }, z.core.$strip>>;
58
+ errors: z.ZodArray<z.ZodString>;
59
+ validationResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
60
+ edgeType: z.ZodString;
61
+ sourceElementId: z.ZodString;
62
+ targetElementId: z.ZodString;
63
+ isValid: z.ZodBoolean;
64
+ reason: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$strip>>>;
66
+ }, z.core.$strip>;
67
+ type EdgeInput = CreateEdgesInput['edges'][number];
68
+ type ValidationResult = z.infer<typeof CreateEdgesValidationResultSchema>;
69
+ export declare class CreateEdgesMcpToolHandler extends OperationMcpDiagramToolHandler<CreateEdgesInput> {
70
+ static readonly NAME = "create-edges";
71
+ readonly name = "create-edges";
72
+ readonly title = "Create Diagram Edges";
73
+ readonly description: string;
74
+ readonly inputSchema: z.ZodObject<{
75
+ sessionId: z.ZodString;
76
+ edges: z.ZodArray<z.ZodObject<{
77
+ elementTypeId: z.ZodString;
78
+ sourceElementId: z.ZodString;
79
+ targetElementId: z.ZodString;
80
+ routingPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
81
+ x: z.ZodNumber;
82
+ y: z.ZodNumber;
83
+ }, z.core.$strict>>>;
84
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
85
+ }, z.core.$strict>>;
86
+ dryRun: z.ZodOptional<z.ZodBoolean>;
87
+ }, z.core.$strip>;
88
+ readonly outputSchema: z.ZodObject<{
89
+ createdEdges: z.ZodArray<z.ZodObject<{
90
+ id: z.ZodString;
91
+ elementTypeId: z.ZodString;
92
+ label: z.ZodOptional<z.ZodString>;
93
+ }, z.core.$strip>>;
94
+ errors: z.ZodArray<z.ZodString>;
95
+ validationResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
96
+ edgeType: z.ZodString;
97
+ sourceElementId: z.ZodString;
98
+ targetElementId: z.ZodString;
99
+ isValid: z.ZodBoolean;
100
+ reason: z.ZodOptional<z.ZodString>;
101
+ }, z.core.$strip>>>;
102
+ }, z.core.$strip>;
103
+ protected diagramConfiguration: DiagramConfiguration;
104
+ protected edgeCreationChecker?: EdgeCreationChecker;
105
+ protected createResult({ edges, dryRun }: CreateEdgesInput): Promise<McpToolResult>;
106
+ protected runDryRun(edges: EdgeInput[]): McpToolResult;
107
+ protected runCreate(edges: EdgeInput[]): Promise<McpToolResult>;
108
+ /** Mirrors `RequestCheckEdgeAction`: existence check, then dynamic-hint → checker; static or unknown edgeType → valid. */
109
+ protected validateEdge(edge: EdgeInput): ValidationResult;
110
+ }
111
+ export {};
112
+ //# sourceMappingURL=create-edges-mcp-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-edges-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/create-edges-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAqD,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEpI,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAIH,aAAa,EACb,8BAA8B,EAEjC,MAAM,cAAc,CAAC;AAGtB,kIAAkI;AAClI,eAAO,MAAM,oBAAoB;;;;;;;;;kBAO/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;iBAQjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,iCAAiC;;;;;;iBAM5C,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAOlC,CAAC;AAEH,KAAK,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AACnD,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE1E,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,SAKgD;IACpE,QAAQ,CAAC,WAAW;;;;;;;;;;;;;sBAA0B;IAC9C,SAAkB,YAAY;;;;;;;;;;;;;;sBAA2B;IAE3B,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAC1C,SAAS,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;cAE7E,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOzF,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,aAAa;cAetC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IA6DrE,0HAA0H;IAC1H,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,gBAAgB;CAiC5D"}
@@ -0,0 +1,190 @@
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 CreateEdgesMcpToolHandler_1;
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.CreateEdgesMcpToolHandler = exports.CreateEdgesOutputSchema = exports.CreateEdgesValidationResultSchema = exports.CreateEdgesInputSchema = exports.CreateEdgeSpecSchema = void 0;
29
+ const server_1 = require("@eclipse-glsp/server");
30
+ const inversify_1 = require("inversify");
31
+ const z = require("zod/v4");
32
+ const server_2 = require("../../server");
33
+ const util_1 = require("../../util");
34
+ /** Single edge-creation entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */
35
+ exports.CreateEdgeSpecSchema = z.strictObject({
36
+ elementTypeId: z.string().describe('Edge type ID (e.g., `edge`, `transition`). Use the `element-types` tool to discover valid IDs.'),
37
+ sourceElementId: z.string().describe('ID of the source element (must exist in the diagram)'),
38
+ targetElementId: z.string().describe('ID of the target element (must exist in the diagram)'),
39
+ routingPoints: z.array(server_2.position).optional().describe('Optional array of routing point coordinates that allow for a complex edge path.'),
40
+ // `args` stays open (`record(...)`) — adopter-specific extension surface for per-edge-type creation hints.
41
+ args: z.record(z.string(), z.any()).optional().describe('Additional type-specific arguments for edge creation (varies by edge type)')
42
+ });
43
+ exports.CreateEdgesInputSchema = server_2.McpDiagramScopedInputSchema.extend({
44
+ edges: z.array(exports.CreateEdgeSpecSchema).min(1).describe('Array of edges to create. Must include at least one edge.'),
45
+ dryRun: z
46
+ .boolean()
47
+ .optional()
48
+ .describe('When true, validate each edge against the type-hint rules without creating anything; returns per-edge `validationResults`.')
49
+ });
50
+ exports.CreateEdgesValidationResultSchema = z.object({
51
+ edgeType: z.string(),
52
+ sourceElementId: z.string(),
53
+ targetElementId: z.string(),
54
+ isValid: z.boolean(),
55
+ reason: z.string().optional().describe('Brief reason explaining the verdict (always present when `isValid: false`).')
56
+ });
57
+ exports.CreateEdgesOutputSchema = z.object({
58
+ createdEdges: z.array(server_2.ElementIdentitySchema).describe('Identity of each edge successfully created. Empty in `dryRun` mode.'),
59
+ errors: z.array(z.string()).describe('Per-input failure messages; absent or empty when every input succeeded.'),
60
+ validationResults: z
61
+ .array(exports.CreateEdgesValidationResultSchema)
62
+ .optional()
63
+ .describe('Per-input validation results. Present only in `dryRun` mode.')
64
+ });
65
+ let CreateEdgesMcpToolHandler = CreateEdgesMcpToolHandler_1 = class CreateEdgesMcpToolHandler extends server_2.OperationMcpDiagramToolHandler {
66
+ constructor() {
67
+ super(...arguments);
68
+ this.name = CreateEdgesMcpToolHandler_1.NAME;
69
+ this.title = 'Create Diagram Edges';
70
+ this.description = 'Create one or multiple new edges connecting two elements in the diagram. ' +
71
+ 'Set `dryRun: true` to validate proposed edges (per the diagram-type type-hint rules) ' +
72
+ 'without creating anything; the result then carries per-edge `validationResults`. ' +
73
+ 'Without `dryRun`, this operation modifies the diagram state and requires user approval. ' +
74
+ 'Use the `element-types` tool to discover valid edge type IDs.';
75
+ this.inputSchema = exports.CreateEdgesInputSchema;
76
+ this.outputSchema = exports.CreateEdgesOutputSchema;
77
+ }
78
+ async createResult({ edges, dryRun }) {
79
+ if (dryRun) {
80
+ return this.runDryRun(edges);
81
+ }
82
+ return this.runCreate(edges);
83
+ }
84
+ runDryRun(edges) {
85
+ const validationResults = edges.map(edge => this.validateEdge(edge));
86
+ const validCount = validationResults.filter(result => result.isValid).length;
87
+ const summary = `Dry run: validated ${edges.length} edge(s); ${validCount} would be accepted, ${edges.length - validCount} rejected.\n` +
88
+ validationResults
89
+ .map(result => `- ${result.edgeType} ${result.sourceElementId} → ${result.targetElementId}: ` +
90
+ `${result.isValid ? 'valid' : `invalid (${result.reason})`}`)
91
+ .join('\n');
92
+ return this.success(summary, { createdEdges: [], errors: [], validationResults });
93
+ }
94
+ async runCreate(edges) {
95
+ let beforeIds = this.modelState.index.allIds();
96
+ const errors = [];
97
+ const createdEdges = [];
98
+ let dispatchedOperations = 0;
99
+ // Sequential — each iteration must isolate its own creation in the post-dispatch diff.
100
+ for (const edge of edges) {
101
+ const { elementTypeId, routingPoints, args } = edge;
102
+ const sourceElementId = this.aliasService.lookup(edge.sourceElementId);
103
+ const targetElementId = this.aliasService.lookup(edge.targetElementId);
104
+ const source = this.modelState.index.find(sourceElementId);
105
+ if (!source) {
106
+ errors.push(`Source element not found: ${edge.sourceElementId}`);
107
+ continue;
108
+ }
109
+ const target = this.modelState.index.find(targetElementId);
110
+ if (!target) {
111
+ errors.push(`Target element not found: ${edge.targetElementId}`);
112
+ continue;
113
+ }
114
+ const operation = server_1.CreateEdgeOperation.create({ elementTypeId, sourceElementId, targetElementId, args });
115
+ await this.actionDispatcher.dispatch(operation);
116
+ dispatchedOperations++;
117
+ const afterIds = this.modelState.index.allIds();
118
+ const newIds = afterIds.filter(id => !beforeIds.includes(id));
119
+ const newElements = newIds.map(id => this.modelState.index.find(id)).filter(element => (element === null || element === void 0 ? void 0 : element.type) === elementTypeId);
120
+ const newElement = newElements[0];
121
+ if (newElements.length > 1) {
122
+ this.logger.warn('More than 1 new element created');
123
+ }
124
+ beforeIds = afterIds;
125
+ // Operations don't surface failure directly — infer from absence of a new id of the requested type.
126
+ if (!newElement) {
127
+ errors.push(`Edge creation likely failed because no new element ID was found for input: ${JSON.stringify(edge)}`);
128
+ continue;
129
+ }
130
+ if (routingPoints) {
131
+ const routingPointsOperation = server_1.ChangeRoutingPointsOperation.create([
132
+ { elementId: newElement.id, newRoutingPoints: routingPoints }
133
+ ]);
134
+ await this.actionDispatcher.dispatch(routingPointsOperation);
135
+ dispatchedOperations++;
136
+ }
137
+ createdEdges.push(this.describeResolvedElement(newElement));
138
+ }
139
+ const successListStr = createdEdges.map(({ id, elementTypeId }) => `- ${elementTypeId} (#${id})`).join('\n');
140
+ // Per-input errors are surfaced in `errors`; the call itself still succeeds — rolling back partial creates would require operation-level transactions.
141
+ return this.success(`Successfully created ${createdEdges.length} edge(s) (in ${dispatchedOperations} commands):\n${successListStr}${(0, util_1.formatNoticeList)('errors', errors)}`, { createdEdges, errors });
142
+ }
143
+ /** Mirrors `RequestCheckEdgeAction`: existence check, then dynamic-hint → checker; static or unknown edgeType → valid. */
144
+ validateEdge(edge) {
145
+ const { elementTypeId } = edge;
146
+ const sourceRealId = this.aliasService.lookup(edge.sourceElementId);
147
+ const targetRealId = this.aliasService.lookup(edge.targetElementId);
148
+ const echo = {
149
+ edgeType: elementTypeId,
150
+ sourceElementId: edge.sourceElementId,
151
+ targetElementId: edge.targetElementId
152
+ };
153
+ const source = this.modelState.index.find(sourceRealId);
154
+ if (!source) {
155
+ return { ...echo, isValid: false, reason: `Source element not found: ${edge.sourceElementId}` };
156
+ }
157
+ const target = this.modelState.index.find(targetRealId);
158
+ if (!target) {
159
+ return { ...echo, isValid: false, reason: `Target element not found: ${edge.targetElementId}` };
160
+ }
161
+ const hasDynamicHint = this.diagramConfiguration.edgeTypeHints.some(hint => hint.elementTypeId === elementTypeId && hint.dynamic);
162
+ if (!hasDynamicHint) {
163
+ return { ...echo, isValid: true, reason: 'no dynamic edge-type hint — static hints apply' };
164
+ }
165
+ if (!this.edgeCreationChecker) {
166
+ return {
167
+ ...echo,
168
+ isValid: false,
169
+ reason: `EdgeCreationChecker is not bound although edge type '${elementTypeId}' declares a dynamic hint.`
170
+ };
171
+ }
172
+ const isValid = this.edgeCreationChecker.isValidTarget(elementTypeId, source, target);
173
+ return { ...echo, isValid, ...(isValid ? {} : { reason: 'rejected by EdgeCreationChecker' }) };
174
+ }
175
+ };
176
+ exports.CreateEdgesMcpToolHandler = CreateEdgesMcpToolHandler;
177
+ CreateEdgesMcpToolHandler.NAME = 'create-edges';
178
+ __decorate([
179
+ (0, inversify_1.inject)(server_1.DiagramConfiguration),
180
+ __metadata("design:type", Object)
181
+ ], CreateEdgesMcpToolHandler.prototype, "diagramConfiguration", void 0);
182
+ __decorate([
183
+ (0, inversify_1.inject)(server_1.EdgeCreationChecker),
184
+ (0, inversify_1.optional)(),
185
+ __metadata("design:type", Object)
186
+ ], CreateEdgesMcpToolHandler.prototype, "edgeCreationChecker", void 0);
187
+ exports.CreateEdgesMcpToolHandler = CreateEdgesMcpToolHandler = CreateEdgesMcpToolHandler_1 = __decorate([
188
+ (0, inversify_1.injectable)()
189
+ ], CreateEdgesMcpToolHandler);
190
+ //# sourceMappingURL=create-edges-mcp-tool-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-edges-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/create-edges-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
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
+ /** Single node-creation entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */
19
+ export declare const CreateNodeSpecSchema: z.ZodObject<{
20
+ elementTypeId: z.ZodString;
21
+ position: z.ZodObject<{
22
+ x: z.ZodNumber;
23
+ y: z.ZodNumber;
24
+ }, z.core.$strict>;
25
+ text: z.ZodOptional<z.ZodString>;
26
+ containerId: z.ZodOptional<z.ZodString>;
27
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
28
+ }, z.core.$strict>;
29
+ export declare const CreateNodesInputSchema: z.ZodObject<{
30
+ sessionId: z.ZodString;
31
+ nodes: z.ZodArray<z.ZodObject<{
32
+ elementTypeId: z.ZodString;
33
+ position: z.ZodObject<{
34
+ x: z.ZodNumber;
35
+ y: z.ZodNumber;
36
+ }, z.core.$strict>;
37
+ text: z.ZodOptional<z.ZodString>;
38
+ containerId: z.ZodOptional<z.ZodString>;
39
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
40
+ }, z.core.$strict>>;
41
+ }, z.core.$strip>;
42
+ export type CreateNodesInput = z.infer<typeof CreateNodesInputSchema>;
43
+ export declare const CreateNodesOutputSchema: z.ZodObject<{
44
+ createdNodes: z.ZodArray<z.ZodObject<{
45
+ id: z.ZodString;
46
+ elementTypeId: z.ZodString;
47
+ label: z.ZodOptional<z.ZodString>;
48
+ }, z.core.$strip>>;
49
+ errors: z.ZodArray<z.ZodString>;
50
+ warnings: z.ZodArray<z.ZodString>;
51
+ }, z.core.$strip>;
52
+ export declare class CreateNodesMcpToolHandler extends OperationMcpDiagramToolHandler<CreateNodesInput> {
53
+ static readonly NAME = "create-nodes";
54
+ readonly name = "create-nodes";
55
+ readonly title = "Create Diagram Nodes";
56
+ readonly description: string;
57
+ readonly inputSchema: z.ZodObject<{
58
+ sessionId: z.ZodString;
59
+ nodes: z.ZodArray<z.ZodObject<{
60
+ elementTypeId: z.ZodString;
61
+ position: z.ZodObject<{
62
+ x: z.ZodNumber;
63
+ y: z.ZodNumber;
64
+ }, z.core.$strict>;
65
+ text: z.ZodOptional<z.ZodString>;
66
+ containerId: z.ZodOptional<z.ZodString>;
67
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
68
+ }, z.core.$strict>>;
69
+ }, z.core.$strip>;
70
+ readonly outputSchema: z.ZodObject<{
71
+ createdNodes: z.ZodArray<z.ZodObject<{
72
+ id: z.ZodString;
73
+ elementTypeId: z.ZodString;
74
+ label: z.ZodOptional<z.ZodString>;
75
+ }, z.core.$strip>>;
76
+ errors: z.ZodArray<z.ZodString>;
77
+ warnings: z.ZodArray<z.ZodString>;
78
+ }, z.core.$strip>;
79
+ protected createResult({ nodes }: CreateNodesInput): Promise<McpToolResult>;
80
+ }
81
+ //# sourceMappingURL=create-nodes-mcp-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-nodes-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/create-nodes-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAIlF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAIH,aAAa,EACb,8BAA8B,EAEjC,MAAM,cAAc,CAAC;AAGtB,kIAAkI;AAClI,eAAO,MAAM,oBAAoB;;;;;;;;;kBAS/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAEjC,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,SAMwD;IAC5E,QAAQ,CAAC,WAAW;;;;;;;;;;;;sBAA0B;IAC9C,SAAkB,YAAY;;;;;;;;sBAA2B;cAEzC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;CAyDpF"}