From 223d6d50b0907e874dd1493863f0e47e3a5b3e20 Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Sat, 27 Sep 2025 15:46:52 +0200 Subject: [PATCH] Improve return type definition of ExecuteCodePluginTask --- common/src/types.ts | 15 +++++++++++++++ mcp-server/src/tasks/ExecuteCodePluginTask.ts | 7 +++++-- .../src/task-handlers/ExecuteCodeTaskHandler.ts | 9 +++++---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/common/src/types.ts b/common/src/types.ts index 27a2c0f..31e2b14 100644 --- a/common/src/types.ts +++ b/common/src/types.ts @@ -78,3 +78,18 @@ export interface ExecuteCodeTaskParams { */ code: string; } + +/** + * Result data for the executeCode task. + */ +export interface ExecuteCodeTaskResultData { + /** + * The result of the executed code, if any. + */ + result: T; + + /** + * Captured console output during code execution. + */ + log: string; +} diff --git a/mcp-server/src/tasks/ExecuteCodePluginTask.ts b/mcp-server/src/tasks/ExecuteCodePluginTask.ts index 5c107c5..c436ec3 100644 --- a/mcp-server/src/tasks/ExecuteCodePluginTask.ts +++ b/mcp-server/src/tasks/ExecuteCodePluginTask.ts @@ -1,5 +1,5 @@ import { PluginTask } from "../PluginTask"; -import { ExecuteCodeTaskParams, PluginTaskResult } from "@penpot-mcp/common"; +import { ExecuteCodeTaskParams, ExecuteCodeTaskResultData, PluginTaskResult } from "@penpot-mcp/common"; /** * Task for executing JavaScript code in the plugin context. @@ -7,7 +7,10 @@ import { ExecuteCodeTaskParams, PluginTaskResult } from "@penpot-mcp/common"; * This task instructs the plugin to execute arbitrary JavaScript code * and return the result of execution. */ -export class ExecuteCodePluginTask extends PluginTask> { +export class ExecuteCodePluginTask extends PluginTask< + ExecuteCodeTaskParams, + PluginTaskResult> +> { /** * Creates a new execute code task. * diff --git a/penpot-plugin/src/task-handlers/ExecuteCodeTaskHandler.ts b/penpot-plugin/src/task-handlers/ExecuteCodeTaskHandler.ts index 58ca9d2..c19d489 100644 --- a/penpot-plugin/src/task-handlers/ExecuteCodeTaskHandler.ts +++ b/penpot-plugin/src/task-handlers/ExecuteCodeTaskHandler.ts @@ -1,5 +1,5 @@ import { Task, TaskHandler } from "../TaskHandler"; -import { ExecuteCodeTaskParams } from "../../../common/src"; +import { ExecuteCodeTaskParams, ExecuteCodeTaskResultData } from "../../../common/src"; /** * Console implementation that captures all log output for code execution. @@ -205,10 +205,11 @@ export class ExecuteCodeTaskHandler extends TaskHandler { console.log("Code execution result:", result); - // return both result and captured log - task.sendSuccess({ + // return result and captured log + let resultData: ExecuteCodeTaskResultData = { result: result, log: this.context.console.getLog(), - }); + }; + task.sendSuccess(resultData); } }