@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,73 @@
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 RedoMcpToolHandler_1;
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.RedoMcpToolHandler = exports.RedoOutputSchema = exports.RedoInputSchema = 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
+ exports.RedoInputSchema = server_2.McpDiagramScopedInputSchema.extend({
34
+ commandsToRedo: z.number().min(1).default(1).describe('Number of commands to redo. Defaults to 1 (most recent undone command).')
35
+ });
36
+ exports.RedoOutputSchema = z.object({
37
+ commandsRedone: z.number().int().describe('Number of previously-undone commands re-applied.')
38
+ });
39
+ /**
40
+ * Redo a given number of the most recent undone actions on the command stack.
41
+ */
42
+ let RedoMcpToolHandler = RedoMcpToolHandler_1 = class RedoMcpToolHandler extends server_2.OperationMcpDiagramToolHandler {
43
+ constructor() {
44
+ super(...arguments);
45
+ this.name = RedoMcpToolHandler_1.NAME;
46
+ this.title = 'Redo Diagram Commands';
47
+ this.description = 'Re-apply commands that were previously undone. Defaults to redoing one command — the most recent undo — when ' +
48
+ '`commandsToRedo` is omitted. Use the same count you passed to `undo` to revert a complete undo cycle. ' +
49
+ "Throws when there's nothing on the redo stack (e.g. nothing has been undone, or the redo stack was cleared by a " +
50
+ 'subsequent edit). Only do this on an explicit user request.';
51
+ this.inputSchema = exports.RedoInputSchema;
52
+ this.outputSchema = exports.RedoOutputSchema;
53
+ }
54
+ async createResult({ commandsToRedo }) {
55
+ if (!this.commandStack.canRedo()) {
56
+ throw new server_2.McpToolError('Nothing to redo (redo stack is empty; perform an undo first or accept that the redo history was cleared by a subsequent edit).');
57
+ }
58
+ for (let i = 0; i < commandsToRedo; i++) {
59
+ await this.actionDispatcher.dispatch(server_1.RedoAction.create());
60
+ }
61
+ return this.success('Redo successful', { commandsRedone: commandsToRedo });
62
+ }
63
+ };
64
+ exports.RedoMcpToolHandler = RedoMcpToolHandler;
65
+ RedoMcpToolHandler.NAME = 'redo';
66
+ __decorate([
67
+ (0, inversify_1.inject)(server_1.CommandStack),
68
+ __metadata("design:type", Object)
69
+ ], RedoMcpToolHandler.prototype, "commandStack", void 0);
70
+ exports.RedoMcpToolHandler = RedoMcpToolHandler = RedoMcpToolHandler_1 = __decorate([
71
+ (0, inversify_1.injectable)()
72
+ ], RedoMcpToolHandler);
73
+ //# sourceMappingURL=redo-mcp-tool-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redo-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/redo-mcp-tool-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;;AAElF,iDAAgE;AAChE,yCAA+C;AAC/C,4BAA4B;AAC5B,yCAAwH;AAE3G,QAAA,eAAe,GAAG,oCAA2B,CAAC,MAAM,CAAC;IAC9D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yEAAyE,CAAC;CACnI,CAAC,CAAC;AAGU,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;CAChG,CAAC,CAAC;AAEH;;GAEG;AAEI,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,uCAAyC;IAA1E;;QAEM,SAAI,GAAG,oBAAkB,CAAC,IAAI,CAAC;QACtB,UAAK,GAAG,uBAAuB,CAAC;QACzC,gBAAW,GAChB,+GAA+G;YAC/G,wGAAwG;YACxG,kHAAkH;YAClH,6DAA6D,CAAC;QACzD,gBAAW,GAAG,uBAAe,CAAC;QACrB,iBAAY,GAAG,wBAAgB,CAAC;IAiBtD,CAAC;IAba,KAAK,CAAC,YAAY,CAAC,EAAE,cAAc,EAAa;QACtD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,qBAAY,CAClB,gIAAgI,CACnI,CAAC;QACN,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/E,CAAC;;AA1BQ,gDAAkB;AACX,uBAAI,GAAG,MAAM,AAAT,CAAU;AAWE;IAA/B,IAAA,kBAAM,EAAC,qBAAY,CAAC;;wDAAsC;6BAZlD,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CA2B9B"}
@@ -0,0 +1,55 @@
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 { ActionDispatcher, CommandStack } from '@eclipse-glsp/server';
17
+ import * as z from 'zod/v4';
18
+ import { AbstractMcpDiagramToolHandler, McpLogger, McpToolResult } from '../../server';
19
+ export declare const SaveModelInputSchema: z.ZodObject<{
20
+ sessionId: z.ZodString;
21
+ fileUri: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>;
23
+ export type SaveModelInput = z.infer<typeof SaveModelInputSchema>;
24
+ export declare const SaveModelOutputSchema: z.ZodObject<{
25
+ saved: z.ZodBoolean;
26
+ fileUri: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strip>;
28
+ /** Doesn't extend `OperationMcpDiagramToolHandler` — saving a read-only model is a legitimate adopter scenario (e.g. "save as" to a writable location). */
29
+ export declare class SaveModelMcpToolHandler extends AbstractMcpDiagramToolHandler<SaveModelInput> {
30
+ static readonly NAME = "save-model";
31
+ readonly name = "save-model";
32
+ readonly title = "Save Diagram Model";
33
+ readonly description: string;
34
+ readonly inputSchema: z.ZodObject<{
35
+ sessionId: z.ZodString;
36
+ fileUri: z.ZodOptional<z.ZodString>;
37
+ }, z.core.$strip>;
38
+ readonly outputSchema: z.ZodObject<{
39
+ saved: z.ZodBoolean;
40
+ fileUri: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strip>;
42
+ /**
43
+ * Saving writes to disk — that's a mutation of the environment even though the in-memory
44
+ * model state isn't a target of an `Operation` dispatch. Drop the readOnly claim from the
45
+ * read-base default. Not destructive per the spec definition (no irreversible deletion).
46
+ */
47
+ readonly readOnlyHint = false;
48
+ readonly destructiveHint: boolean;
49
+ readonly idempotentHint: boolean;
50
+ protected actionDispatcher: ActionDispatcher;
51
+ protected commandStack: CommandStack;
52
+ protected mcpLogger: McpLogger;
53
+ protected createResult({ fileUri }: SaveModelInput): Promise<McpToolResult>;
54
+ }
55
+ //# sourceMappingURL=save-model-mcp-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-model-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/save-model-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAA+B,6BAA6B,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpH,eAAO,MAAM,oBAAoB;;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;iBAMhC,CAAC;AAEH,2JAA2J;AAC3J,qBACa,uBAAwB,SAAQ,6BAA6B,CAAC,cAAc,CAAC;IACtF,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB;IACpC,QAAQ,CAAC,IAAI,gBAAgC;IAC7C,SAAkB,KAAK,wBAAwB;IAC/C,QAAQ,CAAC,WAAW,SAIoD;IACxE,QAAQ,CAAC,WAAW;;;sBAAwB;IAC5C,SAAkB,YAAY;;;sBAAyB;IACvD;;;;OAIG;IACH,SAAkB,YAAY,SAAS;IACvC,SAAkB,eAAe,EAAE,OAAO,CAAS;IACnD,SAAkB,cAAc,EAAE,OAAO,CAAS;IAExB,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACjD,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACxC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;cAElC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAUpF"}
@@ -0,0 +1,91 @@
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 SaveModelMcpToolHandler_1;
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.SaveModelMcpToolHandler = exports.SaveModelOutputSchema = exports.SaveModelInputSchema = 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
+ exports.SaveModelInputSchema = server_2.McpDiagramScopedInputSchema.extend({
34
+ fileUri: z.string().optional().describe('Optional destination file URI. If not provided, saves to the original source model location.')
35
+ });
36
+ exports.SaveModelOutputSchema = z.object({
37
+ saved: z.boolean().describe('True when a save operation was dispatched; false when the model was clean and nothing was written.'),
38
+ fileUri: z
39
+ .string()
40
+ .optional()
41
+ .describe('Destination file URI when explicitly provided; absent when saving to the original source location.')
42
+ });
43
+ /** Doesn't extend `OperationMcpDiagramToolHandler` — saving a read-only model is a legitimate adopter scenario (e.g. "save as" to a writable location). */
44
+ let SaveModelMcpToolHandler = SaveModelMcpToolHandler_1 = class SaveModelMcpToolHandler extends server_2.AbstractMcpDiagramToolHandler {
45
+ constructor() {
46
+ super(...arguments);
47
+ this.name = SaveModelMcpToolHandler_1.NAME;
48
+ this.title = 'Save Diagram Model';
49
+ this.description = 'Save the current diagram model to persistent storage. ' +
50
+ 'This operation persists all changes back to the source model. ' +
51
+ 'Only do this on an explicit user request and not as part of other tasks. ' +
52
+ 'Optionally specify a new fileUri to save to a different location.';
53
+ this.inputSchema = exports.SaveModelInputSchema;
54
+ this.outputSchema = exports.SaveModelOutputSchema;
55
+ /**
56
+ * Saving writes to disk — that's a mutation of the environment even though the in-memory
57
+ * model state isn't a target of an `Operation` dispatch. Drop the readOnly claim from the
58
+ * read-base default. Not destructive per the spec definition (no irreversible deletion).
59
+ */
60
+ this.readOnlyHint = false;
61
+ this.destructiveHint = false;
62
+ this.idempotentHint = false;
63
+ }
64
+ async createResult({ fileUri }) {
65
+ if (!this.commandStack.isDirty) {
66
+ this.mcpLogger.info('save-model: nothing to save');
67
+ return this.success('No changes to save', { saved: false, fileUri });
68
+ }
69
+ await this.actionDispatcher.dispatch(server_1.SaveModelAction.create({ fileUri }));
70
+ this.mcpLogger.info(`save-model: model saved${fileUri ? ` to ${fileUri}` : ''}`);
71
+ return this.success('Model saved successfully', { saved: true, fileUri });
72
+ }
73
+ };
74
+ exports.SaveModelMcpToolHandler = SaveModelMcpToolHandler;
75
+ SaveModelMcpToolHandler.NAME = 'save-model';
76
+ __decorate([
77
+ (0, inversify_1.inject)(server_1.ActionDispatcher),
78
+ __metadata("design:type", Object)
79
+ ], SaveModelMcpToolHandler.prototype, "actionDispatcher", void 0);
80
+ __decorate([
81
+ (0, inversify_1.inject)(server_1.CommandStack),
82
+ __metadata("design:type", Object)
83
+ ], SaveModelMcpToolHandler.prototype, "commandStack", void 0);
84
+ __decorate([
85
+ (0, inversify_1.inject)(server_2.McpLogger),
86
+ __metadata("design:type", server_2.McpLogger)
87
+ ], SaveModelMcpToolHandler.prototype, "mcpLogger", void 0);
88
+ exports.SaveModelMcpToolHandler = SaveModelMcpToolHandler = SaveModelMcpToolHandler_1 = __decorate([
89
+ (0, inversify_1.injectable)()
90
+ ], SaveModelMcpToolHandler);
91
+ //# sourceMappingURL=save-model-mcp-tool-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-model-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/save-model-mcp-tool-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;;AAElF,iDAAuF;AACvF,yCAA+C;AAC/C,4BAA4B;AAC5B,yCAAoH;AAEvG,QAAA,oBAAoB,GAAG,oCAA2B,CAAC,MAAM,CAAC;IACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8FAA8F,CAAC;CAC1I,CAAC,CAAC;AAGU,QAAA,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,oGAAoG,CAAC;IACjI,OAAO,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oGAAoG,CAAC;CACtH,CAAC,CAAC;AAEH,2JAA2J;AAEpJ,IAAM,uBAAuB,+BAA7B,MAAM,uBAAwB,SAAQ,sCAA6C;IAAnF;;QAEM,SAAI,GAAG,yBAAuB,CAAC,IAAI,CAAC;QAC3B,UAAK,GAAG,oBAAoB,CAAC;QACtC,gBAAW,GAChB,wDAAwD;YACxD,gEAAgE;YAChE,2EAA2E;YAC3E,mEAAmE,CAAC;QAC/D,gBAAW,GAAG,4BAAoB,CAAC;QAC1B,iBAAY,GAAG,6BAAqB,CAAC;QACvD;;;;WAIG;QACe,iBAAY,GAAG,KAAK,CAAC;QACrB,oBAAe,GAAY,KAAK,CAAC;QACjC,mBAAc,GAAY,KAAK,CAAC;IAgBtD,CAAC;IAVa,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,EAAkB;QACpD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,wBAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;;AAjCQ,0DAAuB;AAChB,4BAAI,GAAG,YAAY,AAAf,CAAgB;AAmBA;IAAnC,IAAA,kBAAM,EAAC,yBAAgB,CAAC;;iEAA8C;AACvC;IAA/B,IAAA,kBAAM,EAAC,qBAAY,CAAC;;6DAAsC;AAC9B;IAA5B,IAAA,kBAAM,EAAC,kBAAS,CAAC;8BAAsB,kBAAS;0DAAC;kCAtBzC,uBAAuB;IADnC,IAAA,sBAAU,GAAE;GACA,uBAAuB,CAkCnC"}
@@ -0,0 +1,65 @@
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 { ClientSessionManager } from '@eclipse-glsp/server';
17
+ import * as z from 'zod/v4';
18
+ import { AbstractMcpToolHandler, McpToolResult } from '../../server';
19
+ export declare const SessionInfoInputSchema: z.ZodObject<{
20
+ sessionId: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>;
22
+ export type SessionInfoInput = z.infer<typeof SessionInfoInputSchema>;
23
+ export declare const SessionInfoRowSchema: z.ZodObject<{
24
+ sessionId: z.ZodString;
25
+ diagramType: z.ZodString;
26
+ sourceUri: z.ZodString;
27
+ readOnly: z.ZodBoolean;
28
+ dirty: z.ZodBoolean;
29
+ }, z.core.$strip>;
30
+ export type SessionInfoRow = z.infer<typeof SessionInfoRowSchema>;
31
+ export declare const SessionInfoOutputSchema: z.ZodObject<{
32
+ sessions: z.ZodArray<z.ZodObject<{
33
+ sessionId: z.ZodString;
34
+ diagramType: z.ZodString;
35
+ sourceUri: z.ZodString;
36
+ readOnly: z.ZodBoolean;
37
+ dirty: z.ZodBoolean;
38
+ }, z.core.$strip>>;
39
+ }, z.core.$strip>;
40
+ export declare class SessionInfoMcpToolHandler extends AbstractMcpToolHandler<SessionInfoInput> {
41
+ protected clientSessionManager: ClientSessionManager;
42
+ static readonly NAME = "session-info";
43
+ readonly name = "session-info";
44
+ readonly title = "GLSP Session Info";
45
+ readonly description: string;
46
+ readonly inputSchema: z.ZodObject<{
47
+ sessionId: z.ZodOptional<z.ZodString>;
48
+ }, z.core.$strip>;
49
+ readonly outputSchema: z.ZodObject<{
50
+ sessions: z.ZodArray<z.ZodObject<{
51
+ sessionId: z.ZodString;
52
+ diagramType: z.ZodString;
53
+ sourceUri: z.ZodString;
54
+ readOnly: z.ZodBoolean;
55
+ dirty: z.ZodBoolean;
56
+ }, z.core.$strip>>;
57
+ }, z.core.$strip>;
58
+ protected createResult({ sessionId }: SessionInfoInput): McpToolResult;
59
+ /** Extracts a {@link SessionInfoRow} from a {@link ClientSession}. Override to surface adopter-specific fields. */
60
+ protected buildSessionRow(session: ReturnType<ClientSessionManager['getSessions']>[number]): SessionInfoRow;
61
+ /** Builds the LLM-facing summary. Override to customize per-adopter wording. */
62
+ protected summarizeSessions(rows: SessionInfoRow[]): string;
63
+ protected singleSession(sessionId: string): ReturnType<ClientSessionManager['getSessions']>;
64
+ }
65
+ //# sourceMappingURL=session-info-mcp-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-info-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/session-info-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,oBAAoB,EAA4B,MAAM,sBAAsB,CAAC;AAEtF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAgB,aAAa,EAAE,MAAM,cAAc,CAAC;AAEnF,eAAO,MAAM,sBAAsB;;iBAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;iBAM/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,uBAAuB;;;;;;;;iBAElC,CAAC;AAEH,qBACa,yBAA0B,SAAQ,sBAAsB,CAAC,gBAAgB,CAAC;IACrD,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAEnF,MAAM,CAAC,QAAQ,CAAC,IAAI,kBAAkB;IACtC,QAAQ,CAAC,IAAI,kBAAkC;IAC/C,SAAkB,KAAK,uBAAuB;IAC9C,QAAQ,CAAC,WAAW,SAGmF;IACvG,QAAQ,CAAC,WAAW;;sBAA0B;IAC9C,SAAkB,YAAY;;;;;;;;sBAA2B;IAEzD,SAAS,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,GAAG,aAAa;IAMtE,mHAAmH;IACnH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc;IAa3G,gFAAgF;IAChF,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM;IAY3D,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;CAO9F"}
@@ -0,0 +1,108 @@
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 SessionInfoMcpToolHandler_1;
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.SessionInfoMcpToolHandler = exports.SessionInfoOutputSchema = exports.SessionInfoRowSchema = exports.SessionInfoInputSchema = 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
+ exports.SessionInfoInputSchema = z.object({
34
+ sessionId: z
35
+ .string()
36
+ .optional()
37
+ .describe('Optional filter — returns only the matching session, or throws if unknown. Omit to list all sessions.')
38
+ });
39
+ exports.SessionInfoRowSchema = z.object({
40
+ sessionId: z.string(),
41
+ diagramType: z.string(),
42
+ sourceUri: z.string(),
43
+ readOnly: z.boolean(),
44
+ dirty: z.boolean().describe('True when the diagram has unsaved changes — call `save-model` to persist.')
45
+ });
46
+ exports.SessionInfoOutputSchema = z.object({
47
+ sessions: z.array(exports.SessionInfoRowSchema)
48
+ });
49
+ let SessionInfoMcpToolHandler = SessionInfoMcpToolHandler_1 = class SessionInfoMcpToolHandler extends server_2.AbstractMcpToolHandler {
50
+ constructor() {
51
+ super(...arguments);
52
+ this.name = SessionInfoMcpToolHandler_1.NAME;
53
+ this.title = 'GLSP Session Info';
54
+ this.description = 'Report info on the active GLSP client sessions: session id, diagram type, source uri, and read-only status. ' +
55
+ "Pass `sessionId` to retrieve a single session's entry; omit it to list every active session. " +
56
+ 'Useful as a discovery tool — most other diagram-scoped tools take the `sessionId` returned here.';
57
+ this.inputSchema = exports.SessionInfoInputSchema;
58
+ this.outputSchema = exports.SessionInfoOutputSchema;
59
+ }
60
+ createResult({ sessionId }) {
61
+ const sessions = sessionId !== undefined ? this.singleSession(sessionId) : this.clientSessionManager.getSessions();
62
+ const rows = sessions.map(session => this.buildSessionRow(session));
63
+ return this.success(this.summarizeSessions(rows), { sessions: rows });
64
+ }
65
+ /** Extracts a {@link SessionInfoRow} from a {@link ClientSession}. Override to surface adopter-specific fields. */
66
+ buildSessionRow(session) {
67
+ var _a;
68
+ const modelState = session.container.get(server_1.ModelState);
69
+ const commandStack = session.container.get(server_1.CommandStack);
70
+ return {
71
+ sessionId: session.id,
72
+ diagramType: session.diagramType,
73
+ // `ModelState.sourceUri` may be undefined for not-yet-persisted diagrams; render as empty string to keep the schema-required string shape.
74
+ sourceUri: (_a = modelState.sourceUri) !== null && _a !== void 0 ? _a : '',
75
+ readOnly: modelState.isReadonly,
76
+ dirty: commandStack.isDirty
77
+ };
78
+ }
79
+ /** Builds the LLM-facing summary. Override to customize per-adopter wording. */
80
+ summarizeSessions(rows) {
81
+ if (rows.length === 0) {
82
+ return 'No active sessions.';
83
+ }
84
+ const lines = rows.map(row => {
85
+ const flags = [row.readOnly ? 'read-only' : undefined, row.dirty ? 'dirty' : undefined].filter(Boolean);
86
+ const suffix = flags.length > 0 ? `, ${flags.join(', ')}` : '';
87
+ return `- ${row.sessionId} (${row.diagramType}${suffix})`;
88
+ });
89
+ return `${rows.length} session(s); full details in structuredContent.\n${lines.join('\n')}`;
90
+ }
91
+ singleSession(sessionId) {
92
+ const session = this.clientSessionManager.getSession(sessionId);
93
+ if (!session) {
94
+ throw new server_2.McpToolError(`Unknown sessionId: ${sessionId}`);
95
+ }
96
+ return [session];
97
+ }
98
+ };
99
+ exports.SessionInfoMcpToolHandler = SessionInfoMcpToolHandler;
100
+ SessionInfoMcpToolHandler.NAME = 'session-info';
101
+ __decorate([
102
+ (0, inversify_1.inject)(server_1.ClientSessionManager),
103
+ __metadata("design:type", Object)
104
+ ], SessionInfoMcpToolHandler.prototype, "clientSessionManager", void 0);
105
+ exports.SessionInfoMcpToolHandler = SessionInfoMcpToolHandler = SessionInfoMcpToolHandler_1 = __decorate([
106
+ (0, inversify_1.injectable)()
107
+ ], SessionInfoMcpToolHandler);
108
+ //# sourceMappingURL=session-info-mcp-tool-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-info-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/session-info-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
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 { ActionDispatcher } from '@eclipse-glsp/server';
17
+ import * as z from 'zod/v4';
18
+ import { AbstractMcpDiagramToolHandler, McpToolResult } from '../../server';
19
+ export declare const SetSelectionInputSchema: z.ZodObject<{
20
+ sessionId: z.ZodString;
21
+ selectedElementIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
+ deselectedElementIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ clear: z.ZodOptional<z.ZodBoolean>;
24
+ }, z.core.$strip>;
25
+ export type SetSelectionInput = z.infer<typeof SetSelectionInputSchema>;
26
+ export declare const SetSelectionOutputSchema: z.ZodObject<{
27
+ selectedElementIds: z.ZodArray<z.ZodString>;
28
+ deselectedElementIds: z.ZodArray<z.ZodString>;
29
+ cleared: z.ZodBoolean;
30
+ }, z.core.$strip>;
31
+ /**
32
+ * Pushes a selection change to the client. Counterpart to `get-selection` — useful for the
33
+ * agent to direct a human reviewer's attention to elements it just modified ("here's what I
34
+ * touched"), or to chain follow-up tools that rely on the visible selection.
35
+ *
36
+ * Read-write hint is honest: the viewport selection state is part of the client environment
37
+ * even though the underlying GModel is unaffected.
38
+ */
39
+ export declare class SetSelectionMcpToolHandler extends AbstractMcpDiagramToolHandler<SetSelectionInput> {
40
+ static readonly NAME = "set-selection";
41
+ readonly name = "set-selection";
42
+ readonly title = "Set Diagram Selection";
43
+ readonly description: string;
44
+ readonly inputSchema: z.ZodObject<{
45
+ sessionId: z.ZodString;
46
+ selectedElementIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
47
+ deselectedElementIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
48
+ clear: z.ZodOptional<z.ZodBoolean>;
49
+ }, z.core.$strip>;
50
+ readonly outputSchema: z.ZodObject<{
51
+ selectedElementIds: z.ZodArray<z.ZodString>;
52
+ deselectedElementIds: z.ZodArray<z.ZodString>;
53
+ cleared: z.ZodBoolean;
54
+ }, z.core.$strip>;
55
+ readonly readOnlyHint = false;
56
+ protected actionDispatcher: ActionDispatcher;
57
+ protected createResult({ selectedElementIds, deselectedElementIds, clear }: SetSelectionInput): Promise<McpToolResult>;
58
+ protected summarize(selected: string[], deselected: string[], cleared: boolean): string;
59
+ }
60
+ //# sourceMappingURL=set-selection-mcp-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-selection-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/set-selection-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,gBAAgB,EAAiC,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,6BAA6B,EAA+B,aAAa,EAAc,MAAM,cAAc,CAAC;AAErH,eAAO,MAAM,uBAAuB;;;;;iBASlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AAEH;;;;;;;GAOG;AACH,qBACa,0BAA2B,SAAQ,6BAA6B,CAAC,iBAAiB,CAAC;IAC5F,MAAM,CAAC,QAAQ,CAAC,IAAI,mBAAmB;IACvC,QAAQ,CAAC,IAAI,mBAAmC;IAChD,SAAkB,KAAK,2BAA2B;IAClD,QAAQ,CAAC,WAAW,SAGgC;IACpD,QAAQ,CAAC,WAAW;;;;;sBAA2B;IAC/C,SAAkB,YAAY;;;;sBAA4B;IAC1D,SAAkB,YAAY,SAAS;IAEb,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;cAEvD,YAAY,CAAC,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAoB5H,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CAO1F"}
@@ -0,0 +1,103 @@
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 SetSelectionMcpToolHandler_1;
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.SetSelectionMcpToolHandler = exports.SetSelectionOutputSchema = exports.SetSelectionInputSchema = 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
+ exports.SetSelectionInputSchema = server_2.McpDiagramScopedInputSchema.extend({
34
+ selectedElementIds: server_2.elementIds
35
+ .optional()
36
+ .describe('Element IDs to select. Pass an empty array (or omit + set `clear: true`) to clear the selection.'),
37
+ deselectedElementIds: server_2.elementIds.optional().describe('Element IDs to remove from the selection. Used to subtract without replacing.'),
38
+ clear: z
39
+ .boolean()
40
+ .optional()
41
+ .describe('When true, clear the existing selection before applying `selectedElementIds`. Defaults to false (additive).')
42
+ });
43
+ exports.SetSelectionOutputSchema = z.object({
44
+ selectedElementIds: z.array(z.string()).describe('Aliased ids requested for selection.'),
45
+ deselectedElementIds: z.array(z.string()).describe('Aliased ids requested for deselection.'),
46
+ cleared: z.boolean().describe('Whether the existing selection was cleared before applying.')
47
+ });
48
+ /**
49
+ * Pushes a selection change to the client. Counterpart to `get-selection` — useful for the
50
+ * agent to direct a human reviewer's attention to elements it just modified ("here's what I
51
+ * touched"), or to chain follow-up tools that rely on the visible selection.
52
+ *
53
+ * Read-write hint is honest: the viewport selection state is part of the client environment
54
+ * even though the underlying GModel is unaffected.
55
+ */
56
+ let SetSelectionMcpToolHandler = SetSelectionMcpToolHandler_1 = class SetSelectionMcpToolHandler extends server_2.AbstractMcpDiagramToolHandler {
57
+ constructor() {
58
+ super(...arguments);
59
+ this.name = SetSelectionMcpToolHandler_1.NAME;
60
+ this.title = 'Set Diagram Selection';
61
+ this.description = 'Set the selection of elements on the client UI. Useful to direct a reviewer to a ' +
62
+ 'set of elements (e.g. those just created or modified). Pass `clear: true` to replace ' +
63
+ 'the existing selection rather than add to it.';
64
+ this.inputSchema = exports.SetSelectionInputSchema;
65
+ this.outputSchema = exports.SetSelectionOutputSchema;
66
+ this.readOnlyHint = false;
67
+ }
68
+ async createResult({ selectedElementIds, deselectedElementIds, clear }) {
69
+ const resolvedSelected = this.resolveExistingIds(selectedElementIds);
70
+ const resolvedDeselected = this.resolveExistingIds(deselectedElementIds);
71
+ if (clear) {
72
+ await this.actionDispatcher.dispatch(server_1.SelectAllAction.create(false));
73
+ }
74
+ if (resolvedSelected.length > 0 || resolvedDeselected.length > 0) {
75
+ await this.actionDispatcher.dispatch(server_1.SelectAction.create({ selectedElementsIDs: resolvedSelected, deselectedElementsIDs: resolvedDeselected }));
76
+ }
77
+ return this.success(this.summarize(resolvedSelected, resolvedDeselected, clear !== null && clear !== void 0 ? clear : false), {
78
+ selectedElementIds: this.encodeIds(resolvedSelected),
79
+ deselectedElementIds: this.encodeIds(resolvedDeselected),
80
+ cleared: clear !== null && clear !== void 0 ? clear : false
81
+ });
82
+ }
83
+ summarize(selected, deselected, cleared) {
84
+ const parts = [];
85
+ if (cleared)
86
+ parts.push('Cleared previous selection.');
87
+ if (selected.length > 0)
88
+ parts.push(`Selected ${selected.length} element${selected.length === 1 ? '' : 's'}.`);
89
+ if (deselected.length > 0)
90
+ parts.push(`Deselected ${deselected.length} element${deselected.length === 1 ? '' : 's'}.`);
91
+ return parts.length > 0 ? parts.join(' ') : 'Selection unchanged.';
92
+ }
93
+ };
94
+ exports.SetSelectionMcpToolHandler = SetSelectionMcpToolHandler;
95
+ SetSelectionMcpToolHandler.NAME = 'set-selection';
96
+ __decorate([
97
+ (0, inversify_1.inject)(server_1.ActionDispatcher),
98
+ __metadata("design:type", Object)
99
+ ], SetSelectionMcpToolHandler.prototype, "actionDispatcher", void 0);
100
+ exports.SetSelectionMcpToolHandler = SetSelectionMcpToolHandler = SetSelectionMcpToolHandler_1 = __decorate([
101
+ (0, inversify_1.injectable)()
102
+ ], SetSelectionMcpToolHandler);
103
+ //# sourceMappingURL=set-selection-mcp-tool-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-selection-mcp-tool-handler.js","sourceRoot":"","sources":["../../../src/tools/handlers/set-selection-mcp-tool-handler.ts"],"names":[],"mappings":"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"}