@eclipse-glsp/server-mcp 2.8.0-next.1 → 2.8.0-next.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +7 -7
  2. package/lib/browser/modules/browser-mcp-server-module.js +1 -1
  3. package/lib/browser/modules/browser-mcp-server-module.js.map +1 -1
  4. package/lib/common/modules/abstract-mcp-server-module.d.ts +1 -2
  5. package/lib/common/modules/abstract-mcp-server-module.d.ts.map +1 -1
  6. package/lib/common/modules/abstract-mcp-server-module.js.map +1 -1
  7. package/lib/common/modules/mcp-diagram-module.js +1 -1
  8. package/lib/common/modules/mcp-diagram-module.js.map +1 -1
  9. package/lib/common/prompts/handlers/describe-diagram-mcp-prompt-handler.js +3 -2
  10. package/lib/common/prompts/handlers/describe-diagram-mcp-prompt-handler.js.map +1 -1
  11. package/lib/common/prompts/handlers/suggest-improvements-mcp-prompt-handler.js +3 -2
  12. package/lib/common/prompts/handlers/suggest-improvements-mcp-prompt-handler.js.map +1 -1
  13. package/lib/common/resources/handlers/diagram-png-mcp-resource-handler.js +5 -4
  14. package/lib/common/resources/handlers/diagram-png-mcp-resource-handler.js.map +1 -1
  15. package/lib/common/resources/handlers/diagram-svg-mcp-resource-handler.js +4 -3
  16. package/lib/common/resources/handlers/diagram-svg-mcp-resource-handler.js.map +1 -1
  17. package/lib/common/resources/services/element-types-provider.d.ts.map +1 -1
  18. package/lib/common/resources/services/element-types-provider.js +1 -2
  19. package/lib/common/resources/services/element-types-provider.js.map +1 -1
  20. package/lib/common/resources/services/mcp-model-serializer.d.ts +1 -2
  21. package/lib/common/resources/services/mcp-model-serializer.d.ts.map +1 -1
  22. package/lib/common/resources/services/mcp-model-serializer.js +3 -5
  23. package/lib/common/resources/services/mcp-model-serializer.js.map +1 -1
  24. package/lib/common/server/abstract-mcp-server-launcher.d.ts +3 -4
  25. package/lib/common/server/abstract-mcp-server-launcher.d.ts.map +1 -1
  26. package/lib/common/server/abstract-mcp-server-launcher.js +9 -14
  27. package/lib/common/server/abstract-mcp-server-launcher.js.map +1 -1
  28. package/lib/common/server/glsp-mcp-server.d.ts.map +1 -1
  29. package/lib/common/server/glsp-mcp-server.js +2 -2
  30. package/lib/common/server/glsp-mcp-server.js.map +1 -1
  31. package/lib/common/server/lru-event-store.js +2 -3
  32. package/lib/common/server/lru-event-store.js.map +1 -1
  33. package/lib/common/server/mcp-diagram-handler-dispatcher.d.ts +20 -4
  34. package/lib/common/server/mcp-diagram-handler-dispatcher.d.ts.map +1 -1
  35. package/lib/common/server/mcp-diagram-handler-dispatcher.js +40 -13
  36. package/lib/common/server/mcp-diagram-handler-dispatcher.js.map +1 -1
  37. package/lib/common/server/mcp-handler-shared.d.ts +1 -2
  38. package/lib/common/server/mcp-handler-shared.d.ts.map +1 -1
  39. package/lib/common/server/mcp-handler-shared.js +1 -1
  40. package/lib/common/server/mcp-handler-shared.js.map +1 -1
  41. package/lib/common/server/mcp-id-alias-service.js +1 -2
  42. package/lib/common/server/mcp-id-alias-service.js.map +1 -1
  43. package/lib/common/server/mcp-input-schemas.d.ts +2 -0
  44. package/lib/common/server/mcp-input-schemas.d.ts.map +1 -1
  45. package/lib/common/server/mcp-input-schemas.js +3 -1
  46. package/lib/common/server/mcp-input-schemas.js.map +1 -1
  47. package/lib/common/server/mcp-log-level-registry.js +10 -10
  48. package/lib/common/server/mcp-log-level-registry.js.map +1 -1
  49. package/lib/common/server/mcp-mime-types.d.ts +1 -1
  50. package/lib/common/server/mcp-mime-types.d.ts.map +1 -1
  51. package/lib/common/server/mcp-options.d.ts +1 -1
  52. package/lib/common/server/mcp-options.d.ts.map +1 -1
  53. package/lib/common/server/mcp-progress-reporter.js +1 -2
  54. package/lib/common/server/mcp-progress-reporter.js.map +1 -1
  55. package/lib/common/server/mcp-resource-handler.d.ts +10 -1
  56. package/lib/common/server/mcp-resource-handler.d.ts.map +1 -1
  57. package/lib/common/server/mcp-resource-handler.js +17 -10
  58. package/lib/common/server/mcp-resource-handler.js.map +1 -1
  59. package/lib/common/server/mcp-tool-handler.d.ts +33 -16
  60. package/lib/common/server/mcp-tool-handler.d.ts.map +1 -1
  61. package/lib/common/server/mcp-tool-handler.js +19 -3
  62. package/lib/common/server/mcp-tool-handler.js.map +1 -1
  63. package/lib/common/tools/handlers/count-elements-mcp-tool-handler.d.ts +2 -1
  64. package/lib/common/tools/handlers/count-elements-mcp-tool-handler.d.ts.map +1 -1
  65. package/lib/common/tools/handlers/count-elements-mcp-tool-handler.js +4 -4
  66. package/lib/common/tools/handlers/count-elements-mcp-tool-handler.js.map +1 -1
  67. package/lib/common/tools/handlers/create-edges-mcp-tool-handler.d.ts +2 -1
  68. package/lib/common/tools/handlers/create-edges-mcp-tool-handler.d.ts.map +1 -1
  69. package/lib/common/tools/handlers/create-edges-mcp-tool-handler.js +14 -8
  70. package/lib/common/tools/handlers/create-edges-mcp-tool-handler.js.map +1 -1
  71. package/lib/common/tools/handlers/create-nodes-mcp-tool-handler.d.ts +2 -1
  72. package/lib/common/tools/handlers/create-nodes-mcp-tool-handler.d.ts.map +1 -1
  73. package/lib/common/tools/handlers/create-nodes-mcp-tool-handler.js +18 -10
  74. package/lib/common/tools/handlers/create-nodes-mcp-tool-handler.js.map +1 -1
  75. package/lib/common/tools/handlers/delete-elements-mcp-tool-handler.d.ts +2 -1
  76. package/lib/common/tools/handlers/delete-elements-mcp-tool-handler.d.ts.map +1 -1
  77. package/lib/common/tools/handlers/delete-elements-mcp-tool-handler.js +3 -2
  78. package/lib/common/tools/handlers/delete-elements-mcp-tool-handler.js.map +1 -1
  79. package/lib/common/tools/handlers/diagram-model-mcp-tool-handler.d.ts +2 -1
  80. package/lib/common/tools/handlers/diagram-model-mcp-tool-handler.d.ts.map +1 -1
  81. package/lib/common/tools/handlers/diagram-model-mcp-tool-handler.js +7 -4
  82. package/lib/common/tools/handlers/diagram-model-mcp-tool-handler.js.map +1 -1
  83. package/lib/common/tools/handlers/element-types-mcp-tool-handler.d.ts +2 -1
  84. package/lib/common/tools/handlers/element-types-mcp-tool-handler.d.ts.map +1 -1
  85. package/lib/common/tools/handlers/element-types-mcp-tool-handler.js +8 -5
  86. package/lib/common/tools/handlers/element-types-mcp-tool-handler.js.map +1 -1
  87. package/lib/common/tools/handlers/get-selection-mcp-tool-handler.d.ts +2 -1
  88. package/lib/common/tools/handlers/get-selection-mcp-tool-handler.d.ts.map +1 -1
  89. package/lib/common/tools/handlers/get-selection-mcp-tool-handler.js +3 -2
  90. package/lib/common/tools/handlers/get-selection-mcp-tool-handler.js.map +1 -1
  91. package/lib/common/tools/handlers/layout-mcp-tool-handler.d.ts +5 -2
  92. package/lib/common/tools/handlers/layout-mcp-tool-handler.d.ts.map +1 -1
  93. package/lib/common/tools/handlers/layout-mcp-tool-handler.js +8 -3
  94. package/lib/common/tools/handlers/layout-mcp-tool-handler.js.map +1 -1
  95. package/lib/common/tools/handlers/modify-edges-mcp-tool-handler.d.ts +2 -1
  96. package/lib/common/tools/handlers/modify-edges-mcp-tool-handler.d.ts.map +1 -1
  97. package/lib/common/tools/handlers/modify-edges-mcp-tool-handler.js +13 -9
  98. package/lib/common/tools/handlers/modify-edges-mcp-tool-handler.js.map +1 -1
  99. package/lib/common/tools/handlers/modify-nodes-mcp-tool-handler.d.ts +4 -1
  100. package/lib/common/tools/handlers/modify-nodes-mcp-tool-handler.d.ts.map +1 -1
  101. package/lib/common/tools/handlers/modify-nodes-mcp-tool-handler.js +57 -25
  102. package/lib/common/tools/handlers/modify-nodes-mcp-tool-handler.js.map +1 -1
  103. package/lib/common/tools/handlers/query-elements-mcp-tool-handler.d.ts +2 -1
  104. package/lib/common/tools/handlers/query-elements-mcp-tool-handler.d.ts.map +1 -1
  105. package/lib/common/tools/handlers/query-elements-mcp-tool-handler.js +7 -7
  106. package/lib/common/tools/handlers/query-elements-mcp-tool-handler.js.map +1 -1
  107. package/lib/common/tools/handlers/redo-mcp-tool-handler.d.ts +2 -1
  108. package/lib/common/tools/handlers/redo-mcp-tool-handler.d.ts.map +1 -1
  109. package/lib/common/tools/handlers/redo-mcp-tool-handler.js +10 -5
  110. package/lib/common/tools/handlers/redo-mcp-tool-handler.js.map +1 -1
  111. package/lib/common/tools/handlers/save-model-mcp-tool-handler.d.ts +2 -1
  112. package/lib/common/tools/handlers/save-model-mcp-tool-handler.d.ts.map +1 -1
  113. package/lib/common/tools/handlers/save-model-mcp-tool-handler.js +6 -3
  114. package/lib/common/tools/handlers/save-model-mcp-tool-handler.js.map +1 -1
  115. package/lib/common/tools/handlers/session-info-mcp-tool-handler.d.ts +2 -1
  116. package/lib/common/tools/handlers/session-info-mcp-tool-handler.d.ts.map +1 -1
  117. package/lib/common/tools/handlers/session-info-mcp-tool-handler.js +4 -4
  118. package/lib/common/tools/handlers/session-info-mcp-tool-handler.js.map +1 -1
  119. package/lib/common/tools/handlers/set-selection-mcp-tool-handler.d.ts +2 -1
  120. package/lib/common/tools/handlers/set-selection-mcp-tool-handler.d.ts.map +1 -1
  121. package/lib/common/tools/handlers/set-selection-mcp-tool-handler.js +10 -7
  122. package/lib/common/tools/handlers/set-selection-mcp-tool-handler.js.map +1 -1
  123. package/lib/common/tools/handlers/set-view-mcp-tool-handler.d.ts +2 -1
  124. package/lib/common/tools/handlers/set-view-mcp-tool-handler.d.ts.map +1 -1
  125. package/lib/common/tools/handlers/set-view-mcp-tool-handler.js +6 -5
  126. package/lib/common/tools/handlers/set-view-mcp-tool-handler.js.map +1 -1
  127. package/lib/common/tools/handlers/undo-mcp-tool-handler.d.ts +2 -1
  128. package/lib/common/tools/handlers/undo-mcp-tool-handler.d.ts.map +1 -1
  129. package/lib/common/tools/handlers/undo-mcp-tool-handler.js +10 -5
  130. package/lib/common/tools/handlers/undo-mcp-tool-handler.js.map +1 -1
  131. package/lib/common/tools/handlers/validate-diagram-mcp-tool-handler.d.ts +2 -1
  132. package/lib/common/tools/handlers/validate-diagram-mcp-tool-handler.d.ts.map +1 -1
  133. package/lib/common/tools/handlers/validate-diagram-mcp-tool-handler.js +0 -0
  134. package/lib/common/tools/handlers/validate-diagram-mcp-tool-handler.js.map +1 -1
  135. package/lib/common/util/markdown-util.js +1 -2
  136. package/lib/common/util/markdown-util.js.map +1 -1
  137. package/lib/node/modules/node-mcp-server-module.js +8 -8
  138. package/lib/node/modules/node-mcp-server-module.js.map +1 -1
  139. package/package.json +17 -17
  140. package/src/common/modules/abstract-mcp-server-module.ts +3 -3
  141. package/src/common/modules/mcp-diagram-module.ts +1 -1
  142. package/src/common/resources/services/element-types-provider.ts +2 -1
  143. package/src/common/resources/services/mcp-model-serializer.ts +1 -2
  144. package/src/common/server/abstract-mcp-server-launcher.ts +3 -3
  145. package/src/common/server/glsp-mcp-server.ts +2 -1
  146. package/src/common/server/mcp-diagram-handler-dispatcher.ts +56 -5
  147. package/src/common/server/mcp-handler-shared.ts +2 -4
  148. package/src/common/server/mcp-input-schemas.ts +3 -0
  149. package/src/common/server/mcp-mime-types.ts +1 -1
  150. package/src/common/server/mcp-options.ts +1 -1
  151. package/src/common/server/mcp-resource-handler.ts +14 -2
  152. package/src/common/server/mcp-tool-handler.ts +47 -19
  153. package/src/common/tools/handlers/count-elements-mcp-tool-handler.ts +2 -1
  154. package/src/common/tools/handlers/create-edges-mcp-tool-handler.ts +20 -8
  155. package/src/common/tools/handlers/create-nodes-mcp-tool-handler.ts +19 -8
  156. package/src/common/tools/handlers/delete-elements-mcp-tool-handler.ts +2 -1
  157. package/src/common/tools/handlers/diagram-model-mcp-tool-handler.ts +6 -3
  158. package/src/common/tools/handlers/element-types-mcp-tool-handler.ts +6 -3
  159. package/src/common/tools/handlers/get-selection-mcp-tool-handler.ts +2 -1
  160. package/src/common/tools/handlers/layout-mcp-tool-handler.ts +8 -2
  161. package/src/common/tools/handlers/modify-edges-mcp-tool-handler.ts +14 -8
  162. package/src/common/tools/handlers/modify-nodes-mcp-tool-handler.ts +63 -25
  163. package/src/common/tools/handlers/query-elements-mcp-tool-handler.ts +2 -1
  164. package/src/common/tools/handlers/redo-mcp-tool-handler.ts +9 -4
  165. package/src/common/tools/handlers/save-model-mcp-tool-handler.ts +5 -2
  166. package/src/common/tools/handlers/session-info-mcp-tool-handler.ts +2 -1
  167. package/src/common/tools/handlers/set-selection-mcp-tool-handler.ts +8 -5
  168. package/src/common/tools/handlers/set-view-mcp-tool-handler.ts +3 -2
  169. package/src/common/tools/handlers/undo-mcp-tool-handler.ts +9 -4
  170. package/src/common/tools/handlers/validate-diagram-mcp-tool-handler.ts +0 -0
  171. package/src/common/server/abstract-mcp-server-launcher.spec.ts +0 -458
  172. package/src/common/server/glsp-mcp-server.spec.ts +0 -73
  173. package/src/common/server/lru-event-store.spec.ts +0 -121
  174. package/src/common/server/mcp-diagram-handler-dispatcher.spec.ts +0 -231
  175. package/src/common/server/mcp-handler-shared.spec.ts +0 -53
  176. package/src/common/server/mcp-id-alias-service.spec.ts +0 -106
  177. package/src/common/server/mcp-log-level-registry.spec.ts +0 -75
  178. package/src/common/server/mcp-logger.spec.ts +0 -235
  179. package/src/common/server/mcp-progress-reporter.spec.ts +0 -103
  180. package/src/common/server/mcp-tool-handler.spec.ts +0 -182
  181. package/src/common/tools/handlers/count-elements-mcp-tool-handler.spec.ts +0 -101
  182. package/src/common/tools/handlers/create-edges-mcp-tool-handler.spec.ts +0 -198
  183. package/src/common/tools/handlers/create-nodes-mcp-tool-handler.spec.ts +0 -199
  184. package/src/common/tools/handlers/query-elements-mcp-tool-handler.spec.ts +0 -212
  185. package/src/common/tools/handlers/session-info-mcp-tool-handler.spec.ts +0 -152
  186. package/src/common/tools/handlers/set-selection-mcp-tool-handler.spec.ts +0 -120
  187. package/src/common/tools/tool-annotations.spec.ts +0 -141
  188. package/src/node/server/mcp-http-transport-e2e.spec.ts +0 -297
  189. package/src/node/server/node-mcp-server-launcher.spec.ts +0 -184
  190. package/src/node/server/raw-http.spec.ts +0 -59
