@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.
Files changed (45) hide show
  1. package/dist/MiroBridge/node/executor.d.ts +19 -0
  2. package/dist/MiroBridge/node/executor.d.ts.map +1 -0
  3. package/dist/MiroBridge/node/executor.js +143 -0
  4. package/dist/MiroBridge/node/executor.js.map +1 -0
  5. package/dist/MiroBridge/node/index.d.ts +10 -0
  6. package/dist/MiroBridge/node/index.d.ts.map +1 -0
  7. package/dist/MiroBridge/node/index.js +87 -0
  8. package/dist/MiroBridge/node/index.js.map +1 -0
  9. package/dist/MiroBridge/service/boardStore.d.ts +15 -0
  10. package/dist/MiroBridge/service/boardStore.d.ts.map +1 -0
  11. package/dist/MiroBridge/service/boardStore.js +151 -0
  12. package/dist/MiroBridge/service/boardStore.js.map +1 -0
  13. package/dist/MiroBridge/service/diagramLayout.d.ts +13 -0
  14. package/dist/MiroBridge/service/diagramLayout.d.ts.map +1 -0
  15. package/dist/MiroBridge/service/diagramLayout.js +241 -0
  16. package/dist/MiroBridge/service/diagramLayout.js.map +1 -0
  17. package/dist/MiroBridge/service/mcpHandlers.d.ts +18 -0
  18. package/dist/MiroBridge/service/mcpHandlers.d.ts.map +1 -0
  19. package/dist/MiroBridge/service/mcpHandlers.js +307 -0
  20. package/dist/MiroBridge/service/mcpHandlers.js.map +1 -0
  21. package/dist/MiroBridge/service/mcpSchema.d.ts +490 -0
  22. package/dist/MiroBridge/service/mcpSchema.d.ts.map +1 -0
  23. package/dist/MiroBridge/service/mcpSchema.js +262 -0
  24. package/dist/MiroBridge/service/mcpSchema.js.map +1 -0
  25. package/dist/MiroBridge/service/miroApi.d.ts +32 -0
  26. package/dist/MiroBridge/service/miroApi.d.ts.map +1 -0
  27. package/dist/MiroBridge/service/miroApi.js +262 -0
  28. package/dist/MiroBridge/service/miroApi.js.map +1 -0
  29. package/dist/MiroBridge/service/normalise.d.ts +2 -0
  30. package/dist/MiroBridge/service/normalise.d.ts.map +1 -0
  31. package/dist/MiroBridge/service/normalise.js +52 -0
  32. package/dist/MiroBridge/service/normalise.js.map +1 -0
  33. package/dist/MiroBridge/util/types.d.ts +78 -0
  34. package/dist/MiroBridge/util/types.d.ts.map +1 -0
  35. package/dist/MiroBridge/util/types.js +3 -0
  36. package/dist/MiroBridge/util/types.js.map +1 -0
  37. package/dist/credentials/index.d.ts +23 -0
  38. package/dist/credentials/index.d.ts.map +1 -0
  39. package/dist/credentials/index.js +28 -0
  40. package/dist/credentials/index.js.map +1 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +55 -0
  44. package/dist/index.js.map +1 -0
  45. 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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"}