From 7d339b34ff7c0d525e23d732994f60328902cdd9 Mon Sep 17 00:00:00 2001 From: Martin Fleck Date: Wed, 13 May 2026 17:00:40 +0200 Subject: [PATCH] Generate and use only single index per repository convention --- examples/workflow-server/src/common/index.ts | 4 ++ packages/server-mcp/src/index.ts | 59 +++++++++++++++--- .../{server => modules}/mcp-diagram-module.ts | 55 ++++++++-------- .../{server => modules}/mcp-server-module.ts | 30 ++++----- .../describe-diagram-mcp-prompt-handler.ts | 17 +++-- ...suggest-improvements-mcp-prompt-handler.ts | 13 ++-- packages/server-mcp/src/prompts/index.ts | 18 ------ .../diagram-png-mcp-resource-handler.ts | 14 ++--- .../diagram-svg-mcp-resource-handler.ts | 14 ++--- packages/server-mcp/src/resources/index.ts | 20 ------ .../services/mcp-model-serializer.ts | 2 +- packages/server-mcp/src/server/index.ts | 42 ------------- .../count-elements-mcp-tool-handler.spec.ts | 4 +- .../count-elements-mcp-tool-handler.ts | 4 +- .../create-edges-mcp-tool-handler.spec.ts | 4 +- .../handlers/create-edges-mcp-tool-handler.ts | 13 ++-- .../create-nodes-mcp-tool-handler.spec.ts | 4 +- .../handlers/create-nodes-mcp-tool-handler.ts | 13 ++-- .../delete-elements-mcp-tool-handler.ts | 10 +-- .../diagram-model-mcp-tool-handler.ts | 4 +- .../element-types-mcp-tool-handler.ts | 3 +- .../get-selection-mcp-tool-handler.ts | 4 +- .../tools/handlers/layout-mcp-tool-handler.ts | 4 +- .../handlers/modify-edges-mcp-tool-handler.ts | 14 ++--- .../handlers/modify-nodes-mcp-tool-handler.ts | 14 ++--- .../query-elements-mcp-tool-handler.spec.ts | 4 +- .../query-elements-mcp-tool-handler.ts | 10 +-- .../tools/handlers/redo-mcp-tool-handler.ts | 4 +- .../handlers/save-model-mcp-tool-handler.ts | 5 +- .../session-info-mcp-tool-handler.spec.ts | 2 +- .../handlers/session-info-mcp-tool-handler.ts | 3 +- .../set-selection-mcp-tool-handler.spec.ts | 4 +- .../set-selection-mcp-tool-handler.ts | 4 +- .../handlers/set-view-mcp-tool-handler.ts | 12 +--- .../tools/handlers/undo-mcp-tool-handler.ts | 4 +- .../validate-diagram-mcp-tool-handler.ts | Bin 5609 -> 5739 bytes packages/server-mcp/src/tools/index.ts | 34 ---------- packages/server-mcp/src/util/index.ts | 18 ------ packages/server/src/common/index.ts | 1 + 39 files changed, 193 insertions(+), 295 deletions(-) rename packages/server-mcp/src/{server => modules}/mcp-diagram-module.ts (83%) rename packages/server-mcp/src/{server => modules}/mcp-server-module.ts (92%) delete mode 100644 packages/server-mcp/src/prompts/index.ts delete mode 100644 packages/server-mcp/src/resources/index.ts delete mode 100644 packages/server-mcp/src/server/index.ts delete mode 100644 packages/server-mcp/src/tools/index.ts delete mode 100644 packages/server-mcp/src/util/index.ts diff --git a/examples/workflow-server/src/common/index.ts b/examples/workflow-server/src/common/index.ts index 8953850..d1627b2 100644 --- a/examples/workflow-server/src/common/index.ts +++ b/examples/workflow-server/src/common/index.ts @@ -32,6 +32,10 @@ export * from './handler/grid-snapper'; export * from './labeledit/workflow-label-edit-validator'; export * from './layout/workflow-layout-configurator'; export * from './marker/workflow-model-validator'; +export * from './mcp/workflow-element-types-provider'; +export * from './mcp/workflow-mcp-label-provider'; +export * from './mcp/workflow-mcp-model-serializer'; +export * from './mcp/workflow-mcp-module'; export * from './model/workflow-navigation-target-resolver'; export * from './provider/abstract-next-or-previous-navigation-target-provider'; export * from './provider/next-node-navigation-target-provider'; diff --git a/packages/server-mcp/src/index.ts b/packages/server-mcp/src/index.ts index 1b2c22d..9b4b935 100644 --- a/packages/server-mcp/src/index.ts +++ b/packages/server-mcp/src/index.ts @@ -13,12 +13,53 @@ * * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 ********************************************************************************/ -export * from './prompts'; -export * from './resources'; -export * from './server'; -export * from './tools'; -export * from './util'; -// Module classes — exported here (not from `./server`) to avoid circular imports through -// the handler barrels which the modules consume. -export * from './server/mcp-diagram-module'; -export * from './server/mcp-server-module'; +export * from './modules/mcp-diagram-module'; +export * from './modules/mcp-server-module'; +export * from './prompts/handlers/describe-diagram-mcp-prompt-handler'; +export * from './prompts/handlers/suggest-improvements-mcp-prompt-handler'; +export * from './resources/handlers/diagram-png-mcp-resource-handler'; +export * from './resources/handlers/diagram-svg-mcp-resource-handler'; +export * from './resources/services/element-types-provider'; +export * from './resources/services/mcp-model-serializer'; +export * from './server/glsp-mcp-server'; +export * from './server/lru-event-store'; +export * from './server/mcp-diagram-handler-dispatcher'; +export * from './server/mcp-diagram-prompt-handler-registry'; +export * from './server/mcp-diagram-resource-handler-registry'; +export * from './server/mcp-diagram-tool-handler-registry'; +export * from './server/mcp-handler-shared'; +export * from './server/mcp-http-transport'; +export * from './server/mcp-id-alias-service'; +export * from './server/mcp-input-schemas'; +export * from './server/mcp-label-provider'; +export * from './server/mcp-log-level-registry'; +export * from './server/mcp-logger'; +export * from './server/mcp-mime-types'; +export * from './server/mcp-options'; +export * from './server/mcp-progress-reporter'; +export * from './server/mcp-prompt-handler'; +export * from './server/mcp-request-context'; +export * from './server/mcp-resource-handler'; +export * from './server/mcp-server-launcher'; +export * from './server/mcp-session'; +export * from './server/mcp-tool-handler'; +export * from './tools/handlers/count-elements-mcp-tool-handler'; +export * from './tools/handlers/create-edges-mcp-tool-handler'; +export * from './tools/handlers/create-nodes-mcp-tool-handler'; +export * from './tools/handlers/delete-elements-mcp-tool-handler'; +export * from './tools/handlers/diagram-model-mcp-tool-handler'; +export * from './tools/handlers/element-types-mcp-tool-handler'; +export * from './tools/handlers/get-selection-mcp-tool-handler'; +export * from './tools/handlers/layout-mcp-tool-handler'; +export * from './tools/handlers/modify-edges-mcp-tool-handler'; +export * from './tools/handlers/modify-nodes-mcp-tool-handler'; +export * from './tools/handlers/query-elements-mcp-tool-handler'; +export * from './tools/handlers/redo-mcp-tool-handler'; +export * from './tools/handlers/save-model-mcp-tool-handler'; +export * from './tools/handlers/session-info-mcp-tool-handler'; +export * from './tools/handlers/set-selection-mcp-tool-handler'; +export * from './tools/handlers/set-view-mcp-tool-handler'; +export * from './tools/handlers/undo-mcp-tool-handler'; +export * from './tools/handlers/validate-diagram-mcp-tool-handler'; +export * from './util/markdown-util'; +export * from './util/mcp-util'; diff --git a/packages/server-mcp/src/server/mcp-diagram-module.ts b/packages/server-mcp/src/modules/mcp-diagram-module.ts similarity index 83% rename from packages/server-mcp/src/server/mcp-diagram-module.ts rename to packages/server-mcp/src/modules/mcp-diagram-module.ts index 9916a8d..6fbb969 100644 --- a/packages/server-mcp/src/server/mcp-diagram-module.ts +++ b/packages/server-mcp/src/modules/mcp-diagram-module.ts @@ -16,48 +16,47 @@ import { applyBindingTarget, BindingTarget, ClientSessionInitializer, GLSPModule, InstanceMultiBinding } from '@eclipse-glsp/server'; import { interfaces } from 'inversify'; -import { DiagramPngMcpResourceHandler, DiagramSvgMcpResourceHandler } from '../resources'; +import { DiagramPngMcpResourceHandler } from '../resources/handlers/diagram-png-mcp-resource-handler'; +import { DiagramSvgMcpResourceHandler } from '../resources/handlers/diagram-svg-mcp-resource-handler'; import { DefaultElementTypesProvider, ElementTypesProvider } from '../resources/services/element-types-provider'; import { MarkdownMcpModelSerializer, McpModelSerializer } from '../resources/services/mcp-model-serializer'; -import { - CountElementsMcpToolHandler, - CreateEdgesMcpToolHandler, - CreateNodesMcpToolHandler, - DeleteElementsMcpToolHandler, - DiagramModelMcpToolHandler, - GetSelectionMcpToolHandler, - LayoutMcpToolHandler, - ModifyEdgesMcpToolHandler, - ModifyNodesMcpToolHandler, - QueryElementsMcpToolHandler, - RedoMcpToolHandler, - SaveModelMcpToolHandler, - SetSelectionMcpToolHandler, - SetViewMcpToolHandler, - UndoMcpToolHandler, - ValidateDiagramMcpToolHandler -} from '../tools'; +import { CountElementsMcpToolHandler } from '../tools/handlers/count-elements-mcp-tool-handler'; +import { CreateEdgesMcpToolHandler } from '../tools/handlers/create-edges-mcp-tool-handler'; +import { CreateNodesMcpToolHandler } from '../tools/handlers/create-nodes-mcp-tool-handler'; +import { DeleteElementsMcpToolHandler } from '../tools/handlers/delete-elements-mcp-tool-handler'; +import { DiagramModelMcpToolHandler } from '../tools/handlers/diagram-model-mcp-tool-handler'; +import { GetSelectionMcpToolHandler } from '../tools/handlers/get-selection-mcp-tool-handler'; +import { LayoutMcpToolHandler } from '../tools/handlers/layout-mcp-tool-handler'; +import { ModifyEdgesMcpToolHandler } from '../tools/handlers/modify-edges-mcp-tool-handler'; +import { ModifyNodesMcpToolHandler } from '../tools/handlers/modify-nodes-mcp-tool-handler'; +import { QueryElementsMcpToolHandler } from '../tools/handlers/query-elements-mcp-tool-handler'; +import { RedoMcpToolHandler } from '../tools/handlers/redo-mcp-tool-handler'; +import { SaveModelMcpToolHandler } from '../tools/handlers/save-model-mcp-tool-handler'; +import { SetSelectionMcpToolHandler } from '../tools/handlers/set-selection-mcp-tool-handler'; +import { SetViewMcpToolHandler } from '../tools/handlers/set-view-mcp-tool-handler'; +import { UndoMcpToolHandler } from '../tools/handlers/undo-mcp-tool-handler'; +import { ValidateDiagramMcpToolHandler } from '../tools/handlers/validate-diagram-mcp-tool-handler'; import { McpDiagramPromptHandlerFactory, McpDiagramPromptHandlerRegistry, McpDiagramPromptHandlerRegistryInitializer -} from './mcp-diagram-prompt-handler-registry'; +} from '../server/mcp-diagram-prompt-handler-registry'; import { McpDiagramResourceHandlerFactory, McpDiagramResourceHandlerRegistry, McpDiagramResourceHandlerRegistryInitializer -} from './mcp-diagram-resource-handler-registry'; +} from '../server/mcp-diagram-resource-handler-registry'; import { McpDiagramToolHandlerFactory, McpDiagramToolHandlerRegistry, McpDiagramToolHandlerRegistryInitializer -} from './mcp-diagram-tool-handler-registry'; -import { DefaultMcpIdAliasService, McpIdAliasService } from './mcp-id-alias-service'; -import { McpDiagramScopedInput } from './mcp-input-schemas'; -import { DefaultMcpLabelProvider, McpLabelProvider } from './mcp-label-provider'; -import { AbstractMcpDiagramPromptHandler, McpDiagramPromptHandlerConstructor } from './mcp-prompt-handler'; -import { AbstractMcpDiagramResourceHandler, McpDiagramResourceHandlerConstructor } from './mcp-resource-handler'; -import { BaseMcpDiagramToolHandler, McpDiagramToolHandlerConstructor } from './mcp-tool-handler'; +} from '../server/mcp-diagram-tool-handler-registry'; +import { DefaultMcpIdAliasService, McpIdAliasService } from '../server/mcp-id-alias-service'; +import { McpDiagramScopedInput } from '../server/mcp-input-schemas'; +import { DefaultMcpLabelProvider, McpLabelProvider } from '../server/mcp-label-provider'; +import { AbstractMcpDiagramPromptHandler, McpDiagramPromptHandlerConstructor } from '../server/mcp-prompt-handler'; +import { AbstractMcpDiagramResourceHandler, McpDiagramResourceHandlerConstructor } from '../server/mcp-resource-handler'; +import { BaseMcpDiagramToolHandler, McpDiagramToolHandlerConstructor } from '../server/mcp-tool-handler'; /** * Per-GLSP-client-session DI module for the MCP server. Loaded inside `configureDiagramModule` diff --git a/packages/server-mcp/src/server/mcp-server-module.ts b/packages/server-mcp/src/modules/mcp-server-module.ts similarity index 92% rename from packages/server-mcp/src/server/mcp-server-module.ts rename to packages/server-mcp/src/modules/mcp-server-module.ts index a64437d..e63a591 100644 --- a/packages/server-mcp/src/server/mcp-server-module.ts +++ b/packages/server-mcp/src/modules/mcp-server-module.ts @@ -27,20 +27,22 @@ import { } from '@eclipse-glsp/server'; import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { interfaces } from 'inversify'; -import { DescribeDiagramMcpPromptHandler, SuggestImprovementsMcpPromptHandler } from '../prompts'; -import { ElementTypesMcpToolHandler, SessionInfoMcpToolHandler } from '../tools'; -import { DefaultGLSPMcpServer, GLSPMcpServerFactory } from './glsp-mcp-server'; -import { DefaultMcpDiagramHandlerDispatcher, McpDiagramHandlerDispatcher } from './mcp-diagram-handler-dispatcher'; -import { DefaultMcpLogLevelRegistry, McpLogLevelRegistry } from './mcp-log-level-registry'; -import { LruEventStore } from './lru-event-store'; -import { McpHttpTransport } from './mcp-http-transport'; -import { McpLogger } from './mcp-logger'; -import { McpServerDefaults, McpServerOptions } from './mcp-options'; -import { McpProgressReporter } from './mcp-progress-reporter'; -import { McpPromptHandler } from './mcp-prompt-handler'; -import { McpResourceHandler } from './mcp-resource-handler'; -import { McpServerLauncher } from './mcp-server-launcher'; -import { McpToolHandler } from './mcp-tool-handler'; +import { DescribeDiagramMcpPromptHandler } from '../prompts/handlers/describe-diagram-mcp-prompt-handler'; +import { SuggestImprovementsMcpPromptHandler } from '../prompts/handlers/suggest-improvements-mcp-prompt-handler'; +import { ElementTypesMcpToolHandler } from '../tools/handlers/element-types-mcp-tool-handler'; +import { SessionInfoMcpToolHandler } from '../tools/handlers/session-info-mcp-tool-handler'; +import { DefaultGLSPMcpServer, GLSPMcpServerFactory } from '../server/glsp-mcp-server'; +import { DefaultMcpDiagramHandlerDispatcher, McpDiagramHandlerDispatcher } from '../server/mcp-diagram-handler-dispatcher'; +import { DefaultMcpLogLevelRegistry, McpLogLevelRegistry } from '../server/mcp-log-level-registry'; +import { LruEventStore } from '../server/lru-event-store'; +import { McpHttpTransport } from '../server/mcp-http-transport'; +import { McpLogger } from '../server/mcp-logger'; +import { McpServerDefaults, McpServerOptions } from '../server/mcp-options'; +import { McpProgressReporter } from '../server/mcp-progress-reporter'; +import { McpPromptHandler } from '../server/mcp-prompt-handler'; +import { McpResourceHandler } from '../server/mcp-resource-handler'; +import { McpServerLauncher } from '../server/mcp-server-launcher'; +import { McpToolHandler } from '../server/mcp-tool-handler'; /** * GLSP-generic default agent persona — adopters typically pass a product-specific persona to diff --git a/packages/server-mcp/src/prompts/handlers/describe-diagram-mcp-prompt-handler.ts b/packages/server-mcp/src/prompts/handlers/describe-diagram-mcp-prompt-handler.ts index 8f19ce7..25760a8 100644 --- a/packages/server-mcp/src/prompts/handlers/describe-diagram-mcp-prompt-handler.ts +++ b/packages/server-mcp/src/prompts/handlers/describe-diagram-mcp-prompt-handler.ts @@ -17,15 +17,14 @@ import { ClientSessionManager } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { AbstractMcpPromptHandler, McpPromptResult, resolveActiveSessionId } from '../../server'; -import { - CountElementsMcpToolHandler, - DiagramModelMcpToolHandler, - ElementTypesMcpToolHandler, - QueryElementsMcpToolHandler, - SetSelectionMcpToolHandler, - SetViewMcpToolHandler -} from '../../tools'; +import { McpPromptResult, resolveActiveSessionId } from '../../server/mcp-handler-shared'; +import { AbstractMcpPromptHandler } from '../../server/mcp-prompt-handler'; +import { CountElementsMcpToolHandler } from '../../tools/handlers/count-elements-mcp-tool-handler'; +import { DiagramModelMcpToolHandler } from '../../tools/handlers/diagram-model-mcp-tool-handler'; +import { ElementTypesMcpToolHandler } from '../../tools/handlers/element-types-mcp-tool-handler'; +import { QueryElementsMcpToolHandler } from '../../tools/handlers/query-elements-mcp-tool-handler'; +import { SetSelectionMcpToolHandler } from '../../tools/handlers/set-selection-mcp-tool-handler'; +import { SetViewMcpToolHandler } from '../../tools/handlers/set-view-mcp-tool-handler'; export const DescribeDiagramArgsSchema = z.object({ sessionId: z diff --git a/packages/server-mcp/src/prompts/handlers/suggest-improvements-mcp-prompt-handler.ts b/packages/server-mcp/src/prompts/handlers/suggest-improvements-mcp-prompt-handler.ts index 6166732..5db919a 100644 --- a/packages/server-mcp/src/prompts/handlers/suggest-improvements-mcp-prompt-handler.ts +++ b/packages/server-mcp/src/prompts/handlers/suggest-improvements-mcp-prompt-handler.ts @@ -17,13 +17,12 @@ import { ClientSessionManager } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { AbstractMcpPromptHandler, McpPromptResult, resolveActiveSessionId } from '../../server'; -import { - DiagramModelMcpToolHandler, - QueryElementsMcpToolHandler, - SetSelectionMcpToolHandler, - ValidateDiagramMcpToolHandler -} from '../../tools'; +import { McpPromptResult, resolveActiveSessionId } from '../../server/mcp-handler-shared'; +import { AbstractMcpPromptHandler } from '../../server/mcp-prompt-handler'; +import { DiagramModelMcpToolHandler } from '../../tools/handlers/diagram-model-mcp-tool-handler'; +import { QueryElementsMcpToolHandler } from '../../tools/handlers/query-elements-mcp-tool-handler'; +import { SetSelectionMcpToolHandler } from '../../tools/handlers/set-selection-mcp-tool-handler'; +import { ValidateDiagramMcpToolHandler } from '../../tools/handlers/validate-diagram-mcp-tool-handler'; export const SuggestImprovementsArgsSchema = z.object({ sessionId: z diff --git a/packages/server-mcp/src/prompts/index.ts b/packages/server-mcp/src/prompts/index.ts deleted file mode 100644 index 0a876b8..0000000 --- a/packages/server-mcp/src/prompts/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2026 EclipseSource and others. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the Eclipse - * Public License v. 2.0 are satisfied: GNU General Public License, version 2 - * with the GNU Classpath Exception which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - ********************************************************************************/ - -export * from './handlers/describe-diagram-mcp-prompt-handler'; -export * from './handlers/suggest-improvements-mcp-prompt-handler'; diff --git a/packages/server-mcp/src/resources/handlers/diagram-png-mcp-resource-handler.ts b/packages/server-mcp/src/resources/handlers/diagram-png-mcp-resource-handler.ts index 6dc505f..61349b6 100644 --- a/packages/server-mcp/src/resources/handlers/diagram-png-mcp-resource-handler.ts +++ b/packages/server-mcp/src/resources/handlers/diagram-png-mcp-resource-handler.ts @@ -18,15 +18,11 @@ import { ClientActionKinds, isGBoundsAware, RequestExportAction } from '@eclipse import { Role } from '@modelcontextprotocol/sdk/types.js'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { - AbstractMcpDiagramResourceHandler, - McpDiagramScopedInputSchema, - McpMimeType, - McpProgressReporter, - McpResourceContent, - McpResourceUri, - McpToolError -} from '../../server'; +import { McpResourceContent, McpToolError } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { McpMimeType } from '../../server/mcp-mime-types'; +import { McpProgressReporter } from '../../server/mcp-progress-reporter'; +import { AbstractMcpDiagramResourceHandler, McpResourceUri } from '../../server/mcp-resource-handler'; export const DiagramPngInputSchema = McpDiagramScopedInputSchema.extend({ scale: z diff --git a/packages/server-mcp/src/resources/handlers/diagram-svg-mcp-resource-handler.ts b/packages/server-mcp/src/resources/handlers/diagram-svg-mcp-resource-handler.ts index 056609e..8ac95dd 100644 --- a/packages/server-mcp/src/resources/handlers/diagram-svg-mcp-resource-handler.ts +++ b/packages/server-mcp/src/resources/handlers/diagram-svg-mcp-resource-handler.ts @@ -18,15 +18,11 @@ import { ClientActionKinds, RequestExportAction } from '@eclipse-glsp/server'; import { Role } from '@modelcontextprotocol/sdk/types.js'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { - AbstractMcpDiagramResourceHandler, - McpDiagramScopedInputSchema, - McpMimeType, - McpProgressReporter, - McpResourceContent, - McpResourceUri, - McpToolError -} from '../../server'; +import { McpResourceContent, McpToolError } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { McpMimeType } from '../../server/mcp-mime-types'; +import { McpProgressReporter } from '../../server/mcp-progress-reporter'; +import { AbstractMcpDiagramResourceHandler, McpResourceUri } from '../../server/mcp-resource-handler'; export const DiagramSvgInputSchema = McpDiagramScopedInputSchema.extend({ timeoutMs: z diff --git a/packages/server-mcp/src/resources/index.ts b/packages/server-mcp/src/resources/index.ts deleted file mode 100644 index 5ed2451..0000000 --- a/packages/server-mcp/src/resources/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2026 EclipseSource and others. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the Eclipse - * Public License v. 2.0 are satisfied: GNU General Public License, version 2 - * with the GNU Classpath Exception which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - ********************************************************************************/ - -export * from './handlers/diagram-png-mcp-resource-handler'; -export * from './handlers/diagram-svg-mcp-resource-handler'; -export * from './services/element-types-provider'; -export * from './services/mcp-model-serializer'; diff --git a/packages/server-mcp/src/resources/services/mcp-model-serializer.ts b/packages/server-mcp/src/resources/services/mcp-model-serializer.ts index b16815a..f4e12e2 100644 --- a/packages/server-mcp/src/resources/services/mcp-model-serializer.ts +++ b/packages/server-mcp/src/resources/services/mcp-model-serializer.ts @@ -19,7 +19,7 @@ import { Dimension, GModelSerializer, Logger, Point } from '@eclipse-glsp/server import { inject, injectable, postConstruct } from 'inversify'; import { McpStructuredContent } from '../../server/mcp-handler-shared'; import { McpIdAliasService } from '../../server/mcp-id-alias-service'; -import { objectArrayToMarkdownTable } from '../../util'; +import { objectArrayToMarkdownTable } from '../../util/markdown-util'; export const McpModelSerializer = Symbol('McpModelSerializer'); diff --git a/packages/server-mcp/src/server/index.ts b/packages/server-mcp/src/server/index.ts deleted file mode 100644 index f05a0bc..0000000 --- a/packages/server-mcp/src/server/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2026 EclipseSource and others. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the Eclipse - * Public License v. 2.0 are satisfied: GNU General Public License, version 2 - * with the GNU Classpath Exception which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - ********************************************************************************/ - -export * from './glsp-mcp-server'; -export * from './mcp-diagram-handler-dispatcher'; -export * from './mcp-diagram-prompt-handler-registry'; -export * from './mcp-diagram-resource-handler-registry'; -export * from './mcp-diagram-tool-handler-registry'; -export * from './mcp-handler-shared'; -export * from './mcp-http-transport'; -export * from './mcp-id-alias-service'; -export * from './mcp-input-schemas'; -export * from './mcp-label-provider'; -export * from './mcp-log-level-registry'; -export * from './mcp-logger'; -export * from './mcp-mime-types'; -export * from './mcp-options'; -export * from './mcp-progress-reporter'; -export * from './mcp-prompt-handler'; -export * from './mcp-request-context'; -export * from './mcp-resource-handler'; -export * from './mcp-server-launcher'; -export * from './mcp-session'; -export * from './mcp-tool-handler'; - -// `mcp-diagram-module` and `mcp-server-module` are intentionally not re-exported here — -// they import handler classes from `../resources` / `../tools`, which would create a circular -// import chain through this barrel. They are re-exported from the package root (`src/index.ts`) -// after the handler barrels finish initializing. diff --git a/packages/server-mcp/src/tools/handlers/count-elements-mcp-tool-handler.spec.ts b/packages/server-mcp/src/tools/handlers/count-elements-mcp-tool-handler.spec.ts index d647989..4e0b2c0 100644 --- a/packages/server-mcp/src/tools/handlers/count-elements-mcp-tool-handler.spec.ts +++ b/packages/server-mcp/src/tools/handlers/count-elements-mcp-tool-handler.spec.ts @@ -17,7 +17,9 @@ import { ClientId, GModelElement, Logger, ModelState, NullLogger } from '@eclipse-glsp/server'; import { expect } from 'chai'; import { Container, ContainerModule } from 'inversify'; -import { DefaultMcpLabelProvider, McpIdAliasService, McpLabelProvider, McpToolResult } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { McpIdAliasService } from '../../server/mcp-id-alias-service'; +import { DefaultMcpLabelProvider, McpLabelProvider } from '../../server/mcp-label-provider'; import { CountElementsMcpToolHandler } from './count-elements-mcp-tool-handler'; function makeElement(id: string, type: string): GModelElement { diff --git a/packages/server-mcp/src/tools/handlers/count-elements-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/count-elements-mcp-tool-handler.ts index 3506493..9191b58 100644 --- a/packages/server-mcp/src/tools/handlers/count-elements-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/count-elements-mcp-tool-handler.ts @@ -16,7 +16,9 @@ import { injectable } from 'inversify'; import * as z from 'zod/v4'; -import { McpDiagramScopedInputSchema, AbstractMcpDiagramToolHandler, McpToolResult } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const CountElementsInputSchema = McpDiagramScopedInputSchema; export type CountElementsInput = z.infer; diff --git a/packages/server-mcp/src/tools/handlers/create-edges-mcp-tool-handler.spec.ts b/packages/server-mcp/src/tools/handlers/create-edges-mcp-tool-handler.spec.ts index 3d488b2..11db7e0 100644 --- a/packages/server-mcp/src/tools/handlers/create-edges-mcp-tool-handler.spec.ts +++ b/packages/server-mcp/src/tools/handlers/create-edges-mcp-tool-handler.spec.ts @@ -28,7 +28,9 @@ import { } from '@eclipse-glsp/server'; import { expect } from 'chai'; import { Container, ContainerModule } from 'inversify'; -import { DefaultMcpLabelProvider, McpIdAliasService, McpLabelProvider, McpToolResult } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { McpIdAliasService } from '../../server/mcp-id-alias-service'; +import { DefaultMcpLabelProvider, McpLabelProvider } from '../../server/mcp-label-provider'; import { CreateEdgesInput, CreateEdgesMcpToolHandler } from './create-edges-mcp-tool-handler'; function makeElement(id: string, type: string): GModelElement { diff --git a/packages/server-mcp/src/tools/handlers/create-edges-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/create-edges-mcp-tool-handler.ts index 96a68d3..6c3f024 100644 --- a/packages/server-mcp/src/tools/handlers/create-edges-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/create-edges-mcp-tool-handler.ts @@ -17,15 +17,10 @@ import { ChangeRoutingPointsOperation, CreateEdgeOperation, DiagramConfiguration, EdgeCreationChecker } from '@eclipse-glsp/server'; import { inject, injectable, optional } from 'inversify'; import * as z from 'zod/v4'; -import { - ElementIdentity, - ElementIdentitySchema, - McpDiagramScopedInputSchema, - McpToolResult, - OperationMcpDiagramToolHandler, - position -} from '../../server'; -import { formatNoticeList } from '../../util'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { ElementIdentity, ElementIdentitySchema, McpDiagramScopedInputSchema, position } from '../../server/mcp-input-schemas'; +import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; +import { formatNoticeList } from '../../util/mcp-util'; /** Single edge-creation entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */ export const CreateEdgeSpecSchema = z.strictObject({ diff --git a/packages/server-mcp/src/tools/handlers/create-nodes-mcp-tool-handler.spec.ts b/packages/server-mcp/src/tools/handlers/create-nodes-mcp-tool-handler.spec.ts index 2fead20..17e395d 100644 --- a/packages/server-mcp/src/tools/handlers/create-nodes-mcp-tool-handler.spec.ts +++ b/packages/server-mcp/src/tools/handlers/create-nodes-mcp-tool-handler.spec.ts @@ -28,7 +28,9 @@ import { } from '@eclipse-glsp/server'; import { expect } from 'chai'; import { Container, ContainerModule } from 'inversify'; -import { McpIdAliasService, McpLabelProvider, McpToolResult } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { McpIdAliasService } from '../../server/mcp-id-alias-service'; +import { McpLabelProvider } from '../../server/mcp-label-provider'; import { CreateNodesInput, CreateNodesMcpToolHandler } from './create-nodes-mcp-tool-handler'; interface CreatedElementsStructured { diff --git a/packages/server-mcp/src/tools/handlers/create-nodes-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/create-nodes-mcp-tool-handler.ts index cd9419e..e091e3c 100644 --- a/packages/server-mcp/src/tools/handlers/create-nodes-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/create-nodes-mcp-tool-handler.ts @@ -17,15 +17,10 @@ import { ApplyLabelEditOperation, CreateNodeOperation } from '@eclipse-glsp/server'; import { injectable } from 'inversify'; import * as z from 'zod/v4'; -import { - ElementIdentity, - ElementIdentitySchema, - McpDiagramScopedInputSchema, - McpToolResult, - OperationMcpDiagramToolHandler, - position -} from '../../server'; -import { formatNoticeList } from '../../util'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { ElementIdentity, ElementIdentitySchema, McpDiagramScopedInputSchema, position } from '../../server/mcp-input-schemas'; +import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; +import { formatNoticeList } from '../../util/mcp-util'; /** Single node-creation entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */ export const CreateNodeSpecSchema = z.strictObject({ diff --git a/packages/server-mcp/src/tools/handlers/delete-elements-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/delete-elements-mcp-tool-handler.ts index 7b6a16e..dcc7b12 100644 --- a/packages/server-mcp/src/tools/handlers/delete-elements-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/delete-elements-mcp-tool-handler.ts @@ -17,13 +17,9 @@ import { DeleteElementOperation } from '@eclipse-glsp/server'; import { injectable } from 'inversify'; import * as z from 'zod/v4'; -import { - ElementIdentitySchema, - McpDiagramScopedInputSchema, - McpToolResult, - OperationMcpDiagramToolHandler, - elementIds -} from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { ElementIdentitySchema, McpDiagramScopedInputSchema, elementIds } from '../../server/mcp-input-schemas'; +import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const DeleteElementsInputSchema = McpDiagramScopedInputSchema.extend({ elementIds }); export type DeleteElementsInput = z.infer; diff --git a/packages/server-mcp/src/tools/handlers/diagram-model-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/diagram-model-mcp-tool-handler.ts index 340057e..ff7d35b 100644 --- a/packages/server-mcp/src/tools/handlers/diagram-model-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/diagram-model-mcp-tool-handler.ts @@ -18,7 +18,9 @@ import { GModelElement } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; import { McpModelSerializer } from '../../resources/services/mcp-model-serializer'; -import { McpDiagramScopedInputSchema, AbstractMcpDiagramToolHandler, McpToolResult } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const DiagramModelInputSchema = McpDiagramScopedInputSchema; export type DiagramModelInput = z.infer; diff --git a/packages/server-mcp/src/tools/handlers/element-types-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/element-types-mcp-tool-handler.ts index 54b9f86..32a5390 100644 --- a/packages/server-mcp/src/tools/handlers/element-types-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/element-types-mcp-tool-handler.ts @@ -23,7 +23,8 @@ import { } from '@eclipse-glsp/server'; import { Container, ContainerModule, inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { AbstractMcpToolHandler, McpToolError, McpToolResult } from '../../server'; +import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared'; +import { AbstractMcpToolHandler } from '../../server/mcp-tool-handler'; import { ElementTypes, ElementTypesProvider } from '../../resources/services/element-types-provider'; export const ElementTypesInputSchema = z.object({ diff --git a/packages/server-mcp/src/tools/handlers/get-selection-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/get-selection-mcp-tool-handler.ts index 380f342..c3c9155 100644 --- a/packages/server-mcp/src/tools/handlers/get-selection-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/get-selection-mcp-tool-handler.ts @@ -17,7 +17,9 @@ import { ActionDispatcher, GetSelectionAction } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { McpDiagramScopedInputSchema, AbstractMcpDiagramToolHandler, McpToolResult, requestActionOrFail } from '../../server'; +import { McpToolResult, requestActionOrFail } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const GetSelectionInputSchema = McpDiagramScopedInputSchema; export type GetSelectionInput = z.infer; diff --git a/packages/server-mcp/src/tools/handlers/layout-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/layout-mcp-tool-handler.ts index 6f3100d..eb22f54 100644 --- a/packages/server-mcp/src/tools/handlers/layout-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/layout-mcp-tool-handler.ts @@ -17,7 +17,9 @@ import { LayoutEngine, LayoutOperation } from '@eclipse-glsp/server'; import { inject, injectable, optional } from 'inversify'; import * as z from 'zod/v4'; -import { McpDiagramScopedInputSchema, McpToolResult, OperationMcpDiagramToolHandler } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const LayoutInputSchema = McpDiagramScopedInputSchema; export type LayoutInput = z.infer; diff --git a/packages/server-mcp/src/tools/handlers/modify-edges-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/modify-edges-mcp-tool-handler.ts index ad77b35..d4562b7 100644 --- a/packages/server-mcp/src/tools/handlers/modify-edges-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/modify-edges-mcp-tool-handler.ts @@ -17,16 +17,10 @@ import { ChangeRoutingPointsOperation, GEdge, ReconnectEdgeOperation } from '@eclipse-glsp/server'; import { injectable } from 'inversify'; import * as z from 'zod/v4'; -import { - ElementIdentitySchema, - McpDiagramScopedInputSchema, - McpToolError, - McpToolResult, - OperationMcpDiagramToolHandler, - elementId as elementIdSchema, - position -} from '../../server'; -import { formatNoticeList } from '../../util'; +import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared'; +import { ElementIdentitySchema, McpDiagramScopedInputSchema, elementId as elementIdSchema, position } from '../../server/mcp-input-schemas'; +import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; +import { formatNoticeList } from '../../util/mcp-util'; /** Single edge-modification entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */ export const ModifyEdgeSpecSchema = z.strictObject({ diff --git a/packages/server-mcp/src/tools/handlers/modify-nodes-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/modify-nodes-mcp-tool-handler.ts index 967a8e3..e2fe387 100644 --- a/packages/server-mcp/src/tools/handlers/modify-nodes-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/modify-nodes-mcp-tool-handler.ts @@ -17,16 +17,10 @@ import { ApplyLabelEditOperation, ChangeBoundsOperation, GEdge, GShapeElement } from '@eclipse-glsp/server'; import { injectable } from 'inversify'; import * as z from 'zod/v4'; -import { - ElementIdentitySchema, - McpDiagramScopedInputSchema, - McpToolError, - McpToolResult, - OperationMcpDiagramToolHandler, - elementId, - position -} from '../../server'; -import { formatNoticeList } from '../../util'; +import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared'; +import { ElementIdentitySchema, McpDiagramScopedInputSchema, elementId, position } from '../../server/mcp-input-schemas'; +import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; +import { formatNoticeList } from '../../util/mcp-util'; /** Strict — any unknown field on the size object surfaces as a validation error. */ export const NodeSizeSchema = z.strictObject({ diff --git a/packages/server-mcp/src/tools/handlers/query-elements-mcp-tool-handler.spec.ts b/packages/server-mcp/src/tools/handlers/query-elements-mcp-tool-handler.spec.ts index bde1de7..4d8ebc7 100644 --- a/packages/server-mcp/src/tools/handlers/query-elements-mcp-tool-handler.spec.ts +++ b/packages/server-mcp/src/tools/handlers/query-elements-mcp-tool-handler.spec.ts @@ -18,7 +18,9 @@ import { ClientId, GLabel, GModelElement, Logger, ModelState, NullLogger } from import { expect } from 'chai'; import { Container, ContainerModule } from 'inversify'; import { McpModelSerializer } from '../../resources/services/mcp-model-serializer'; -import { DefaultMcpLabelProvider, McpElementsNotFoundError, McpIdAliasService, McpLabelProvider, McpToolResult } from '../../server'; +import { McpElementsNotFoundError, McpToolResult } from '../../server/mcp-handler-shared'; +import { McpIdAliasService } from '../../server/mcp-id-alias-service'; +import { DefaultMcpLabelProvider, McpLabelProvider } from '../../server/mcp-label-provider'; import { QueryElementsInput, QueryElementsMcpToolHandler } from './query-elements-mcp-tool-handler'; function makeLabel(text: string): GLabel { diff --git a/packages/server-mcp/src/tools/handlers/query-elements-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/query-elements-mcp-tool-handler.ts index ebc0360..7958804 100644 --- a/packages/server-mcp/src/tools/handlers/query-elements-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/query-elements-mcp-tool-handler.ts @@ -18,13 +18,9 @@ import { GModelElement } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; import { McpModelSerializer } from '../../resources/services/mcp-model-serializer'; -import { - McpDiagramScopedInputSchema, - AbstractMcpDiagramToolHandler, - McpElementsNotFoundError, - McpToolResult, - elementIds as elementIdsSchema -} from '../../server'; +import { McpElementsNotFoundError, McpToolResult } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema, elementIds as elementIdsSchema } from '../../server/mcp-input-schemas'; +import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const QueryElementsInputSchema = McpDiagramScopedInputSchema.extend({ elementIds: elementIdsSchema diff --git a/packages/server-mcp/src/tools/handlers/redo-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/redo-mcp-tool-handler.ts index 18e2b2d..727c617 100644 --- a/packages/server-mcp/src/tools/handlers/redo-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/redo-mcp-tool-handler.ts @@ -17,7 +17,9 @@ import { CommandStack, RedoAction } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { McpDiagramScopedInputSchema, McpToolError, McpToolResult, OperationMcpDiagramToolHandler } from '../../server'; +import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const RedoInputSchema = McpDiagramScopedInputSchema.extend({ commandsToRedo: z.number().min(1).default(1).describe('Number of commands to redo. Defaults to 1 (most recent undone command).') diff --git a/packages/server-mcp/src/tools/handlers/save-model-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/save-model-mcp-tool-handler.ts index 10fb250..17489d2 100644 --- a/packages/server-mcp/src/tools/handlers/save-model-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/save-model-mcp-tool-handler.ts @@ -17,7 +17,10 @@ import { ActionDispatcher, CommandStack, SaveModelAction } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { McpDiagramScopedInputSchema, AbstractMcpDiagramToolHandler, McpLogger, McpToolResult } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { McpLogger } from '../../server/mcp-logger'; +import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const SaveModelInputSchema = McpDiagramScopedInputSchema.extend({ fileUri: z.string().optional().describe('Optional destination file URI. If not provided, saves to the original source model location.') diff --git a/packages/server-mcp/src/tools/handlers/session-info-mcp-tool-handler.spec.ts b/packages/server-mcp/src/tools/handlers/session-info-mcp-tool-handler.spec.ts index 535e076..29cd539 100644 --- a/packages/server-mcp/src/tools/handlers/session-info-mcp-tool-handler.spec.ts +++ b/packages/server-mcp/src/tools/handlers/session-info-mcp-tool-handler.spec.ts @@ -17,7 +17,7 @@ import { ClientSession, ClientSessionManager, CommandStack, Logger, ModelState, NullLogger } from '@eclipse-glsp/server'; import { expect } from 'chai'; import { Container, ContainerModule } from 'inversify'; -import { McpToolResult } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; import { SessionInfoMcpToolHandler } from './session-info-mcp-tool-handler'; function asText(result: McpToolResult): string { diff --git a/packages/server-mcp/src/tools/handlers/session-info-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/session-info-mcp-tool-handler.ts index d31c3a8..6fd9b6a 100644 --- a/packages/server-mcp/src/tools/handlers/session-info-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/session-info-mcp-tool-handler.ts @@ -17,7 +17,8 @@ import { ClientSessionManager, CommandStack, ModelState } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { AbstractMcpToolHandler, McpToolError, McpToolResult } from '../../server'; +import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared'; +import { AbstractMcpToolHandler } from '../../server/mcp-tool-handler'; export const SessionInfoInputSchema = z.object({ sessionId: z diff --git a/packages/server-mcp/src/tools/handlers/set-selection-mcp-tool-handler.spec.ts b/packages/server-mcp/src/tools/handlers/set-selection-mcp-tool-handler.spec.ts index 9372004..b4f58b9 100644 --- a/packages/server-mcp/src/tools/handlers/set-selection-mcp-tool-handler.spec.ts +++ b/packages/server-mcp/src/tools/handlers/set-selection-mcp-tool-handler.spec.ts @@ -27,7 +27,9 @@ import { } from '@eclipse-glsp/server'; import { expect } from 'chai'; import { Container, ContainerModule } from 'inversify'; -import { DefaultMcpLabelProvider, McpElementsNotFoundError, McpIdAliasService, McpLabelProvider, McpToolResult } from '../../server'; +import { McpElementsNotFoundError, McpToolResult } from '../../server/mcp-handler-shared'; +import { McpIdAliasService } from '../../server/mcp-id-alias-service'; +import { DefaultMcpLabelProvider, McpLabelProvider } from '../../server/mcp-label-provider'; import { SetSelectionInput, SetSelectionMcpToolHandler } from './set-selection-mcp-tool-handler'; function makeElement(id: string, type: string): GModelElement { diff --git a/packages/server-mcp/src/tools/handlers/set-selection-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/set-selection-mcp-tool-handler.ts index 4cca77f..f91fdb9 100644 --- a/packages/server-mcp/src/tools/handlers/set-selection-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/set-selection-mcp-tool-handler.ts @@ -17,7 +17,9 @@ import { ActionDispatcher, SelectAction, SelectAllAction } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { AbstractMcpDiagramToolHandler, McpDiagramScopedInputSchema, McpToolResult, elementIds } from '../../server'; +import { McpToolResult } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema, elementIds } from '../../server/mcp-input-schemas'; +import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const SetSelectionInputSchema = McpDiagramScopedInputSchema.extend({ selectedElementIds: elementIds diff --git a/packages/server-mcp/src/tools/handlers/set-view-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/set-view-mcp-tool-handler.ts index 8c5a38b..e12a867 100644 --- a/packages/server-mcp/src/tools/handlers/set-view-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/set-view-mcp-tool-handler.ts @@ -26,15 +26,9 @@ import { } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { - McpDiagramScopedInputSchema, - AbstractMcpDiagramToolHandler, - McpToolError, - McpToolResult, - elementIds, - position, - requestActionOrFail -} from '../../server'; +import { McpToolError, McpToolResult, requestActionOrFail } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema, elementIds, position } from '../../server/mcp-input-schemas'; +import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const VIEWPORT_ACTIONS = ['fit-to-screen', 'center-on-elements', 'reset-viewport', 'set-viewport'] as const; export type ViewportAction = (typeof VIEWPORT_ACTIONS)[number]; diff --git a/packages/server-mcp/src/tools/handlers/undo-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/undo-mcp-tool-handler.ts index 036ff89..89f4c80 100644 --- a/packages/server-mcp/src/tools/handlers/undo-mcp-tool-handler.ts +++ b/packages/server-mcp/src/tools/handlers/undo-mcp-tool-handler.ts @@ -17,7 +17,9 @@ import { CommandStack, UndoAction } from '@eclipse-glsp/server'; import { inject, injectable } from 'inversify'; import * as z from 'zod/v4'; -import { McpDiagramScopedInputSchema, McpToolError, McpToolResult, OperationMcpDiagramToolHandler } from '../../server'; +import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared'; +import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas'; +import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler'; export const UndoInputSchema = McpDiagramScopedInputSchema.extend({ commandsToUndo: z.number().min(1).default(1).describe('Number of commands to undo. Defaults to 1 (most recent command).') diff --git a/packages/server-mcp/src/tools/handlers/validate-diagram-mcp-tool-handler.ts b/packages/server-mcp/src/tools/handlers/validate-diagram-mcp-tool-handler.ts index 987638f2ab817baccd24d7b4f64999399e74d483..9a1ba87d5b44f502dbe41bd6928ee74d74381d85 100644 GIT binary patch delta 151 zcmaE<{aRK+K&S X!(z>)pPN{eoswUkr@MJFOPC-4OieQD delta 58 zcmaE@^HO`mOXkTIEK-yES!88(6nv8lLh|!-T#JhGi{QMV)Z)^dlF0!qijyy~SZ