@diagrampilot/mcp 0.2.9 → 0.2.14

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.
@@ -0,0 +1,3 @@
1
+ import type { DiagramPilotMcpPromptResult } from "./types.js";
2
+ export declare function getDiagramPilotMcpPrompt(name: string, args?: Record<string, string>): DiagramPilotMcpPromptResult;
3
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAoD9D,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAChC,2BAA2B,CAoB7B"}
@@ -0,0 +1,64 @@
1
+ import { DIAGRAMPILOT_MCP_PROMPTS } from "./registry.js";
2
+ function createOrUpdatePrompt(args) {
3
+ const scopePath = args.scope_path ?? ".";
4
+ const sourcePath = args.source_path ?? "docs/architecture.dp.yaml";
5
+ return [
6
+ `Goal: ${args.goal ?? "Create or update a DiagramPilot Source File."}`,
7
+ "",
8
+ `Inspect ${scopePath} for repo context, then create or update ${sourcePath}.`,
9
+ "Use DiagramSpec stable IDs, preserve YAML as the source of truth, and run:",
10
+ "",
11
+ `diagrampilot validate ${sourcePath}`,
12
+ `diagrampilot check ${scopePath}`,
13
+ "",
14
+ ].join("\n");
15
+ }
16
+ function repairValidationPrompt(args) {
17
+ const sourcePath = args.source_path ?? "docs/architecture.dp.yaml";
18
+ return [
19
+ `Repair DiagramPilot validation errors in ${sourcePath}.`,
20
+ "",
21
+ "Use these repairable errors as the source of truth:",
22
+ "",
23
+ args.validation_errors ?? "<paste validation errors>",
24
+ "",
25
+ `After editing, run diagrampilot validate ${sourcePath}.`,
26
+ "",
27
+ ].join("\n");
28
+ }
29
+ function refreshArtifactsPrompt(args) {
30
+ const scopePath = args.scope_path ?? ".";
31
+ return [
32
+ `Refresh DiagramPilot Derived Artifacts under ${scopePath}.`,
33
+ "",
34
+ `First run diagrampilot check ${scopePath}.`,
35
+ `Then run diagrampilot generate ${scopePath} for stale or missing generated artifacts.`,
36
+ "Do not hand-edit generated artifacts.",
37
+ "",
38
+ ].join("\n");
39
+ }
40
+ const promptTextHandlers = {
41
+ create_or_update_diagrampilot_source: createOrUpdatePrompt,
42
+ repair_diagrampilot_validation_errors: repairValidationPrompt,
43
+ refresh_diagrampilot_artifacts: refreshArtifactsPrompt,
44
+ };
45
+ export function getDiagramPilotMcpPrompt(name, args = {}) {
46
+ const prompt = DIAGRAMPILOT_MCP_PROMPTS.find((entry) => entry.name === name);
47
+ const promptText = promptTextHandlers[name];
48
+ if (prompt === undefined || promptText === undefined) {
49
+ throw new Error(`Unknown DiagramPilot MCP prompt: ${name}`);
50
+ }
51
+ return {
52
+ description: prompt.title,
53
+ messages: [
54
+ {
55
+ role: "user",
56
+ content: {
57
+ type: "text",
58
+ text: promptText(args),
59
+ },
60
+ },
61
+ ],
62
+ };
63
+ }
64
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGzD,SAAS,oBAAoB,CAAC,IAA4B;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,2BAA2B,CAAC;IAEnE,OAAO;QACL,SAAS,IAAI,CAAC,IAAI,IAAI,8CAA8C,EAAE;QACtE,EAAE;QACF,WAAW,SAAS,4CAA4C,UAAU,GAAG;QAC7E,4EAA4E;QAC5E,EAAE;QACF,yBAAyB,UAAU,EAAE;QACrC,sBAAsB,SAAS,EAAE;QACjC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA4B;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,2BAA2B,CAAC;IAEnE,OAAO;QACL,4CAA4C,UAAU,GAAG;QACzD,EAAE;QACF,qDAAqD;QACrD,EAAE;QACF,IAAI,CAAC,iBAAiB,IAAI,2BAA2B;QACrD,EAAE;QACF,4CAA4C,UAAU,GAAG;QACzD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA4B;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAEzC,OAAO;QACL,gDAAgD,SAAS,GAAG;QAC5D,EAAE;QACF,gCAAgC,SAAS,GAAG;QAC5C,kCAAkC,SAAS,4CAA4C;QACvF,uCAAuC;QACvC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,kBAAkB,GAA6D;IACnF,oCAAoC,EAAE,oBAAoB;IAC1D,qCAAqC,EAAE,sBAAsB;IAC7D,8BAA8B,EAAE,sBAAsB;CACvD,CAAC;AAEF,MAAM,UAAU,wBAAwB,CACtC,IAAY,EACZ,OAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;iBACvB;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,6BAA6B,sBAAsB,CAAC;AAEjE,eAAO,MAAM,0BAA0B,EAAE,SAAS,uBAAuB,EAoCxE,CAAC;AAQF,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EA0DhE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAoDpE,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,6BAA6B,sBAAsB,CAAC;AAEjE,eAAO,MAAM,0BAA0B,EAAE,SAAS,uBAAuB,EAoCxE,CAAC;AAcF,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EAyIhE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAoDpE,CAAC"}
package/dist/registry.js CHANGED
@@ -41,7 +41,30 @@ const readOnlyToolAnnotations = {
41
41
  destructiveHint: false,
42
42
  idempotentHint: true,
43
43
  };
44
+ const writeToolAnnotations = {
45
+ readOnlyHint: false,
46
+ destructiveHint: true,
47
+ idempotentHint: true,
48
+ };
44
49
  export const DIAGRAMPILOT_MCP_TOOLS = [
50
+ {
51
+ name: "diagrampilot_suggest_stable_ids",
52
+ title: "Suggest DiagramPilot Stable IDs",
53
+ description: "Suggest valid DiagramSpec stable IDs from labels without writing files.",
54
+ arguments: [
55
+ {
56
+ name: "labels",
57
+ description: "Labels to convert into stable ID suggestions.",
58
+ required: true,
59
+ },
60
+ {
61
+ name: "existing_ids",
62
+ description: "Stable IDs that suggestions must avoid.",
63
+ required: false,
64
+ },
65
+ ],
66
+ annotations: readOnlyToolAnnotations,
67
+ },
45
68
  {
46
69
  name: "diagrampilot_validate_source",
47
70
  title: "Validate DiagramPilot Source",
@@ -99,6 +122,60 @@ export const DIAGRAMPILOT_MCP_TOOLS = [
99
122
  ],
100
123
  annotations: readOnlyToolAnnotations,
101
124
  },
125
+ {
126
+ name: "diagrampilot_create_source",
127
+ title: "Create DiagramPilot Source",
128
+ description: "Create one *.dp.yaml DiagramPilot Source File from structured DiagramSpec input.",
129
+ arguments: [
130
+ {
131
+ name: "source_path",
132
+ description: "Local path to write as a *.dp.yaml DiagramPilot Source File.",
133
+ required: true,
134
+ },
135
+ {
136
+ name: "diagram",
137
+ description: "Structured DiagramSpec input with caller-provided stable IDs.",
138
+ required: true,
139
+ },
140
+ ],
141
+ annotations: writeToolAnnotations,
142
+ },
143
+ {
144
+ name: "diagrampilot_mutate_source",
145
+ title: "Mutate DiagramPilot Source",
146
+ description: "Apply one structured operation to an existing *.dp.yaml DiagramPilot Source File.",
147
+ arguments: [
148
+ {
149
+ name: "source_path",
150
+ description: "Local path to mutate as a *.dp.yaml DiagramPilot Source File.",
151
+ required: true,
152
+ },
153
+ {
154
+ name: "operation",
155
+ description: "Structured source mutation operation, such as set_title.",
156
+ required: true,
157
+ },
158
+ ],
159
+ annotations: writeToolAnnotations,
160
+ },
161
+ {
162
+ name: "diagrampilot_generate_repo_outputs",
163
+ title: "Generate DiagramPilot Repo Outputs",
164
+ description: "Refresh configured DiagramPilot repo outputs for explicit source paths or directory scopes.",
165
+ arguments: [
166
+ {
167
+ name: "source_paths",
168
+ description: "Explicit DiagramPilot Source File paths to generate. At least one source_paths or scope_paths entry is required.",
169
+ required: false,
170
+ },
171
+ {
172
+ name: "scope_paths",
173
+ description: "Explicit local directory scopes to generate. At least one source_paths or scope_paths entry is required.",
174
+ required: false,
175
+ },
176
+ ],
177
+ annotations: writeToolAnnotations,
178
+ },
102
179
  ];