@@ -32,10 +32,12 @@ const z = require("zod/v4");
32
32
  const mcp_input_schemas_1 = require("../../server/mcp-input-schemas");
33
33
  const mcp_tool_handler_1 = require("../../server/mcp-tool-handler");
34
34
  exports.SetSelectionInputSchema = mcp_input_schemas_1.McpDiagramScopedInputSchema.extend({
35
- selectedElementIds: mcp_input_schemas_1.elementIds
35
+ selectedElementIds: mcp_input_schemas_1.elementIdsAllowingEmpty
36
36
  .optional()
37
- .describe('Element IDs to select. Pass an empty array (or omit + set `clear: true`) to clear the selection.'),
38
- deselectedElementIds: mcp_input_schemas_1.elementIds.optional().describe('Element IDs to remove from the selection. Used to subtract without replacing.'),
37
+ .describe('Element IDs to select. Pass an empty array (or omit the field) together with `clear: true` to clear the selection.'),
38
+ deselectedElementIds: mcp_input_schemas_1.elementIdsAllowingEmpty
39
+ .optional()
40
+ .describe('Element IDs to remove from the selection. Used to subtract without replacing.'),
39
41
  clear: z
40
42
  .boolean()
41
43
  .optional()
@@ -54,7 +56,7 @@ exports.SetSelectionOutputSchema = z.object({
54
56
  * Read-write hint is honest: the viewport selection state is part of the client environment
55
57
  * even though the underlying GModel is unaffected.
56
58
  */
57
- let SetSelectionMcpToolHandler = SetSelectionMcpToolHandler_1 = class SetSelectionMcpToolHandler extends mcp_tool_handler_1.AbstractMcpDiagramToolHandler {
59
+ let SetSelectionMcpToolHandler = class SetSelectionMcpToolHandler extends mcp_tool_handler_1.AbstractMcpDiagramToolHandler {
58
60
  constructor() {
59
61
  super(...arguments);
60
62
  this.name = SetSelectionMcpToolHandler_1.NAME;
@@ -66,6 +68,8 @@ let SetSelectionMcpToolHandler = SetSelectionMcpToolHandler_1 = class SetSelecti
66
68
  this.outputSchema = exports.SetSelectionOutputSchema;
67
69
  this.readOnlyHint = false;
68
70
  }
71
+ static { SetSelectionMcpToolHandler_1 = this; }
72
+ static { this.NAME = 'set-selection'; }
69
73
  async createResult({ selectedElementIds, deselectedElementIds, clear }) {
70
74
  const resolvedSelected = this.resolveExistingIds(selectedElementIds);
71
75
  const resolvedDeselected = this.resolveExistingIds(deselectedElementIds);
@@ -75,10 +79,10 @@ let SetSelectionMcpToolHandler = SetSelectionMcpToolHandler_1 = class SetSelecti
75
79
  if (resolvedSelected.length > 0 || resolvedDeselected.length > 0) {
76
80
  await this.actionDispatcher.dispatch(server_1.SelectAction.create({ selectedElementsIDs: resolvedSelected, deselectedElementsIDs: resolvedDeselected }));
77
81
  }
78
- return this.success(this.summarize(resolvedSelected, resolvedDeselected, clear !== null && clear !== void 0 ? clear : false), {
82
+ return this.success(this.summarize(resolvedSelected, resolvedDeselected, clear ?? false), {
79
83
  selectedElementIds: this.encodeIds(resolvedSelected),
80
84
  deselectedElementIds: this.encodeIds(resolvedDeselected),
81
- cleared: clear !== null && clear !== void 0 ? clear : false
85
+ cleared: clear ?? false
82
86
  });
83
87
  }
84
88
  summarize(selected, deselected, cleared) {
@@ -93,7 +97,6 @@ let SetSelectionMcpToolHandler = SetSelectionMcpToolHandler_1 = class SetSelecti
93
97
  }
94
98
  };
95
99
  exports.SetSelectionMcpToolHandler = SetSelectionMcpToolHandler;
96
- SetSelectionMcpToolHandler.NAME = 'set-selection';
97
100
  __decorate([
98
101
  (0, inversify_1.inject)(server_1.ActionDispatcher),
99
102
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"set-selection-mcp-tool-handler.js","sourceRoot":"","sources":["../../../../src/common/tools/handlers/set-selection-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set-selection-mcp-tool-handler.js","sourceRoot":"","sources":["../../../../src/common/tools/handlers/set-selection-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,8 @@ export declare const SetViewOutputSchema: z.ZodObject<{
51
51
  zoom: z.ZodNumber;
52
52
  }, z.core.$strip>>;
53
53
  }, z.core.$strip>;
54
- export declare class SetViewMcpToolHandler extends AbstractMcpDiagramToolHandler<SetViewInput> {
54
+ export type SetViewOutput = z.infer<typeof SetViewOutputSchema>;
55
+ export declare class SetViewMcpToolHandler extends AbstractMcpDiagramToolHandler<SetViewInput, SetViewOutput> {
55
56
  /** Timeout (in ms) for the `GetViewportAction` round-trip used by `set-viewport` partial updates. Override via subclass + rebind. */
56
57
  protected readonly viewportQueryTimeoutMs: number;
57
58
  static readonly NAME = "set-view";
@@ -1 +1 @@
1
- {"version":3,"file":"set-view-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../../src/common/tools/handlers/set-view-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EACH,MAAM,EACN,gBAAgB,EAKhB,KAAK,EAER,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAgB,aAAa,EAAuB,MAAM,iCAAiC,CAAC;AAEnG,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE9E,eAAO,MAAM,gBAAgB,oFAAqF,CAAC;AACnH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;iBAsB7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAe9B,CAAC;AAEH,qBACa,qBAAsB,SAAQ,6BAA6B,CAAC,YAAY,CAAC;IAClF,qIAAqI;IACrI,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAQ;IAEzD,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,QAAQ,CAAC,IAAI,cAA8B;IAC3C,SAAkB,KAAK,0BAA0B;IACjD,QAAQ,CAAC,WAAW,SAO6F;IACjH,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;sBAAsB;IAC1C,SAAkB,YAAY;;;;;;;;;;;;;;;sBAAuB;IACrD,oHAAoH;IACpH,SAAkB,YAAY,SAAS;IAEb,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;cAEvD,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAUxG;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM;IAW3G;;;;;OAKG;cACa,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;CAsBrH"}
1
+ {"version":3,"file":"set-view-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../../src/common/tools/handlers/set-view-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EACH,MAAM,EACN,gBAAgB,EAKhB,KAAK,EAER,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAgB,aAAa,EAAuB,MAAM,iCAAiC,CAAC;AAEnG,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE9E,eAAO,MAAM,gBAAgB,oFAAqF,CAAC;AACnH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;iBAsB7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAe9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,qBACa,qBAAsB,SAAQ,6BAA6B,CAAC,YAAY,EAAE,aAAa,CAAC;IACjG,qIAAqI;IACrI,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAQ;IAEzD,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,QAAQ,CAAC,IAAI,cAA8B;IAC3C,SAAkB,KAAK,0BAA0B;IACjD,QAAQ,CAAC,WAAW,SAO6F;IACjH,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;sBAAsB;IAC1C,SAAkB,YAAY;;;;;;;;;;;;;;;sBAAuB;IACrD,oHAAoH;IACpH,SAAkB,YAAY,SAAS;IAEb,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;cAEvD,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAUxG;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM;IAW3G;;;;;OAKG;cACa,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;CAsBrH"}
@@ -64,7 +64,7 @@ exports.SetViewOutputSchema = z.object({
64
64
  .optional()
65
65
  .describe("Resolved final viewport when `action: 'set-viewport'` was applied (current values merged with the supplied overrides).")
66
66
  });
67
- let SetViewMcpToolHandler = SetViewMcpToolHandler_1 = class SetViewMcpToolHandler extends mcp_tool_handler_1.AbstractMcpDiagramToolHandler {
67
+ let SetViewMcpToolHandler = class SetViewMcpToolHandler extends mcp_tool_handler_1.AbstractMcpDiagramToolHandler {
68
68
  constructor() {
69
69
  super(...arguments);
70
70
  /** Timeout (in ms) for the `GetViewportAction` round-trip used by `set-viewport` partial updates. Override via subclass + rebind. */
@@ -83,11 +83,13 @@ let SetViewMcpToolHandler = SetViewMcpToolHandler_1 = class SetViewMcpToolHandle
83
83
  /** Viewport IS client-side environment; dispatching mutates it, so the read-base default doesn't honestly apply. */
84
84
  this.readOnlyHint = false;
85
85
  }
86
+ static { SetViewMcpToolHandler_1 = this; }
87
+ static { this.NAME = 'set-view'; }
86
88
  async createResult({ action, elementIds, zoom, scroll }) {
87
89
  if (action === 'set-viewport') {
88
90
  return this.applyExplicitViewport(zoom, scroll);
89
91
  }
90
- const resolvedIds = elementIds ? elementIds.map(id => this.aliasService.lookup(id)) : this.modelState.index.allIds();
92
+ const resolvedIds = elementIds ? this.resolveExistingIds(elementIds) : this.modelState.index.allIds();
91
93
  const dispatchAction = this.buildIntentAction(action, resolvedIds);
92
94
  await this.actionDispatcher.dispatch(dispatchAction);
93
95
  return this.success('Viewport successfully changed', { action, targetIds: this.encodeIds(resolvedIds) });
@@ -122,8 +124,8 @@ let SetViewMcpToolHandler = SetViewMcpToolHandler_1 = class SetViewMcpToolHandle
122
124
  const current = await (0, mcp_handler_shared_1.requestActionOrFail)(this.actionDispatcher, server_1.GetViewportAction.create(), this.viewportQueryTimeoutMs, this.name);
123
125
  // Some clients respond before layout completes — fall back to origin / 1× when fields are null.
124
126
  const newViewport = {
125
- scroll: scroll !== null && scroll !== void 0 ? scroll : (server_1.Point.isValid(current.viewport.scroll) ? current.viewport.scroll : server_1.Point.ORIGIN),
126
- zoom: zoom !== null && zoom !== void 0 ? zoom : (Number.isFinite(current.viewport.zoom) ? current.viewport.zoom : 1)
127
+ scroll: scroll ?? (server_1.Point.isValid(current.viewport.scroll) ? current.viewport.scroll : server_1.Point.ORIGIN),
128
+ zoom: zoom ?? (Number.isFinite(current.viewport.zoom) ? current.viewport.zoom : 1)
127
129
  };
128
130
  await this.actionDispatcher.dispatch(server_1.SetViewportAction.create(rootId, newViewport, { animate: true }));
129
131
  return this.success(`Viewport set to scroll=(${newViewport.scroll.x}, ${newViewport.scroll.y}) zoom=${newViewport.zoom}`, {
@@ -133,7 +135,6 @@ let SetViewMcpToolHandler = SetViewMcpToolHandler_1 = class SetViewMcpToolHandle
133
135
  }
134
136
  };
135
137
  exports.SetViewMcpToolHandler = SetViewMcpToolHandler;
136
- SetViewMcpToolHandler.NAME = 'set-view';
137
138
  __decorate([
138
139
  (0, inversify_1.inject)(server_1.ActionDispatcher),
139
140
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"set-view-mcp-tool-handler.js","sourceRoot":"","sources":["../../../../src/common/tools/handlers/set-view-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set-view-mcp-tool-handler.js","sourceRoot":"","sources":["../../../../src/common/tools/handlers/set-view-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
@@ -25,10 +25,11 @@ export type UndoInput = z.infer<typeof UndoInputSchema>;
25
25
  export declare const UndoOutputSchema: z.ZodObject<{
26
26
  commandsUndone: z.ZodNumber;
27
27
  }, z.core.$strip>;
28
+ export type UndoOutput = z.infer<typeof UndoOutputSchema>;
28
29
  /**
29
30
  * Undo a given number of the most recent actions on the command stack.
30
31
  */
31
- export declare class UndoMcpToolHandler extends OperationMcpDiagramToolHandler<UndoInput> {
32
+ export declare class UndoMcpToolHandler extends OperationMcpDiagramToolHandler<UndoInput, UndoOutput> {
32
33
  static readonly NAME = "undo";
33
34
  readonly name = "undo";
34
35
  readonly title = "Undo Diagram Commands";
@@ -1 +1 @@
1
- {"version":3,"file":"undo-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../../src/common/tools/handlers/undo-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAgB,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAE/E,eAAO,MAAM,eAAe;;;iBAE1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,gBAAgB;;iBAE3B,CAAC;AAEH;;GAEG;AACH,qBACa,kBAAmB,SAAQ,8BAA8B,CAAC,SAAS,CAAC;IAC7E,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,QAAQ,CAAC,IAAI,UAA2B;IACxC,SAAkB,KAAK,2BAA2B;IAClD,QAAQ,CAAC,WAAW,SAK2E;IAC/F,QAAQ,CAAC,WAAW;;;sBAAmB;IACvC,SAAkB,YAAY;;sBAAoB;IAE5B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;cAE3C,YAAY,CAAC,EAAE,cAAc,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;CAWtF"}
1
+ {"version":3,"file":"undo-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../../src/common/tools/handlers/undo-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAgB,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAE/E,eAAO,MAAM,eAAe;;;iBAE1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,gBAAgB;;iBAE3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,qBACa,kBAAmB,SAAQ,8BAA8B,CAAC,SAAS,EAAE,UAAU,CAAC;IACzF,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,QAAQ,CAAC,IAAI,UAA2B;IACxC,SAAkB,KAAK,2BAA2B;IAClD,QAAQ,CAAC,WAAW,SAK2E;IAC/F,QAAQ,CAAC,WAAW;;;sBAAmB;IACvC,SAAkB,YAAY;;sBAAoB;IAE5B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;cAE3C,YAAY,CAAC,EAAE,cAAc,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;CAetF"}
@@ -33,7 +33,7 @@ const mcp_handler_shared_1 = require("../../server/mcp-handler-shared");
33
33
  const mcp_input_schemas_1 = require("../../server/mcp-input-schemas");
34
34
  const mcp_tool_handler_1 = require("../../server/mcp-tool-handler");
35
35
  exports.UndoInputSchema = mcp_input_schemas_1.McpDiagramScopedInputSchema.extend({
36
- commandsToUndo: z.number().min(1).default(1).describe('Number of commands to undo. Defaults to 1 (most recent command).')
36
+ commandsToUndo: z.number().int().min(1).default(1).describe('Number of commands to undo. Defaults to 1 (most recent command).')
37
37
  });
38
38
  exports.UndoOutputSchema = z.object({
39
39
  commandsUndone: z.number().int().describe('Number of commands actually reverted.')
@@ -41,7 +41,7 @@ exports.UndoOutputSchema = z.object({
41
41
  /**
42
42
  * Undo a given number of the most recent actions on the command stack.
43
43
  */
44
- let UndoMcpToolHandler = UndoMcpToolHandler_1 = class UndoMcpToolHandler extends mcp_tool_handler_1.OperationMcpDiagramToolHandler {
44
+ let UndoMcpToolHandler = class UndoMcpToolHandler extends mcp_tool_handler_1.OperationMcpDiagramToolHandler {
45
45
  constructor() {
46
46
  super(...arguments);
47
47
  this.name = UndoMcpToolHandler_1.NAME;
@@ -54,18 +54,23 @@ let UndoMcpToolHandler = UndoMcpToolHandler_1 = class UndoMcpToolHandler extends
54
54
  this.inputSchema = exports.UndoInputSchema;
55
55
  this.outputSchema = exports.UndoOutputSchema;
56
56
  }
57
+ static { UndoMcpToolHandler_1 = this; }
58
+ static { this.NAME = 'undo'; }
57
59
  async createResult({ commandsToUndo }) {
58
60
  if (!this.commandStack.canUndo()) {
59
61
  throw new mcp_handler_shared_1.McpToolError('Nothing to undo (undo stack is empty; the model is at its initial state for this session).');
60
62
  }
61
- for (let i = 0; i < commandsToUndo; i++) {
63
+ // The stack may hold fewer commands than requested.
64
+ let commandsUndone = 0;
65
+ while (commandsUndone < commandsToUndo && this.commandStack.canUndo()) {
62
66
  await this.actionDispatcher.dispatch(server_1.UndoAction.create());
67
+ commandsUndone++;
63
68
  }
64
- return this.success('Undo successful', { commandsUndone: commandsToUndo });
69
+ const shortfall = commandsUndone < commandsToUndo ? ` (${commandsToUndo} requested; the undo stack held no more commands)` : '';
70
+ return this.success(`Undo successful: reverted ${commandsUndone} command(s)${shortfall}`, { commandsUndone });
65
71
  }
66
72
  };
67
73
  exports.UndoMcpToolHandler = UndoMcpToolHandler;
68
- UndoMcpToolHandler.NAME = 'undo';
69
74
  __decorate([
70
75
  (0, inversify_1.inject)(server_1.CommandStack),
71
76
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"undo-mcp-tool-handler.js","sourceRoot":"","sources":["../../../../src/common/tools/handlers/undo-mcp-tool-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;;AAElF,iDAAgE;AAChE,yCAA+C;AAC/C,4BAA4B;AAC5B,wEAA8E;AAC9E,sEAA6E;AAC7E,oEAA+E;AAElE,QAAA,eAAe,GAAG,+CAA2B,CAAC,MAAM,CAAC;IAC9D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kEAAkE,CAAC;CAC5H,CAAC,CAAC;AAGU,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACrF,CAAC,CAAC;AAEH;;GAEG;AAEI,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,iDAAyC;IAA1E;;QAEM,SAAI,GAAG,oBAAkB,CAAC,IAAI,CAAC;QACtB,UAAK,GAAG,uBAAuB,CAAC;QACzC,gBAAW,GAChB,uDAAuD;YACvD,kGAAkG;YAClG,gIAAgI;YAChI,oGAAoG;YACpG,0FAA0F,CAAC;QACtF,gBAAW,GAAG,uBAAe,CAAC;QACrB,iBAAY,GAAG,wBAAgB,CAAC;IAetD,CAAC;IAXa,KAAK,CAAC,YAAY,CAAC,EAAE,cAAc,EAAa;QACtD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,iCAAY,CAAC,4FAA4F,CAAC,CAAC;QACzH,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;;AAzBQ,gDAAkB;AACX,uBAAI,GAAG,MAAM,AAAT,CAAU;AAYE;IAA/B,IAAA,kBAAM,EAAC,qBAAY,CAAC;;wDAAsC;6BAblD,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CA0B9B"}
1
+ {"version":3,"file":"undo-mcp-tool-handler.js","sourceRoot":"","sources":["../../../../src/common/tools/handlers/undo-mcp-tool-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;;AAElF,iDAAgE;AAChE,yCAA+C;AAC/C,4BAA4B;AAC5B,wEAA8E;AAC9E,sEAA6E;AAC7E,oEAA+E;AAElE,QAAA,eAAe,GAAG,+CAA2B,CAAC,MAAM,CAAC;IAC9D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kEAAkE,CAAC;CAClI,CAAC,CAAC;AAGU,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACrF,CAAC,CAAC;AAGH;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,iDAAqD;IAAtF;;QAEM,SAAI,GAAG,oBAAkB,CAAC,IAAI,CAAC;QACtB,UAAK,GAAG,uBAAuB,CAAC;QACzC,gBAAW,GAChB,uDAAuD;YACvD,kGAAkG;YAClG,gIAAgI;YAChI,oGAAoG;YACpG,0FAA0F,CAAC;QACtF,gBAAW,GAAG,uBAAe,CAAC;QACrB,iBAAY,GAAG,wBAAgB,CAAC;IAmBtD,CAAC;;aA7BmB,SAAI,GAAG,MAAM,AAAT,CAAU;IAcpB,KAAK,CAAC,YAAY,CAAC,EAAE,cAAc,EAAa;QACtD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,iCAAY,CAAC,4FAA4F,CAAC,CAAC;QACzH,CAAC;QAED,oDAAoD;QACpD,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,OAAO,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,cAAc,EAAE,CAAC;QACrB,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,mDAAmD,CAAC,CAAC,CAAC,EAAE,CAAC;QAChI,OAAO,IAAI,CAAC,OAAO,CAAC,6BAA6B,cAAc,cAAc,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAClH,CAAC;;AA7BQ,gDAAkB;AAaK;IAA/B,IAAA,kBAAM,EAAC,qBAAY,CAAC;;wDAAsC;6BAblD,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CA8B9B"}
@@ -34,7 +34,8 @@ export declare const ValidateDiagramOutputSchema: z.ZodObject<{
34
34
  elementId: z.ZodString;
35
35
  }, z.core.$strip>>;
36
36
  }, z.core.$strip>;
37
- export declare class ValidateDiagramMcpToolHandler extends AbstractMcpDiagramToolHandler<ValidateDiagramInput> {
37
+ export type ValidateDiagramOutput = z.infer<typeof ValidateDiagramOutputSchema>;
38
+ export declare class ValidateDiagramMcpToolHandler extends AbstractMcpDiagramToolHandler<ValidateDiagramInput, ValidateDiagramOutput> {
38
39
  static readonly NAME = "validate-diagram";
39
40
  readonly name = "validate-diagram";
40
41
  readonly title = "Validate Diagram";
@@ -1 +1 @@
1
- {"version":3,"file":"validate-diagram-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../../src/common/tools/handlers/validate-diagram-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAiB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAgB,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAG9E,eAAO,MAAM,0BAA0B;;;;;;;iBAWrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,2BAA2B;;;;;;;iBAStC,CAAC;AAEH,qBACa,6BAA8B,SAAQ,6BAA6B,CAAC,oBAAoB,CAAC;IAClG,MAAM,CAAC,QAAQ,CAAC,IAAI,sBAAsB;IAC1C,QAAQ,CAAC,IAAI,sBAAsC;IACnD,SAAkB,KAAK,sBAAsB;IAC7C,QAAQ,CAAC,WAAW,SAM4G;IAChI,QAAQ,CAAC,WAAW;;;;;;;sBAA8B;IAClD,SAAkB,YAAY;;;;;;;sBAA+B;IAEzB,SAAS,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;cAEzD,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBlG,SAAS,CAAC,kBAAkB,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;CAWrI"}
1
+ {"version":3,"file":"validate-diagram-mcp-tool-handler.d.ts","sourceRoot":"","sources":["../../../../src/common/tools/handlers/validate-diagram-mcp-tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAiB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAgB,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAG9E,eAAO,MAAM,0BAA0B;;;;;;;iBAWrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,2BAA2B;;;;;;;iBAStC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,qBACa,6BAA8B,SAAQ,6BAA6B,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IACzH,MAAM,CAAC,QAAQ,CAAC,IAAI,sBAAsB;IAC1C,QAAQ,CAAC,IAAI,sBAAsC;IACnD,SAAkB,KAAK,sBAAsB;IAC7C,QAAQ,CAAC,WAAW,SAM4G;IAChI,QAAQ,CAAC,WAAW;;;;;;;sBAA8B;IAClD,SAAkB,YAAY;;;;;;;sBAA+B;IAEzB,SAAS,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;cAEzD,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBlG,SAAS,CAAC,kBAAkB,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;CAWrI"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-diagram-mcp-tool-handler.js","sourceRoot":"","sources":["../../../../src/common/tools/handlers/validate-diagram-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-diagram-mcp-tool-handler.js","sourceRoot":"","sources":["../../../../src/common/tools/handlers/validate-diagram-mcp-tool-handler.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,7 @@ function objectArrayToMarkdownTable(data) {
29
29
  const dataRows = data.map((obj) => {
30
30
  const rowString = headers
31
31
  .map(header => {
32
- var _a;
33
- const value = (_a = obj[header]) !== null && _a !== void 0 ? _a : '';
32
+ const value = obj[header] ?? '';
34
33
  if (typeof value === 'object') {
35
34
  return JSON.stringify(value).replace(/["{}|]/g, '');
36
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-util.js","sourceRoot":"","sources":["../../../src/common/util/markdown-util.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;AAKlF,gEAwBC;AA3BD;;GAEG;AACH,SAAgB,0BAA0B,CAAC,IAA2B;IAClE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC/C,MAAM,YAAY,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAwB,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,OAAO;aACpB,GAAG,CAAC,MAAM,CAAC,EAAE;;YACV,MAAM,KAAK,GAAG,MAAA,GAAG,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,+EAA+E;YAC/E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC;aACD,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,KAAK,SAAS,IAAI,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"markdown-util.js","sourceRoot":"","sources":["../../../src/common/util/markdown-util.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;AAKlF,gEAwBC;AA3BD;;GAEG;AACH,SAAgB,0BAA0B,CAAC,IAA2B;IAClE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC/C,MAAM,YAAY,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAwB,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,OAAO;aACpB,GAAG,CAAC,MAAM,CAAC,EAAE;YACV,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,+EAA+E;YAC/E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC;aACD,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,KAAK,SAAS,IAAI,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC"}
@@ -30,6 +30,14 @@ const node_mcp_request_context_1 = require("../server/node-mcp-request-context")
30
30
  * experimental status.
31
31
  */
32
32
  class NodeMcpServerModule extends abstract_mcp_server_module_1.AbstractMcpServerModule {
33
+ static { this.DEFAULT_OPTIONS = {
34
+ ...abstract_mcp_server_module_1.DEFAULT_MCP_OPTIONS,
35
+ host: '127.0.0.1',
36
+ allowedHosts: ['127.0.0.1', 'localhost']
37
+ // `allowedOrigins` deliberately undefined: accept absent Origin (typical for desktop-IDE
38
+ // MCP clients) and rely on Host validation to gate DNS-rebinding. Adopters whose
39
+ // deployment is browser-fronted set this explicitly to their frontend's origin.
40
+ }; }
33
41
  constructor(overrides = {}) {
34
42
  super({ ...NodeMcpServerModule.DEFAULT_OPTIONS, ...overrides });
35
43
  }
@@ -41,12 +49,4 @@ class NodeMcpServerModule extends abstract_mcp_server_module_1.AbstractMcpServer
41
49
  }
42
50
  }
43
51
  exports.NodeMcpServerModule = NodeMcpServerModule;
44
- NodeMcpServerModule.DEFAULT_OPTIONS = {
45
- ...abstract_mcp_server_module_1.DEFAULT_MCP_OPTIONS,
46
- host: '127.0.0.1',
47
- allowedHosts: ['127.0.0.1', 'localhost']
48
- // `allowedOrigins` deliberately undefined: accept absent Origin (typical for desktop-IDE
49
- // MCP clients) and rely on Host validation to gate DNS-rebinding. Adopters whose
50
- // deployment is browser-fronted set this explicitly to their frontend's origin.
51
- };
52
52
  //# sourceMappingURL=node-mcp-server-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-mcp-server-module.js","sourceRoot":"","sources":["../../../src/node/modules/node-mcp-server-module.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAGlF,gGAA+G;AAI/G,iFAA2E;AAC3E,iFAA2E;AAE3E;;;;;;;;;GASG;AACH,MAAa,mBAAoB,SAAQ,oDAAuB;IAU5D,YAAY,YAA+B,EAAE;QACzC,KAAK,CAAC,EAAE,GAAG,mBAAmB,CAAC,eAAe,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAEkB,qBAAqB;QACpC,OAAO,gDAAqB,CAAC;IACjC,CAAC;IAEkB,qBAAqB;QACpC,OAAO,gDAAqB,CAAC;IACjC,CAAC;;AApBL,kDAqBC;AApBmB,mCAAe,GAAsB;IACjD,GAAG,gDAAmB;IACtB,IAAI,EAAE,WAAW;IACjB,YAAY,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;IACxC,yFAAyF;IACzF,iFAAiF;IACjF,gFAAgF;CACnF,CAAC"}
1
+ {"version":3,"file":"node-mcp-server-module.js","sourceRoot":"","sources":["../../../src/node/modules/node-mcp-server-module.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAGlF,gGAA+G;AAI/G,iFAA2E;AAC3E,iFAA2E;AAE3E;;;;;;;;;GASG;AACH,MAAa,mBAAoB,SAAQ,oDAAuB;aAC5C,oBAAe,GAAsB;QACjD,GAAG,gDAAmB;QACtB,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;QACxC,yFAAyF;QACzF,iFAAiF;QACjF,gFAAgF;KACnF,CAAC;IAEF,YAAY,YAA+B,EAAE;QACzC,KAAK,CAAC,EAAE,GAAG,mBAAmB,CAAC,eAAe,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAEkB,qBAAqB;QACpC,OAAO,gDAAqB,CAAC;IACjC,CAAC;IAEkB,qBAAqB;QACpC,OAAO,gDAAqB,CAAC;IACjC,CAAC;;AApBL,kDAqBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/server-mcp",
3
- "version": "2.8.0-next.1+ab013b0",
3
+ "version": "2.8.0-next.12",
4
4
  "description": "Model Context Protocol (MCP) server for the GLSP TypeScript server — runs on Node, browser, and Fetch-API runtimes",
5
5
  "keywords": [
6
6
  "eclipse",
@@ -42,28 +42,28 @@
42
42
  "browser.js",
43
43
  "browser.d.ts",
44
44
  "common.js",
45
- "common.d.ts"
45
+ "common.d.ts",
46
+ "!**/*.spec.ts",
47
+ "!**/*.spec.tsx",
48
+ "!**/test/**"
46
49
  ],
47
- "scripts": {
48
- "build": "tsc -b",
49
- "clean": "rimraf lib *.tsbuildinfo coverage .nyc_output",
50
- "generate:index": "glsp generateIndex src/browser src/common src/node -f -s",
51
- "lint": "eslint --ext .ts,.tsx ./src",
52
- "test": "mocha --config ../../.mocharc \"./src/**/*.spec.?(ts|tsx)\"",
53
- "test:ci": "yarn test --reporter mocha-ctrf-json-reporter",
54
- "test:coverage": "nyc yarn test",
55
- "watch": "tsc -w"
56
- },
57
50
  "dependencies": {
58
- "@eclipse-glsp/server": "2.8.0-next.1+ab013b0",
59
51
  "@hono/node-server": "^1.19.9",
60
- "@modelcontextprotocol/sdk": "^1.29.0"
52
+ "@modelcontextprotocol/sdk": "^1.29.0",
53
+ "zod": "^4.0.0",
54
+ "@eclipse-glsp/server": "2.8.0-next.12"
61
55
  },
62
56
  "peerDependencies": {
63
- "inversify": "^6.1.3"
57
+ "inversify": "^6.1.3",
58
+ "reflect-metadata": "^0.2.2"
64
59
  },
65
60
  "publishConfig": {
66
61
  "access": "public"
67
62
  },
68
- "gitHead": "ab013b0c1f1fce1734182e324ea9f915d50f92a6"
69
- }
63
+ "scripts": {
64
+ "build": "tsc -b",
65
+ "clean": "rimraf lib *.tsbuildinfo coverage",
66
+ "generate:index": "glsp generateIndex src/browser src/common src/node -f -s",
67
+ "lint": "eslint --ext .ts,.tsx ./src"
68
+ }
69
+ }
@@ -14,16 +14,16 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { McpServerOptions as McpServerOptionsType } from '@eclipse-glsp/protocol';
18
- import { BindingContext } from '@eclipse-glsp/protocol/lib/di';
19
17
  import {
20
18
  AbstractMultiBinding,
21
19
  applyBindingTarget,
20
+ BindingContext,
22
21
  BindingTarget,
23
22
  GLSPModule,
24
23
  GLSPServerInitializer,
25
24
  GLSPServerListener,
26
- Logger
25
+ Logger,
26
+ McpServerOptions as McpServerOptionsType
27
27
  } from '@eclipse-glsp/server';
28
28
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
29
29
  import { interfaces } from 'inversify';
@@ -215,7 +215,7 @@ export abstract class AbstractMcpDiagramModule extends GLSPModule {
215
215
  binding.add(GetSelectionMcpToolHandler);
216
216
  binding.add(SetSelectionMcpToolHandler);
217
217
  binding.add(SetViewMcpToolHandler);
218
- // Auto-skips at session-open via `canRegister()` when no `LayoutEngine` is bound.
218
+ // Auto-skips via `isSupportedByDiagramType()` when no `LayoutEngine` is bound.
219
219
  binding.add(LayoutMcpToolHandler);
220
220
  }
221
221
 
@@ -14,9 +14,10 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { CreateEdgeOperation, CreateNodeOperation } from '@eclipse-glsp/protocol';
18
17
  import {
18
+ CreateEdgeOperation,
19
19
  CreateEdgeOperationHandler,
20
+ CreateNodeOperation,
20
21
  CreateNodeOperationHandler,
21
22
  CreateOperationHandler,
22
23
  Logger,
@@ -14,8 +14,7 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { GModelElement } from '@eclipse-glsp/graph';
18
- import { Dimension, GModelSerializer, Logger, Point } from '@eclipse-glsp/server';
17
+ import { Dimension, GModelElement, GModelSerializer, Logger, Point } from '@eclipse-glsp/server';
19
18
  import { inject, injectable, postConstruct } from 'inversify';
20
19
  import { McpStructuredContent } from '../../server/mcp-handler-shared';
21
20
  import { McpIdAliasService } from '../../server/mcp-id-alias-service';
@@ -14,7 +14,6 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { McpServerOptions as McpServerOptionsType } from '@eclipse-glsp/protocol';
18
17
  import {
19
18
  ClientSessionListener,
20
19
  ClientSessionManager,
@@ -30,14 +29,15 @@ import {
30
29
  McpInitializeParameters,
31
30
  McpInitializeResult,
32
31
  McpServerConfiguration,
33
- McpServerInitOptions
32
+ McpServerInitOptions,
33
+ McpServerOptions as McpServerOptionsType
34
34
  } from '@eclipse-glsp/server';
35
35
  import { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
36
36
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
37
37
  import { WebStandardStreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js';
38
38
  import {
39
- ServerCapabilities,
40
39
  SUPPORTED_PROTOCOL_VERSIONS,
40
+ ServerCapabilities,
41
41
  SetLevelRequestSchema,
42
42
  isInitializeRequest
43
43
  } from '@modelcontextprotocol/sdk/types.js';
@@ -45,7 +45,8 @@ const KEEP_ALIVE_PING_TIMEOUT_MS = 5_000;
45
45
  * registration; the launcher disposes it on session-close and on server shutdown.
46
46
  */
47
47
  export interface GLSPMcpServer
48
- extends Pick<McpServer, 'registerPrompt' | 'registerResource' | 'registerTool' | 'sendLoggingMessage' | 'isConnected' | 'connect'>,
48
+ extends
49
+ Pick<McpServer, 'registerPrompt' | 'registerResource' | 'registerTool' | 'sendLoggingMessage' | 'isConnected' | 'connect'>,
49
50
  Disposable {
50
51
  readonly options: McpServerOptions;
51
52
 
@@ -37,6 +37,11 @@ import { McpRequestContext, NoopMcpRequestContext } from './mcp-request-context'
37
37
  import { AbstractMcpDiagramResourceHandler, McpDiagramResourceHandlerConstructor, toParams } from './mcp-resource-handler';
38
38
  import { BaseMcpDiagramToolHandler, McpDiagramToolHandlerConstructor } from './mcp-tool-handler';
39
39
 
40
+ /** The diagram-type support hook shared by the diagram-scope tool and resource handler bases. */
41
+ interface DiagramTypeSupportAware {
42
+ isSupportedByDiagramType(): boolean;
43
+ }
44
+
40
45
  /**
41
46
  * Per-diagram-type catalog of constructor lists, harvested at MCP-server start by loading each
42
47
  * diagram type's modules onto a temporary child container — same pattern as
@@ -97,11 +102,13 @@ export class DefaultMcpDiagramHandlerDispatcher implements McpDiagramHandlerDisp
97
102
 
98
103
  /**
99
104
  * Build the per-diagram-type catalog by inspecting each diagram type's module set. We don't
100
- * have a real GLSP session yet — and we don't want one, because we only need the bound
105
+ * have a real GLSP session yet — and we don't want one, because we mostly need the bound
101
106
  * constructor *lists*, not instances. So we spin up a throwaway child container per diagram
102
107
  * type, load its modules plus a placeholder session module, and read out the multi-binding
103
- * constants. No handler is instantiated; the temporary container is unbound immediately
104
- * after.
108
+ * constants. The temporary container is unbound immediately after.
109
+ *
110
+ * Only handlers that override `isSupportedByDiagramType` are instantiated, so a handler with
111
+ * a `@postConstruct` sees this probe just because it opted into the support gate.
105
112
  *
106
113
  * The placeholder session module is bound with the synthetic {@link TEMPORARY_CLIENT_ID} so
107
114
  * any session-scoped `@inject(ClientId)` in module-load wiring resolves cleanly. Diagram
@@ -123,8 +130,18 @@ export class DefaultMcpDiagramHandlerDispatcher implements McpDiagramHandlerDisp
123
130
  for (const [diagramType, modules] of this.diagramModules) {
124
131
  const tempContainer = this.serverContainer.createChild();
125
132
  tempContainer.load(...modules, placeholderSessionModule);
126
- const tools = getConstructorList<McpDiagramToolHandlerConstructor>(tempContainer, McpDiagramToolHandlerConstructor);
127
- const resources = getConstructorList<McpDiagramResourceHandlerConstructor>(tempContainer, McpDiagramResourceHandlerConstructor);
133
+ const tools = this.filterSupported(
134
+ tempContainer,
135
+ getConstructorList<McpDiagramToolHandlerConstructor>(tempContainer, McpDiagramToolHandlerConstructor),
136
+ diagramType,
137
+ BaseMcpDiagramToolHandler.prototype.isSupportedByDiagramType
138
+ );
139
+ const resources = this.filterSupported(
140
+ tempContainer,
141
+ getConstructorList<McpDiagramResourceHandlerConstructor>(tempContainer, McpDiagramResourceHandlerConstructor),
142
+ diagramType,
143
+ AbstractMcpDiagramResourceHandler.prototype.isSupportedByDiagramType
144
+ );
128
145
  const prompts = getConstructorList<McpDiagramPromptHandlerConstructor>(tempContainer, McpDiagramPromptHandlerConstructor);
129
146
  tempContainer.unbindAll();
130
147
  catalogs.push({ diagramType, toolConstructors: tools, resourceConstructors: resources, promptConstructors: prompts });
@@ -132,6 +149,40 @@ export class DefaultMcpDiagramHandlerDispatcher implements McpDiagramHandlerDisp
132
149
  this.diagramCatalogs = catalogs;
133
150
  }
134
151
 
152
+ /**
153
+ * Drop constructors whose handler reports the diagram type can't support it, so they never
154
+ * reach the MCP catalog. A handler that overrides the hook is resolved against the harvest
155
+ * container, where `@optional()` dependencies reflect the diagram type's real bindings; one
156
+ * that inherits `defaultHook` or doesn't declare the hook is kept without being instantiated.
157
+ *
158
+ * Fails open: a constructor that cannot be resolved here stays in the catalog.
159
+ */
160
+ protected filterSupported<C extends interfaces.Newable<DiagramTypeSupportAware>>(
161
+ container: Container,
162
+ constructors: C[],
163
+ diagramType: string,
164
+ defaultHook: DiagramTypeSupportAware['isSupportedByDiagramType']
165
+ ): C[] {
166
+ return constructors.filter(constructor => {
167
+ // A duck-typed handler may not carry the hook at all; skip it rather than resolving it
168
+ // only to call a method that isn't there.
169
+ const hook = constructor.prototype.isSupportedByDiagramType;
170
+ if (typeof hook !== 'function' || hook === defaultHook) {
171
+ return true;
172
+ }
173
+ try {
174
+ if (container.resolve(constructor).isSupportedByDiagramType()) {
175
+ return true;
176
+ }
177
+ this.logger.debug(`Diagram type '${diagramType}' does not support MCP handler '${constructor.name}'; not registering.`);
178
+ return false;
179
+ } catch (err: unknown) {
180
+ this.logger.debug(`Could not probe MCP handler '${constructor.name}' for diagram type '${diagramType}'; registering.`, err);
181
+ return true;
182
+ }
183
+ });
184
+ }
185
+
135
186
  /** True when at least one diagram type has at least one tool handler bound. */
136
187
  hasDiagramTools(): boolean {
137
188
  return this.diagramCatalogs.some(catalog => catalog.toolConstructors.length > 0);
@@ -71,12 +71,10 @@ export interface McpStructuredContent {
71
71
  * otherwise throw `new McpToolError('context-specific message')`.
72
72
  */
73
73
  export class McpToolError extends Error {
74
- constructor(
75
- message: string,
76
- readonly cause?: unknown
77
- ) {
74
+ constructor(message: string, cause?: unknown) {
78
75
  super(message);
79
76
  this.name = 'McpToolError';
77
+ this.cause = cause;
80
78
  }
81
79
  }
82
80
 
@@ -45,6 +45,9 @@ export const elementId = z.string();
45
45
  /** One or more element ids. Empty arrays are rejected. */
46
46
  export const elementIds = z.array(z.string()).min(1);
47
47
 
48
+ /** Zero or more element ids, for tools where an empty array is itself meaningful (e.g. "select nothing"). */
49
+ export const elementIdsAllowingEmpty = z.array(z.string());
50
+
48
51
  /** Cartesian position used by node-creation / -modification tools. */
49
52
  export const position = z
50
53
  .object({
@@ -14,7 +14,7 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { ProposalString } from '@eclipse-glsp/protocol';
17
+ import { ProposalString } from '@eclipse-glsp/server';
18
18
 
19
19
  /**
20
20
  * MIME type for an MCP resource. Annotating a `mimeType` field with this type prompts the IDE
@@ -14,7 +14,7 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { McpServerOptions as McpServerOptionsType } from '@eclipse-glsp/protocol';
17
+ import { McpServerOptions as McpServerOptionsType } from '@eclipse-glsp/server';
18
18
  import { injectable } from 'inversify';
19
19
 
20
20
  /**