flowspec-mcp 4.2.2 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -53,7 +53,7 @@ Local mode connects to the FlowSpec desktop server at `http://localhost:3456`.
53
53
 
54
54
  ### Read Tools
55
55
  - **`flowspec_list_projects`** — List all projects with names and dates
56
- - **`flowspec_get_yaml`** — Get full YAML spec for a project (optimised for Claude Code)
56
+ - **`flowspec_get_json`** — Get full JSON spec for a project (optimised for Claude Code)
57
57
  - **`flowspec_get_project`** — Get raw canvas_state JSON
58
58
  - **`flowspec_search_nodes`** — Search nodes by label across all projects
59
59
  - **`flowspec_get_screen_context`** — Get screen/region/element structure
@@ -1,6 +1,6 @@
1
1
  import type { CanvasNode, CanvasEdge, Screen } from '../types.js';
2
2
  /**
3
- * Exports canvas state to YAML specification optimised for Claude Code.
3
+ * Exports canvas state to JSON specification optimised for Claude Code.
4
4
  * Adapted from web app — uses plain interfaces instead of @xyflow/svelte types.
5
5
  */
6
- export declare function exportToYaml(nodes: CanvasNode[], edges: CanvasEdge[], projectName?: string, screens?: Screen[]): string;
6
+ export declare function exportToJson(nodes: CanvasNode[], edges: CanvasEdge[], projectName?: string, screens?: Screen[]): string;
@@ -1,9 +1,8 @@
1
- import { stringify } from 'yaml';
2
1
  /**
3
- * Exports canvas state to YAML specification optimised for Claude Code.
2
+ * Exports canvas state to JSON specification optimised for Claude Code.
4
3
  * Adapted from web app — uses plain interfaces instead of @xyflow/svelte types.
5
4
  */
6
- export function exportToYaml(nodes, edges, projectName = 'Untitled Project', screens = []) {
5
+ export function exportToJson(nodes, edges, projectName = 'Untitled Project', screens = []) {
7
6
  const exportableNodes = nodes.filter((n) => n.type !== 'image' && n.type !== 'screen');
8
7
  const dataPointNodes = exportableNodes.filter((n) => n.type === 'datapoint');
9
8
  const componentNodes = exportableNodes.filter((n) => n.type === 'component');
@@ -60,9 +59,7 @@ export function exportToYaml(nodes, edges, projectName = 'Untitled Project', scr
60
59
  logic: data.logic,
61
60
  };
62
61
  }),
63
- dataFlow: edges.filter((e) => {
64
- return e.data?.edgeType !== 'contains';
65
- }).map((edge) => {
62
+ dataFlow: edges.map((edge) => {
66
63
  const result = {
67
64
  from: edge.source,
68
65
  to: edge.target,
@@ -124,10 +121,7 @@ export function exportToYaml(nodes, edges, projectName = 'Untitled Project', scr
124
121
  }),
125
122
  }));
126
123
  }
127
- return stringify(spec, {
128
- lineWidth: 120,
129
- indent: 2,
130
- });
124
+ return JSON.stringify(spec, null, 2);
131
125
  }
132
126
  function buildLocationMap(dataPoints, components, edges) {
133
127
  const map = new Map();
@@ -152,4 +146,4 @@ function buildLocationMap(dataPoints, components, edges) {
152
146
  }
153
147
  return map;
154
148
  }
155
- //# sourceMappingURL=yamlExporter.js.map
149
+ //# sourceMappingURL=jsonExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonExporter.js","sourceRoot":"","sources":["../../src/export/jsonExporter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Converts a validated YAML spec back into FlowSpec canvas nodes and edges.
2
+ * Converts a validated JSON spec back into FlowSpec canvas nodes and edges.
3
3
  * Ported from src/lib/import/yamlImporter.ts — uses MCP types, no @xyflow deps.
4
4
  * Lenient: uses sensible defaults for missing fields, skips broken edges.
5
5
  */
@@ -17,6 +17,7 @@ export interface ImportResult {
17
17
  edges: number;
18
18
  skippedEdges: number;
19
19
  skippedNodes: number;
20
+ skipReasons: string[];
20
21
  };
21
22
  }
