callman-mcp 0.2.0 → 0.4.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +4 -4
  3. package/dist/client/api.d.ts +16 -1
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/api.js +22 -0
  6. package/dist/client/api.js.map +1 -1
  7. package/dist/client/types.d.ts +14 -0
  8. package/dist/client/types.d.ts.map +1 -1
  9. package/dist/domain/diagram/build.d.ts +122 -73
  10. package/dist/domain/diagram/build.d.ts.map +1 -1
  11. package/dist/domain/diagram/build.js +51 -167
  12. package/dist/domain/diagram/build.js.map +1 -1
  13. package/dist/domain/diagram/layout.d.ts +5 -4
  14. package/dist/domain/diagram/layout.d.ts.map +1 -1
  15. package/dist/domain/diagram/layout.js +18 -45
  16. package/dist/domain/diagram/layout.js.map +1 -1
  17. package/dist/domain/diagram/patch.d.ts +1011 -92
  18. package/dist/domain/diagram/patch.d.ts.map +1 -1
  19. package/dist/domain/diagram/patch.js +113 -273
  20. package/dist/domain/diagram/patch.js.map +1 -1
  21. package/dist/domain/diagram/style.d.ts +4 -12
  22. package/dist/domain/diagram/style.d.ts.map +1 -1
  23. package/dist/domain/diagram/style.js +8 -84
  24. package/dist/domain/diagram/style.js.map +1 -1
  25. package/dist/domain/diagram/summarize.d.ts +26 -24
  26. package/dist/domain/diagram/summarize.d.ts.map +1 -1
  27. package/dist/domain/diagram/summarize.js +21 -35
  28. package/dist/domain/diagram/summarize.js.map +1 -1
  29. package/dist/domain/requestIntegrations.d.ts +20 -20
  30. package/dist/domain/requestShape.d.ts +32 -32
  31. package/dist/resources/docs/diagramSchema.d.ts +1 -1
  32. package/dist/resources/docs/diagramSchema.d.ts.map +1 -1
  33. package/dist/resources/docs/diagramSchema.js +87 -10
  34. package/dist/resources/docs/diagramSchema.js.map +1 -1
  35. package/dist/resources/docs/overview.d.ts +1 -1
  36. package/dist/resources/docs/overview.d.ts.map +1 -1
  37. package/dist/resources/docs/overview.js +4 -1
  38. package/dist/resources/docs/overview.js.map +1 -1
  39. package/dist/resources/generated/aiPacks.d.ts +1 -1
  40. package/dist/resources/generated/aiPacks.js +2 -2
  41. package/dist/tools/catalog.d.ts.map +1 -1
  42. package/dist/tools/catalog.js +5 -0
  43. package/dist/tools/catalog.js.map +1 -1
  44. package/dist/tools/diagrams.d.ts.map +1 -1
  45. package/dist/tools/diagrams.js +547 -59
  46. package/dist/tools/diagrams.js.map +1 -1
  47. package/dist/tools/lookups.d.ts +5 -1
  48. package/dist/tools/lookups.d.ts.map +1 -1
  49. package/dist/tools/lookups.js +41 -0
  50. package/dist/tools/lookups.js.map +1 -1
  51. package/dist-cjs/client/api.js +22 -0
  52. package/dist-cjs/domain/diagram/build.js +55 -171
  53. package/dist-cjs/domain/diagram/layout.js +19 -45
  54. package/dist-cjs/domain/diagram/patch.js +111 -271
  55. package/dist-cjs/domain/diagram/style.js +11 -88
  56. package/dist-cjs/domain/diagram/summarize.js +23 -35
  57. package/dist-cjs/resources/docs/diagramSchema.js +87 -10
  58. package/dist-cjs/resources/docs/overview.js +4 -1
  59. package/dist-cjs/resources/generated/aiPacks.js +2 -2
  60. package/dist-cjs/tools/catalog.js +5 -0
  61. package/dist-cjs/tools/diagrams.js +539 -51
  62. package/dist-cjs/tools/lookups.js +46 -1
  63. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/domain/diagram/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,eAAe,EAGrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8CxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQ/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IAGzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,GAAI,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,EAAE,UAAS;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,KAAG,WAkOxH,CAAC"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/domain/diagram/patch.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- import { getDiagramComponent, isBusComponentType, normalizeDiagramStyles, safeParseDiagramDocument, semanticStyle, } from "callman-core";
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 { assertNotConnector, diagramEdgeInputSchema, diagramNodeInputSchema, edgeStyleFor, parentWarning, suggestComponentTypes } from "./build.js";
7
- import { applyStyleInput, colorInputSchema, nodeStylePatchSchema, toTokenRef } from "./style.js";
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. Removing a node drops the edges attached to it.
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,47 @@ 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"]);
42
+ // ── Database diagrams: the schema edited by meaning ──────────────────────────
43
+ // Tables are named ("users", "public.users"), columns as "table.column".
44
+ export const dbColumnInputSchema = strictObject({
45
+ id: z.string().max(64).optional(),
46
+ name: z.string().min(1).max(120),
47
+ dataType: z.string().max(120).optional().describe('The database\'s own type name: "uuid", "varchar(255)", "timestamp", "objectId"'),
48
+ nullable: z.boolean().optional(),
49
+ primaryKey: z.boolean().optional(),
50
+ unique: z.boolean().optional(),
51
+ defaultValue: z.string().max(400).nullable().optional(),
52
+ autoIncrement: z.boolean().optional(),
53
+ comment: z.string().max(400).nullable().optional(),
54
+ }, "field", "column");
55
+ export const dbTableInputSchema = strictObject({
56
+ id: z.string().max(64).optional(),
57
+ name: z.string().min(1).max(120),
58
+ schema: z.string().max(120).optional(),
59
+ kind: z.enum(["table", "view", "collection"]).optional(),
60
+ columns: z.array(dbColumnInputSchema).max(500).optional(),
61
+ comment: z.string().max(400).optional(),
62
+ }, "field", "table");
63
+ export const dbEndSchema = z.union([
64
+ z.string().min(1).max(240).describe('"table.column" (the column of the relationship) or "table"'),
65
+ strictObject({ table: z.string().min(1).max(200), columns: z.array(z.string().min(1).max(120)).max(16).optional(), column: z.string().max(120).optional() }, "field", "relationship end"),
66
+ ]);
67
+ export const dbCardinalitySchema = z.enum(["1:1", "1:N", "N:1", "N:M"]);
68
+ export const dbRelationshipInputSchema = strictObject({
69
+ id: z.string().max(64).optional(),
70
+ source: dbEndSchema.describe("The child / foreign-key side"),
71
+ target: dbEndSchema.describe("The parent / referenced side"),
72
+ cardinality: dbCardinalitySchema.optional().describe("source:target — default N:1"),
73
+ kind: z.enum(["foreignKey", "manual"]).optional(),
74
+ name: z.string().max(200).optional().describe("The constraint name"),
75
+ label: z.string().max(200).optional(),
76
+ }, "field", "relationship");
34
77
  // Every op is strict: a field at the wrong level ({ op: "updateNode", id, label })