103
180
  export const DIAGRAMPILOT_MCP_PROMPTS = [
104
181
  {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import type { DiagramPilotMcpPromptResult, DiagramPilotMcpResourceContent, DiagramPilotMcpToolDependencies, DiagramPilotMcpToolResult } from "./types.js";
1
+ import { getDiagramPilotMcpPrompt } from "./prompts.js";
2
+ import type { DiagramPilotMcpResourceContent, DiagramPilotMcpToolDependencies, DiagramPilotMcpToolResult } from "./types.js";
2
3
  export declare function mcpHelpText(commandName?: string): string;
3
4
  export declare function readDiagramPilotMcpResource(uri: string): Promise<DiagramPilotMcpResourceContent>;
4
5
  export declare function callDiagramPilotMcpTool(name: string, args: Record<string, unknown>, dependencies?: DiagramPilotMcpToolDependencies): Promise<DiagramPilotMcpToolResult>;
5
- export declare function getDiagramPilotMcpPrompt(name: string, args?: Record<string, string>): DiagramPilotMcpPromptResult;
6
+ export { getDiagramPilotMcpPrompt };
6
7
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAKpB,wBAAgB,WAAW,CAAC,WAAW,SAAqB,GAAG,MAAM,CASpE;AAwMD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,8BAA8B,CAAC,CASzC;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,GAAE,+BAAoC,GACjD,OAAO,CAAC,yBAAyB,CAAC,CAQpC;AAgID,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAChC,2BAA2B,CAoB7B"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AASxD,OAAO,KAAK,EACV,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAKpB,wBAAgB,WAAW,CAAC,WAAW,SAAqB,GAAG,MAAM,CASpE;AAkOD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,8BAA8B,CAAC,CASzC;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,GAAE,+BAAoC,GACjD,OAAO,CAAC,yBAAyB,CAAC,CAQpC;AAiJD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
package/dist/runtime.js CHANGED
@@ -1,12 +1,15 @@
1
- import { readFileSync } from "node:fs";
1
+ import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
- import { checkDiagramPilotRepoWorkflow, createDiagramSpecV1JsonSchema, createRepairableDiagnosticReport, discoverDiagramPilotSourceFiles, loadValidatedDiagramSpec, } from "@diagrampilot/core";
4
+ import { checkDiagramPilotRepoWorkflow, createDiagramSpecV1JsonSchema, discoverDiagramPilotSourceFiles, generateDiagramPilotRepoWorkflow, getDiagramPilotVersion, loadValidatedDiagramSpec, } from "@diagrampilot/core";
5
5
  import { exportDiagramSpecToD2 } from "@diagrampilot/export-d2";
6
6
  import { exportDiagramSpecToDot } from "@diagrampilot/export-dot";
7
7
  import { exportDiagramSpecToMermaid } from "@diagrampilot/export-mermaid";
8
- import { createSvgRendererProvenance, renderDiagramSpecToSvg, SVG_RENDERER_NAME, SVG_RENDERER_VERSION, } from "@diagrampilot/render-svg";
9
- import { DIAGRAMPILOT_MCP_PROMPTS } from "./registry.js";
8
+ import { createSvgRendererProvenance, rasterizeSvgToPng, renderDiagramSpecToSvg, SVG_RENDERER_NAME, SVG_RENDERER_VERSION, } from "@diagrampilot/render-svg";
9
+ import { getDiagramPilotMcpPrompt } from "./prompts.js";
10
+ import { mutateSourceTool } from "./source-mutation-tools.js";
11
+ import { createSourceTool, suggestStableIdsTool } from "./source-tools.js";
12
+ import { stringArgument, stringArrayArgument, toolResult, validationFailureResult, } from "./tool-helpers.js";
10
13
  const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
11
14
  const repositoryRoot = path.resolve(packageRoot, "..", "..");
12
15
  export function mcpHelpText(commandName = "diagrampilot-mcp") {
@@ -66,28 +69,52 @@ function exportText(format, spec) {
66
69
  return exportDiagramSpecToDot(spec);
67
70
  throw new Error(`Unsupported DiagramPilot export format: ${format}`);
68
71
  }
69
- function toolResult(text, structuredContent, options = {}) {
72
+ function generatedArtifactSummary(artifact) {
70
73
  return {
71
- content: [{ type: "text", text }],
72
- structuredContent,
73
- ...(options.isError === true ? { isError: true } : {}),
74
+ sourcePath: artifact.sourcePath,
75
+ format: artifact.format,
76
+ path: artifact.path,
74
77
  };
75
78
  }
76
- function stringArgument(args, name, fallback) {
77
- const value = args[name];
78
- if (typeof value === "string" && value.length > 0)
79
- return value;
80
- if (fallback !== undefined)
81
- return fallback;
82
- throw new Error(`Missing required MCP tool argument: ${name}`);
79
+ function redactedGenerateResult(result) {
80
+ return Object.assign({}, result, {
81
+ written: result.written.map((artifact) => generatedArtifactSummary(artifact)),
82
+ });
83
+ }
84
+ function writeGeneratedArtifacts(result, dependencies) {
85
+ if (!result.ok)
86
+ return;
87
+ const write = dependencies.writeFile ??
88
+ ((filePath, content) => {
89
+ mkdirSync(path.dirname(filePath), { recursive: true });
90
+ writeFileSync(filePath, content, typeof content === "string" ? "utf8" : undefined);
91
+ });
92
+ for (const artifact of result.written) {
93
+ write(artifact.absolutePath, artifact.content);
94
+ }
95
+ }
96
+ async function runRepoWorkflowCheck(scopePath) {
97
+ return await checkDiagramPilotRepoWorkflow({
98
+ scopePath,
99
+ renderer: {
100
+ name: SVG_RENDERER_NAME,
101
+ version: SVG_RENDERER_VERSION,
102
+ },
103
+ exportConfiguredTextArtifact: ({ format, spec }) => exportText(format, spec),
104
+ });
83
105
  }
84
- function validationFailureResult(failure) {
85
- const report = createRepairableDiagnosticReport(failure);
86
- return toolResult(report.text, {
87
- ok: false,
88
- errorCount: report.errors.length,
89
- errors: report.errors,
90
- }, { isError: true });
106
+ function missingGenerationScopeResult() {
107
+ const error = {
108
+ path: "source_paths",
109
+ message: "Provide at least one explicit source_paths or scope_paths entry.",
110
+ expected: "A non-empty array of DiagramPilot Source File paths or directory scopes.",
111
+ suggestion: "Call diagrampilot_generate_repo_outputs with source_paths or scope_paths.",
112
+ };
113
+ return toolResult([
114
+ "Missing required MCP tool argument: provide at least one source_paths or scope_paths entry.",
115
+ "The MCP generation tool has no whole-repo default.",
116
+ "",
117
+ ].join("\n"), { ok: false, errorCount: 1, errors: [error] }, { isError: true });
91
118
  }
92
119
  async function schemaResource(uri, value) {
93
120
  if (value !== "v1") {
@@ -120,14 +147,7 @@ async function sourcesResource(uri, value) {
120
147
  }
121
148
  async function checkResource(uri, value) {
122
149
  const scopePath = decodePathPart(value, process.cwd());
123
- const result = await checkDiagramPilotRepoWorkflow({
124
- scopePath,
125
- renderer: {
126
- name: SVG_RENDERER_NAME,
127
- version: SVG_RENDERER_VERSION,
128
- },
129
- exportConfiguredTextArtifact: ({ format, spec }) => exportText(format, spec),
130
- });
150
+ const result = await runRepoWorkflowCheck(scopePath);
131
151
  return resourceContent(uri, "application/json", `${JSON.stringify(result, null, 2)}\n`);
132
152
  }
133
153
  const resourceHandlers = {
@@ -164,14 +184,7 @@ async function validateSourceTool(args) {
164
184
  }
165
185
  async function checkRepoTool(args) {
166
186
  const scopePath = stringArgument(args, "scope_path", process.cwd());
167
- const result = await checkDiagramPilotRepoWorkflow({
168
- scopePath,
169
- renderer: {
170
- name: SVG_RENDERER_NAME,
171
- version: SVG_RENDERER_VERSION,
172
- },
173
- exportConfiguredTextArtifact: ({ format, spec }) => exportText(format, spec),
174
- });
187
+ const result = await runRepoWorkflowCheck(scopePath);
175
188
  return toolResult(`${JSON.stringify(result, null, 2)}\n`, result);
176
189
  }
177
190
  async function exportSourceTool(args) {
@@ -204,72 +217,60 @@ async function renderSourceTool(args, dependencies) {
204
217
  sourcePath,
205
218
  });
206
219
  }
220
+ async function generateRepoOutputsForScope(scopePath, dependencies) {
221
+ const render = dependencies.renderDiagramSpecToSvg ?? renderDiagramSpecToSvg;
222
+ return await generateDiagramPilotRepoWorkflow({
223
+ scopePath,
224
+ diagramPilotVersion: getDiagramPilotVersion(),
225
+ renderer: {
226
+ name: SVG_RENDERER_NAME,
227
+ version: SVG_RENDERER_VERSION,
228
+ },
229
+ renderSvgArtifact: async ({ source, provenanceSourcePath, spec }) => await render(spec, {
230
+ provenance: createSvgRendererProvenance({
231
+ sourcePath: provenanceSourcePath,
232
+ sourceContent: source.content,
233
+ }),
234
+ }),
235
+ rasterizeSvgArtifact: rasterizeSvgToPng,
236
+ exportTextArtifact: ({ format, spec }) => exportText(format, spec),
237
+ });
238
+ }
239
+ function generateRepoOutputPayload(before, generated) {
240
+ const redacted = generated.map((result) => redactedGenerateResult(result));
241
+ if (redacted.length === 1) {
242
+ return { ...redacted[0], before, after: redacted };
243
+ }
244
+ return { ok: generated.every((result) => result.ok), before, after: redacted };
245
+ }
246
+ async function generateRepoOutputsTool(args, dependencies) {
247
+ const sourcePaths = stringArrayArgument(args, "source_paths");
248
+ const scopePaths = stringArrayArgument(args, "scope_paths");
249
+ const explicitScopes = [...sourcePaths, ...scopePaths];
250
+ if (explicitScopes.length === 0) {
251
+ return missingGenerationScopeResult();
252
+ }
253
+ const before = [];
254
+ const generated = [];
255
+ for (const scopePath of explicitScopes) {
256
+ before.push(await runRepoWorkflowCheck(scopePath));
257
+ const result = await generateRepoOutputsForScope(scopePath, dependencies);
258
+ writeGeneratedArtifacts(result, dependencies);
259
+ generated.push(result);
260
+ }
261
+ const ok = generated.every((result) => result.ok);
262
+ const structuredContent = generateRepoOutputPayload(before, generated);
263
+ return toolResult(`${JSON.stringify(structuredContent, null, 2)}\n`, structuredContent, { isError: ok ? undefined : true });
264
+ }
207
265
  const toolHandlers = {
266
+ diagrampilot_suggest_stable_ids: suggestStableIdsTool,
208
267
  diagrampilot_validate_source: validateSourceTool,
209
268
  diagrampilot_check_repo: checkRepoTool,
210
269
  diagrampilot_export_source: exportSourceTool,
211
270
  diagrampilot_render_source: renderSourceTool,
271
+ diagrampilot_create_source: createSourceTool,
272
+ diagrampilot_mutate_source: mutateSourceTool,
273
+ diagrampilot_generate_repo_outputs: generateRepoOutputsTool,
212
274
  };
213
- function createOrUpdatePrompt(args) {
214
- const scopePath = args.scope_path ?? ".";
215
- const sourcePath = args.source_path ?? "docs/architecture.dp.yaml";
216
- return [
217
- `Goal: ${args.goal ?? "Create or update a DiagramPilot Source File."}`,
218
- "",
219
- `Inspect ${scopePath} for repo context, then create or update ${sourcePath}.`,
220
- "Use DiagramSpec stable IDs, preserve YAML as the source of truth, and run:",
221
- "",
222
- `diagrampilot validate ${sourcePath}`,
223
- `diagrampilot check ${scopePath}`,
224
- "",
225
- ].join("\n");
226
- }
227
- function repairValidationPrompt(args) {
228
- const sourcePath = args.source_path ?? "docs/architecture.dp.yaml";
229
- return [
230
- `Repair DiagramPilot validation errors in ${sourcePath}.`,
231
- "",
232
- "Use these repairable errors as the source of truth:",
233
- "",
234
- args.validation_errors ?? "<paste validation errors>",
235
- "",
236
- `After editing, run diagrampilot validate ${sourcePath}.`,
237
- "",
238
- ].join("\n");
239
- }
240
- function refreshArtifactsPrompt(args) {
241
- const scopePath = args.scope_path ?? ".";
242
- return [
243
- `Refresh DiagramPilot Derived Artifacts under ${scopePath}.`,
244
- "",
245
- `First run diagrampilot check ${scopePath}.`,
246
- `Then run diagrampilot generate ${scopePath} for stale or missing generated artifacts.`,
247
- "Do not hand-edit generated artifacts.",
248
- "",
249
- ].join("\n");
250
- }
251
- const promptTextHandlers = {
252
- create_or_update_diagrampilot_source: createOrUpdatePrompt,
253
- repair_diagrampilot_validation_errors: repairValidationPrompt,
254
- refresh_diagrampilot_artifacts: refreshArtifactsPrompt,
255
- };
256
- export function getDiagramPilotMcpPrompt(name, args = {}) {
257
- const prompt = DIAGRAMPILOT_MCP_PROMPTS.find((entry) => entry.name === name);
258
- const promptText = promptTextHandlers[name];
259
- if (prompt === undefined || promptText === undefined) {
260
- throw new Error(`Unknown DiagramPilot MCP prompt: ${name}`);
261
- }
262
- return {
263
- description: prompt.title,
264
- messages: [
265
- {
266
- role: "user",
267
- content: {
268
- type: "text",
269
- text: promptText(args),
270
- },
271
- },
272
- ],
273
- };
274
- }
275
+ export { getDiagramPilotMcpPrompt };
275
276
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AActF,OAAO,KAAK,EAGV,4BAA4B,EAE7B,MAAM,YAAY,CAAC;AAwEpB,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,4BAAiC,GACzC,SAAS,CA4EX;AAED,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,IAAI,CAAC,CAKf"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AActF,OAAO,KAAK,EAGV,4BAA4B,EAE7B,MAAM,YAAY,CAAC;AAmFpB,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,4BAAiC,GACzC,SAAS,CA4EX;AAED,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,IAAI,CAAC,CAKf"}
package/dist/server.js CHANGED
@@ -19,25 +19,38 @@ function templateListResource(resource) {
19
19
  };
20
20
  }
21
21
  function toolInputSchema(tool) {
22
- if (tool.name === "diagrampilot_validate_source") {
23
- return {
22
+ const schemas = {
23
+ diagrampilot_suggest_stable_ids: {
24
+ labels: z.array(z.string()),
25
+ existing_ids: z.array(z.string()).optional(),
26
+ },
27
+ diagrampilot_validate_source: {
24
28
  source_path: z.string(),
25
- };
26
- }
27
- if (tool.name === "diagrampilot_check_repo") {
28
- return {
29
+ },
30
+ diagrampilot_check_repo: {
29
31
  scope_path: z.string().optional(),
30
- };
31
- }
32
- if (tool.name === "diagrampilot_export_source") {
33
- return {
32
+ },
33
+ diagrampilot_export_source: {
34
34
  source_path: z.string(),
35
35
  format: z.enum(["mermaid", "d2", "dot"]),
36
- };
37
- }
38
- return {
39
- source_path: z.string(),
36
+ },
37
+ diagrampilot_render_source: {
38
+ source_path: z.string(),
39
+ },
40
+ diagrampilot_create_source: {
41
+ source_path: z.string(),
42
+ diagram: z.record(z.string(), z.unknown()),
43
+ },
44
+ diagrampilot_mutate_source: {
45
+ source_path: z.string(),
46
+ operation: z.record(z.string(), z.unknown()),
47
+ },
48
+ diagrampilot_generate_repo_outputs: {
49
+ source_paths: z.array(z.string()).optional(),
50
+ scope_paths: z.array(z.string()).optional(),
51
+ },
40
52
  };
53
+ return schemas[tool.name] ?? {};
41
54
  }
42
55
  function promptArgsSchema(prompt) {
43
56
  if (prompt.name === "create_or_update_diagrampilot_source") {
@@ -62,7 +75,7 @@ export function createDiagramPilotMcpServer(options = {}) {
62
75
  name: "diagrampilot",
63
76
  version: getDiagramPilotVersion(),
64
77
  }, {
65
- instructions: "Use DiagramPilot MCP tools as read-only helpers. Write DiagramPilot Source Files and Derived Artifacts through explicit repo edits and CLI commands, not through MCP read tools.",
78
+ instructions: "Use DiagramPilot MCP read tools for inspection. Use explicit write tools only when creating DiagramPilot Source Files or refreshing Derived Artifacts.",
66
79
  });
67
80
  for (const resource of DIAGRAMPILOT_MCP_RESOURCES) {
68
81
  server.registerResource(resource.name, new ResourceTemplate(resource.uriTemplate, {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DiagramPilotMcpToolDependencies, DiagramPilotMcpToolResult } from "./types.js";
2
+ export declare function mutateSourceTool(args: Record<string, unknown>, dependencies: DiagramPilotMcpToolDependencies): Promise<DiagramPilotMcpToolResult>;
3
+ //# sourceMappingURL=source-mutation-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-mutation-tools.d.ts","sourceRoot":"","sources":["../src/source-mutation-tools.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAydpB,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,+BAA+B,GAC5C,OAAO,CAAC,yBAAyB,CAAC,CASpC"}
@@ -0,0 +1,330 @@
1
+ import { writeFileSync } from "node:fs";
2
+ import { loadValidatedDiagramSpec, serializeDiagramPilotSourceFile, validateDiagramSpec, } from "@diagrampilot/core";
3
+ import { stringArgument, toolResult, validationFailureResult, } from "./tool-helpers.js";
4
+ function isObjectRecord(value) {
5
+ return value !== null && typeof value === "object" && !Array.isArray(value);
6
+ }
7
+ function operationArgument(args) {
8
+ const value = args.operation;
9
+ if (isObjectRecord(value))
10
+ return value;
11
+ throw new Error("Missing required MCP tool argument: operation");
12
+ }
13
+ function operationString(operation, name) {
14
+ const value = operation[name];
15
+ if (typeof value === "string" && value.length > 0)
16
+ return value;
17
+ throw new Error(`Missing required MCP mutation operation field: ${name}`);
18
+ }
19
+ function optionalOperationString(operation, name) {
20
+ const value = operation[name];
21
+ if (value === undefined)
22
+ return undefined;
23
+ if (typeof value === "string" && value.length > 0)
24
+ return value;
25
+ throw new Error(`Invalid MCP mutation operation field: ${name}`);
26
+ }
27
+ function operationRecord(operation, name) {
28
+ const value = operation[name];
29
+ if (isObjectRecord(value))
30
+ return value;
31
+ throw new Error(`Missing required MCP mutation operation field: ${name}`);
32
+ }
33
+ function optionalOperationStringArray(operation, name) {
34
+ const value = operation[name];
35
+ if (value === undefined)
36
+ return undefined;
37
+ if (Array.isArray(value) && value.every((entry) => typeof entry === "string")) {
38
+ return value;
39
+ }
40
+ throw new Error(`Invalid MCP mutation operation field: ${name}`);
41
+ }
42
+ function assignStringField(target, operation, name) {
43
+ if (Object.prototype.hasOwnProperty.call(operation, name)) {
44
+ target[name] = operationString(operation, name);
45
+ }
46
+ }
47
+ function stableIdIndex(items, id, collectionName) {
48
+ const index = items.findIndex((item) => item.id === id);
49
+ if (index >= 0)
50
+ return index;
51
+ throw new Error(`Unknown ${collectionName} Stable ID: ${id}`);
52
+ }
53
+ function operationPlacement(operation) {
54
+ const beforeId = optionalOperationString(operation, "beforeId");
55
+ const afterId = optionalOperationString(operation, "afterId");
56
+ const placements = [
57
+ beforeId === undefined ? undefined : { id: beforeId, offset: 0 },
58
+ afterId === undefined ? undefined : { id: afterId, offset: 1 },
59
+ ].filter((placement) => placement !== undefined);
60
+ if (placements.length > 1) {
61
+ throw new Error("Specify beforeId or afterId, not both.");
62
+ }
63
+ return placements[0];
64
+ }
65
+ function insertionIndex(items, operation, collectionName) {
66
+ const placement = operationPlacement(operation);
67
+ if (placement === undefined)
68
+ return items.length;
69
+ return stableIdIndex(items, placement.id, collectionName) + placement.offset;
70
+ }
71
+ function itemCount(items) {
72
+ return items === undefined ? 0 : items.length;
73
+ }
74
+ function diagramSummary(spec) {
75
+ return {
76
+ exists: true,
77
+ valid: true,
78
+ title: spec.title,
79
+ nodeCount: spec.nodes.length,
80
+ edgeCount: itemCount(spec.edges),
81
+ groupCount: itemCount(spec.groups),
82
+ };
83
+ }
84
+ function deleteEmptyTopLevelMetadata(spec) {
85
+ if (spec.metadata !== undefined && Object.keys(spec.metadata).length === 0) {
86
+ delete spec.metadata;
87
+ }
88
+ }
89
+ function deleteEmptyEdges(spec) {
90
+ if (spec.edges?.length === 0)
91
+ delete spec.edges;
92
+ }
93
+ function deleteEmptyGroups(spec) {
94
+ if (spec.groups?.length === 0)
95
+ delete spec.groups;
96
+ }
97
+ function metadataRecord(value) {
98
+ if (value === undefined)
99
+ return undefined;
100
+ if (isObjectRecord(value))
101
+ return value;
102
+ throw new Error("DiagramSpec object metadata must be an object.");
103
+ }
104
+ function ensureObjectMetadata(object) {
105
+ const existingMetadata = metadataRecord(object.metadata);
106
+ if (existingMetadata !== undefined)
107
+ return existingMetadata;
108
+ object.metadata = {};
109
+ return object.metadata;
110
+ }
111
+ function deleteEmptyObjectMetadata(object) {
112
+ const metadata = metadataRecord(object.metadata);
113
+ if (metadata !== undefined && Object.keys(metadata).length === 0) {
114
+ delete object.metadata;
115
+ }
116
+ }
117
+ function diagramObjectById(spec, id) {
118
+ const objects = [
119
+ ...spec.nodes,
120
+ ...(spec.groups ?? []),
121
+ ...(spec.edges ?? []),
122
+ ];
123
+ const object = objects.find((candidate) => candidate.id === id);
124
+ if (object !== undefined)
125
+ return object;
126
+ throw new Error(`Unknown DiagramSpec object Stable ID: ${id}`);
127
+ }
128
+ function setTitle(spec, operation) {
129
+ spec.title = operationString(operation, "title");
130
+ }
131
+ function setDescription(spec, operation) {
132
+ spec.description = operationString(operation, "description");
133
+ }
134
+ function setDirection(spec, operation) {
135
+ spec.direction = operationString(operation, "direction");
136
+ }
137
+ function setMetadata(spec, operation) {
138
+ spec.metadata ??= {};
139
+ spec.metadata[operationString(operation, "key")] = operation.value;
140
+ }
141
+ function deleteMetadata(spec, operation) {
142
+ if (spec.metadata === undefined)
143
+ return;
144
+ delete spec.metadata[operationString(operation, "key")];
145
+ deleteEmptyTopLevelMetadata(spec);
146
+ }
147
+ function addNode(spec, operation) {
148
+ const node = operationRecord(operation, "node");
149
+ spec.nodes.splice(insertionIndex(spec.nodes, operation, "node"), 0, node);
150
+ }
151
+ function updateNode(spec, operation) {
152
+ const index = stableIdIndex(spec.nodes, operationString(operation, "id"), "node");
153
+ const node = spec.nodes[index];
154
+ assignStringField(node, operation, "label");
155
+ assignStringField(node, operation, "description");
156
+ assignStringField(node, operation, "icon");
157
+ }
158
+ function removeNode(spec, operation) {
159
+ spec.nodes.splice(stableIdIndex(spec.nodes, operationString(operation, "id"), "node"), 1);
160
+ }
161
+ function addEdge(spec, operation) {
162
+ const edge = operationRecord(operation, "edge");
163
+ spec.edges ??= [];
164
+ spec.edges.splice(insertionIndex(spec.edges, operation, "edge"), 0, edge);
165
+ }
166
+ function updateEdge(spec, operation) {
167
+ const edges = spec.edges ?? [];
168
+ const index = stableIdIndex(edges, operationString(operation, "id"), "edge");
169
+ const edge = edges[index];
170
+ assignStringField(edge, operation, "from");
171
+ assignStringField(edge, operation, "to");
172
+ assignStringField(edge, operation, "label");
173
+ }
174
+ function removeEdge(spec, operation) {
175
+ const edges = spec.edges ?? [];
176
+ edges.splice(stableIdIndex(edges, operationString(operation, "id"), "edge"), 1);
177
+ deleteEmptyEdges(spec);
178
+ }
179
+ function addGroup(spec, operation) {
180
+ const group = operationRecord(operation, "group");
181
+ spec.groups ??= [];
182
+ spec.groups.splice(insertionIndex(spec.groups, operation, "group"), 0, group);
183
+ }
184
+ function updateGroup(spec, operation) {
185
+ const groups = spec.groups ?? [];
186
+ const index = stableIdIndex(groups, operationString(operation, "id"), "group");
187
+ const group = groups[index];
188
+ assignStringField(group, operation, "label");
189
+ const contains = optionalOperationStringArray(operation, "contains");
190
+ if (contains !== undefined)
191
+ group.contains = contains;
192
+ }
193
+ function removeGroup(spec, operation) {
194
+ const groups = spec.groups ?? [];
195
+ groups.splice(stableIdIndex(groups, operationString(operation, "id"), "group"), 1);
196
+ deleteEmptyGroups(spec);
197
+ }
198
+ function setObjectMetadata(spec, operation) {
199
+ const object = diagramObjectById(spec, operationString(operation, "id"));
200
+ const metadata = ensureObjectMetadata(object);
201
+ metadata[operationString(operation, "key")] = operation.value;
202
+ }
203
+ function deleteObjectMetadata(spec, operation) {
204
+ const object = diagramObjectById(spec, operationString(operation, "id"));
205
+ const metadata = metadataRecord(object.metadata);
206
+ if (metadata === undefined)
207
+ return;
208
+ delete metadata[operationString(operation, "key")];
209
+ deleteEmptyObjectMetadata(object);
210
+ }
211
+ const mutationHandlers = {
212
+ set_title: setTitle,
213
+ set_description: setDescription,
214
+ set_direction: setDirection,
215
+ set_metadata: setMetadata,
216
+ delete_metadata: deleteMetadata,
217
+ add_node: addNode,
218
+ update_node: updateNode,
219
+ remove_node: removeNode,
220
+ add_edge: addEdge,
221
+ update_edge: updateEdge,
222
+ remove_edge: removeEdge,
223
+ add_group: addGroup,
224
+ update_group: updateGroup,
225
+ remove_group: removeGroup,
226
+ set_object_metadata: setObjectMetadata,
227
+ delete_object_metadata: deleteObjectMetadata,
228
+ };
229
+ function applySourceMutation(spec, operation) {
230
+ const handler = mutationHandlers[operation.type];
231
+ if (handler === undefined) {
232
+ throw new Error(`Unsupported DiagramPilot source mutation: ${operation.type}`);
233
+ }
234
+ handler(spec, operation);
235
+ return operation.type;
236
+ }
237
+ function validationErrorResult(sourcePath, operationType, before, spec) {
238
+ const validation = validateDiagramSpec(spec);
239
+ if (validation.ok)
240
+ return undefined;
241
+ const structuredContent = {
242
+ ok: false,
243
+ sourcePath,
244
+ writtenPaths: [],
245
+ operation: operationType,
246
+ before,
247
+ errors: validation.errors,
248
+ };
249
+ return toolResult(`${JSON.stringify(structuredContent, null, 2)}\n`, structuredContent, { isError: true });
250
+ }
251
+ function operationErrorResult(sourcePath, before, error) {
252
+ const message = error instanceof Error ? error.message : String(error);
253
+ const structuredContent = {
254
+ ok: false,
255
+ sourcePath,
256
+ writtenPaths: [],
257
+ before,
258
+ errors: [
259
+ {
260
+ path: "operation.type",
261
+ message,
262
+ expected: "A supported structured DiagramPilot source mutation operation.",
263
+ suggestion: "Use operations such as set_title, add_node, update_edge, or set_object_metadata.",
264
+ },
265
+ ],
266
+ };
267
+ return toolResult(`${JSON.stringify(structuredContent, null, 2)}\n`, structuredContent, { isError: true });
268
+ }
269
+ function sourceLoadFailureResult(sourcePath, failure) {
270
+ const failureResult = validationFailureResult(failure);
271
+ const structuredContent = {
272
+ ...failureResult.structuredContent,
273
+ sourcePath,
274
+ writtenPaths: [],
275
+ };
276
+ return toolResult(`${JSON.stringify(structuredContent, null, 2)}\n`, structuredContent, { isError: true });
277
+ }
278
+ function mutateLoadedSpec(sourcePath, spec, operation) {
279
+ const before = diagramSummary(spec);
280
+ const mutated = structuredClone(spec);
281
+ try {
282
+ const operationType = applySourceMutation(mutated, operation);
283
+ const validationError = validationErrorResult(sourcePath, operationType, before, mutated);
284
+ return validationError ?? { ok: true, operationType, spec: mutated };
285
+ }
286
+ catch (error) {
287
+ return operationErrorResult(sourcePath, before, error);
288
+ }
289
+ }
290
+ function isMutatedSpecResult(result) {
291
+ return "ok" in result && result.ok === true;
292
+ }
293
+ function loadSourceForMutation(sourcePath) {
294
+ const loaded = loadValidatedDiagramSpec(sourcePath);
295
+ if (loaded.ok)
296
+ return { ok: true, spec: loaded.spec };
297
+ return sourceLoadFailureResult(sourcePath, loaded.failure);
298
+ }
299
+ function isLoadedMutationSource(result) {
300
+ return "ok" in result && result.ok === true;
301
+ }
302
+ function writeMutationResult(sourcePath, originalSpec, mutation, dependencies) {
303
+ const content = serializeDiagramPilotSourceFile(mutation.spec);
304
+ const write = dependencies.writeFile ?? writeFileSync;
305
+ write(sourcePath, content);
306
+ const reloaded = loadValidatedDiagramSpec(sourcePath);
307
+ if (!reloaded.ok)
308
+ return sourceLoadFailureResult(sourcePath, reloaded.failure);
309
+ const structuredContent = {
310
+ ok: true,
311
+ sourcePath,
312
+ writtenPaths: [sourcePath],
313
+ operation: mutation.operationType,
314
+ before: diagramSummary(originalSpec),
315
+ after: diagramSummary(reloaded.spec),
316
+ };
317
+ return toolResult(`${JSON.stringify(structuredContent, null, 2)}\n`, structuredContent);
318
+ }
319
+ export async function mutateSourceTool(args, dependencies) {
320
+ const sourcePath = stringArgument(args, "source_path");
321
+ const operation = operationArgument(args);
322
+ const loaded = loadSourceForMutation(sourcePath);
323
+ if (!isLoadedMutationSource(loaded))
324
+ return loaded;
325
+ const mutation = mutateLoadedSpec(sourcePath, loaded.spec, operation);
326
+ if (!isMutatedSpecResult(mutation))
327
+ return mutation;
328
+ return writeMutationResult(sourcePath, loaded.spec, mutation, dependencies);
329
+ }
330
+ //# sourceMappingURL=source-mutation-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-mutation-tools.js","sourceRoot":"","sources":["../src/source-mutation-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAE/B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,cAAc,EACd,UAAU,EACV,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AA0B3B,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CACxB,IAA6B;IAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;IAC7B,IAAI,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,KAAgC,CAAC;IACnE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,eAAe,CACtB,SAAkC,EAClC,IAAY;IAEZ,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,uBAAuB,CAC9B,SAAkC,EAClC,IAAY;IAEZ,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,eAAe,CACtB,SAAkC,EAClC,IAAY;IAEZ,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,4BAA4B,CACnC,SAAkC,EAClC,IAAY;IAEZ,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA+B,EAC/B,SAAkC,EAClC,IAAY;IAEZ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,KAAmB,EACnB,EAAU,EACV,cAAsB;IAEtB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,eAAe,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAkC;IAC5D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG;QACjB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE;QAChE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;KAC/D,CAAC,MAAM,CAAC,CAAC,SAAS,EAA0B,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAEzE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CACrB,KAAmB,EACnB,SAAkC,EAClC,cAAsB;IAEtB,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IACjD,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,cAAc,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;AAC/E,CAAC;AAED,SAAS,SAAS,CAAC,KAAqC;IACtD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,IAAiB;IACvC,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QAC5B,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAChC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAiB;IACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3E,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAiB;IACzC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAiB;IAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA+B;IAC3D,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IAC5D,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,OAAO,MAAM,CAAC,QAAmC,CAAC;AACpD,CAAC;AAED,SAAS,yBAAyB,CAAC,MAA+B;IAChE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAiB,EAAE,EAAU;IACtD,MAAM,OAAO,GAAwB;QACnC,GAAG,IAAI,CAAC,KAAK;QACb,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;KACY,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,IAAI,KAAK,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAiB,EAAE,SAAkC;IACrE,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CACrB,IAAiB,EACjB,SAAkC;IAElC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,YAAY,CAAC,IAAiB,EAAE,SAAkC;IACzE,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,WAAW,CAA6B,CAAC;AACvF,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB,EAAE,SAAkC;IACxE,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC;IACrB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;AACrE,CAAC;AAED,SAAS,cAAc,CAAC,IAAiB,EAAE,SAAkC;IAC3E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO;IACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,2BAA2B,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,OAAO,CAAC,IAAiB,EAAE,SAAkC;IACpE,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,CAA+B,CAAC;IAC9E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB,EAAE,SAAkC;IACvE,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAuC,CAAC;IACrE,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5C,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB,EAAE,SAAkC;IACvE,IAAI,CAAC,KAAK,CAAC,MAAM,CACf,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,EACnE,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAiB,EAAE,SAAkC;IACpE,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,CAA+B,CAAC;IAC9E,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;IAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB,EAAE,SAAkC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAuC,CAAC;IAChE,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3C,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACzC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB,EAAE,SAAkC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAiB,EAAE,SAAkC;IACrE,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAgC,CAAC;IACjF,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC;IACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB,EAAE,SAAkC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAuC,CAAC;IAClE,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,4BAA4B,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrE,IAAI,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB,EAAE,SAAkC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAiB,EACjB,SAAkC;IAElC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAiB,EACjB,SAAkC;IAElC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,OAAO,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,gBAAgB,GAAoC;IACxD,SAAS,EAAE,QAAQ;IACnB,eAAe,EAAE,cAAc;IAC/B,aAAa,EAAE,YAAY;IAC3B,YAAY,EAAE,WAAW;IACzB,eAAe,EAAE,cAAc;IAC/B,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,WAAW;IACzB,YAAY,EAAE,WAAW;IACzB,mBAAmB,EAAE,iBAAiB;IACtC,sBAAsB,EAAE,oBAAoB;CAC7C,CAAC;AAEF,SAAS,mBAAmB,CAC1B,IAAiB,EACjB,SAAkC;IAElC,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6CAA6C,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzB,OAAO,SAAS,CAAC,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAkB,EAClB,aAAqB,EACrB,MAA+B,EAC/B,IAAiB;IAEjB,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,iBAAiB,GAAG;QACxB,EAAE,EAAE,KAAK;QACT,UAAU;QACV,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,aAAa;QACxB,MAAM;QACN,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;IAEF,OAAO,UAAU,CACf,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACjD,iBAAiB,EACjB,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,MAA+B,EAC/B,KAAc;IAEd,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,iBAAiB,GAAG;QACxB,EAAE,EAAE,KAAK;QACT,UAAU;QACV,YAAY,EAAE,EAAE;QAChB,MAAM;QACN,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO;gBACP,QAAQ,EACN,gEAAgE;gBAClE,UAAU,EACR,kFAAkF;aACrF;SACF;KACF,CAAC;IAEF,OAAO,UAAU,CACf,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACjD,iBAAiB,EACjB,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAAkB,EAClB,OAAsD;IAEtD,MAAM,aAAa,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG;QACxB,GAAI,aAAa,CAAC,iBAA6C;QAC/D,UAAU;QACV,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,OAAO,UAAU,CACf,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACjD,iBAAiB,EACjB,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAkB,EAClB,IAAiB,EACjB,SAAkC;IAElC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAgB,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,qBAAqB,CAC3C,UAAU,EACV,aAAa,EACb,MAAM,EACN,OAAO,CACR,CAAC;QACF,OAAO,eAAe,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAqD;IAErD,OAAO,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAkB;IAElB,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACtD,OAAO,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAwD;IAExD,OAAO,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAkB,EAClB,YAAyB,EACzB,QAA2B,EAC3B,YAA6C;IAE7C,MAAM,OAAO,GAAG,+BAA+B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,IAAI,aAAa,CAAC;IACtD,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAE3B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE/E,MAAM,iBAAiB,GAAG;QACxB,EAAE,EAAE,IAAI;QACR,UAAU;QACV,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,SAAS,EAAE,QAAQ,CAAC,aAAa;QACjC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC;QACpC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;KACrC,CAAC;IAEF,OAAO,UAAU,CACf,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACjD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAA6B,EAC7B,YAA6C;IAE7C,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAEnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACpD,OAAO,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DiagramPilotMcpToolDependencies, DiagramPilotMcpToolResult } from "./types.js";
2
+ export declare function createSourceTool(args: Record<string, unknown>, dependencies: DiagramPilotMcpToolDependencies): Promise<DiagramPilotMcpToolResult>;
3
+ export declare function suggestStableIdsTool(args: Record<string, unknown>): Promise<DiagramPilotMcpToolResult>;
4
+ //# sourceMappingURL=source-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-tools.d.ts","sourceRoot":"","sources":["../src/source-tools.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAkIpB,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,+BAA+B,GAC5C,OAAO,CAAC,yBAAyB,CAAC,CA2BpC;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CAapC"}
@@ -0,0 +1,129 @@
1
+ import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { loadValidatedDiagramSpec, serializeDiagramPilotSourceFile, validateDiagramSpec, } from "@diagrampilot/core";
4
+ import { stringArgument, stringArrayArgument, toolResult, validationFailureResult, } from "./tool-helpers.js";
5
+ function diagramArgument(args, name) {
6
+ const value = args[name];
7
+ if (value !== null && typeof value === "object" && !Array.isArray(value)) {
8
+ return value;
9
+ }
10
+ throw new Error(`Missing required MCP tool argument: ${name}`);
11
+ }
12
+ function sourceFileExists(sourcePath) {
13
+ try {
14
+ readFileSync(sourcePath, "utf8");
15
+ return true;
16
+ }
17
+ catch {
18
+ return false;
19
+ }
20
+ }
21
+ function itemCount(items) {
22
+ return items === undefined ? 0 : items.length;
23
+ }
24
+ function diagramSummary(spec) {
25
+ return {
26
+ exists: true,
27
+ valid: true,
28
+ nodeCount: spec.nodes.length,
29
+ edgeCount: itemCount(spec.edges),
30
+ groupCount: itemCount(spec.groups),
31
+ };
32
+ }
33
+ function sourceCreationErrorResult(structuredContent) {
34
+ return toolResult(`${JSON.stringify(structuredContent, null, 2)}\n`, structuredContent, { isError: true });
35
+ }
36
+ function stableIdBase(label) {
37
+ const parts = label.toLowerCase().match(/[a-z0-9]+/gu) ?? [];
38
+ const base = parts.join("_");
39
+ if (base.length === 0)
40
+ return "diagram_item";
41
+ if (/^[a-z]/u.test(base))
42
+ return base;
43
+ return `id_${base}`;
44
+ }
45
+ function nextStableId(base, usedIds) {
46
+ if (!usedIds.has(base)) {
47
+ usedIds.add(base);
48
+ return base;
49
+ }
50
+ for (let index = 2;; index += 1) {
51
+ const candidate = `${base}_${index}`;
52
+ if (!usedIds.has(candidate)) {
53
+ usedIds.add(candidate);
54
+ return candidate;
55
+ }
56
+ }
57
+ }
58
+ function sourcePathErrorContent(sourcePath, before) {
59
+ if (/\.dp\.yaml$/iu.test(sourcePath))
60
+ return undefined;
61
+ return {
62
+ ok: false,
63
+ sourcePath,
64
+ writtenPaths: [],
65
+ before,
66
+ errors: [
67
+ {
68
+ path: "source_path",
69
+ message: "source_path must be a *.dp.yaml DiagramPilot Source File.",
70
+ badValue: sourcePath,
71
+ expected: "*.dp.yaml DiagramPilot Source File path.",
72
+ suggestion: "Use a path such as docs/architecture.dp.yaml.",
73
+ },
74
+ ],
75
+ };
76
+ }
77
+ function diagramValidationErrorContent(sourcePath, before, spec) {
78
+ const validation = validateDiagramSpec(spec);
79
+ if (validation.ok)
80
+ return undefined;
81
+ return {
82
+ ok: false,
83
+ sourcePath,
84
+ writtenPaths: [],
85
+ before,
86
+ errors: validation.errors,
87
+ };
88
+ }
89
+ function preWriteSourceCreationError(sourcePath, before, spec) {
90
+ const errorContent = sourcePathErrorContent(sourcePath, before) ??
91
+ diagramValidationErrorContent(sourcePath, before, spec);
92
+ return errorContent === undefined
93
+ ? undefined
94
+ : sourceCreationErrorResult(errorContent);
95
+ }
96
+ export async function createSourceTool(args, dependencies) {
97
+ const sourcePath = stringArgument(args, "source_path");
98
+ const spec = diagramArgument(args, "diagram");
99
+ const before = { exists: sourceFileExists(sourcePath) };
100
+ const preWriteError = preWriteSourceCreationError(sourcePath, before, spec);
101
+ if (preWriteError !== undefined)
102
+ return preWriteError;
103
+ const content = serializeDiagramPilotSourceFile(spec);
104
+ mkdirSync(path.dirname(sourcePath), { recursive: true });
105
+ const write = dependencies.writeFile ?? writeFileSync;
106
+ write(sourcePath, content);
107
+ const loaded = loadValidatedDiagramSpec(sourcePath);
108
+ if (!loaded.ok)
109
+ return validationFailureResult(loaded.failure);
110
+ const structuredContent = {
111
+ ok: true,
112
+ sourcePath,
113
+ writtenPaths: [sourcePath],
114
+ before,
115
+ after: diagramSummary(loaded.spec),
116
+ };
117
+ return toolResult(`${JSON.stringify(structuredContent, null, 2)}\n`, structuredContent);
118
+ }
119
+ export async function suggestStableIdsTool(args) {
120
+ const labels = stringArrayArgument(args, "labels");
121
+ const usedIds = new Set(stringArrayArgument(args, "existing_ids"));
122
+ const suggestions = labels.map((label) => ({
123
+ label,
124
+ id: nextStableId(stableIdBase(label), usedIds),
125
+ }));
126
+ const structuredContent = { ok: true, suggestions };
127
+ return toolResult(`${JSON.stringify(structuredContent, null, 2)}\n`, structuredContent);
128
+ }
129
+ //# sourceMappingURL=source-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-tools.js","sourceRoot":"","sources":["../src/source-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ValidatedDiagramSpecLoadFailure } from "@diagrampilot/core";
2
+ import type { DiagramPilotMcpToolResult } from "./types.js";
3
+ export declare function toolResult(text: string, structuredContent: Record<string, unknown>, options?: {
4
+ isError?: boolean;
5
+ }): DiagramPilotMcpToolResult;
6
+ export declare function stringArgument(args: Record<string, unknown>, name: string, fallback?: string): string;
7
+ export declare function stringArrayArgument(args: Record<string, unknown>, name: string): string[];
8
+ export declare function validationFailureResult(failure: ValidatedDiagramSpecLoadFailure): DiagramPilotMcpToolResult;
9
+ //# sourceMappingURL=tool-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../src/tool-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,yBAAyB,CAM3B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAOR;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CAWV;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,+BAA+B,GACvC,yBAAyB,CAY3B"}
@@ -0,0 +1,34 @@
1
+ import { createRepairableDiagnosticReport } from "@diagrampilot/core";
2
+ export function toolResult(text, structuredContent, options = {}) {
3
+ return {
4
+ content: [{ type: "text", text }],
5
+ structuredContent,
6
+ ...(options.isError === undefined ? {} : { isError: options.isError }),
7
+ };
8
+ }
9
+ export function stringArgument(args, name, fallback) {
10
+ const value = args[name];
11
+ if (typeof value === "string" && value.length > 0)
12
+ return value;
13
+ if (fallback !== undefined)
14
+ return fallback;
15
+ throw new Error(`Missing required MCP tool argument: ${name}`);
16
+ }
17
+ export function stringArrayArgument(args, name) {
18
+ const value = args[name];
19
+ if (value === undefined)
20
+ return [];
21
+ if (!Array.isArray(value)) {
22
+ throw new Error(`MCP tool argument must be an array: ${name}`);
23
+ }
24
+ return value.filter((entry) => typeof entry === "string" && entry.length > 0);
25
+ }
26
+ export function validationFailureResult(failure) {
27
+ const report = createRepairableDiagnosticReport(failure);
28
+ return toolResult(report.text, {
29
+ ok: false,
30
+ errorCount: report.errors.length,
31
+ errors: report.errors,
32
+ }, { isError: true });
33
+ }
34
+ //# sourceMappingURL=tool-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../src/tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAKtE,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,iBAA0C,EAC1C,UAAiC,EAAE;IAEnC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,iBAAiB;QACjB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAA6B,EAC7B,IAAY,EACZ,QAAiB;IAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAE5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAA6B,EAC7B,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAwC;IAExC,MAAM,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAEzD,OAAO,UAAU,CACf,MAAM,CAAC,IAAI,EACX;QACE,EAAE,EAAE,KAAK;QACT,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QAChC,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -63,6 +63,7 @@ export interface DiagramPilotMcpToolDependencies {
63
63
  renderDiagramSpecToSvg?(spec: DiagramSpec, options: {
64
64
  provenance: ReturnType<typeof createSvgRendererProvenance>;
65
65
  }): Promise<string>;
66
+ writeFile?(path: string, content: string | Uint8Array): void;
66
67
  }
67
68
  export interface DiagramPilotMcpServerOptions {
68
69
  toolDependencies?: DiagramPilotMcpToolDependencies;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC9C,WAAW,EAAE;QACX,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,CAAC,0BAA0B,CAAC,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,0BAA0B,CAAC;SACrC;KACF,CAAC;CACH;AAED,MAAM,WAAW,+BAA+B;IAC9C,sBAAsB,CAAC,CACrB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;QACP,UAAU,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;KAC5D,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,CAAC,EAAE,+BAA+B,CAAC;CACpD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC9C,WAAW,EAAE;QACX,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,CAAC,0BAA0B,CAAC,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,0BAA0B,CAAC;SACrC;KACF,CAAC;CACH;AAED,MAAM,WAAW,+BAA+B;IAC9C,sBAAsB,CAAC,CACrB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;QACP,UAAU,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;KAC5D,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,CAAC,EAAE,+BAA+B,CAAC;CACpD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diagrampilot/mcp",
3
- "version": "0.2.9",
3
+ "version": "0.2.14",
4
4
  "description": "Model Context Protocol server for DiagramPilot.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -46,11 +46,11 @@
46
46
  "build": "tsc -b && node scripts/make-bin-executable.mjs"
47
47
  },
48
48
  "dependencies": {
49
- "@diagrampilot/core": "0.2.9",
50
- "@diagrampilot/export-d2": "0.2.9",
51
- "@diagrampilot/export-dot": "0.2.9",
52
- "@diagrampilot/export-mermaid": "0.2.9",
53
- "@diagrampilot/render-svg": "0.2.9",
49
+ "@diagrampilot/core": "0.2.14",
50
+ "@diagrampilot/export-d2": "0.2.14",
51
+ "@diagrampilot/export-dot": "0.2.14",
52
+ "@diagrampilot/export-mermaid": "0.2.14",
53
+ "@diagrampilot/render-svg": "0.2.14",
54
54
  "@modelcontextprotocol/sdk": "^1.29.0",
55
55
  "zod": "^4.4.3"
56
56
  }