From ee1ee5317e2158d8166f1264bbe685f0137a3006 Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Wed, 17 Sep 2025 19:52:28 +0200 Subject: [PATCH] Fix type parameter issue --- mcp-server/src/PluginBridge.ts | 4 ++-- mcp-server/src/PluginTask.ts | 2 +- mcp-server/src/tasks/PrintTextPluginTask.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mcp-server/src/PluginBridge.ts b/mcp-server/src/PluginBridge.ts index cc150b5..172dbe0 100644 --- a/mcp-server/src/PluginBridge.ts +++ b/mcp-server/src/PluginBridge.ts @@ -1,6 +1,6 @@ import {WebSocket, WebSocketServer} from "ws"; import {PluginTask} from "./PluginTask"; -import {PluginTaskResponse} from "@penpot-mcp/common"; +import {PluginTaskResponse, PluginTaskResult} from "@penpot-mcp/common"; /** * Provides the connection to the Penpot MCP Plugin via WebSocket @@ -97,7 +97,7 @@ export class PluginBridge { * @param task - The plugin task to execute * @throws Error if no plugin instances are connected or available */ - public async executePluginTask(task: PluginTask): Promise { + public async executePluginTask>(task: PluginTask): Promise { // Check if there are connected clients if (this.connectedClients.size === 0) { throw new Error( diff --git a/mcp-server/src/PluginTask.ts b/mcp-server/src/PluginTask.ts index 0644042..3d047cc 100644 --- a/mcp-server/src/PluginTask.ts +++ b/mcp-server/src/PluginTask.ts @@ -18,7 +18,7 @@ import { randomUUID } from "crypto"; * @template TParams - The strongly-typed parameters for this task * @template TResult - The expected result type from task execution */ -export abstract class PluginTask { +export abstract class PluginTask = PluginTaskResult> { /** * Unique identifier for request/response correlation. */ diff --git a/mcp-server/src/tasks/PrintTextPluginTask.ts b/mcp-server/src/tasks/PrintTextPluginTask.ts index 057a864..345f4e3 100644 --- a/mcp-server/src/tasks/PrintTextPluginTask.ts +++ b/mcp-server/src/tasks/PrintTextPluginTask.ts @@ -7,7 +7,7 @@ import { PrintTextTaskParams, PluginTaskResult } from "@penpot-mcp/common"; * This task instructs the plugin to create a text element * at the viewport center and select it. */ -export class PrintTextPluginTask extends PluginTask { +export class PrintTextPluginTask extends PluginTask> { /** * Creates a new print text task. *