@gravity-platform/miro-bridge 0.1.1
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.
- package/dist/MiroBridge/node/executor.d.ts +19 -0
- package/dist/MiroBridge/node/executor.d.ts.map +1 -0
- package/dist/MiroBridge/node/executor.js +143 -0
- package/dist/MiroBridge/node/executor.js.map +1 -0
- package/dist/MiroBridge/node/index.d.ts +10 -0
- package/dist/MiroBridge/node/index.d.ts.map +1 -0
- package/dist/MiroBridge/node/index.js +87 -0
- package/dist/MiroBridge/node/index.js.map +1 -0
- package/dist/MiroBridge/service/boardStore.d.ts +15 -0
- package/dist/MiroBridge/service/boardStore.d.ts.map +1 -0
- package/dist/MiroBridge/service/boardStore.js +151 -0
- package/dist/MiroBridge/service/boardStore.js.map +1 -0
- package/dist/MiroBridge/service/diagramLayout.d.ts +13 -0
- package/dist/MiroBridge/service/diagramLayout.d.ts.map +1 -0
- package/dist/MiroBridge/service/diagramLayout.js +241 -0
- package/dist/MiroBridge/service/diagramLayout.js.map +1 -0
- package/dist/MiroBridge/service/mcpHandlers.d.ts +18 -0
- package/dist/MiroBridge/service/mcpHandlers.d.ts.map +1 -0
- package/dist/MiroBridge/service/mcpHandlers.js +307 -0
- package/dist/MiroBridge/service/mcpHandlers.js.map +1 -0
- package/dist/MiroBridge/service/mcpSchema.d.ts +490 -0
- package/dist/MiroBridge/service/mcpSchema.d.ts.map +1 -0
- package/dist/MiroBridge/service/mcpSchema.js +262 -0
- package/dist/MiroBridge/service/mcpSchema.js.map +1 -0
- package/dist/MiroBridge/service/miroApi.d.ts +32 -0
- package/dist/MiroBridge/service/miroApi.d.ts.map +1 -0
- package/dist/MiroBridge/service/miroApi.js +262 -0
- package/dist/MiroBridge/service/miroApi.js.map +1 -0
- package/dist/MiroBridge/service/normalise.d.ts +2 -0
- package/dist/MiroBridge/service/normalise.d.ts.map +1 -0
- package/dist/MiroBridge/service/normalise.js +52 -0
- package/dist/MiroBridge/service/normalise.js.map +1 -0
- package/dist/MiroBridge/util/types.d.ts +78 -0
- package/dist/MiroBridge/util/types.d.ts.map +1 -0
- package/dist/MiroBridge/util/types.js +3 -0
- package/dist/MiroBridge/util/types.js.map +1 -0
- package/dist/credentials/index.d.ts +23 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +28 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/package.json +25 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NODE_HEIGHT = exports.NODE_WIDTH = void 0;
|
|
4
|
+
exports.parseMermaid = parseMermaid;
|
|
5
|
+
exports.computeLayout = computeLayout;
|
|
6
|
+
exports.miroShapeFor = miroShapeFor;
|
|
7
|
+
exports.fillColorFor = fillColorFor;
|
|
8
|
+
const NODE_WIDTH = 180;
|
|
9
|
+
exports.NODE_WIDTH = NODE_WIDTH;
|
|
10
|
+
const NODE_HEIGHT = 120;
|
|
11
|
+
exports.NODE_HEIGHT = NODE_HEIGHT;
|
|
12
|
+
const VERTICAL_GAP = 120;
|
|
13
|
+
const HORIZONTAL_GAP = 180;
|
|
14
|
+
const MAX_NODES = 50;
|
|
15
|
+
const MAX_LINES = 200;
|
|
16
|
+
// ---- Mermaid parser ----
|
|
17
|
+
const RE_DIRECTION = /^flowchart\s+(TD|TB|LR|RL)/i;
|
|
18
|
+
const RE_NODE_RECT = /^(\w+)\[([^\]]+)\]/;
|
|
19
|
+
const RE_NODE_DIAMOND = /^(\w+)\{([^}]+)\}/;
|
|
20
|
+
const RE_NODE_CIRCLE = /^(\w+)\(\(([^)]+)\)\)/;
|
|
21
|
+
const RE_NODE_DB = /^(\w+)\[\(([^)]+)\)\]/;
|
|
22
|
+
const RE_NODE_PARALLEL = /^(\w+)\[\/([^/]+)\/\]/;
|
|
23
|
+
const RE_EDGE_LABEL = /^(\w+)\s*--?>?\|([^|]+)\|\s*(\w+)/;
|
|
24
|
+
const RE_EDGE = /^(\w+)\s*--?-?>?\s*(\w+)/;
|
|
25
|
+
function inferShape(type) {
|
|
26
|
+
switch (type) {
|
|
27
|
+
case "rect": return "process";
|
|
28
|
+
case "diamond": return "decision";
|
|
29
|
+
case "circle": return "terminator";
|
|
30
|
+
case "db": return "database";
|
|
31
|
+
case "parallel": return "parallelogram";
|
|
32
|
+
default: return "default";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function parseMermaid(dsl) {
|
|
36
|
+
const lines = dsl.split("\n").map((l) => l.trim()).filter(Boolean);
|
|
37
|
+
if (lines.length > MAX_LINES)
|
|
38
|
+
throw new Error("INPUT_TOO_LONG: max 200 lines");
|
|
39
|
+
let direction = "TB";
|
|
40
|
+
const nodeMap = new Map();
|
|
41
|
+
const edges = [];
|
|
42
|
+
function ensureNode(id, label, shape) {
|
|
43
|
+
if (!nodeMap.has(id)) {
|
|
44
|
+
nodeMap.set(id, { id, label: label ?? id, shape: shape ?? "default" });
|
|
45
|
+
}
|
|
46
|
+
else if (label) {
|
|
47
|
+
const existing = nodeMap.get(id);
|
|
48
|
+
nodeMap.set(id, { ...existing, label, shape: shape ?? existing.shape });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
for (const line of lines) {
|
|
52
|
+
// direction
|
|
53
|
+
const dMatch = RE_DIRECTION.exec(line);
|
|
54
|
+
if (dMatch) {
|
|
55
|
+
direction = (dMatch[1].toUpperCase() === "LR" || dMatch[1].toUpperCase() === "RL") ? "LR" : "TB";
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
// node declarations (check before edge patterns)
|
|
59
|
+
const dbMatch = RE_NODE_DB.exec(line);
|
|
60
|
+
if (dbMatch) {
|
|
61
|
+
ensureNode(dbMatch[1], dbMatch[2], "database");
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const circMatch = RE_NODE_CIRCLE.exec(line);
|
|
65
|
+
if (circMatch) {
|
|
66
|
+
ensureNode(circMatch[1], circMatch[2], "terminator");
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const parallelMatch = RE_NODE_PARALLEL.exec(line);
|
|
70
|
+
if (parallelMatch) {
|
|
71
|
+
ensureNode(parallelMatch[1], parallelMatch[2], "parallelogram");
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const diamondMatch = RE_NODE_DIAMOND.exec(line);
|
|
75
|
+
if (diamondMatch) {
|
|
76
|
+
ensureNode(diamondMatch[1], diamondMatch[2], "decision");
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const rectMatch = RE_NODE_RECT.exec(line);
|
|
80
|
+
if (rectMatch) {
|
|
81
|
+
ensureNode(rectMatch[1], rectMatch[2], "process");
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
// edge with label — also declares nodes implicitly if not yet seen
|
|
85
|
+
const edgeLabelMatch = RE_EDGE_LABEL.exec(line);
|
|
86
|
+
if (edgeLabelMatch) {
|
|
87
|
+
ensureNode(edgeLabelMatch[1]);
|
|
88
|
+
ensureNode(edgeLabelMatch[3]);
|
|
89
|
+
edges.push({ from: edgeLabelMatch[1], to: edgeLabelMatch[3], label: edgeLabelMatch[2].trim() });
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
// plain edge
|
|
93
|
+
const edgeMatch = RE_EDGE.exec(line);
|
|
94
|
+
if (edgeMatch) {
|
|
95
|
+
ensureNode(edgeMatch[1]);
|
|
96
|
+
ensureNode(edgeMatch[2]);
|
|
97
|
+
edges.push({ from: edgeMatch[1], to: edgeMatch[2] });
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const nodes = Array.from(nodeMap.values());
|
|
102
|
+
if (nodes.length > MAX_NODES)
|
|
103
|
+
throw new Error(`TOO_MANY_NODES: max ${MAX_NODES} nodes`);
|
|
104
|
+
return { nodes, edges, direction };
|
|
105
|
+
}
|
|
106
|
+
// ---- Layout algorithm (simplified Sugiyama) ----
|
|
107
|
+
function computeLayout(nodes, edges, direction) {
|
|
108
|
+
if (nodes.length === 0) {
|
|
109
|
+
return { nodes: [], bounds: { width: 0, height: 0 }, edges };
|
|
110
|
+
}
|
|
111
|
+
const nodeIds = nodes.map((n) => n.id);
|
|
112
|
+
const inDegree = new Map(nodeIds.map((id) => [id, 0]));
|
|
113
|
+
const outEdges = new Map(nodeIds.map((id) => [id, []]));
|
|
114
|
+
const inEdges = new Map(nodeIds.map((id) => [id, []]));
|
|
115
|
+
for (const e of edges) {
|
|
116
|
+
if (!inDegree.has(e.to) || !inDegree.has(e.from))
|
|
117
|
+
continue;
|
|
118
|
+
inDegree.set(e.to, (inDegree.get(e.to) ?? 0) + 1);
|
|
119
|
+
outEdges.get(e.from)?.push(e.to);
|
|
120
|
+
inEdges.get(e.to)?.push(e.from);
|
|
121
|
+
}
|
|
122
|
+
// BFS layer assignment
|
|
123
|
+
const layer = new Map();
|
|
124
|
+
const queue = [];
|
|
125
|
+
for (const id of nodeIds) {
|
|
126
|
+
if ((inDegree.get(id) ?? 0) === 0) {
|
|
127
|
+
layer.set(id, 0);
|
|
128
|
+
queue.push(id);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// If no roots (fully cyclic), seed with first node
|
|
132
|
+
if (queue.length === 0) {
|
|
133
|
+
layer.set(nodeIds[0], 0);
|
|
134
|
+
queue.push(nodeIds[0]);
|
|
135
|
+
}
|
|
136
|
+
let qi = 0;
|
|
137
|
+
while (qi < queue.length) {
|
|
138
|
+
const id = queue[qi++];
|
|
139
|
+
const currentLayer = layer.get(id) ?? 0;
|
|
140
|
+
for (const child of outEdges.get(id) ?? []) {
|
|
141
|
+
if (!layer.has(child) || (layer.get(child) ?? 0) < currentLayer + 1) {
|
|
142
|
+
layer.set(child, currentLayer + 1);
|
|
143
|
+
queue.push(child);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Assign unvisited nodes (disconnected) to last layer + 1
|
|
148
|
+
const maxLayer = Math.max(...Array.from(layer.values()), 0);
|
|
149
|
+
for (const id of nodeIds) {
|
|
150
|
+
if (!layer.has(id))
|
|
151
|
+
layer.set(id, maxLayer + 1);
|
|
152
|
+
}
|
|
153
|
+
// Group by layer
|
|
154
|
+
const layerCount = Math.max(...Array.from(layer.values())) + 1;
|
|
155
|
+
const layers = Array.from({ length: layerCount }, () => []);
|
|
156
|
+
for (const id of nodeIds) {
|
|
157
|
+
layers[layer.get(id) ?? 0].push(id);
|
|
158
|
+
}
|
|
159
|
+
// Barycentric ordering (4 iterations)
|
|
160
|
+
for (let iter = 0; iter < 4; iter++) {
|
|
161
|
+
// Forward pass
|
|
162
|
+
for (let l = 1; l < layers.length; l++) {
|
|
163
|
+
const prevPositions = new Map(layers[l - 1].map((id, pos) => [id, pos]));
|
|
164
|
+
layers[l].sort((a, b) => {
|
|
165
|
+
const avgA = average((inEdges.get(a) ?? []).map((p) => prevPositions.get(p) ?? 0));
|
|
166
|
+
const avgB = average((inEdges.get(b) ?? []).map((p) => prevPositions.get(p) ?? 0));
|
|
167
|
+
return avgA - avgB;
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
// Backward pass
|
|
171
|
+
for (let l = layers.length - 2; l >= 0; l--) {
|
|
172
|
+
const nextPositions = new Map(layers[l + 1].map((id, pos) => [id, pos]));
|
|
173
|
+
layers[l].sort((a, b) => {
|
|
174
|
+
const avgA = average((outEdges.get(a) ?? []).map((s) => nextPositions.get(s) ?? 0));
|
|
175
|
+
const avgB = average((outEdges.get(b) ?? []).map((s) => nextPositions.get(s) ?? 0));
|
|
176
|
+
return avgA - avgB;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Compute coordinates
|
|
181
|
+
const posMap = new Map();
|
|
182
|
+
for (let l = 0; l < layers.length; l++) {
|
|
183
|
+
for (let p = 0; p < layers[l].length; p++) {
|
|
184
|
+
const id = layers[l][p];
|
|
185
|
+
if (direction === "LR") {
|
|
186
|
+
posMap.set(id, {
|
|
187
|
+
x: l * (NODE_WIDTH + HORIZONTAL_GAP),
|
|
188
|
+
y: p * (NODE_HEIGHT + VERTICAL_GAP),
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
posMap.set(id, {
|
|
193
|
+
x: p * (NODE_WIDTH + HORIZONTAL_GAP),
|
|
194
|
+
y: l * (NODE_HEIGHT + VERTICAL_GAP),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const maxNodesInLayer = Math.max(...layers.map((l) => l.length));
|
|
200
|
+
const bounds = direction === "LR"
|
|
201
|
+
? {
|
|
202
|
+
width: layerCount * (NODE_WIDTH + HORIZONTAL_GAP) - HORIZONTAL_GAP,
|
|
203
|
+
height: maxNodesInLayer * (NODE_HEIGHT + VERTICAL_GAP) - VERTICAL_GAP,
|
|
204
|
+
}
|
|
205
|
+
: {
|
|
206
|
+
width: maxNodesInLayer * (NODE_WIDTH + HORIZONTAL_GAP) - HORIZONTAL_GAP,
|
|
207
|
+
height: layerCount * (NODE_HEIGHT + VERTICAL_GAP) - VERTICAL_GAP,
|
|
208
|
+
};
|
|
209
|
+
const positionedNodes = nodes.map((n) => ({
|
|
210
|
+
...n,
|
|
211
|
+
x: posMap.get(n.id)?.x ?? 0,
|
|
212
|
+
y: posMap.get(n.id)?.y ?? 0,
|
|
213
|
+
}));
|
|
214
|
+
return { nodes: positionedNodes, bounds, edges };
|
|
215
|
+
}
|
|
216
|
+
function average(nums) {
|
|
217
|
+
if (nums.length === 0)
|
|
218
|
+
return 0;
|
|
219
|
+
return nums.reduce((a, b) => a + b, 0) / nums.length;
|
|
220
|
+
}
|
|
221
|
+
// ---- Shape and color mapping ----
|
|
222
|
+
function miroShapeFor(nodeShape) {
|
|
223
|
+
switch (nodeShape) {
|
|
224
|
+
case "process": return "flow_chart_process";
|
|
225
|
+
case "decision": return "flow_chart_decision";
|
|
226
|
+
case "terminator": return "flow_chart_terminator";
|
|
227
|
+
case "database": return "flow_chart_database";
|
|
228
|
+
case "parallelogram": return "parallelogram";
|
|
229
|
+
default: return "rectangle";
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function fillColorFor(nodeShape) {
|
|
233
|
+
switch (nodeShape) {
|
|
234
|
+
case "process": return "#dbeafe";
|
|
235
|
+
case "decision": return "#fef9c3";
|
|
236
|
+
case "terminator": return "#dcfce7";
|
|
237
|
+
case "database": return "#e0e7ff";
|
|
238
|
+
default: return "#f3f4f6";
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=diagramLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagramLayout.js","sourceRoot":"","sources":["../../../src/MiroBridge/service/diagramLayout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { MiroBridgeConfig } from "../util/types";
|
|
2
|
+
import type { NodeExecutionContext } from "@gravity-platform/plugin-base";
|
|
3
|
+
export declare function handleGetBoardState(_params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
4
|
+
export declare function handleGetSelection(_params: Record<string, any>, _config: MiroBridgeConfig, _context: NodeExecutionContext, _api: any, _credentialContext: any): Promise<any>;
|
|
5
|
+
export declare function handleCreateSticky(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
6
|
+
export declare function handleCreateText(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
7
|
+
export declare function handleCreateFrame(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
8
|
+
export declare function handleCreateShape(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
9
|
+
export declare function handleCreateCard(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
10
|
+
export declare function handleCreateAppCard(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
11
|
+
export declare function handleCreateImage(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
12
|
+
export declare function handleUpdateItem(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
13
|
+
export declare function handleDeleteItem(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
14
|
+
export declare function handleCreateConnector(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
15
|
+
export declare function handleCreateDiagram(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
16
|
+
export declare function handleAddTag(params: Record<string, any>, config: MiroBridgeConfig, context: NodeExecutionContext, api: any, credentialContext: any): Promise<any>;
|
|
17
|
+
export declare function handleZoomTo(params: Record<string, any>, _config: MiroBridgeConfig, _context: NodeExecutionContext, _api: any, _credentialContext: any): Promise<any>;
|
|
18
|
+
//# sourceMappingURL=mcpHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpHandlers.d.ts","sourceRoot":"","sources":["../../../src/MiroBridge/service/mcpHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleGetBoardState = handleGetBoardState;
|
|
4
|
+
exports.handleGetSelection = handleGetSelection;
|
|
5
|
+
exports.handleCreateSticky = handleCreateSticky;
|
|
6
|
+
exports.handleCreateText = handleCreateText;
|
|
7
|
+
exports.handleCreateFrame = handleCreateFrame;
|
|
8
|
+
exports.handleCreateShape = handleCreateShape;
|
|
9
|
+
exports.handleCreateCard = handleCreateCard;
|
|
10
|
+
exports.handleCreateAppCard = handleCreateAppCard;
|
|
11
|
+
exports.handleCreateImage = handleCreateImage;
|
|
12
|
+
exports.handleUpdateItem = handleUpdateItem;
|
|
13
|
+
exports.handleDeleteItem = handleDeleteItem;
|
|
14
|
+
exports.handleCreateConnector = handleCreateConnector;
|
|
15
|
+
exports.handleCreateDiagram = handleCreateDiagram;
|
|
16
|
+
exports.handleAddTag = handleAddTag;
|
|
17
|
+
exports.handleZoomTo = handleZoomTo;
|
|
18
|
+
const boardStore_1 = require("./boardStore");
|
|
19
|
+
const diagramLayout_1 = require("./diagramLayout");
|
|
20
|
+
const miroApi_1 = require("./miroApi");
|
|
21
|
+
async function getCredentials(api, credentialContext, context) {
|
|
22
|
+
// Platform resolves credentials into credentialContext.credentials before execution
|
|
23
|
+
const available = credentialContext.credentials || {};
|
|
24
|
+
let creds;
|
|
25
|
+
for (const val of Object.values(available)) {
|
|
26
|
+
if (val?.accessToken) {
|
|
27
|
+
creds = val;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (!creds?.accessToken || !creds?.boardId) {
|
|
32
|
+
throw new Error("miroCredential missing accessToken or boardId");
|
|
33
|
+
}
|
|
34
|
+
return { accessToken: creds.accessToken, boardId: creds.boardId };
|
|
35
|
+
}
|
|
36
|
+
async function resolveParentId(api, key, accessToken, boardId, explicit) {
|
|
37
|
+
if (explicit)
|
|
38
|
+
return explicit;
|
|
39
|
+
const board = key ? await (0, boardStore_1.getBoard)(api, key) : null;
|
|
40
|
+
const frames = board?.items.filter((i) => i.type === "frame") ?? [];
|
|
41
|
+
if (frames.length > 0)
|
|
42
|
+
return frames[frames.length - 1].id;
|
|
43
|
+
// No frame exists — auto-create a default one
|
|
44
|
+
const xOffset = key ? await (0, boardStore_1.nextFrameX)(api, key, 1600) : 0;
|
|
45
|
+
if (key)
|
|
46
|
+
(0, boardStore_1.nextFrameSlot)(api, key);
|
|
47
|
+
const { id } = await (0, miroApi_1.apiCreateFrame)(accessToken, boardId, {
|
|
48
|
+
content: "Board",
|
|
49
|
+
x: xOffset,
|
|
50
|
+
y: 0,
|
|
51
|
+
width: 1600,
|
|
52
|
+
height: 900,
|
|
53
|
+
});
|
|
54
|
+
if (key)
|
|
55
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "frame", content: "Board", x: xOffset, y: 0, width: 1600, height: 900 });
|
|
56
|
+
return id;
|
|
57
|
+
}
|
|
58
|
+
function resolveGridPosition(api, key, parentId) {
|
|
59
|
+
const slot = key ? (0, boardStore_1.nextItemSlot)(api, key, parentId) : 0;
|
|
60
|
+
const col = slot % 3;
|
|
61
|
+
const row = Math.floor(slot / 3);
|
|
62
|
+
return { x: 110 + col * 220, y: 110 + row * 220 };
|
|
63
|
+
}
|
|
64
|
+
function resolveKey(context) {
|
|
65
|
+
const chatId = context.publishingContext?.chatId ??
|
|
66
|
+
context.chatId ??
|
|
67
|
+
null;
|
|
68
|
+
if (!chatId)
|
|
69
|
+
return null;
|
|
70
|
+
return (0, boardStore_1.keyFor)(chatId, context.nodeId);
|
|
71
|
+
}
|
|
72
|
+
// ---- Reads (REST API → Redis cache) ----
|
|
73
|
+
async function handleGetBoardState(_params, config, context, api, credentialContext) {
|
|
74
|
+
const key = resolveKey(context);
|
|
75
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
76
|
+
const snapshot = await (0, miroApi_1.apiBoardState)(accessToken, boardId);
|
|
77
|
+
const state = { ...snapshot, version: 1, updatedAt: new Date().toISOString() };
|
|
78
|
+
if (key) {
|
|
79
|
+
await (0, boardStore_1.saveBoard)(api, key, state);
|
|
80
|
+
(0, boardStore_1.seedCountersFromBoard)(key, state);
|
|
81
|
+
}
|
|
82
|
+
return { ok: true, items: state.items, connectors: state.connectors, tags: state.tags, count: state.items.length };
|
|
83
|
+
}
|
|
84
|
+
async function handleGetSelection(_params, _config, _context, _api, _credentialContext) {
|
|
85
|
+
return { ok: true, items: [], note: "get_selection requires the Miro panel to be open" };
|
|
86
|
+
}
|
|
87
|
+
// ---- Writes (REST API + Redis) ----
|
|
88
|
+
async function handleCreateSticky(params, config, context, api, credentialContext) {
|
|
89
|
+
if (!params.text)
|
|
90
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'text' is required" };
|
|
91
|
+
const key = resolveKey(context);
|
|
92
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
93
|
+
const resolvedParentId = await resolveParentId(api, key, accessToken, boardId, params.parentId);
|
|
94
|
+
const { x, y } = resolvedParentId ? resolveGridPosition(api, key, resolvedParentId) : { x: 0, y: 0 };
|
|
95
|
+
const p = { content: params.text, x, y, width: params.width, style: { fillColor: params.color ?? "yellow" }, parentId: resolvedParentId };
|
|
96
|
+
const { id } = await (0, miroApi_1.apiCreateSticky)(accessToken, boardId, p);
|
|
97
|
+
if (key)
|
|
98
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "sticky_note", content: params.text, x, y, parentId: resolvedParentId });
|
|
99
|
+
return { ok: true, id };
|
|
100
|
+
}
|
|
101
|
+
async function handleCreateText(params, config, context, api, credentialContext) {
|
|
102
|
+
if (!params.text)
|
|
103
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'text' is required" };
|
|
104
|
+
const key = resolveKey(context);
|
|
105
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
106
|
+
const resolvedParentId = await resolveParentId(api, key, accessToken, boardId, params.parentId);
|
|
107
|
+
let x = 100, y = 100;
|
|
108
|
+
if (resolvedParentId && key) {
|
|
109
|
+
const slot = (0, boardStore_1.nextTextSlot)(api, key, resolvedParentId);
|
|
110
|
+
x = 100;
|
|
111
|
+
y = 100 + slot * 120;
|
|
112
|
+
}
|
|
113
|
+
const p = { content: params.text, x, y, style: { fontSize: params.fontSize }, parentId: resolvedParentId };
|
|
114
|
+
const { id } = await (0, miroApi_1.apiCreateText)(accessToken, boardId, p);
|
|
115
|
+
if (key)
|
|
116
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "text", content: params.text, x, y, parentId: resolvedParentId });
|
|
117
|
+
return { ok: true, id };
|
|
118
|
+
}
|
|
119
|
+
async function handleCreateFrame(params, config, context, api, credentialContext) {
|
|
120
|
+
if (!params.title)
|
|
121
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'title' is required" };
|
|
122
|
+
const key = resolveKey(context);
|
|
123
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
124
|
+
const frameWidth = params.width ?? 1600;
|
|
125
|
+
const frameHeight = params.height ?? 900;
|
|
126
|
+
const xOffset = key ? await (0, boardStore_1.nextFrameX)(api, key, frameWidth) : 0;
|
|
127
|
+
if (key)
|
|
128
|
+
(0, boardStore_1.nextFrameSlot)(api, key);
|
|
129
|
+
const p = { content: params.title, x: xOffset, y: 0, width: frameWidth, height: frameHeight };
|
|
130
|
+
const { id } = await (0, miroApi_1.apiCreateFrame)(accessToken, boardId, p);
|
|
131
|
+
if (key)
|
|
132
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "frame", content: params.title, x: p.x, y: p.y, width: p.width, height: p.height });
|
|
133
|
+
return { ok: true, id };
|
|
134
|
+
}
|
|
135
|
+
async function handleCreateShape(params, config, context, api, credentialContext) {
|
|
136
|
+
const key = resolveKey(context);
|
|
137
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
138
|
+
const p = { content: params.text ?? "", x: params.x ?? config.defaultX ?? 0, y: params.y ?? config.defaultY ?? 0, width: params.width ?? 200, height: params.height ?? 100, style: { shape: params.shape ?? "rectangle", fillColor: params.fillColor }, parentId: params.parentId };
|
|
139
|
+
const { id } = await (0, miroApi_1.apiCreateShape)(accessToken, boardId, p);
|
|
140
|
+
if (key)
|
|
141
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "shape", content: p.content, x: p.x, y: p.y, width: p.width, height: p.height, parentId: params.parentId });
|
|
142
|
+
return { ok: true, id };
|
|
143
|
+
}
|
|
144
|
+
async function handleCreateCard(params, config, context, api, credentialContext) {
|
|
145
|
+
if (!params.title)
|
|
146
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'title' is required" };
|
|
147
|
+
const key = resolveKey(context);
|
|
148
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
149
|
+
const resolvedParentId = await resolveParentId(api, key, accessToken, boardId, params.parentId);
|
|
150
|
+
const { x, y } = resolvedParentId ? resolveGridPosition(api, key, resolvedParentId) : { x: 0, y: 0 };
|
|
151
|
+
const p = { content: params.title, x, y, style: { description: params.description, dueDate: params.dueDate }, parentId: resolvedParentId };
|
|
152
|
+
const { id } = await (0, miroApi_1.apiCreateCard)(accessToken, boardId, p);
|
|
153
|
+
if (key)
|
|
154
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "card", content: params.title, x, y, parentId: resolvedParentId });
|
|
155
|
+
return { ok: true, id };
|
|
156
|
+
}
|
|
157
|
+
async function handleCreateAppCard(params, config, context, api, credentialContext) {
|
|
158
|
+
if (!params.title)
|
|
159
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'title' is required" };
|
|
160
|
+
const key = resolveKey(context);
|
|
161
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
162
|
+
const resolvedParentId = await resolveParentId(api, key, accessToken, boardId, params.parentId);
|
|
163
|
+
const { x, y } = resolvedParentId ? resolveGridPosition(api, key, resolvedParentId) : { x: 0, y: 0 };
|
|
164
|
+
const p = { content: params.title, x, y, style: { description: params.description, status: params.status, fields: params.fields }, parentId: resolvedParentId };
|
|
165
|
+
const { id } = await (0, miroApi_1.apiCreateAppCard)(accessToken, boardId, p);
|
|
166
|
+
if (key)
|
|
167
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "app_card", content: params.title, x, y, parentId: resolvedParentId });
|
|
168
|
+
return { ok: true, id };
|
|
169
|
+
}
|
|
170
|
+
async function handleCreateImage(params, config, context, api, credentialContext) {
|
|
171
|
+
if (!params.url)
|
|
172
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'url' is required" };
|
|
173
|
+
const key = resolveKey(context);
|
|
174
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
175
|
+
const resolvedParentId = await resolveParentId(api, key, accessToken, boardId, params.parentId);
|
|
176
|
+
const { x, y } = resolvedParentId ? resolveGridPosition(api, key, resolvedParentId) : { x: 0, y: 0 };
|
|
177
|
+
const p = { content: params.url, x, y, width: params.width ?? 300, parentId: resolvedParentId };
|
|
178
|
+
const { id } = await (0, miroApi_1.apiCreateImage)(accessToken, boardId, p);
|
|
179
|
+
if (key)
|
|
180
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "image", content: params.url, x, y, parentId: resolvedParentId });
|
|
181
|
+
return { ok: true, id };
|
|
182
|
+
}
|
|
183
|
+
async function handleUpdateItem(params, config, context, api, credentialContext) {
|
|
184
|
+
if (!params.id)
|
|
185
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'id' is required" };
|
|
186
|
+
const key = resolveKey(context);
|
|
187
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
188
|
+
// Look up item type from board state so apiUpdateItem routes to the correct endpoint
|
|
189
|
+
const board = key ? await (0, boardStore_1.getBoard)(api, key) : null;
|
|
190
|
+
const item = board?.items.find((i) => i.id === params.id);
|
|
191
|
+
const paramsWithType = { ...params, itemType: item?.type };
|
|
192
|
+
await (0, miroApi_1.apiUpdateItem)(accessToken, boardId, paramsWithType);
|
|
193
|
+
if (key)
|
|
194
|
+
await (0, boardStore_1.applyUpdate)(api, key, params.id, { content: params.content, x: params.x, y: params.y, width: params.width, height: params.height });
|
|
195
|
+
return { ok: true, id: params.id };
|
|
196
|
+
}
|
|
197
|
+
async function handleDeleteItem(params, config, context, api, credentialContext) {
|
|
198
|
+
if (!params.id)
|
|
199
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'id' is required" };
|
|
200
|
+
const key = resolveKey(context);
|
|
201
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
202
|
+
const deleteBoard = key ? await (0, boardStore_1.getBoard)(api, key) : null;
|
|
203
|
+
const deleteItem = deleteBoard?.items.find((i) => i.id === params.id);
|
|
204
|
+
await (0, miroApi_1.apiDeleteItem)(accessToken, boardId, params.id, deleteItem?.type);
|
|
205
|
+
if (key)
|
|
206
|
+
await (0, boardStore_1.applyDelete)(api, key, params.id);
|
|
207
|
+
return { ok: true };
|
|
208
|
+
}
|
|
209
|
+
async function handleCreateConnector(params, config, context, api, credentialContext) {
|
|
210
|
+
if (!params.startItemId || !params.endItemId)
|
|
211
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'startItemId' and 'endItemId' are required" };
|
|
212
|
+
const key = resolveKey(context);
|
|
213
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
214
|
+
const connParams = {
|
|
215
|
+
...params,
|
|
216
|
+
shape: params.shape ?? "elbowed",
|
|
217
|
+
startCap: params.startCap ?? "none",
|
|
218
|
+
endCap: params.endCap ?? "filled_arrow",
|
|
219
|
+
};
|
|
220
|
+
const { id } = await (0, miroApi_1.apiCreateConnector)(accessToken, boardId, connParams);
|
|
221
|
+
if (key)
|
|
222
|
+
await (0, boardStore_1.applyCreateConnector)(api, key, { id, startItemId: params.startItemId, endItemId: params.endItemId, caption: params.label });
|
|
223
|
+
return { ok: true, id };
|
|
224
|
+
}
|
|
225
|
+
async function handleCreateDiagram(params, config, context, api, credentialContext) {
|
|
226
|
+
if (!params.dsl)
|
|
227
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'dsl' is required" };
|
|
228
|
+
let parsed;
|
|
229
|
+
try {
|
|
230
|
+
parsed = (0, diagramLayout_1.parseMermaid)(params.dsl);
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
return { ok: false, error: "PARSE_ERROR", hint: e.message };
|
|
234
|
+
}
|
|
235
|
+
const layout = (0, diagramLayout_1.computeLayout)(parsed.nodes, parsed.edges, parsed.direction);
|
|
236
|
+
const key = resolveKey(context);
|
|
237
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
238
|
+
let parentId;
|
|
239
|
+
if (params.parentId) {
|
|
240
|
+
parentId = params.parentId;
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
const frameWidth = Math.max(1600, layout.bounds.width + 200);
|
|
244
|
+
const frameHeight = Math.max(900, layout.bounds.height + 200);
|
|
245
|
+
const xOffset = key ? await (0, boardStore_1.nextFrameX)(api, key, frameWidth) : 0;
|
|
246
|
+
if (key)
|
|
247
|
+
(0, boardStore_1.nextFrameSlot)(api, key);
|
|
248
|
+
const title = params.title ?? "Diagram";
|
|
249
|
+
const { id: fid } = await (0, miroApi_1.apiCreateFrame)(accessToken, boardId, {
|
|
250
|
+
content: title, x: xOffset, y: 0, width: frameWidth, height: frameHeight,
|
|
251
|
+
});
|
|
252
|
+
if (key)
|
|
253
|
+
await (0, boardStore_1.applyCreate)(api, key, { id: fid, type: "frame", content: title, x: xOffset, y: 0, width: frameWidth, height: frameHeight });
|
|
254
|
+
parentId = fid;
|
|
255
|
+
}
|
|
256
|
+
// Centre nodes within the frame — frame origin is frame centre, child coords are frame-relative
|
|
257
|
+
const offsetX = -(layout.bounds.width / 2) + diagramLayout_1.NODE_WIDTH / 2;
|
|
258
|
+
const offsetY = -(layout.bounds.height / 2) + diagramLayout_1.NODE_HEIGHT / 2;
|
|
259
|
+
const nodeIdMap = new Map();
|
|
260
|
+
const allIds = [];
|
|
261
|
+
for (const node of layout.nodes) {
|
|
262
|
+
const p = {
|
|
263
|
+
content: node.label,
|
|
264
|
+
x: node.x + offsetX,
|
|
265
|
+
y: node.y + offsetY,
|
|
266
|
+
width: diagramLayout_1.NODE_WIDTH,
|
|
267
|
+
height: diagramLayout_1.NODE_HEIGHT,
|
|
268
|
+
style: { shape: (0, diagramLayout_1.miroShapeFor)(node.shape), fillColor: (0, diagramLayout_1.fillColorFor)(node.shape) },
|
|
269
|
+
parentId,
|
|
270
|
+
};
|
|
271
|
+
const { id } = await (0, miroApi_1.apiCreateShape)(accessToken, boardId, p);
|
|
272
|
+
if (key)
|
|
273
|
+
await (0, boardStore_1.applyCreate)(api, key, { id, type: "shape", content: node.label, x: p.x, y: p.y, width: diagramLayout_1.NODE_WIDTH, height: diagramLayout_1.NODE_HEIGHT, parentId });
|
|
274
|
+
nodeIdMap.set(node.id, id);
|
|
275
|
+
allIds.push(id);
|
|
276
|
+
}
|
|
277
|
+
for (const edge of parsed.edges) {
|
|
278
|
+
const startItemId = nodeIdMap.get(edge.from);
|
|
279
|
+
const endItemId = nodeIdMap.get(edge.to);
|
|
280
|
+
if (!startItemId || !endItemId)
|
|
281
|
+
continue;
|
|
282
|
+
const cp = { startItemId, endItemId, label: edge.label, shape: "elbowed", endCap: "filled_arrow" };
|
|
283
|
+
const { id } = await (0, miroApi_1.apiCreateConnector)(accessToken, boardId, cp);
|
|
284
|
+
if (key)
|
|
285
|
+
await (0, boardStore_1.applyCreateConnector)(api, key, { id, startItemId, endItemId, caption: edge.label });
|
|
286
|
+
allIds.push(id);
|
|
287
|
+
}
|
|
288
|
+
return { ok: true, itemIds: allIds, parentId };
|
|
289
|
+
}
|
|
290
|
+
async function handleAddTag(params, config, context, api, credentialContext) {
|
|
291
|
+
if (!params.title)
|
|
292
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'title' is required" };
|
|
293
|
+
if (!params.itemId)
|
|
294
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'itemId' is required" };
|
|
295
|
+
const key = resolveKey(context);
|
|
296
|
+
const { accessToken, boardId } = await getCredentials(api, credentialContext, context);
|
|
297
|
+
const { id } = await (0, miroApi_1.apiCreateTag)(accessToken, boardId, params);
|
|
298
|
+
if (key)
|
|
299
|
+
await (0, boardStore_1.applyCreateTag)(api, key, { id, title: params.title, color: params.color ?? "yellow", itemIds: [params.itemId] });
|
|
300
|
+
return { ok: true, id };
|
|
301
|
+
}
|
|
302
|
+
async function handleZoomTo(params, _config, _context, _api, _credentialContext) {
|
|
303
|
+
if (!params.itemIds?.length)
|
|
304
|
+
return { ok: false, error: "MISSING_PARAM", hint: "'itemIds' is required" };
|
|
305
|
+
return { ok: true, note: "zoom_to is handled by the Miro panel when open" };
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=mcpHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpHandlers.js","sourceRoot":"","sources":["../../../src/MiroBridge/service/mcpHandlers.ts"],"names":[],"mappings":"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"}
|