flowspec-mcp 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +4 -159
  2. package/dist/db.d.ts +0 -26
  3. package/dist/db.js +396 -318
  4. package/dist/db.js.map +1 -1
  5. package/dist/index.js +0 -0
  6. package/dist/server.js +4 -23
  7. package/dist/server.js.map +1 -1
  8. package/dist/tools/createEdge.d.ts +4 -4
  9. package/dist/tools/createNode.d.ts +2 -2
  10. package/dist/tools/deleteEdge.js +4 -20
  11. package/dist/tools/deleteEdge.js.map +1 -1
  12. package/dist/tools/deleteNode.js +4 -20
  13. package/dist/tools/deleteNode.js.map +1 -1
  14. package/dist/tools/updateEdge.d.ts +2 -2
  15. package/dist/tools/updateEdge.js +3 -19
  16. package/dist/tools/updateEdge.js.map +1 -1
  17. package/dist/tools/updateNode.d.ts +2 -2
  18. package/dist/tools/updateNode.js +5 -21
  19. package/dist/tools/updateNode.js.map +1 -1
  20. package/dist/tools/updateProject.d.ts +2 -2
  21. package/dist/types.d.ts +0 -12
  22. package/package.json +2 -2
  23. package/dist/analysis/analysisUtils.d.ts +0 -36
  24. package/dist/analysis/analysisUtils.js +0 -284
  25. package/dist/analysis/analysisUtils.js.map +0 -1
  26. package/dist/export/jsonExporter.d.ts +0 -17
  27. package/dist/export/jsonExporter.js +0 -176
  28. package/dist/export/jsonExporter.js.map +0 -1
  29. package/dist/layout/semanticLayout.d.ts +0 -24
  30. package/dist/layout/semanticLayout.js +0 -233
  31. package/dist/layout/semanticLayout.js.map +0 -1
  32. package/dist/resources/selection.d.ts +0 -5
  33. package/dist/resources/selection.js +0 -88
  34. package/dist/resources/selection.js.map +0 -1
  35. package/dist/tools/captureScreen.d.ts +0 -48
  36. package/dist/tools/captureScreen.js +0 -135
  37. package/dist/tools/captureScreen.js.map +0 -1
  38. package/dist/tools/createSubview.d.ts +0 -50
  39. package/dist/tools/createSubview.js +0 -29
  40. package/dist/tools/createSubview.js.map +0 -1
  41. package/dist/tools/deleteSubview.d.ts +0 -24
  42. package/dist/tools/deleteSubview.js +0 -19
  43. package/dist/tools/deleteSubview.js.map +0 -1
  44. package/dist/tools/generateSpec.d.ts +0 -26
  45. package/dist/tools/generateSpec.js +0 -336
  46. package/dist/tools/generateSpec.js.map +0 -1
  47. package/dist/tools/getJson.d.ts +0 -21
  48. package/dist/tools/getJson.js +0 -24
  49. package/dist/tools/getJson.js.map +0 -1
  50. package/dist/tools/healthCheck.d.ts +0 -8
  51. package/dist/tools/healthCheck.js +0 -16
  52. package/dist/tools/healthCheck.js.map +0 -1
  53. package/dist/tools/ingestCodebase.d.ts +0 -27
  54. package/dist/tools/ingestCodebase.js +0 -516
  55. package/dist/tools/ingestCodebase.js.map +0 -1
  56. package/dist/tools/listSubviews.d.ts +0 -21
  57. package/dist/tools/listSubviews.js +0 -34
  58. package/dist/tools/listSubviews.js.map +0 -1
  59. package/dist/tools/smartLayout.d.ts +0 -30
  60. package/dist/tools/smartLayout.js +0 -74
  61. package/dist/tools/smartLayout.js.map +0 -1
  62. package/dist/tools/updateSubview.d.ts +0 -53
  63. package/dist/tools/updateSubview.js +0 -33
  64. package/dist/tools/updateSubview.js.map +0 -1
  65. package/dist/utils/selectionHelper.d.ts +0 -61
  66. package/dist/utils/selectionHelper.js +0 -111
  67. package/dist/utils/selectionHelper.js.map +0 -1
