callman-mcp 0.2.0 → 0.3.0
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/CHANGELOG.md +28 -0
- package/README.md +2 -2
- package/dist/client/api.d.ts +1 -0
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +2 -0
- package/dist/client/api.js.map +1 -1
- package/dist/domain/diagram/build.d.ts +112 -63
- package/dist/domain/diagram/build.d.ts.map +1 -1
- package/dist/domain/diagram/build.js +49 -165
- package/dist/domain/diagram/build.js.map +1 -1
- package/dist/domain/diagram/layout.d.ts +3 -4
- package/dist/domain/diagram/layout.d.ts.map +1 -1
- package/dist/domain/diagram/layout.js +12 -45
- package/dist/domain/diagram/layout.js.map +1 -1
- package/dist/domain/diagram/patch.d.ts +298 -80
- package/dist/domain/diagram/patch.d.ts.map +1 -1
- package/dist/domain/diagram/patch.js +60 -273
- package/dist/domain/diagram/patch.js.map +1 -1
- package/dist/domain/diagram/style.d.ts +4 -12
- package/dist/domain/diagram/style.d.ts.map +1 -1
- package/dist/domain/diagram/style.js +8 -84
- package/dist/domain/diagram/style.js.map +1 -1
- package/dist/domain/diagram/summarize.d.ts +25 -24
- package/dist/domain/diagram/summarize.d.ts.map +1 -1
- package/dist/domain/diagram/summarize.js +20 -35
- package/dist/domain/diagram/summarize.js.map +1 -1
- package/dist/domain/requestIntegrations.d.ts +20 -20
- package/dist/domain/requestShape.d.ts +32 -32
- package/dist/resources/docs/diagramSchema.d.ts +1 -1
- package/dist/resources/docs/diagramSchema.d.ts.map +1 -1
- package/dist/resources/docs/diagramSchema.js +55 -10
- package/dist/resources/docs/diagramSchema.js.map +1 -1
- package/dist/resources/generated/aiPacks.d.ts +1 -1
- package/dist/resources/generated/aiPacks.js +2 -2
- package/dist/tools/diagrams.d.ts.map +1 -1
- package/dist/tools/diagrams.js +244 -42
- package/dist/tools/diagrams.js.map +1 -1
- package/dist-cjs/client/api.js +2 -0
- package/dist-cjs/domain/diagram/build.js +53 -169
- package/dist-cjs/domain/diagram/layout.js +11 -44
- package/dist-cjs/domain/diagram/patch.js +57 -270
- package/dist-cjs/domain/diagram/style.js +11 -88
- package/dist-cjs/domain/diagram/summarize.js +22 -35
- package/dist-cjs/resources/docs/diagramSchema.js +55 -10
- package/dist-cjs/resources/generated/aiPacks.js +2 -2
- package/dist-cjs/tools/diagrams.js +240 -38
- package/package.json +2 -2
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { applyDiagramOps, lowerPatchOps, slugIdFactory } from "callman-core";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { ToolInputError } from "../../client/errors.js";
|
|
4
|
-
import { sequentialIds } from "../../lib/ids.js";
|
|
5
3
|
import { strictObject } from "../../lib/strict.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { diagramEdgeInputSchema, diagramNodeInputSchema, ROUTINGS, SIDES, toToolError } from "./build.js";
|
|
5
|
+
import { colorInputSchema, nodeStylePatchSchema } from "./style.js";
|
|
8
6
|
// Incremental edits to a stored diagram — the model sends operations, not a
|
|
9
|
-
// 200-node document.
|
|
7
|
+
// 200-node document. The vocabulary is callman-core's authoring ops (the
|
|
8
|
+
// same list the desktop's AI edits use and callman://docs/diagram-schema
|
|
9
|
+
// documents); this module only adds the strict zod contract and maps the
|
|
10
|
+
// result. Removing a node drops the edges attached to it and lifts its
|
|
11
|
+
// children out; moving a node drops the saved routes of its edges.
|
|
10
12
|
const nodeShape = diagramNodeInputSchema.shape;
|
|
11
13
|
const edgeShape = diagramEdgeInputSchema.shape;
|
|
12
14
|
const nodeChangesSchema = strictObject({
|
|
@@ -19,6 +21,7 @@ const nodeChangesSchema = strictObject({
|
|
|
19
21
|
rotation: nodeShape.rotation.unwrap().nullable().optional().describe("Degrees, clockwise; null resets"),
|
|
20
22
|
locked: nodeShape.locked,
|
|
21
23
|
hidden: nodeShape.hidden,
|
|
24
|
+
collapsed: nodeShape.collapsed,
|
|
22
25
|
data: z.record(z.unknown()).nullable().optional().describe("MERGED shallowly into the node's data; a key set to null is removed, data: null clears it"),
|
|
23
26
|
}, "field", "updateNode changes");
|
|
24
27
|
const edgeChangesSchema = strictObject({
|
|
@@ -30,7 +33,12 @@ const edgeChangesSchema = strictObject({
|
|
|
30
33
|
routing: edgeShape.routing,
|
|
31
34
|
markerEnd: edgeShape.markerEnd,
|
|
32
35
|
markerStart: edgeShape.markerStart,
|
|
36
|
+
sourceSide: z.enum(SIDES).nullable().optional().describe("Fixed side at the source; null = floating"),
|
|
37
|
+
targetSide: z.enum(SIDES).nullable().optional().describe("Fixed side at the target; null = floating"),
|
|
38
|
+
data: z.record(z.unknown()).nullable().optional().describe("MERGED shallowly into the edge's data (BPMN: { bpmn: { conditionExpression, isDefault } }); a key set to null is removed, data: null clears it"),
|
|
33
39
|
}, "field", "updateEdge changes");
|
|
40
|
+
const pointSchema = z.object({ x: z.number(), y: z.number() }).strict();
|
|
41
|
+
const directionSchema = z.enum(["DOWN", "RIGHT", "UP", "LEFT"]);
|
|
34
42
|
// Every op is strict: a field at the wrong level ({ op: "updateNode", id, label })
|
|
35
43
|
// is an error, not a silent no-op that still counts as "applied".
|
|
36
44
|
export const diagramPatchOpSchema = z.discriminatedUnion("op", [
|
|
@@ -41,276 +49,55 @@ export const diagramPatchOpSchema = z.discriminatedUnion("op", [
|
|
|
41
49
|
strictObject({ op: z.literal("updateEdge"), id: z.string().min(1), changes: edgeChangesSchema }, "field", "updateEdge ops"),
|
|
42
50
|
strictObject({ op: z.literal("removeEdge"), id: z.string().min(1) }, "field", "removeEdge ops"),
|
|
43
51
|
strictObject({ op: z.literal("setTitle"), title: z.string().min(1).max(200) }, "field", "setTitle ops"),
|
|
52
|
+
strictObject({ op: z.literal("moveNode"), id: z.string().min(1), position: pointSchema.describe("Parent-relative top-left") }, "field", "moveNode ops"),
|
|
53
|
+
strictObject({ op: z.literal("reparent"), id: z.string().min(1), parent: z.string().max(64).nullable().describe("Container id, or null for the top level"), position: pointSchema.optional().describe("Position in the new parent; omitted keeps the canvas spot") }, "field", "reparent ops"),
|
|
54
|
+
strictObject({
|
|
55
|
+
op: z.literal("setEdgeRoute"),
|
|
56
|
+
id: z.string().min(1),
|
|
57
|
+
routing: z.enum(ROUTINGS).nullable().optional().describe("null = the canvas default"),
|
|
58
|
+
sourceSide: z.enum(SIDES).nullable().optional(),
|
|
59
|
+
targetSide: z.enum(SIDES).nullable().optional(),
|
|
60
|
+
waypoints: z.array(pointSchema).max(50).nullable().optional().describe("Manual bends (absolute); null clears. With nothing else set, the op resets the route"),
|
|
61
|
+
}, "field", "setEdgeRoute ops"),
|
|
62
|
+
strictObject({ op: z.literal("reorder"), id: z.string().min(1), index: z.union([z.number().int().nonnegative(), z.literal("front"), z.literal("back")]).describe("Stacking order among siblings") }, "field", "reorder ops"),
|
|
63
|
+
strictObject({
|
|
64
|
+
op: z.literal("setCanvas"),
|
|
65
|
+
canvas: z
|
|
66
|
+
.object({
|
|
67
|
+
background: z.enum(["grid", "dots", "blank"]).nullable().optional(),
|
|
68
|
+
gridSize: z.number().int().positive().nullable().optional(),
|
|
69
|
+
defaultRouting: z.enum(ROUTINGS).nullable().optional(),
|
|
70
|
+
})
|
|
71
|
+
.strict(),
|
|
72
|
+
}, "field", "setCanvas ops"),
|
|
73
|
+
strictObject({ op: z.literal("group"), ids: z.array(z.string().min(1)).min(1).max(200), type: z.string().max(80).optional().describe("frame (default), pool.horizontal or pool.vertical"), label: z.string().max(200).optional(), id: z.string().max(64).optional() }, "field", "group ops"),
|
|
74
|
+
strictObject({ op: z.literal("ungroup"), id: z.string().min(1) }, "field", "ungroup ops"),
|
|
75
|
+
strictObject({ op: z.literal("relayout"), scope: z.enum(["new", "all"]), direction: directionSchema.optional() }, "field", "relayout ops"),
|
|
44
76
|
]);
|
|
45
77
|
export const applyDiagramPatch = (doc, ops, options = {}) => {
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
warnings.push(`Unknown component type "${type}" on ${id} → rect (suggestions: ${suggestions.join(", ") || "none"})`);
|
|
69
|
-
return "rect";
|
|
70
|
-
};
|
|
71
|
-
for (const op of ops) {
|
|
72
|
-
switch (op.op) {
|
|
73
|
-
case "setTitle":
|
|
74
|
-
title = op.title.trim();
|
|
75
|
-
break;
|
|
76
|
-
case "addNode": {
|
|
77
|
-
const id = op.node.id ?? nextNodeId();
|
|
78
|
-
if (nodes.has(id))
|
|
79
|
-
throw new ToolInputError("DIAGRAM_DUPLICATE_NODE_ID", `A node with id "${id}" already exists.`);
|
|
80
|
-
if (op.node.parent && !nodes.has(op.node.parent)) {
|
|
81
|
-
throw new ToolInputError("DIAGRAM_PARENT_NOT_FOUND", `Parent "${op.node.parent}" does not exist.`);
|
|
82
|
-
}
|
|
83
|
-
const type = resolveType(op.node.type, id);
|
|
84
|
-
const def = getDiagramComponent(type);
|
|
85
|
-
nodes.set(id, {
|
|
86
|
-
id,
|
|
87
|
-
type,
|
|
88
|
-
position: op.node.position ?? { x: 0, y: 0 },
|
|
89
|
-
size: op.node.size ?? def?.defaultSize ?? { width: 140, height: 60 },
|
|
90
|
-
label: op.node.label ?? (type === "rect" && op.node.type !== "rect" ? op.node.type : def?.defaultLabel),
|
|
91
|
-
...(op.node.parent ? { parentId: op.node.parent } : {}),
|
|
92
|
-
...(op.node.style ? { style: applyStyleInput(undefined, op.node.style) } : {}),
|
|
93
|
-
...(op.node.rotation ? { rotation: op.node.rotation } : {}),
|
|
94
|
-
...(op.node.locked ? { locked: true } : {}),
|
|
95
|
-
...(op.node.hidden ? { hidden: true } : {}),
|
|
96
|
-
...(op.node.data ? { data: op.node.data } : {}),
|
|
97
|
-
});
|
|
98
|
-
if (op.node.parent) {
|
|
99
|
-
const warning = parentWarning(id, op.node.parent, nodes.get(op.node.parent)?.type);
|
|
100
|
-
if (warning)
|
|
101
|
-
warnings.push(warning);
|
|
102
|
-
}
|
|
103
|
-
if (!op.node.position)
|
|
104
|
-
addedNodeIds.push(id);
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
case "updateNode": {
|
|
108
|
-
const node = nodes.get(op.id);
|
|
109
|
-
if (!node)
|
|
110
|
-
throw new ToolInputError("DIAGRAM_NODE_NOT_FOUND", `Node "${op.id}" does not exist.`);
|
|
111
|
-
const changes = op.changes;
|
|
112
|
-
if (changes.parent && !nodes.has(changes.parent)) {
|
|
113
|
-
throw new ToolInputError("DIAGRAM_PARENT_NOT_FOUND", `Parent "${changes.parent}" does not exist.`);
|
|
114
|
-
}
|
|
115
|
-
if (changes.parent && changes.parent === op.id)
|
|
116
|
-
throw new ToolInputError("DIAGRAM_PARENT_CYCLE", `Node "${op.id}" cannot contain itself.`);
|
|
117
|
-
const next = { ...node };
|
|
118
|
-
if (changes.type !== undefined)
|
|
119
|
-
next.type = resolveType(changes.type, op.id);
|
|
120
|
-
if (changes.label !== undefined)
|
|
121
|
-
next.label = changes.label;
|
|
122
|
-
if (changes.position !== undefined)
|
|
123
|
-
next.position = changes.position;
|
|
124
|
-
if (changes.size !== undefined)
|
|
125
|
-
next.size = changes.size;
|
|
126
|
-
if (changes.parent !== undefined) {
|
|
127
|
-
if (changes.parent)
|
|
128
|
-
next.parentId = changes.parent;
|
|
129
|
-
else
|
|
130
|
-
delete next.parentId;
|
|
131
|
-
}
|
|
132
|
-
if (changes.style !== undefined) {
|
|
133
|
-
const style = changes.style === null ? undefined : applyStyleInput(node.style, changes.style);
|
|
134
|
-
if (style)
|
|
135
|
-
next.style = style;
|
|
136
|
-
else
|
|
137
|
-
delete next.style;
|
|
138
|
-
}
|
|
139
|
-
if (changes.rotation !== undefined) {
|
|
140
|
-
if (changes.rotation)
|
|
141
|
-
next.rotation = changes.rotation;
|
|
142
|
-
else
|
|
143
|
-
delete next.rotation;
|
|
144
|
-
}
|
|
145
|
-
if (changes.locked !== undefined) {
|
|
146
|
-
if (changes.locked)
|
|
147
|
-
next.locked = true;
|
|
148
|
-
else
|
|
149
|
-
delete next.locked;
|
|
150
|
-
}
|
|
151
|
-
if (changes.hidden !== undefined) {
|
|
152
|
-
if (changes.hidden)
|
|
153
|
-
next.hidden = true;
|
|
154
|
-
else
|
|
155
|
-
delete next.hidden;
|
|
156
|
-
}
|
|
157
|
-
if (changes.data !== undefined) {
|
|
158
|
-
const data = changes.data === null ? {} : { ...(node.data ?? {}) };
|
|
159
|
-
for (const [key, value] of Object.entries(changes.data ?? {})) {
|
|
160
|
-
if (value === null)
|
|
161
|
-
delete data[key];
|
|
162
|
-
else
|
|
163
|
-
data[key] = value;
|
|
164
|
-
}
|
|
165
|
-
if (Object.keys(data).length > 0)
|
|
166
|
-
next.data = data;
|
|
167
|
-
else
|
|
168
|
-
delete next.data;
|
|
169
|
-
}
|
|
170
|
-
if (changes.position !== undefined || changes.size !== undefined || changes.parent !== undefined)
|
|
171
|
-
moved.add(op.id);
|
|
172
|
-
if (changes.parent) {
|
|
173
|
-
const warning = parentWarning(op.id, changes.parent, nodes.get(changes.parent)?.type);
|
|
174
|
-
if (warning)
|
|
175
|
-
warnings.push(warning);
|
|
176
|
-
}
|
|
177
|
-
nodes.set(op.id, next);
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
case "removeNode": {
|
|
181
|
-
if (!nodes.delete(op.id))
|
|
182
|
-
throw new ToolInputError("DIAGRAM_NODE_NOT_FOUND", `Node "${op.id}" does not exist.`);
|
|
183
|
-
removedNodeIds.push(op.id);
|
|
184
|
-
for (const [edgeId, edge] of [...edges]) {
|
|
185
|
-
if (edge.source === op.id || edge.target === op.id) {
|
|
186
|
-
edges.delete(edgeId);
|
|
187
|
-
removedEdgeIds.push(edgeId);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
// Children of a removed container become top-level.
|
|
191
|
-
for (const node of nodes.values())
|
|
192
|
-
if (node.parentId === op.id)
|
|
193
|
-
delete node.parentId;
|
|
194
|
-
break;
|
|
195
|
-
}
|
|
196
|
-
case "addEdge": {
|
|
197
|
-
const id = op.edge.id ?? nextEdgeId();
|
|
198
|
-
if (edges.has(id))
|
|
199
|
-
throw new ToolInputError("DIAGRAM_DUPLICATE_EDGE_ID", `An edge with id "${id}" already exists.`);
|
|
200
|
-
for (const endpoint of [op.edge.source, op.edge.target]) {
|
|
201
|
-
if (!nodes.has(endpoint) && !edges.has(endpoint)) {
|
|
202
|
-
throw new ToolInputError("DIAGRAM_EDGE_ENDPOINT_NOT_FOUND", `Edge endpoint "${endpoint}" does not exist.`);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
const semantic = op.edge.semantic ??
|
|
206
|
-
(isBusComponentType(nodes.get(op.edge.source)?.type) || isBusComponentType(nodes.get(op.edge.target)?.type) ? "bus" : undefined);
|
|
207
|
-
edges.set(id, {
|
|
208
|
-
id,
|
|
209
|
-
source: op.edge.source,
|
|
210
|
-
target: op.edge.target,
|
|
211
|
-
...(op.edge.label ? { label: op.edge.label } : {}),
|
|
212
|
-
routing: op.edge.routing ?? "orthogonal",
|
|
213
|
-
markerEnd: op.edge.markerEnd ?? "classicThin",
|
|
214
|
-
...(op.edge.markerStart && op.edge.markerStart !== "none" ? { markerStart: op.edge.markerStart } : {}),
|
|
215
|
-
...(semantic || op.edge.color ? { style: edgeStyleFor(semantic, op.edge.color) } : {}),
|
|
216
|
-
});
|
|
217
|
-
break;
|
|
218
|
-
}
|
|
219
|
-
case "updateEdge": {
|
|
220
|
-
const edge = edges.get(op.id);
|
|
221
|
-
if (!edge)
|
|
222
|
-
throw new ToolInputError("DIAGRAM_EDGE_NOT_FOUND", `Edge "${op.id}" does not exist.`);
|
|
223
|
-
const changes = op.changes;
|
|
224
|
-
const next = { ...edge };
|
|
225
|
-
if (changes.source !== undefined)
|
|
226
|
-
next.source = changes.source;
|
|
227
|
-
if (changes.target !== undefined)
|
|
228
|
-
next.target = changes.target;
|
|
229
|
-
if (changes.label !== undefined) {
|
|
230
|
-
if (changes.label)
|
|
231
|
-
next.label = changes.label;
|
|
232
|
-
else
|
|
233
|
-
delete next.label;
|
|
234
|
-
}
|
|
235
|
-
if (changes.routing !== undefined)
|
|
236
|
-
next.routing = changes.routing;
|
|
237
|
-
if (changes.markerEnd !== undefined)
|
|
238
|
-
next.markerEnd = changes.markerEnd;
|
|
239
|
-
if (changes.markerStart !== undefined) {
|
|
240
|
-
if (changes.markerStart === "none")
|
|
241
|
-
delete next.markerStart;
|
|
242
|
-
else
|
|
243
|
-
next.markerStart = changes.markerStart;
|
|
244
|
-
}
|
|
245
|
-
// The semantic owns the line tuple (dash + width); the color is kept
|
|
246
|
-
// unless it is changed explicitly.
|
|
247
|
-
if (changes.semantic !== undefined || changes.color !== undefined) {
|
|
248
|
-
const stroke = changes.color === null ? undefined : changes.color !== undefined ? toTokenRef(changes.color) : edge.style?.stroke;
|
|
249
|
-
const line = changes.semantic !== undefined ? semanticStyle(changes.semantic) : { ...(edge.style ?? {}) };
|
|
250
|
-
delete line.stroke;
|
|
251
|
-
const style = { ...line, ...(stroke ? { stroke } : {}) };
|
|
252
|
-
if (Object.keys(style).length > 0)
|
|
253
|
-
next.style = style;
|
|
254
|
-
else
|
|
255
|
-
delete next.style;
|
|
256
|
-
}
|
|
257
|
-
for (const endpoint of [next.source, next.target]) {
|
|
258
|
-
if (endpoint && !nodes.has(endpoint) && !edges.has(endpoint)) {
|
|
259
|
-
throw new ToolInputError("DIAGRAM_EDGE_ENDPOINT_NOT_FOUND", `Edge endpoint "${endpoint}" does not exist.`);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
if (changes.source !== undefined || changes.target !== undefined)
|
|
263
|
-
clearRoute(next);
|
|
264
|
-
edges.set(op.id, next);
|
|
265
|
-
break;
|
|
266
|
-
}
|
|
267
|
-
case "removeEdge": {
|
|
268
|
-
if (!edges.delete(op.id))
|
|
269
|
-
throw new ToolInputError("DIAGRAM_EDGE_NOT_FOUND", `Edge "${op.id}" does not exist.`);
|
|
270
|
-
removedEdgeIds.push(op.id);
|
|
271
|
-
break;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
78
|
+
const taken = [...doc.nodes.map((node) => node.id), ...doc.edges.map((edge) => edge.id)];
|
|
79
|
+
try {
|
|
80
|
+
const lowered = lowerPatchOps(doc, ops, {
|
|
81
|
+
strictTypes: options.strictTypes !== false,
|
|
82
|
+
genNodeId: slugIdFactory(taken, "n"),
|
|
83
|
+
genEdgeId: slugIdFactory(taken, "e"),
|
|
84
|
+
});
|
|
85
|
+
// MCP keeps today's rule: a moved node loses the manual bends of every
|
|
86
|
+
// edge leaving it (the desktop keeps them — a person is watching there).
|
|
87
|
+
const applied = applyDiagramOps(doc, lowered.ops, { moveClearsWaypoints: true, now: new Date().toISOString() });
|
|
88
|
+
return {
|
|
89
|
+
document: applied.doc,
|
|
90
|
+
addedNodeIds: lowered.unpositionedNodeIds,
|
|
91
|
+
removedNodeIds: applied.removed.nodes,
|
|
92
|
+
removedEdgeIds: applied.removed.edges,
|
|
93
|
+
reroutedEdgeIds: applied.rerouted,
|
|
94
|
+
warnings: [...lowered.warnings, ...applied.warnings],
|
|
95
|
+
...(lowered.relayout ? { relayout: lowered.relayout } : {}),
|
|
96
|
+
idMap: lowered.idMap,
|
|
97
|
+
};
|
|
274
98
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
// A moved container carries its children: their edges are stale too.
|
|
278
|
-
const affected = new Set(moved);
|
|
279
|
-
let grew = true;
|
|
280
|
-
while (grew) {
|
|
281
|
-
grew = false;
|
|
282
|
-
for (const node of nodes.values()) {
|
|
283
|
-
if (node.parentId && affected.has(node.parentId) && !affected.has(node.id)) {
|
|
284
|
-
affected.add(node.id);
|
|
285
|
-
grew = true;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
for (const edge of edges.values()) {
|
|
290
|
-
const touches = (edge.source && affected.has(edge.source)) || (edge.target && affected.has(edge.target));
|
|
291
|
-
if (touches && (edge.waypoints || edge.sourceAnchor || edge.targetAnchor || edge.routing === "straight")) {
|
|
292
|
-
clearRoute(edge);
|
|
293
|
-
reroutedEdgeIds.push(edge.id);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
return toToolError(error);
|
|
296
101
|
}
|
|
297
|
-
const document = normalizeDiagramStyles({
|
|
298
|
-
...doc,
|
|
299
|
-
meta: { ...doc.meta, title, updatedAt: new Date().toISOString() },
|
|
300
|
-
nodes: [...nodes.values()],
|
|
301
|
-
edges: [...edges.values()],
|
|
302
|
-
});
|
|
303
|
-
const parsed = safeParseDiagramDocument(document);
|
|
304
|
-
if (!parsed.ok) {
|
|
305
|
-
throw new ToolInputError("DIAGRAM_DOCUMENT_INVALID", `The patched document is invalid: ${parsed.errors.join("; ")}`, { errors: parsed.errors });
|
|
306
|
-
}
|
|
307
|
-
return { document: parsed.document, addedNodeIds, removedNodeIds, removedEdgeIds, reroutedEdgeIds, warnings };
|
|
308
|
-
};
|
|
309
|
-
// Drop a saved route so the studio re-routes the edge orthogonally.
|
|
310
|
-
const clearRoute = (edge) => {
|
|
311
|
-
delete edge.waypoints;
|
|
312
|
-
delete edge.sourceAnchor;
|
|
313
|
-
delete edge.targetAnchor;
|
|
314
|
-
edge.routing = "orthogonal";
|
|
315
102
|
};
|
|
316
103
|
//# sourceMappingURL=patch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/domain/diagram/patch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/domain/diagram/patch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { fromTokenRef, styleView, toTokenRef, type DiagramStyle } from "callman-core";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
export declare const colorInputSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
4
4
|
raw: z.ZodString;
|
|
@@ -69,6 +69,7 @@ declare const styleFields: {
|
|
|
69
69
|
opacity: z.ZodNumber;
|
|
70
70
|
};
|
|
71
71
|
export declare const STYLE_KEYS: Array<keyof typeof styleFields>;
|
|
72
|
+
export declare const CORE_STYLE_KEYS: readonly string[];
|
|
72
73
|
export declare const nodeStyleInputSchema: z.ZodObject<{
|
|
73
74
|
fill: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
74
75
|
raw: z.ZodString;
|
|
@@ -301,15 +302,6 @@ export declare const nodeStylePatchSchema: z.ZodNullable<z.ZodObject<{
|
|
|
301
302
|
}>>;
|
|
302
303
|
export type NodeStyleInput = z.infer<typeof nodeStyleInputSchema>;
|
|
303
304
|
export type NodeStylePatch = z.infer<typeof nodeStylePatchSchema>;
|
|
304
|
-
|
|
305
|
-
export declare const
|
|
306
|
-
export declare const fromTokenRef: (ref: TokenRef | undefined) => string | {
|
|
307
|
-
token: string;
|
|
308
|
-
} | undefined;
|
|
309
|
-
type StyleValues = {
|
|
310
|
-
[K in keyof NodeStyleInput]?: NodeStyleInput[K] | null;
|
|
311
|
-
};
|
|
312
|
-
export declare const applyStyleInput: (base: DiagramStyle | undefined, input: StyleValues) => DiagramStyle | undefined;
|
|
313
|
-
export declare const styleView: (style: DiagramStyle | undefined) => Record<string, unknown> | undefined;
|
|
314
|
-
export {};
|
|
305
|
+
export { fromTokenRef, styleView, toTokenRef };
|
|
306
|
+
export declare const applyStyleInput: (base: DiagramStyle | undefined, input: NonNullable<NodeStylePatch>) => DiagramStyle | undefined;
|
|
315
307
|
//# sourceMappingURL=style.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/domain/diagram/style.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/domain/diagram/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,YAAY,EAAoB,SAAS,EAAE,UAAU,EAAE,KAAK,YAAY,EAA6C,MAAM,cAAc,CAAC;AAC3L,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;IAM0E,CAAC;AAExG,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBhB,CAAC;AAEF,eAAO,MAAM,UAAU,EAA+B,KAAK,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAGtF,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAqB,CAAC;AAEnE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKkD,CAAC;AAGpF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAOsJ,CAAC;AAExL,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAE/C,eAAO,MAAM,eAAe,GAAI,MAAM,YAAY,GAAG,SAAS,EAAE,OAAO,WAAW,CAAC,cAAc,CAAC,KAAG,YAAY,GAAG,SAC5D,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { applyStyleInput as applyStyleInputCore, fromTokenRef, STYLE_INPUT_KEYS, styleView, toTokenRef } from "callman-core";
|
|
1
2
|
import { z } from "zod";
|
|
2
3
|
import { strictObject } from "../../lib/strict.js";
|
|
3
4
|
// The visual style a model may set on a node — exactly the DiagramStyle
|
|
@@ -5,7 +6,9 @@ import { strictObject } from "../../lib/strict.js";
|
|
|
5
6
|
// ("strokeColor", "borderColor", "fontWeight") is REJECTED with the list of
|
|
6
7
|
// valid keys instead of being dropped by core's normalizer while the tool
|
|
7
8
|
// reports success. Colors are plain CSS strings on the way in and on the way
|
|
8
|
-
// out; the stored form is core's TokenRef (`{ raw: "#3B82F6" }`).
|
|
9
|
+
// out; the stored form is core's TokenRef (`{ raw: "#3B82F6" }`). The
|
|
10
|
+
// conversion itself lives in callman-core (styleInput.ts) — shared with the
|
|
11
|
+
// desktop's AI edits — so the two never disagree.
|
|
9
12
|
export const colorInputSchema = z
|
|
10
13
|
.union([
|
|
11
14
|
z.string().trim().min(1).max(64),
|
|
@@ -13,9 +16,6 @@ export const colorInputSchema = z
|
|
|
13
16
|
z.object({ token: z.string().trim().min(1).max(64) }).strict(),
|
|
14
17
|
])
|
|
15
18
|
.describe('CSS color: "#3B82F6", "rgb(59,130,246)", "rgba(59,130,246,0.08)" or a name like "tomato"');
|
|
16
|
-
const FONT_BOLD = 1;
|
|
17
|
-
const FONT_ITALIC = 2;
|
|
18
|
-
const FONT_UNDERLINE = 4;
|
|
19
19
|
const styleFields = {
|
|
20
20
|
fill: colorInputSchema.describe('Background CSS color, e.g. "#EFF6FF". A translucent "rgba(59,130,246,0.08)" tints a container without hiding its children'),
|
|
21
21
|
stroke: colorInputSchema.describe('Border CSS color, e.g. "#3B82F6"'),
|
|
@@ -36,89 +36,13 @@ const styleFields = {
|
|
|
36
36
|
opacity: z.number().min(0).max(100).describe("0 (invisible) – 100 (opaque)"),
|
|
37
37
|
};
|
|
38
38
|
export const STYLE_KEYS = Object.keys(styleFields);
|
|
39
|
+
// The schema and core must agree on the key list; a drift is a test failure.
|
|
40
|
+
export const CORE_STYLE_KEYS = STYLE_INPUT_KEYS;
|
|
39
41
|
export const nodeStyleInputSchema = strictObject(Object.fromEntries(Object.entries(styleFields).map(([key, schema]) => [key, schema.optional()])), "style key").describe(`Visual style. Keys: ${STYLE_KEYS.join(", ")}. Colors are CSS strings.`);
|
|
40
42
|
// On updateNode a key set to null removes it; `style: null` clears the style.
|
|
41
43
|
export const nodeStylePatchSchema = strictObject(Object.fromEntries(Object.entries(styleFields).map(([key, schema]) => [key, schema.nullable().optional()])), "style key")
|
|
42
44
|
.nullable()
|
|
43
45
|
.describe(`Style changes, MERGED into the node's current style: only the keys you pass change, a key set to null is removed, style: null clears it. Keys: ${STYLE_KEYS.join(", ")}.`);
|
|
44
|
-
export
|
|
45
|
-
export const
|
|
46
|
-
if (!ref)
|
|
47
|
-
return undefined;
|
|
48
|
-
return "raw" in ref ? ref.raw : { token: ref.token };
|
|
49
|
-
};
|
|
50
|
-
// Input (plain colors, bold/italic/underline flags) → stored DiagramStyle.
|
|
51
|
-
// `base` is the node's current style for a merge; null values delete.
|
|
52
|
-
export const applyStyleInput = (base, input) => {
|
|
53
|
-
const out = { ...(base ?? {}) };
|
|
54
|
-
const assign = (key, value) => {
|
|
55
|
-
if (value === undefined)
|
|
56
|
-
return;
|
|
57
|
-
if (value === null)
|
|
58
|
-
delete out[key];
|
|
59
|
-
else
|
|
60
|
-
out[key] = value;
|
|
61
|
-
};
|
|
62
|
-
for (const key of ["fill", "stroke", "textColor"]) {
|
|
63
|
-
const value = input[key];
|
|
64
|
-
assign(key, value === undefined || value === null ? value : toTokenRef(value));
|
|
65
|
-
}
|
|
66
|
-
assign("strokeWidth", input.strokeWidth);
|
|
67
|
-
assign("dashed", input.dashed);
|
|
68
|
-
assign("dashPattern", input.dashPattern);
|
|
69
|
-
assign("radius", input.radius);
|
|
70
|
-
assign("rounded", input.rounded);
|
|
71
|
-
assign("fontSize", input.fontSize);
|
|
72
|
-
assign("fontFamily", input.fontFamily);
|
|
73
|
-
assign("align", input.align);
|
|
74
|
-
assign("verticalAlign", input.verticalAlign);
|
|
75
|
-
assign("shadow", input.shadow);
|
|
76
|
-
assign("opacity", input.opacity);
|
|
77
|
-
// The studio stores bold/italic/underline as ONE maxGraph bitmask.
|
|
78
|
-
const flags = [
|
|
79
|
-
[input.bold, FONT_BOLD],
|
|
80
|
-
[input.italic, FONT_ITALIC],
|
|
81
|
-
[input.underline, FONT_UNDERLINE],
|
|
82
|
-
];
|
|
83
|
-
if (flags.some(([value]) => value !== undefined)) {
|
|
84
|
-
let mask = out.fontStyle ?? 0;
|
|
85
|
-
for (const [value, bit] of flags) {
|
|
86
|
-
if (value === true)
|
|
87
|
-
mask |= bit;
|
|
88
|
-
else if (value === false || value === null)
|
|
89
|
-
mask &= ~bit;
|
|
90
|
-
}
|
|
91
|
-
if (mask === 0)
|
|
92
|
-
delete out.fontStyle;
|
|
93
|
-
else
|
|
94
|
-
out.fontStyle = mask;
|
|
95
|
-
}
|
|
96
|
-
// fontWeight is not rendered by the studio (bold lives in fontStyle).
|
|
97
|
-
delete out.fontWeight;
|
|
98
|
-
return Object.keys(out).length > 0 ? out : undefined;
|
|
99
|
-
};
|
|
100
|
-
// Stored DiagramStyle → the same compact shape a model writes, so what
|
|
101
|
-
// get_diagram returns can be sent straight back in a patch.
|
|
102
|
-
export const styleView = (style) => {
|
|
103
|
-
if (!style)
|
|
104
|
-
return undefined;
|
|
105
|
-
const out = {};
|
|
106
|
-
for (const key of ["fill", "stroke", "textColor"]) {
|
|
107
|
-
const value = fromTokenRef(style[key]);
|
|
108
|
-
if (value !== undefined)
|
|
109
|
-
out[key] = value;
|
|
110
|
-
}
|
|
111
|
-
for (const key of ["strokeWidth", "dashed", "dashPattern", "radius", "rounded", "fontSize", "fontFamily", "align", "verticalAlign", "shadow", "opacity"]) {
|
|
112
|
-
if (style[key] !== undefined)
|
|
113
|
-
out[key] = style[key];
|
|
114
|
-
}
|
|
115
|
-
const mask = style.fontStyle ?? 0;
|
|
116
|
-
if (mask & FONT_BOLD)
|
|
117
|
-
out.bold = true;
|
|
118
|
-
if (mask & FONT_ITALIC)
|
|
119
|
-
out.italic = true;
|
|
120
|
-
if (mask & FONT_UNDERLINE)
|
|
121
|
-
out.underline = true;
|
|
122
|
-
return Object.keys(out).length > 0 ? out : undefined;
|
|
123
|
-
};
|
|
46
|
+
export { fromTokenRef, styleView, toTokenRef };
|
|
47
|
+
export const applyStyleInput = (base, input) => applyStyleInputCore(base, input);
|
|
124
48
|
//# sourceMappingURL=style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/domain/diagram/style.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/domain/diagram/style.ts"],"names":[],"mappings":"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"}
|