mirror of
https://github.com/penpot/penpot.git
synced 2026-03-19 08:53:39 +00:00
✨ Make mcp plugin always ready to be in multiuser
This commit is contained in:
@@ -36,7 +36,7 @@ popd
|
||||
pushd ../mcp;
|
||||
rm -rf node_modules;
|
||||
./scripts/setup
|
||||
WS_URI="/mcp/ws" pnpm run --filter "mcp-plugin" build:multi-user
|
||||
WS_URI="/mcp/ws" pnpm run --filter "mcp-plugin" build
|
||||
popd;
|
||||
|
||||
pushd ../plugins
|
||||
|
||||
@@ -462,3 +462,9 @@
|
||||
(defn print-last-exception
|
||||
[]
|
||||
(some-> errors/last-exception ex/print-throwable))
|
||||
|
||||
|
||||
(defn ^:export dbg
|
||||
[o]
|
||||
(app.common.pprint/pprint o {:level 100 :length 100}))
|
||||
|
||||
|
||||
@@ -10,9 +10,7 @@
|
||||
"build:multi-user": "pnpm -r run build:multi-user",
|
||||
"build:types": "bash ./scripts/build-types",
|
||||
"start": "pnpm -r --parallel run start",
|
||||
"start:multi-user": "pnpm -r --parallel --filter \"./packages/*\" run start:multi-user",
|
||||
"bootstrap": "pnpm -r install && pnpm run build && pnpm run start",
|
||||
"bootstrap:multi-user": "pnpm -r install && pnpm run build:multi-user && pnpm run start:multi-user",
|
||||
"fmt": "prettier --write packages/",
|
||||
"fmt:check": "prettier --check packages/"
|
||||
},
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"start": "vite build --watch --config vite.config.ts",
|
||||
"start:multi-user": "cross-env MULTI_USER_MODE=true vite build --watch --config vite.config.ts",
|
||||
"build": "tsc && vite build --config vite.release.config.ts",
|
||||
"build:multi-user": "tsc && cross-env MULTI_USER_MODE=true vite build --config vite.release.config.ts",
|
||||
"types:check": "tsc --noEmit",
|
||||
"clean": "rm -rf dist/"
|
||||
},
|
||||
|
||||
@@ -4,10 +4,6 @@ import "./style.css";
|
||||
const searchParams = new URLSearchParams(window.location.search);
|
||||
document.body.dataset.theme = searchParams.get("theme") ?? "light";
|
||||
|
||||
// Determine whether multi-user mode is enabled based on URL parameters
|
||||
const isMultiUserMode = searchParams.get("multiUser") === "true";
|
||||
console.log("Penpot MCP multi-user mode:", isMultiUserMode);
|
||||
|
||||
// WebSocket connection management
|
||||
let ws: WebSocket | null = null;
|
||||
const statusElement = document.getElementById("connection-status");
|
||||
@@ -59,7 +55,7 @@ function connectToMcpServer(baseUrl?: string, token?: string): void {
|
||||
|
||||
try {
|
||||
let wsUrl = baseUrl || PENPOT_MCP_WEBSOCKET_URL;
|
||||
if (isMultiUserMode && token) {
|
||||
if (token) {
|
||||
wsUrl += `?userToken=${encodeURIComponent(token)}`;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,12 +8,8 @@ mcp?.setMcpStatus("connecting");
|
||||
*/
|
||||
const taskHandlers: TaskHandler[] = [new ExecuteCodeTaskHandler()];
|
||||
|
||||
// Determine whether multi-user mode is enabled based on build-time configuration
|
||||
declare const IS_MULTI_USER_MODE: boolean;
|
||||
const isMultiUserMode = typeof IS_MULTI_USER_MODE !== "undefined" ? IS_MULTI_USER_MODE : false;
|
||||
|
||||
// Open the plugin UI (main.ts)
|
||||
penpot.ui.open("Penpot MCP Plugin", `?theme=${penpot.theme}&multiUser=${isMultiUserMode}`, {
|
||||
penpot.ui.open("Penpot MCP Plugin", `?theme=${penpot.theme}`, {
|
||||
width: 158,
|
||||
height: 200,
|
||||
hidden: !!mcp,
|
||||
|
||||
@@ -2,9 +2,7 @@ import { defineConfig } from "vite";
|
||||
import livePreview from "vite-live-preview";
|
||||
|
||||
let WS_URI = process.env.WS_URI || "http://localhost:4402";
|
||||
let MULTI_USER_MODE = process.env.MULTI_USER_MODE === "true";
|
||||
|
||||
console.log("Will define IS_MULTI_USER_MODE as:", JSON.stringify(MULTI_USER_MODE));
|
||||
console.log("Will define PENPOT_MCP_WEBSOCKET_URL as:", JSON.stringify(WS_URI));
|
||||
|
||||
export default defineConfig({
|
||||
@@ -37,7 +35,6 @@ export default defineConfig({
|
||||
allowedHosts: [],
|
||||
},
|
||||
define: {
|
||||
IS_MULTI_USER_MODE: JSON.stringify(process.env.MULTI_USER_MODE === "true"),
|
||||
PENPOT_MCP_WEBSOCKET_URL: JSON.stringify(WS_URI),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
"scripts": {
|
||||
"build:server": "esbuild src/index.ts --bundle --platform=node --target=node18 --format=esm --outfile=dist/index.js --external:@modelcontextprotocol/* --external:ws --external:express --external:class-transformer --external:class-validator --external:reflect-metadata --external:pino --external:pino-pretty --external:js-yaml --external:sharp",
|
||||
"build": "pnpm run build:server && node scripts/copy-resources.js",
|
||||
"build:multi-user": "pnpm run build",
|
||||
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
||||
"start": "node dist/index.js",
|
||||
"start:multi-user": "node dist/index.js --multi-user",
|
||||
|
||||
@@ -25,7 +25,7 @@ set -e
|
||||
popd
|
||||
|
||||
pnpm -r --filter "!mcp-plugin" install;
|
||||
pnpm -r --filter "mcp-server" run build:multi-user;
|
||||
pnpm -r --filter "mcp-server" run build;
|
||||
|
||||
rsync -avr packages/server/dist/ ./dist/;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user