@@ -1,19 +0,0 @@
1
- import { z } from 'zod';
2
- import { deleteSubviewViaApi } from '../db.js';
3
- export const deleteSubviewSchema = z.object({
4
- projectId: z.string().describe('UUID of the project'),
5
- subviewId: z.string().describe('UUID of the subview to delete'),
6
- });
7
- export async function handleDeleteSubview(args) {
8
- const ok = await deleteSubviewViaApi(args.projectId, args.subviewId);
9
- if (!ok) {
10
- return {
11
- content: [{ type: 'text', text: `Subview or project not found: ${args.subviewId}` }],
12
- isError: true,
13
- };
14
- }
15
- return {
16
- content: [{ type: 'text', text: `Deleted subview ${args.subviewId}` }],
17
- };
18
- }
19
- //# sourceMappingURL=deleteSubview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteSubview.js","sourceRoot":"","sources":["../../src/tools/deleteSubview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CAChE,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAyC;IACjF,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAErE,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iCAAiC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAC7F,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC"}
@@ -1,26 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const generateSpecSchema: z.ZodObject<{
3
- projectId: z.ZodString;
4
- format: z.ZodDefault<z.ZodEnum<["markdown", "json"]>>;
5
- sections: z.ZodOptional<z.ZodArray<z.ZodEnum<["db_schema", "api_contracts", "component_tree", "validation_rules", "all"]>, "many">>;
6
- }, "strip", z.ZodTypeAny, {
7
- projectId: string;
8
- format: "markdown" | "json";
9
- sections?: ("db_schema" | "api_contracts" | "component_tree" | "validation_rules" | "all")[] | undefined;
10
- }, {
11
- projectId: string;
12
- format?: "markdown" | "json" | undefined;
13
- sections?: ("db_schema" | "api_contracts" | "component_tree" | "validation_rules" | "all")[] | undefined;
14
- }>;
15
- export declare function handleGenerateSpec(args: z.infer<typeof generateSpecSchema>): Promise<{
16
- content: {
17
- type: "text";
18
- text: string;
19
- }[];
20
- isError: boolean;
21
- } | {
22
- content: {
23
- type: "text";
24
- text: string;
25
- }[];
26
- }>;
@@ -1,336 +0,0 @@
1
- import { z } from 'zod';
2
- import { getProject } from '../db.js';
3
- import { handleGetYaml } from './getYaml.js';
4
- import YAML from 'yaml';
5
- export const generateSpecSchema = z.object({
6
- projectId: z.string().describe('UUID of the project to generate spec for'),
7
- format: z.enum(['markdown', 'json']).default('markdown').describe('Output format'),
8
- sections: z
9
- .array(z.enum(['db_schema', 'api_contracts', 'component_tree', 'validation_rules', 'all']))
10
- .optional()
11
- .describe('Sections to include (default: all)')
12
- });
13
- export async function handleGenerateSpec(args) {
14
- const project = await getProject(args.projectId);
15
- if (!project) {
16
- return {
17
- content: [{ type: 'text', text: `Project not found: ${args.projectId}` }],
18
- isError: true
19
- };
20
- }
21
- // Get YAML via existing tool
22
- const yamlResult = await handleGetYaml({ projectId: args.projectId });
23
- if (yamlResult.isError) {
24
- return yamlResult;
25
- }
26
- const yamlContent = yamlResult.content[0].text;
27
- const parsed = YAML.parse(yamlContent);
28
- // Determine which sections to include
29
- const sections = args.sections ?? ['all'];
30
- const includeAll = sections.includes('all');
31
- // Generate spec
32
- const spec = args.format === 'markdown'
33
- ? generateMarkdownSpec(project.name, parsed, {
34
- db_schema: includeAll || sections.includes('db_schema'),
35
- api_contracts: includeAll || sections.includes('api_contracts'),
36
- component_tree: includeAll || sections.includes('component_tree'),
37
- validation_rules: includeAll || sections.includes('validation_rules')
38
- })
39
- : generateJsonSpec(project.name, parsed);
40
- return {
41
- content: [{ type: 'text', text: spec }]
42
- };
43
- }
44
- // ─── Markdown Spec Generation ───────────────────────────────────
45
- function generateMarkdownSpec(projectName, yaml, sections) {
46
- const lines = [];
47
- // Header
48
- lines.push(`# ${projectName} - Technical Specification`);
49
- lines.push(``);
50
- lines.push(`**Generated:** ${new Date().toISOString().split('T')[0]}`);
51
- lines.push(`**FlowSpec Version:** ${yaml.version || '1.2.0'}`);
52
- lines.push(``);
53
- lines.push(`---`);
54
- lines.push(``);
55
- // Overview
56
- const dataPoints = yaml.dataPoints || [];
57
- const components = yaml.components || [];
58
- const transforms = yaml.transforms || [];
59
- const tables = yaml.tables || [];
60
- const screens = yaml.screens || [];
61
- lines.push(`## Overview`);
62
- lines.push(``);
63
- lines.push(`This specification describes the data architecture for **${projectName}**.`);
64
- lines.push(``);
65
- lines.push(`- **DataPoints:** ${dataPoints.length} data elements`);
66
- lines.push(`- **Components:** ${components.length} UI components`);
67
- lines.push(`- **Transforms:** ${transforms.length} business logic functions`);
68
- lines.push(`- **Tables:** ${tables.length} database tables/APIs`);
69
- lines.push(`- **Screens:** ${screens.length} wireframe screens`);
70
- lines.push(``);
71
- lines.push(`---`);
72
- lines.push(``);
73
- // DataPoints
74
- lines.push(`## DataPoints`);
75
- lines.push(``);
76
- if (dataPoints.length === 0) {
77
- lines.push(`*No data points defined.*`);
78
- lines.push(``);
79
- }
80
- else {
81
- lines.push(`| Label | Type | Source | Constraints | Source Definition |`);
82
- lines.push(`|-------|------|--------|-------------|-------------------|`);
83
- for (const dp of dataPoints) {
84
- const label = dp.label || dp.id;
85
- const type = dp.type || 'string';
86
- const source = dp.source || 'inferred';
87
- const constraints = dp.constraints && dp.constraints.length > 0 ? dp.constraints.join(', ') : '-';
88
- const sourceDef = (dp.sourceDefinition || '').replace(/\|/g, '\\|');
89
- lines.push(`| ${label} | ${type} | ${source} | ${constraints} | ${sourceDef} |`);
90
- }
91
- lines.push(``);
92
- // Group by source
93
- const captured = dataPoints.filter((dp) => dp.source === 'captured');
94
- const inferred = dataPoints.filter((dp) => dp.source === 'inferred');
95
- lines.push(`**Captured DataPoints (${captured.length}):** User inputs, form fields`);
96
- lines.push(`**Inferred DataPoints (${inferred.length}):** Computed values, API responses, database queries`);
97
- lines.push(``);
98
- }
99
- lines.push(`---`);
100
- lines.push(``);
101
- // Components
102
- lines.push(`## Components`);
103
- lines.push(``);
104
- if (components.length === 0) {
105
- lines.push(`*No components defined.*`);
106
- lines.push(``);
107
- }
108
- else {
109
- lines.push(`| Label | Displays | Captures | Wireframe |`);
110
- lines.push(`|-------|----------|----------|-----------|`);
111
- for (const comp of components) {
112
- const label = comp.label || comp.id;
113
- const displays = comp.displays?.join(', ') || '-';
114
- const captures = comp.captures?.join(', ') || '-';
115
- const wireframe = comp.wireframeRef || '-';
116
- lines.push(`| ${label} | ${displays} | ${captures} | ${wireframe} |`);
117
- }
118
- lines.push(``);
119
- }
120
- lines.push(`---`);
121
- lines.push(``);
122
- // Transforms
123
- lines.push(`## Transforms`);
124
- lines.push(``);
125
- if (transforms.length === 0) {
126
- lines.push(`*No transforms defined.*`);
127
- lines.push(``);
128
- }
129
- else {
130
- lines.push(`| Label | Type | Inputs | Outputs | Description |`);
131
- lines.push(`|-------|------|--------|---------|-------------|`);
132
- for (const tf of transforms) {
133
- const label = tf.label || tf.id;
134
- const type = tf.type || 'formula';
135
- const inputs = tf.inputs?.join(', ') || '-';
136
- const outputs = tf.outputs?.join(', ') || '-';
137
- const description = (tf.description || '').replace(/\|/g, '\\|');
138
- lines.push(`| ${label} | ${type} | ${inputs} | ${outputs} | ${description} |`);
139
- }
140
- lines.push(``);
141
- // Group by type
142
- const formulas = transforms.filter((tf) => tf.type === 'formula');
143
- const validations = transforms.filter((tf) => tf.type === 'validation');
144
- const workflows = transforms.filter((tf) => tf.type === 'workflow');
145
- lines.push(`**Formula (${formulas.length}):** Calculations, aggregations`);
146
- lines.push(`**Validation (${validations.length}):** Data checking, constraint enforcement`);
147
- lines.push(`**Workflow (${workflows.length}):** Multi-step processes, integrations`);
148
- lines.push(``);
149
- }
150
- lines.push(`---`);
151
- lines.push(``);
152
- // Database Schema (if requested)
153
- if (sections.db_schema && tables.length > 0) {
154
- lines.push(`## Database Schema`);
155
- lines.push(``);
156
- for (const table of tables) {
157
- const label = table.label || table.id;
158
- const sourceType = table.sourceType || 'database';
159
- const endpoint = table.endpoint || '-';
160
- lines.push(`### Table: \`${label}\``);
161
- lines.push(``);
162
- lines.push(`**Source:** ${sourceType} (${endpoint})`);
163
- lines.push(``);
164
- if (table.columns && table.columns.length > 0) {
165
- lines.push(`| Column | Type |`);
166
- lines.push(`|--------|------|`);
167
- for (const col of table.columns) {
168
- lines.push(`| ${col.name} | ${col.type} |`);
169
- }
170
- lines.push(``);
171
- }
172
- }
173
- lines.push(`---`);
174
- lines.push(``);
175
- }
176
- // API Contracts (if requested)
177
- if (sections.api_contracts) {
178
- lines.push(`## API Contracts`);
179
- lines.push(``);
180
- // Infer API endpoints from inferred DataPoints
181
- const apiDataPoints = dataPoints.filter((dp) => dp.source === 'inferred' && dp.sourceDefinition && dp.sourceDefinition.includes('API'));
182
- if (apiDataPoints.length === 0) {
183
- lines.push(`*No API endpoints identified.*`);
184
- lines.push(``);
185
- }
186
- else {
187
- lines.push(`Suggested API endpoints based on inferred DataPoints:`);
188
- lines.push(``);
189
- for (const dp of apiDataPoints) {
190
- const label = dp.label || dp.id;
191
- const method = dp.sourceDefinition.includes('POST') ? 'POST' : 'GET';
192
- const endpoint = `/api/${label.toLowerCase().replace(/\s+/g, '-')}`;
193
- lines.push(`### ${method} ${endpoint}`);
194
- lines.push(``);
195
- lines.push(`**Returns:** ${label} (${dp.type})`);
196
- lines.push(`**Source:** ${dp.sourceDefinition}`);
197
- lines.push(``);
198
- }
199
- }
200
- lines.push(`---`);
201
- lines.push(``);
202
- }
203
- // Component Tree (if requested)
204
- if (sections.component_tree && components.length > 0) {
205
- lines.push(`## Component Hierarchy`);
206
- lines.push(``);
207
- // Simple tree based on wireframe references
208
- const screenGroups = new Map();
209
- for (const comp of components) {
210
- const screen = comp.wireframeRef || 'No Screen';
211
- const group = screenGroups.get(screen) || [];
212
- group.push(comp);
213
- screenGroups.set(screen, group);
214
- }
215
- for (const [screen, comps] of screenGroups) {
216
- lines.push(`### ${screen}`);
217
- lines.push(``);
218
- for (const comp of comps) {
219
- const label = comp.label || comp.id;
220
- lines.push(`- **${label}**`);
221
- if (comp.displays && comp.displays.length > 0) {
222
- lines.push(` - Displays: ${comp.displays.join(', ')}`);
223
- }
224
- if (comp.captures && comp.captures.length > 0) {
225
- lines.push(` - Captures: ${comp.captures.join(', ')}`);
226
- }
227
- }
228
- lines.push(``);
229
- }
230
- lines.push(`---`);
231
- lines.push(``);
232
- }
233
- // Validation Rules (if requested)
234
- if (sections.validation_rules) {
235
- lines.push(`## Validation Rules`);
236
- lines.push(``);
237
- // Extract constraints from DataPoints
238
- const constrainedDataPoints = dataPoints.filter((dp) => dp.constraints && dp.constraints.length > 0);
239
- if (constrainedDataPoints.length === 0) {
240
- lines.push(`*No validation rules defined.*`);
241
- lines.push(``);
242
- }
243
- else {
244
- lines.push(`| DataPoint | Constraints |`);
245
- lines.push(`|-----------|-------------|`);
246
- for (const dp of constrainedDataPoints) {
247
- const label = dp.label || dp.id;
248
- const constraints = dp.constraints.join(', ');
249
- lines.push(`| ${label} | ${constraints} |`);
250
- }
251
- lines.push(``);
252
- }
253
- // Extract validation transforms
254
- const validationTransforms = transforms.filter((tf) => tf.type === 'validation');
255
- if (validationTransforms.length > 0) {
256
- lines.push(`### Validation Transforms`);
257
- lines.push(``);
258
- for (const tf of validationTransforms) {
259
- const label = tf.label || tf.id;
260
- const inputs = tf.inputs?.join(', ') || '-';
261
- const description = tf.description || 'No description';
262
- lines.push(`- **${label}**`);
263
- lines.push(` - Validates: ${inputs}`);
264
- lines.push(` - Logic: ${description}`);
265
- lines.push(``);
266
- }
267
- }
268
- lines.push(`---`);
269
- lines.push(``);
270
- }
271
- // Implementation Recommendations
272
- lines.push(`## Implementation Recommendations`);
273
- lines.push(``);
274
- lines.push(`1. **Database Schema**`);
275
- lines.push(` - Create tables: ${tables.map((t) => t.label).join(', ')}`);
276
- lines.push(` - Set up migrations and seed data`);
277
- lines.push(``);
278
- lines.push(`2. **API Contracts**`);
279
- lines.push(` - Implement endpoints for inferred DataPoints (${dataPoints.filter((dp) => dp.source === 'inferred').length} endpoints)`);
280
- lines.push(` - Add authentication and authorization`);
281
- lines.push(``);
282
- lines.push(`3. **Component Structure**`);
283
- lines.push(` - Build ${components.length} UI components`);
284
- lines.push(` - Connect data flows (displays/captures)`);
285
- lines.push(``);
286
- lines.push(`4. **Validation Rules**`);
287
- lines.push(` - Apply constraints at both client and server`);
288
- lines.push(` - Implement ${transforms.filter((tf) => tf.type === 'validation').length} validation transforms`);
289
- lines.push(``);
290
- lines.push(`5. **Business Logic**`);
291
- lines.push(` - Implement ${transforms.length} transforms`);
292
- lines.push(` - Test all data flows and edge cases`);
293
- lines.push(``);
294
- lines.push(`---`);
295
- lines.push(``);
296
- // Quality Metrics (from project analysis)
297
- const nodes = project.canvas_state?.nodes || [];
298
- const edges = project.canvas_state?.edges || [];
299
- lines.push(`## Quality Metrics`);
300
- lines.push(``);
301
- lines.push(`- **Total nodes:** ${nodes.length}`);
302
- lines.push(`- **Total edges:** ${edges.length}`);
303
- lines.push(`- **Screens:** ${screens.length}`);
304
- lines.push(`- **Captured DataPoints:** ${dataPoints.filter((dp) => dp.source === 'captured').length}`);
305
- lines.push(`- **Inferred DataPoints:** ${dataPoints.filter((dp) => dp.source === 'inferred').length}`);
306
- lines.push(``);
307
- lines.push(`✅ **Ready for implementation in Claude Code via \`/spec\` skill**`);
308
- lines.push(``);
309
- // Footer
310
- lines.push(`---`);
311
- lines.push(``);
312
- lines.push(`*Generated by FlowSpec MCP Server v3.0.0*`);
313
- return lines.join('\n');
314
- }
315
- // ─── JSON Spec Generation ───────────────────────────────────────
316
- function generateJsonSpec(projectName, yaml) {
317
- const spec = {
318
- projectName: projectName,
319
- generated: new Date().toISOString(),
320
- version: yaml.version || '1.2.0',
321
- summary: {
322
- dataPoints: yaml.dataPoints?.length || 0,
323
- components: yaml.components?.length || 0,
324
- transforms: yaml.transforms?.length || 0,
325
- tables: yaml.tables?.length || 0,
326
- screens: yaml.screens?.length || 0
327
- },
328
- dataPoints: yaml.dataPoints || [],
329
- components: yaml.components || [],
330
- transforms: yaml.transforms || [],
331
- tables: yaml.tables || [],
332
- screens: yaml.screens || []
333
- };
334
- return JSON.stringify(spec, null, 2);
335
- }
336
- //# sourceMappingURL=generateSpec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateSpec.js","sourceRoot":"","sources":["../../src/tools/generateSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC1E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;IAClF,QAAQ,EAAE,CAAC;SACT,KAAK,CACL,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC,CACnF;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAwC;IAChF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;YACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAClF,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEvC,sCAAsC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,gBAAgB;IAChB,MAAM,IAAI,GACT,IAAI,CAAC,MAAM,KAAK,UAAU;QACzB,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;YAC3C,SAAS,EAAE,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YACvD,aAAa,EAAE,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC/D,cAAc,EAAE,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACjE,gBAAgB,EAAE,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SACpE,CAAC;QACJ,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE3C,OAAO;QACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KAChD,CAAC;AACH,CAAC;AAED,mEAAmE;AAEnE,SAAS,oBAAoB,CAC5B,WAAmB,EACnB,IAAS,EACT,QAAiC;IAEjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,4BAA4B,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,WAAW;IACX,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAEnC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4DAA4D,WAAW,KAAK,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,MAAM,2BAA2B,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,aAAa;IACb,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAE1E,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,QAAQ,CAAC;YACjC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC;YACvC,MAAM,WAAW,GAChB,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/E,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEpE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,MAAM,MAAM,WAAW,MAAM,SAAS,IAAI,CAAC,CAAC;QAClF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,kBAAkB;QAClB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAE1E,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,MAAM,+BAA+B,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,MAAM,uDAAuD,CAAC,CAAC;QAC7G,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,aAAa;IACb,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAE1D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC;YAE3C,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,QAAQ,MAAM,QAAQ,MAAM,SAAS,IAAI,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,aAAa;IACb,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAEhE,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,SAAS,CAAC;YAClC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAC5C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAC9C,MAAM,WAAW,GAAG,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEjE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,MAAM,MAAM,OAAO,MAAM,WAAW,IAAI,CAAC,CAAC;QAChF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,gBAAgB;QAChB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAEzE,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,MAAM,iCAAiC,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,MAAM,4CAA4C,CAAC,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,MAAM,yCAAyC,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,iCAAiC;IACjC,IAAI,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC;YAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC;YAEvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,KAAK,QAAQ,GAAG,CAAC,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAEhC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACjC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;QACF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,+BAA+B;IAC/B,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,+CAA+C;QAC/C,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CACtC,CAAC,EAAO,EAAE,EAAE,CACX,EAAE,CAAC,MAAM,KAAK,UAAU,IAAI,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CACvF,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBACrE,MAAM,QAAQ,GAAG,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;gBAEpE,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;QACF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,gCAAgC;IAChC,IAAI,QAAQ,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,4CAA4C;QAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiB,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC;YAChD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBAE7B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/C,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzD,CAAC;gBAED,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/C,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzD,CAAC;YACF,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,kCAAkC;IAClC,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,sCAAsC;QACtC,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAC9C,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CACxD,CAAC;QAEF,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAE1C,KAAK,MAAM,EAAE,IAAI,qBAAqB,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,WAAW,IAAI,CAAC,CAAC;YAC7C,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;QAED,gCAAgC;QAChC,MAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAEtF,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,KAAK,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;gBAC5C,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,IAAI,gBAAgB,CAAC;gBAEvD,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;QACF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CACT,qDAAqD,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,aAAa,CACjI,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CACT,kBAAkB,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,MAAM,wBAAwB,CACzG,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,0CAA0C;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IAEhD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,8BAA8B,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,KAAK,CAAC,IAAI,CAAC,8BAA8B,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAExD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,mEAAmE;AAEnE,SAAS,gBAAgB,CAAC,WAAmB,EAAE,IAAS;IACvD,MAAM,IAAI,GAAG;QACZ,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;QAChC,OAAO,EAAE;YACR,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;YACxC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;YACxC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;YAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;SAClC;QACD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;QACjC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;QACjC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;QACjC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;KAC3B,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
@@ -1,21 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const getJsonSchema: z.ZodObject<{
3
- projectId: z.ZodString;
4
- }, "strip", z.ZodTypeAny, {
5
- projectId: string;
6
- }, {
7
- projectId: string;
8
- }>;
9
- export declare function handleGetJson(args: z.infer<typeof getJsonSchema>): 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
- }>;
@@ -1,24 +0,0 @@
1
- import { z } from 'zod';
2
- import { getProject } from '../db.js';
3
- import { exportToJson } from '../export/jsonExporter.js';
4
- export const getJsonSchema = z.object({
5
- projectId: z.string().describe('UUID of the FlowSpec project'),
6
- });
7
- export async function handleGetJson(args) {
8
- const project = await getProject(args.projectId);
9
- if (!project) {
10
- return {
11
- content: [{ type: 'text', text: `Project not found: ${args.projectId}` }],
12
- isError: true,
13
- };
14
- }
15
- const nodes = project.canvas_state?.nodes ?? [];
16
- const edges = project.canvas_state?.edges ?? [];
17
- const screens = project.canvas_state?.screens ?? [];
18
- const subviews = project.canvas_state?.subviews ?? [];
19
- const json = exportToJson(nodes, edges, project.name, screens, subviews);
20
- return {
21
- content: [{ type: 'text', text: json }],
22
- };
23
- }
24
- //# sourceMappingURL=getJson.js.map
@@ -1 +0,0 @@
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;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAC;IAEtD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEzE,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const healthCheckSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
3
- export declare function handleHealthCheck(): Promise<{
4
- content: {
5
- type: "text";
6
- text: string;
7
- }[];
8
- }>;
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- import { checkHealth } from '../health.js';
3
- import { MODE } from '../config.js';
4
- export const healthCheckSchema = z.object({});
5
- export async function handleHealthCheck() {
6
- const result = await checkHealth(MODE);
7
- return {
8
- content: [
9
- {
10
- type: 'text',
11
- text: JSON.stringify(result, null, 2),
12
- },
13
- ],
14
- };
15
- }
16
- //# sourceMappingURL=healthCheck.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"healthCheck.js","sourceRoot":"","sources":["../../src/tools/healthCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,27 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const ingestCodebaseSchema: z.ZodObject<{
3
- projectPath: z.ZodString;
4
- framework: z.ZodDefault<z.ZodEnum<["svelte", "react", "auto"]>>;
5
- scope: z.ZodOptional<z.ZodString>;
6
- }, "strip", z.ZodTypeAny, {
7
- projectPath: string;
8
- framework: "auto" | "svelte" | "react";
9
- scope?: string | undefined;
10
- }, {
11
- projectPath: string;
12
- framework?: "auto" | "svelte" | "react" | undefined;
13
- scope?: string | undefined;
14
- }>;
15
- export declare function handleIngestCodebase(args: z.infer<typeof ingestCodebaseSchema>): Promise<{
16
- content: {
17
- type: "text";
18
- text: string;
19
- }[];
20
- isError: boolean;
21
- } | {
22
- content: {
23
- type: "text";
24
- text: string;
25
- }[];
26
- isError?: undefined;
27
- }>;