22
- export declare function importFromYaml(spec: Record<string, unknown>): ImportResult;
23
+ export declare function importFromJson(spec: Record<string, unknown>, existingNodeIds?: Set<string>): ImportResult;
@@ -1,4 +1,4 @@
1
- export function importFromYaml(spec) {
1
+ export function importFromJson(spec, existingNodeIds) {
2
2
  const metadata = (spec.metadata ?? {});
3
3
  const projectName = metadata.projectName ?? 'Imported Project';
4
4
  const rawDataPoints = spec.dataPoints ?? [];
@@ -6,6 +6,16 @@ export function importFromYaml(spec) {
6
6
  const rawTransforms = spec.transforms ?? [];
7
7
  const rawDataFlow = spec.dataFlow ?? [];
8
8
  const rawTables = spec.tables ?? [];
9
+ // Detect unknown top-level keys when all expected arrays are empty
10
+ const KNOWN_KEYS = new Set(['version', 'metadata', 'dataPoints', 'components', 'transforms', 'tables', 'dataFlow', 'screens']);
11
+ const unknownKeys = Object.keys(spec).filter(k => !KNOWN_KEYS.has(k));
12
+ const allEmpty = rawDataPoints.length === 0 && rawComponents.length === 0 &&
13
+ rawTransforms.length === 0 && rawTables.length === 0 && rawDataFlow.length === 0;
14
+ if (allEmpty && unknownKeys.length > 0) {
15
+ const suggestions = unknownKeys.map(k => `"${k}"`).join(', ');
16
+ const expected = '"dataPoints", "transforms", "components", "tables", "dataFlow", "screens"';
17
+ throw new Error(`Unknown key ${suggestions} — expected ${expected}. Check your JSON spec structure.`);
18
+ }
9
19
  const nodes = [];
10
20
  const seenIds = new Set();
11
21
  let skippedNodes = 0;
@@ -56,14 +66,18 @@ export function importFromYaml(spec) {
56
66
  continue;
57
67
  }
58
68
  seenIds.add(id);
69
+ const label = tx.label ?? '';
59
70
  const description = tx.description ?? '';
60
- const rawLogic = (tx.logic ?? {});
71
+ const logicInput = tx.logic;
72
+ const rawLogic = typeof logicInput === 'string'
73
+ ? { type: tx.type ?? 'formula', content: logicInput }
74
+ : (logicInput ?? {});
61
75
  nodes.push({
62
76
  id,
63
77
  type: 'transform',
64
78
  position: { x: 0, y: 0 },
65
79
  data: {
66
- label: description || 'Untitled Transform',
80
+ label: label || description || 'Untitled Transform',
67
81
  type: validLogicType(tx.type),
68
82
  description,
69
83
  inputs: Array.isArray(tx.inputs) ? tx.inputs : [],
@@ -103,11 +117,21 @@ export function importFromYaml(spec) {
103
117
  // --- Edges (no markerEnd — visual-only, not needed in canvas_state) ---
104
118
  const edges = [];
105
119
  let skippedEdges = 0;
120
+ const skipReasons = [];
121
+ const allKnownIds = existingNodeIds
122
+ ? new Set([...seenIds, ...existingNodeIds])
123
+ : seenIds;
106
124
  for (const flow of rawDataFlow) {
107
125
  const from = flow.from;
108
126
  const to = flow.to;
109
- if (!from || !to || !seenIds.has(from) || !seenIds.has(to)) {
127
+ if (!from || !to) {
128
+ skippedEdges++;
129
+ skipReasons.push(`Edge ${from ?? '?'} → ${to ?? '?'}: missing from/to field`);
130
+ continue;
131
+ }
132
+ if (!allKnownIds.has(from) || !allKnownIds.has(to)) {
110
133
  skippedEdges++;
134
+ skipReasons.push(`Edge ${from} → ${to}: source/target node not found`);
111
135
  continue;
112
136
  }
113
137
  const edgeData = {
@@ -187,7 +211,8 @@ export function importFromYaml(spec) {
187
211
  tables: nodes.filter((n) => n.type === 'table').length,
188
212
  edges: edges.length,
189
213
  skippedEdges,
190
- skippedNodes
214
+ skippedNodes,
215
+ skipReasons
191
216
  }
192
217
  };
193
218
  }
@@ -196,7 +221,7 @@ const VALID_DATA_TYPES = new Set(['string', 'number', 'boolean', 'object', 'arra
196
221
  function validDataType(t) {
197
222
  return t && VALID_DATA_TYPES.has(t) ? t : 'string';
198
223
  }
199
- const VALID_SOURCES = new Set(['captured', 'inferred']);
224
+ const VALID_SOURCES = new Set(['captured', 'retrieved', 'inferred']);
200
225
  function validSource(s) {
201
226
  return s && VALID_SOURCES.has(s) ? s : 'captured';
202
227
  }
@@ -224,4 +249,4 @@ const VALID_EDGE_TYPES = new Set([
224
249
  function validEdgeType(t) {
225
250
  return t && VALID_EDGE_TYPES.has(t) ? t : 'flows-to';
226
251
  }
227
- //# sourceMappingURL=yamlImporter.js.map
252
+ //# sourceMappingURL=jsonImporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonImporter.js","sourceRoot":"","sources":["../../src/import/jsonImporter.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
File without changes
package/dist/server.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { listProjectsSchema, handleListProjects } from './tools/listProjects.js';
3
- import { getYamlSchema, handleGetYaml } from './tools/getYaml.js';
3
+ import { getJsonSchema, handleGetJson } from './tools/getJson.js';
4
4
  import { getProjectSchema, handleGetProject } from './tools/getProject.js';
5
5
  import { searchNodesSchema, handleSearchNodes } from './tools/searchNodes.js';
6
6
  import { getScreenContextSchema, handleGetScreenContext } from './tools/getScreenContext.js';
@@ -14,8 +14,9 @@ import { deleteNodeSchema, handleDeleteNode } from './tools/deleteNode.js';
14
14
  import { createEdgeSchema, handleCreateEdge } from './tools/createEdge.js';
15
15
  import { deleteEdgeSchema, handleDeleteEdge } from './tools/deleteEdge.js';
16
16
  import { analyseProjectSchema, handleAnalyseProject } from './tools/analyseProject.js';
17
+ import { validateProjectSchema, handleValidateProject } from './tools/validateProject.js';
17
18
  // v3 write tools
18
- import { importYamlSchema, handleImportYaml } from './tools/importYaml.js';
19
+ import { importJsonSchema, handleImportJson } from './tools/importJson.js';
19
20
  import { autoLayoutSchema, handleAutoLayout } from './tools/autoLayout.js';
20
21
  import { uploadImageSchema, handleUploadImage } from './tools/uploadImage.js';
21
22
  import { createScreenSchema, handleCreateScreen } from './tools/createScreen.js';
@@ -30,14 +31,14 @@ import { MODE } from './config.js';
30
31
  export function createServer() {
31
32
  const server = new McpServer({
32
33
  name: 'flowspec',
33
- version: '4.2.2',
34
+ version: '5.0.0',
34
35
  });
35
36
  // ─── Read tools ──────────────────────────────────────────────────
36
37
  server.tool('flowspec_list_projects', 'List all FlowSpec projects with names and dates', listProjectsSchema.shape, handleListProjects);
37
- server.tool('flowspec_get_yaml', 'Get the full YAML spec for a FlowSpec project (optimised for Claude Code consumption)', getYamlSchema.shape, handleGetYaml);
38
+ server.tool('flowspec_get_json', 'Get the full JSON spec for a FlowSpec project (optimised for Claude Code consumption)', getJsonSchema.shape, handleGetJson);
38
39
  server.tool('flowspec_get_project', 'Get project data (nodes, edges, screens) for a FlowSpec project', getProjectSchema.shape, handleGetProject);
39
40
  server.tool('flowspec_search_nodes', 'Search for nodes by label across all projects, optionally filtered by type', searchNodesSchema.shape, handleSearchNodes);
40
- server.tool('flowspec_get_screen_context', 'Get screen/region/element structure for a FlowSpec project (lightweight alternative to full YAML)', getScreenContextSchema.shape, handleGetScreenContext);
41
+ server.tool('flowspec_get_screen_context', 'Get screen/region/element structure for a FlowSpec project (lightweight alternative to full JSON)', getScreenContextSchema.shape, handleGetScreenContext);
41
42
  // ─── Write tools (v2) ────────────────────────────────────────────
42
43
  server.tool('flowspec_create_project', 'Create a new FlowSpec project. Before building from a codebase, scan source files for @flowspec annotations (left by the codebase-indexer skill) to avoid re-discovering already-indexed elements.', createProjectSchema.shape, handleCreateProject);
43
44
  server.tool('flowspec_update_project', 'Update a project name or replace its entire canvas state', updateProjectSchema.shape, handleUpdateProject);
@@ -48,8 +49,9 @@ export function createServer() {
48
49
  server.tool('flowspec_create_edge', 'Connect two nodes with an edge type (flows-to, derives-from, transforms, validates, contains)', createEdgeSchema.shape, handleCreateEdge);
49
50
  server.tool('flowspec_delete_edge', 'Remove an edge from a project', deleteEdgeSchema.shape, handleDeleteEdge);
50
51
  server.tool('flowspec_analyse_project', 'Run orphan node and duplicate label analysis on a project', analyseProjectSchema.shape, handleAnalyseProject);
52
+ server.tool('flowspec_validate_project', 'Validate data flow semantics: DataPoint sources, Transform I/O, Component references, type matching, and circular dependencies', validateProjectSchema.shape, handleValidateProject);
51
53
  // ─── Write tools (v3) ────────────────────────────────────────────
52
- server.tool('flowspec_import_yaml', 'Import specification to create/merge nodes, edges, and screens. If the codebase has @flowspec annotations, incorporate them into the spec before importing to avoid duplicating pre-indexed elements.', importYamlSchema.shape, handleImportYaml);
54
+ server.tool('flowspec_import_json', 'Import JSON specification to create/merge nodes, edges, and screens. If the codebase has @flowspec annotations, incorporate them into the spec before importing to avoid duplicating pre-indexed elements.', importJsonSchema.shape, handleImportJson);
53
55
  server.tool('flowspec_auto_layout', 'Apply automatic hierarchical layout (Dagre) to organize nodes', autoLayoutSchema.shape, handleAutoLayout);
54
56
  server.tool('flowspec_upload_image', 'Upload an image and get its URL with auto-detected dimensions', uploadImageSchema.shape, handleUploadImage);
55
57
  server.tool('flowspec_create_screen', 'Create a new wireframe screen with optional image', createScreenSchema.shape, handleCreateScreen);
@@ -60,7 +62,7 @@ export function createServer() {
60
62
  server.tool('flowspec_remove_region', 'Remove a region from a screen', removeRegionSchema.shape, handleRemoveRegion);
61
63
  server.tool('flowspec_update_edge', 'Update edge type, label, or handle positions', updateEdgeSchema.shape, handleUpdateEdge);
62
64
  server.tool('flowspec_clone_project', 'Clone a project for backup or branching', cloneProjectSchema.shape, handleCloneProject);
63
- console.error(`FlowSpec MCP v4.2.0 — mode: ${MODE}`);
65
+ console.error(`FlowSpec MCP v5.0.0 — mode: ${MODE}`);
64
66
  return server;
65
67
  }
66
68
  //# sourceMappingURL=server.js.map
@@ -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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"}
@@ -1,12 +1,12 @@
1
1
  import { z } from 'zod';
2
- export declare const getYamlSchema: z.ZodObject<{
2
+ export declare const getJsonSchema: z.ZodObject<{
3
3
  projectId: z.ZodString;
4
4
  }, "strip", z.ZodTypeAny, {
5
5
  projectId: string;
6
6
  }, {
7
7
  projectId: string;
8
8
  }>;
9
- export declare function handleGetYaml(args: z.infer<typeof getYamlSchema>): Promise<{
9
+ export declare function handleGetJson(args: z.infer<typeof getJsonSchema>): Promise<{
10
10
  content: {
11
11
  type: "text";
12
12
  text: string;
@@ -1,10 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { getProject } from '../db.js';
3
- import { exportToYaml } from '../export/yamlExporter.js';
4
- export const getYamlSchema = z.object({
3
+ import { exportToJson } from '../export/jsonExporter.js';
4
+ export const getJsonSchema = z.object({
5
5
  projectId: z.string().describe('UUID of the FlowSpec project'),
6
6
  });
7
- export async function handleGetYaml(args) {
7
+ export async function handleGetJson(args) {
8
8
  const project = await getProject(args.projectId);
9
9
  if (!project) {
10
10
  return {
@@ -15,9 +15,9 @@ export async function handleGetYaml(args) {
15
15
  const nodes = project.canvas_state?.nodes ?? [];
16
16
  const edges = project.canvas_state?.edges ?? [];
17
17
  const screens = project.canvas_state?.screens ?? [];
18
- const yaml = exportToYaml(nodes, edges, project.name, screens);
18
+ const json = exportToJson(nodes, edges, project.name, screens);
19
19
  return {
20
- content: [{ type: 'text', text: yaml }],
20
+ content: [{ type: 'text', text: json }],
21
21
  };
22
22
  }
23
- //# sourceMappingURL=getYaml.js.map
23
+ //# sourceMappingURL=getJson.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getYaml.js","sourceRoot":"","sources":["../../src/tools/getYaml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAmC;IACrE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAClF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC;IAEpD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getJson.js","sourceRoot":"","sources":["../../src/tools/getJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAmC;IACrE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAClF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC;IAEpD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC"}
@@ -1,24 +1,24 @@
1
1
  import { z } from 'zod';
2
- export declare const importYamlSchema: z.ZodObject<{
2
+ export declare const importJsonSchema: z.ZodObject<{
3
3
  projectId: z.ZodString;
4
- yaml: z.ZodString;
4
+ json: z.ZodString;
5
5
  autoLayout: z.ZodOptional<z.ZodBoolean>;
6
6
  layoutDirection: z.ZodOptional<z.ZodEnum<["TB", "BT", "LR", "RL"]>>;
7
7
  merge: z.ZodOptional<z.ZodBoolean>;
8
8
  }, "strip", z.ZodTypeAny, {
9
9
  projectId: string;
10
- yaml: string;
10
+ json: string;
11
11
  autoLayout?: boolean | undefined;
12
12
  layoutDirection?: "TB" | "BT" | "LR" | "RL" | undefined;
13
13
  merge?: boolean | undefined;
14
14
  }, {
15
15
  projectId: string;
16
- yaml: string;
16
+ json: string;
17
17
  autoLayout?: boolean | undefined;
18
18
  layoutDirection?: "TB" | "BT" | "LR" | "RL" | undefined;
19
19
  merge?: boolean | undefined;
20
20
  }>;
21
- export declare function handleImportYaml(args: z.infer<typeof importYamlSchema>): Promise<{
21
+ export declare function handleImportJson(args: z.infer<typeof importJsonSchema>): Promise<{
22
22
  content: {
23
23
  type: "text";
24
24
  text: string;
@@ -1,35 +1,51 @@
1
1
  import { z } from 'zod';
2
- import { parse as parseYaml } from 'yaml';
3
2
  import { getProject, updateProjectViaApi } from '../db.js';
4
- import { importFromYaml } from '../import/yamlImporter.js';
3
+ import { importFromJson } from '../import/jsonImporter.js';
5
4
  import { computeAutoLayout } from '../layout/autoLayout.js';
6
- export const importYamlSchema = z.object({
5
+ export const importJsonSchema = z.object({
7
6
  projectId: z.string().describe('UUID of the target project'),
8
- yaml: z.string().describe('YAML spec string (FlowSpec v1.2.0 format)'),
7
+ json: z.string().describe('JSON spec string (FlowSpec v1.2.0 format)'),
9
8
  autoLayout: z.boolean().optional().describe('Run dagre auto-layout after import (default: true)'),
10
9
  layoutDirection: z.enum(['TB', 'BT', 'LR', 'RL']).optional().describe('Layout direction (default: TB)'),
11
10
  merge: z.boolean().optional().describe('true = add to existing canvas, false = replace (default: false)'),
12
11
  });
13
- export async function handleImportYaml(args) {
14
- // Parse YAML string
12
+ export async function handleImportJson(args) {
13
+ // Parse JSON string
15
14
  let spec;
16
15
  try {
17
- spec = parseYaml(args.yaml);
16
+ spec = JSON.parse(args.json);
18
17
  }
19
18
  catch (e) {
20
19
  return {
21
- content: [{ type: 'text', text: `YAML parse error: ${e.message}` }],
20
+ content: [{ type: 'text', text: `JSON parse error: ${e.message}` }],
22
21
  isError: true,
23
22
  };
24
23
  }
25
24
  if (!spec || typeof spec !== 'object') {
26
25
  return {
27
- content: [{ type: 'text', text: 'Invalid YAML: expected an object at the top level' }],
26
+ content: [{ type: 'text', text: 'Invalid JSON: expected an object at the top level' }],
27
+ isError: true,
28
+ };
29
+ }
30
+ // Import JSON → nodes/edges/screens
31
+ // In merge mode, pass existing node IDs so edges referencing them aren't skipped
32
+ let existingNodeIds;
33
+ if (args.merge) {
34
+ const existingProject = await getProject(args.projectId);
35
+ if (existingProject) {
36
+ existingNodeIds = new Set((existingProject.canvas_state?.nodes ?? []).map((n) => n.id));
37
+ }
38
+ }
39
+ let result;
40
+ try {
41
+ result = importFromJson(spec, existingNodeIds);
42
+ }
43
+ catch (e) {
44
+ return {
45
+ content: [{ type: 'text', text: `Import error: ${e.message}` }],
28
46
  isError: true,
29
47
  };
30
48
  }
31
- // Import YAML → nodes/edges/screens
32
- const result = importFromYaml(spec);
33
49
  // Apply auto-layout if requested (default: true)
34
50
  const shouldLayout = args.autoLayout !== false;
35
51
  if (shouldLayout && result.nodes.length > 0) {
@@ -74,7 +90,7 @@ export async function handleImportYaml(args) {
74
90
  }
75
91
  const { stats } = result;
76
92
  const lines = [
77
- `Imported YAML into project **${updated.name}**`,
93
+ `Imported JSON into project **${updated.name}**`,
78
94
  '',
79
95
  `| Metric | Count |`,
80
96
  `|--------|-------|`,
@@ -86,12 +102,20 @@ export async function handleImportYaml(args) {
86
102
  `| Screens | ${result.screens.length} |`,
87
103
  `| Skipped nodes | ${stats.skippedNodes} |`,
88
104
  `| Skipped edges | ${stats.skippedEdges} |`,
89
- '',
90
- `Mode: ${args.merge ? 'merge (added to existing)' : 'replace'}`,
91
- shouldLayout ? `Layout: ${args.layoutDirection ?? 'TB'}` : 'Layout: skipped',
92
105
  ];
106
+ if (stats.skipReasons.length > 0) {
107
+ lines.push('');
108
+ lines.push('**Skipped edge details:**');
109
+ for (const reason of stats.skipReasons.slice(0, 20)) {
110
+ lines.push(`- ${reason}`);
111
+ }
112
+ if (stats.skipReasons.length > 20) {
113
+ lines.push(`- ... and ${stats.skipReasons.length - 20} more`);
114
+ }
115
+ }
116
+ lines.push('', `Mode: ${args.merge ? 'merge (added to existing)' : 'replace'}`, shouldLayout ? `Layout: ${args.layoutDirection ?? 'TB'}` : 'Layout: skipped');
93
117
  return {
94
118
  content: [{ type: 'text', text: lines.join('\n') }],
95
119
  };
96
120
  }
97
- //# sourceMappingURL=importYaml.js.map
121
+ //# sourceMappingURL=importJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importJson.js","sourceRoot":"","sources":["../../src/tools/importJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACjG,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACvG,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;CAC1G,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAsC;IAC3E,oBAAoB;IACpB,IAAI,IAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAA4B,CAAC;IAC1D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qBAAsB,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACvF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mDAAmD,EAAE,CAAC;YAC/F,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,iFAAiF;IACjF,IAAI,eAAwC,CAAC;IAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,GAAG,IAAI,GAAG,CACvB,CAAC,eAAe,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAkB,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACnF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;IAC/C,IAAI,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QAC/C,MAAM,SAAS,GAAG,iBAAiB,CACjC,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,KAAK,EACZ,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,GAAG,EAAE,EAAE,CACjD,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,GAAG;gBAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAmB,CAAC;IACxB,IAAI,KAAmB,CAAC;IACxB,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,2DAA2D;QAC3D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBAClF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;QACtC,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,uDAAuD;QACvD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;IAEzF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yCAAyC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrG,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,MAAM,KAAK,GAAG;QACZ,gCAAgC,OAAO,CAAC,IAAI,IAAI;QAChD,EAAE;QACF,oBAAoB;QACpB,oBAAoB;QACpB,mBAAmB,KAAK,CAAC,UAAU,IAAI;QACvC,kBAAkB,KAAK,CAAC,UAAU,IAAI;QACtC,kBAAkB,KAAK,CAAC,UAAU,IAAI;QACtC,cAAc,KAAK,CAAC,MAAM,IAAI;QAC9B,aAAa,KAAK,CAAC,KAAK,IAAI;QAC5B,eAAe,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI;QACxC,qBAAqB,KAAK,CAAC,YAAY,IAAI;QAC3C,qBAAqB,KAAK,CAAC,YAAY,IAAI;KAC5C,CAAC;IAEF,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CACR,EAAE,EACF,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,EAAE,EAC/D,YAAY,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAC7E,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ export declare const validateProjectSchema: z.ZodObject<{
3
+ projectId: z.ZodString;
4
+ }, "strip", z.ZodTypeAny, {
5
+ projectId: string;
6
+ }, {
7
+ projectId: string;
8
+ }>;
9
+ export declare function handleValidateProject(args: z.infer<typeof validateProjectSchema>): Promise<{
10
+ content: {
11
+ type: "text";
12
+ text: string;
13
+ }[];
14
+ isError: boolean;
15
+ } | {
16
+ content: {
17
+ type: "text";
18
+ text: string;
19
+ }[];
20
+ isError?: undefined;
21
+ }>;
@@ -0,0 +1,302 @@
1
+ import { z } from 'zod';
2
+ import { getProject } from '../db.js';
3
+ export const validateProjectSchema = z.object({
4
+ projectId: z.string().describe('UUID of the project to validate'),
5
+ });
6
+ // ─── Validation Functions ────────────────────────────────────────
7
+ function validateDataPointSources(nodes, edges) {
8
+ const issues = [];
9
+ const dataPoints = nodes.filter((n) => n.type === 'datapoint');
10
+ for (const dp of dataPoints) {
11
+ const source = dp.data?.source ?? 'captured';
12
+ const label = dp.data?.label ?? 'Untitled';
13
+ const incomingEdges = edges.filter((e) => e.target === dp.id && e.data?.edgeType !== 'contains');
14
+ const sourceNodeTypes = incomingEdges
15
+ .map((e) => {
16
+ const sourceNode = nodes.find((n) => n.id === e.source);
17
+ return sourceNode?.type ?? 'unknown';
18
+ })
19
+ .filter((t) => t !== 'unknown');
20
+ let expectedTypes = [];
21
+ switch (source) {
22
+ case 'captured':
23
+ // Captured DPs are user input origins — no incoming source edge required
24
+ expectedTypes = [];
25
+ break;
26
+ case 'retrieved':
27
+ expectedTypes = ['table', 'transform', 'component'];
28
+ break;
29
+ case 'inferred':
30
+ expectedTypes = ['transform'];
31
+ break;
32
+ }
33
+ if (incomingEdges.length === 0) {
34
+ issues.push({
35
+ violation: 'missing-source',
36
+ nodeId: dp.id,
37
+ label,
38
+ source,
39
+ expectedSourceTypes: expectedTypes,
40
+ actualSourceTypes: [],
41
+ });
42
+ continue;
43
+ }
44
+ if (incomingEdges.length > 1) {
45
+ issues.push({
46
+ violation: 'multiple-sources',
47
+ nodeId: dp.id,
48
+ label,
49
+ source,
50
+ expectedSourceTypes: expectedTypes,
51
+ actualSourceTypes: sourceNodeTypes,
52
+ });
53
+ continue;
54
+ }
55
+ const actualType = sourceNodeTypes[0];
56
+ if (!expectedTypes.includes(actualType)) {
57
+ issues.push({
58
+ violation: 'wrong-source-type',
59
+ nodeId: dp.id,
60
+ label,
61
+ source,
62
+ expectedSourceTypes: expectedTypes,
63
+ actualSourceTypes: [actualType],
64
+ });
65
+ }
66
+ }
67
+ return issues;
68
+ }
69
+ function validateTransforms(nodes, edges) {
70
+ const issues = [];
71
+ const transforms = nodes.filter((n) => n.type === 'transform');
72
+ for (const transform of transforms) {
73
+ const label = transform.data?.label ?? 'Untitled';
74
+ const transformType = transform.data?.type ?? 'formula';
75
+ const incomingEdges = edges.filter((e) => e.target === transform.id && e.data?.edgeType !== 'contains');
76
+ const outgoingEdges = edges.filter((e) => e.source === transform.id && e.data?.edgeType !== 'contains');
77
+ if (incomingEdges.length === 0) {
78
+ issues.push({
79
+ violation: 'no-inputs',
80
+ nodeId: transform.id,
81
+ label,
82
+ transformType,
83
+ });
84
+ }
85
+ if (outgoingEdges.length === 0) {
86
+ issues.push({
87
+ violation: 'no-outputs',
88
+ nodeId: transform.id,
89
+ label,
90
+ transformType,
91
+ });
92
+ }
93
+ }
94
+ return issues;
95
+ }
96
+ function validateComponentReferences(nodes) {
97
+ const issues = [];
98
+ const components = nodes.filter((n) => n.type === 'component');
99
+ const nodeIdSet = new Set(nodes.map((n) => n.id));
100
+ const nodeLabelSet = new Set(nodes.map((n) => n.data?.label).filter(Boolean));
101
+ for (const component of components) {
102
+ const label = component.data?.label ?? 'Untitled';
103
+ const captures = component.data?.captures ?? [];
104
+ const displays = component.data?.displays ?? [];
105
+ const invalidCaptures = captures.filter((ref) => !nodeIdSet.has(ref) && !nodeLabelSet.has(ref));
106
+ if (invalidCaptures.length > 0) {
107
+ issues.push({
108
+ violation: 'invalid-capture-reference',
109
+ nodeId: component.id,
110
+ label,
111
+ invalidRefs: invalidCaptures,
112
+ });
113
+ }
114
+ const invalidDisplays = displays.filter((ref) => !nodeIdSet.has(ref) && !nodeLabelSet.has(ref));
115
+ if (invalidDisplays.length > 0) {
116
+ issues.push({
117
+ violation: 'invalid-display-reference',
118
+ nodeId: component.id,
119
+ label,
120
+ invalidRefs: invalidDisplays,
121
+ });
122
+ }
123
+ }
124
+ return issues;
125
+ }
126
+ function validateTableDataPointTypes(nodes, edges) {
127
+ const issues = [];
128
+ const dataPoints = nodes.filter((n) => n.type === 'datapoint');
129
+ const tables = nodes.filter((n) => n.type === 'table');
130
+ for (const dp of dataPoints) {
131
+ if (dp.data?.source !== 'retrieved')
132
+ continue;
133
+ const tableEdges = edges.filter((e) => {
134
+ if (e.target !== dp.id)
135
+ return false;
136
+ const sourceNode = nodes.find((n) => n.id === e.source);
137
+ return sourceNode?.type === 'table';
138
+ });
139
+ for (const edge of tableEdges) {
140
+ const table = tables.find((t) => t.id === edge.source);
141
+ if (!table)
142
+ continue;
143
+ const dpLabel = (dp.data?.label ?? '').toLowerCase().trim();
144
+ const matchingColumn = (table.data?.columns ?? []).find((col) => col.name.toLowerCase().trim() === dpLabel);
145
+ if (matchingColumn && matchingColumn.type !== dp.data?.type
146
+ && dp.data?.type !== 'tbd' && matchingColumn.type !== 'tbd') {
147
+ issues.push({
148
+ violation: 'type-mismatch',
149
+ dataPointId: dp.id,
150
+ dataPointLabel: dp.data?.label ?? 'Untitled',
151
+ dataPointType: dp.data?.type ?? 'unknown',
152
+ tableId: table.id,
153
+ tableLabel: table.data?.label ?? 'Untitled',
154
+ columnName: matchingColumn.name,
155
+ columnType: matchingColumn.type,
156
+ });
157
+ }
158
+ }
159
+ }
160
+ return issues;
161
+ }
162
+ function detectCircularDependencies(nodes, edges) {
163
+ const issues = [];
164
+ const adjacency = new Map();
165
+ for (const node of nodes) {
166
+ adjacency.set(node.id, []);
167
+ }
168
+ for (const edge of edges) {
169
+ const edgeType = edge.data?.edgeType;
170
+ if (edgeType === 'derives-from' || edgeType === 'transforms') {
171
+ const targets = adjacency.get(edge.source) ?? [];
172
+ targets.push(edge.target);
173
+ adjacency.set(edge.source, targets);
174
+ }
175
+ }
176
+ const visited = new Set();
177
+ const recStack = new Set();
178
+ const cycles = [];
179
+ function dfs(nodeId, path) {
180
+ visited.add(nodeId);
181
+ recStack.add(nodeId);
182
+ path.push(nodeId);
183
+ const neighbors = adjacency.get(nodeId) ?? [];
184
+ for (const neighbor of neighbors) {
185
+ if (!visited.has(neighbor)) {
186
+ dfs(neighbor, [...path]);
187
+ }
188
+ else if (recStack.has(neighbor)) {
189
+ const cycleStart = path.indexOf(neighbor);
190
+ const cycle = path.slice(cycleStart);
191
+ cycles.push([...cycle, neighbor]);
192
+ }
193
+ }
194
+ recStack.delete(nodeId);
195
+ }
196
+ for (const node of nodes) {
197
+ if (!visited.has(node.id)) {
198
+ dfs(node.id, []);
199
+ }
200
+ }
201
+ const seenCycles = new Set();
202
+ for (const cycle of cycles) {
203
+ const normalized = [...cycle].sort().join('->');
204
+ if (seenCycles.has(normalized))
205
+ continue;
206
+ seenCycles.add(normalized);
207
+ const labels = cycle.map((id) => {
208
+ const node = nodes.find((n) => n.id === id);
209
+ return node?.data?.label ?? 'Unknown';
210
+ });
211
+ issues.push({
212
+ violation: 'circular-dependency',
213
+ cycle,
214
+ labels,
215
+ });
216
+ }
217
+ return issues;
218
+ }
219
+ // ─── Main Handler ────────────────────────────────────────────────
220
+ export async function handleValidateProject(args) {
221
+ const project = await getProject(args.projectId);
222
+ if (!project) {
223
+ return {
224
+ content: [{ type: 'text', text: `Project not found: ${args.projectId}` }],
225
+ isError: true,
226
+ };
227
+ }
228
+ const nodes = project.canvas_state?.nodes ?? [];
229
+ const edges = project.canvas_state?.edges ?? [];
230
+ // Run all validators
231
+ const dataPointSourceIssues = validateDataPointSources(nodes, edges);
232
+ const transformIssues = validateTransforms(nodes, edges);
233
+ const componentReferenceIssues = validateComponentReferences(nodes);
234
+ const tableDataPointMismatches = validateTableDataPointTypes(nodes, edges);
235
+ const circularDependencies = detectCircularDependencies(nodes, edges);
236
+ const totalIssues = dataPointSourceIssues.length +
237
+ transformIssues.length +
238
+ componentReferenceIssues.length +
239
+ tableDataPointMismatches.length +
240
+ circularDependencies.length;
241
+ // Format output
242
+ const lines = [];
243
+ lines.push(`## Data Flow Validation for ${project.name}`);
244
+ if (totalIssues === 0) {
245
+ lines.push('');
246
+ lines.push('✅ **All data flow rules passed!**');
247
+ return {
248
+ content: [{ type: 'text', text: lines.join('\n') }],
249
+ };
250
+ }
251
+ lines.push('');
252
+ lines.push(`⚠️ **${totalIssues} issue${totalIssues !== 1 ? 's' : ''} found** (all warnings)`);
253
+ // DataPoint Source Issues
254
+ if (dataPointSourceIssues.length > 0) {
255
+ lines.push('');
256
+ lines.push(`### DataPoint Source Issues (${dataPointSourceIssues.length})`);
257
+ for (const issue of dataPointSourceIssues) {
258
+ lines.push(`- **${issue.label}** (${issue.source}): ${issue.violation.replace(/-/g, ' ')}`);
259
+ lines.push(` - Expected: ${issue.expectedSourceTypes.join(', ')}`);
260
+ if (issue.actualSourceTypes.length > 0) {
261
+ lines.push(` - Actual: ${issue.actualSourceTypes.join(', ')}`);
262
+ }
263
+ }
264
+ }
265
+ // Transform Issues
266
+ if (transformIssues.length > 0) {
267
+ lines.push('');
268
+ lines.push(`### Transform Issues (${transformIssues.length})`);
269
+ for (const issue of transformIssues) {
270
+ lines.push(`- **${issue.label}** (${issue.transformType}): ${issue.violation.replace(/-/g, ' ')}`);
271
+ }
272
+ }
273
+ // Component Reference Issues
274
+ if (componentReferenceIssues.length > 0) {
275
+ lines.push('');
276
+ lines.push(`### Component Reference Issues (${componentReferenceIssues.length})`);
277
+ for (const issue of componentReferenceIssues) {
278
+ lines.push(`- **${issue.label}**: ${issue.violation.replace(/-/g, ' ')}`);
279
+ lines.push(` - Invalid IDs: ${issue.invalidRefs.join(', ')}`);
280
+ }
281
+ }
282
+ // Table/DataPoint Type Mismatches
283
+ if (tableDataPointMismatches.length > 0) {
284
+ lines.push('');
285
+ lines.push(`### Type Mismatches (${tableDataPointMismatches.length})`);
286
+ for (const issue of tableDataPointMismatches) {
287
+ lines.push(`- **${issue.dataPointLabel}** (${issue.dataPointType}) ← **${issue.tableLabel}.${issue.columnName}** (${issue.columnType})`);
288
+ }
289
+ }
290
+ // Circular Dependencies
291
+ if (circularDependencies.length > 0) {
292
+ lines.push('');
293
+ lines.push(`### Circular Dependencies (${circularDependencies.length})`);
294
+ for (const issue of circularDependencies) {
295
+ lines.push(`- Cycle: ${issue.labels.join(' → ')}`);
296
+ }
297
+ }
298
+ return {
299
+ content: [{ type: 'text', text: lines.join('\n') }],
300
+ };
301
+ }
302
+ //# sourceMappingURL=validateProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateProject.js","sourceRoot":"","sources":["../../src/tools/validateProject.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export type DataType = 'string' | 'number' | 'boolean' | 'object' | 'array';
2
- export type SourceType = 'captured' | 'inferred';
2
+ export type SourceType = 'captured' | 'retrieved' | 'inferred';
3
3
  export type LogicType = 'formula' | 'validation' | 'workflow';
4
4
  export type TableSourceType = 'database' | 'api' | 'file' | 'manual';
5
5
  export type EdgeType = 'flows-to' | 'derives-from' | 'transforms' | 'validates' | 'contains';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowspec-mcp",
3
- "version": "4.2.2",
3
+ "version": "5.1.0",
4
4
  "type": "module",
5
5
  "description": "MCP server for FlowSpec — exposes project specs to Claude Code",
6
6
  "bin": {
@@ -29,13 +29,13 @@
29
29
  "flowspec",
30
30
  "claude",
31
31
  "model-context-protocol",
32
- "data-architecture"
32
+ "data-architecture",
33
+ "json"
33
34
  ],
34
35
  "dependencies": {
35
36
  "@dagrejs/dagre": "^1.1.4",
36
37
  "@modelcontextprotocol/sdk": "1.12.1",
37
38
  "@neondatabase/serverless": "^1.0.2",
38
- "yaml": "^2.8.2",
39
39
  "zod": "^3.24.4"
40
40
  },
41
41
  "devDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"yamlExporter.js","sourceRoot":"","sources":["../../src/export/yamlExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAgGjC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,KAAmB,EACnB,cAAsB,kBAAkB,EACxC,UAAoB,EAAE;IAEtB,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAEvF,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAErE,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAE5E,mDAAmD;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2C,CAAC;IACxE,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,KAAK,GAAI,CAAC,CAAC,IAA2B,CAAC,KAAK,IAAI,UAAU,CAAC;QACjE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,IAAI,GAAe;QACvB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE;YACR,WAAW;YACX,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,SAAS,EAAE,eAAe,CAAC,MAAM;YACjC,SAAS,EAAE,KAAK,CAAC,MAAM;SACxB;QACD,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAgC,CAAC;YACnD,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;aAC1C,CAAC;QACJ,CAAC,CAAC;QACF,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAgC,CAAC;YACnD,MAAM,MAAM,GAAoB;gBAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;YACF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC1C,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAgC,CAAC;YACnD,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC;QACJ,CAAC,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,OAAQ,CAAC,CAAC,IAAI,EAAE,QAAmB,KAAK,UAAU,CAAC;QACrD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACd,MAAM,MAAM,GAAmB;gBAC7B,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,EAAE,EAAE,IAAI,CAAC,MAAM;gBACf,QAAQ,EAAG,IAAI,CAAC,IAAI,EAAE,QAAqB,IAAI,UAAU;aAC1D,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAe,CAAC;YAC3C,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;KACH,CAAC;IAEF,0CAA0C;IAC1C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAA4B,CAAC;YAC/C,MAAM,MAAM,GAAgB;gBAC1B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC3E,CAAC;YACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClC,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,aAAa,EAAE,EAAE,CAAC,aAAa;YAC/B,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,MAAM,MAAM,GAAuB;oBACjC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE;wBACR,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;wBACrC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;qBACtC;oBACD,IAAI,EAAE;wBACJ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE;wBACzC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE;qBAC5C;oBACD,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACjC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACnC,OAAO;4BACL,MAAM,EAAE,GAAG;4BACX,SAAS,EAAE,IAAI,EAAE,KAAK,IAAI,iBAAiB;4BAC3C,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS;yBAClC,CAAC;oBACJ,CAAC,CAAC;iBACH,CAAC;gBACF,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;oBACtB,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;gBAC7C,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;SACH,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,EAAE;QACrB,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAwB,EACxB,UAAwB,EACxB,KAAmB;IAEnB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkE,CAAC;IAEtF,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvE,IAAI,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvE,IAAI,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"yamlImporter.js","sourceRoot":"","sources":["../../src/import/yamlImporter.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"importYaml.js","sourceRoot":"","sources":["../../src/tools/importYaml.ts"],"names":[],"mappings":"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"}