35
78
  // is an error, not a silent no-op that still counts as "applied".
36
79
  export const diagramPatchOpSchema = z.discriminatedUnion("op", [
@@ -41,276 +84,73 @@ export const diagramPatchOpSchema = z.discriminatedUnion("op", [
41
84
  strictObject({ op: z.literal("updateEdge"), id: z.string().min(1), changes: edgeChangesSchema }, "field", "updateEdge ops"),
42
85
  strictObject({ op: z.literal("removeEdge"), id: z.string().min(1) }, "field", "removeEdge ops"),
43
86
  strictObject({ op: z.literal("setTitle"), title: z.string().min(1).max(200) }, "field", "setTitle ops"),
87
+ strictObject({ op: z.literal("moveNode"), id: z.string().min(1), position: pointSchema.describe("Parent-relative top-left") }, "field", "moveNode ops"),
88
+ 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"),
89
+ strictObject({
90
+ op: z.literal("setEdgeRoute"),
91
+ id: z.string().min(1),
92
+ routing: z.enum(ROUTINGS).nullable().optional().describe("null = the canvas default"),
93
+ sourceSide: z.enum(SIDES).nullable().optional(),
94
+ targetSide: z.enum(SIDES).nullable().optional(),
95
+ waypoints: z.array(pointSchema).max(50).nullable().optional().describe("Manual bends (absolute); null clears. With nothing else set, the op resets the route"),
96
+ }, "field", "setEdgeRoute ops"),
97
+ 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"),
98
+ strictObject({
99
+ op: z.literal("setCanvas"),
100
+ canvas: z
101
+ .object({
102
+ background: z.enum(["grid", "dots", "blank"]).nullable().optional(),
103
+ gridSize: z.number().int().positive().nullable().optional(),
104
+ defaultRouting: z.enum(ROUTINGS).nullable().optional(),
105
+ })
106
+ .strict(),
107
+ }, "field", "setCanvas ops"),
108
+ 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"),
109
+ strictObject({ op: z.literal("ungroup"), id: z.string().min(1) }, "field", "ungroup ops"),
110
+ strictObject({ op: z.literal("relayout"), scope: z.enum(["new", "all"]), direction: directionSchema.optional() }, "field", "relayout ops"),
111
+ // Database diagrams
112
+ strictObject({ op: z.literal("addTable"), table: dbTableInputSchema, position: pointSchema.optional() }, "field", "addTable ops"),
113
+ strictObject({ op: z.literal("renameTable"), table: z.string().min(1), name: z.string().min(1).max(120), schema: z.string().max(120).nullable().optional() }, "field", "renameTable ops"),
114
+ strictObject({ op: z.literal("removeTable"), table: z.string().min(1) }, "field", "removeTable ops"),
115
+ strictObject({ op: z.literal("setTableComment"), table: z.string().min(1), comment: z.string().max(400).nullable() }, "field", "setTableComment ops"),
116
+ strictObject({ op: z.literal("addColumn"), table: z.string().min(1), column: dbColumnInputSchema, after: z.string().max(120).nullable().optional().describe("Insert after this column (default: last)") }, "field", "addColumn ops"),
117
+ strictObject({ op: z.literal("alterColumn"), table: z.string().min(1), column: z.string().min(1), changes: dbColumnInputSchema.partial() }, "field", "alterColumn ops"),
118
+ strictObject({ op: z.literal("removeColumn"), table: z.string().min(1), column: z.string().min(1) }, "field", "removeColumn ops"),
119
+ strictObject({ op: z.literal("setPrimaryKey"), table: z.string().min(1), columns: z.array(z.string().min(1)).max(16) }, "field", "setPrimaryKey ops"),
120
+ strictObject({ op: z.literal("addRelationship"), id: z.string().max(64).optional(), source: dbEndSchema, target: dbEndSchema, cardinality: dbCardinalitySchema.optional(), kind: z.enum(["foreignKey", "manual"]).optional(), name: z.string().max(200).optional(), label: z.string().max(200).optional() }, "field", "addRelationship ops"),
121
+ strictObject({
122
+ op: z.literal("updateRelationship"),
123
+ relationship: z.string().min(1),
124
+ changes: strictObject({ source: dbEndSchema.optional(), target: dbEndSchema.optional(), cardinality: dbCardinalitySchema.optional(), name: z.string().max(200).nullable().optional(), label: z.string().max(200).nullable().optional(), kind: z.enum(["foreignKey", "manual"]).optional() }, "field", "updateRelationship changes"),
125
+ }, "field", "updateRelationship ops"),
126
+ strictObject({ op: z.literal("removeRelationship"), relationship: z.string().min(1) }, "field", "removeRelationship ops"),
127
+ strictObject({ op: z.literal("hideTable"), table: z.string().min(1) }, "field", "hideTable ops"),
128
+ strictObject({ op: z.literal("showTable"), table: z.string().min(1) }, "field", "showTable ops"),
44
129
  ]);
45
130
  export const applyDiagramPatch = (doc, ops, options = {}) => {
46
- const strict = options.strictTypes !== false;
47
- const nodes = new Map(doc.nodes.map((node) => [node.id, { ...node }]));
48
- const edges = new Map(doc.edges.map((edge) => [edge.id, { ...edge }]));
49
- let title = doc.meta.title;
50
- const addedNodeIds = [];
51
- const removedNodeIds = [];
52
- const removedEdgeIds = [];
53
- const warnings = [];
54
- const moved = new Set();
55
- const nextNodeId = sequentialIds("n", nodes.keys());
56
- const nextEdgeId = sequentialIds("e", edges.keys());
57
- const resolveType = (type, id) => {
58
- if (getDiagramComponent(type)) {
59
- assertNotConnector(type, id);
60
- return type;
61
- }
62
- const suggestions = suggestComponentTypes(type);
63
- if (strict) {
64
- throw new ToolInputError("DIAGRAM_UNKNOWN_COMPONENT_TYPE", `Unknown component type "${type}" on ${id}.`, {
65
- unknownTypes: [{ type, suggestions }],
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
- }
274
- }
275
- const reroutedEdgeIds = [];
276
- if (moved.size > 0) {
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
- }
131
+ const taken = [...doc.nodes.map((node) => node.id), ...doc.edges.map((edge) => edge.id)];
132
+ try {
133
+ const lowered = lowerPatchOps(doc, ops, {
134
+ strictTypes: options.strictTypes !== false,
135
+ genNodeId: slugIdFactory(taken, "n"),
136
+ genEdgeId: slugIdFactory(taken, "e"),
137
+ });
138
+ // MCP keeps today's rule: a moved node loses the manual bends of every
139
+ // edge leaving it (the desktop keeps them — a person is watching there).
140
+ const applied = applyDiagramOps(doc, lowered.ops, { moveClearsWaypoints: true, now: new Date().toISOString() });
141
+ return {
142
+ document: applied.doc,
143
+ addedNodeIds: lowered.unpositionedNodeIds,
144
+ removedNodeIds: applied.removed.nodes,
145
+ removedEdgeIds: applied.removed.edges,
146
+ reroutedEdgeIds: applied.rerouted,
147
+ warnings: [...lowered.warnings, ...applied.warnings],
148
+ ...(lowered.relayout ? { relayout: lowered.relayout } : {}),
149
+ idMap: lowered.idMap,
150
+ };
296
151
  }
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 });
152
+ catch (error) {
153
+ return toToolError(error);
306
154
  }
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
155
  };
316
156
  //# 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 type { DiagramStyle, TokenRef } from "callman-core";
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
- type ColorInput = z.infer<typeof colorInputSchema>;
305
- export declare const toTokenRef: (color: ColorInput) => TokenRef;
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,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;IAM0E,CAAC;AAMxG,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBhB,CAAC;AAEF,eAAO,MAAM,UAAU,EAA+B,KAAK,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEtF,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;AAClE,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnD,eAAO,MAAM,UAAU,GAAI,OAAO,UAAU,KAAG,QAAuE,CAAC;AAEvH,eAAO,MAAM,YAAY,GAAI,KAAK,QAAQ,GAAG,SAAS,KAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAGrF,CAAC;AAEF,KAAK,WAAW,GAAG;KAAG,CAAC,IAAI,MAAM,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;CAAE,CAAC;AAI9E,eAAO,MAAM,eAAe,GAAI,MAAM,YAAY,GAAG,SAAS,EAAE,OAAO,WAAW,KAAG,YAAY,GAAG,SAyCnG,CAAC;AAIF,eAAO,MAAM,SAAS,GAAI,OAAO,YAAY,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAerF,CAAC"}
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"}