@makitt.io/mds-mcp-server 0.2.1 → 0.2.3

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,390 @@
1
+ const VALID_COMPONENT_KINDS = [
2
+ 'component',
3
+ 'compoundPart',
4
+ 'hook',
5
+ 'helper',
6
+ 'type',
7
+ 'store',
8
+ 'internal',
9
+ ];
10
+ const VALID_COMPONENT_STATUSES = ['implemented', 'planned', 'deprecated', 'internal'];
11
+ function isRecord(value) {
12
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
13
+ }
14
+ function schemaOf(value) {
15
+ return isRecord(value) ? value : {};
16
+ }
17
+ function typeOf(value) {
18
+ if (Array.isArray(value))
19
+ return 'array';
20
+ if (value === null)
21
+ return 'null';
22
+ return typeof value;
23
+ }
24
+ function isExpectedType(value, expected) {
25
+ if (expected === 'number')
26
+ return typeof value === 'number' && Number.isFinite(value);
27
+ if (expected === 'integer')
28
+ return Number.isInteger(value);
29
+ if (expected === 'object')
30
+ return isRecord(value);
31
+ if (expected === 'array')
32
+ return Array.isArray(value);
33
+ return typeof value === expected;
34
+ }
35
+ function formatEnum(values) {
36
+ return values.map((value) => JSON.stringify(value)).join(', ');
37
+ }
38
+ function validateArgumentType(key, value, propertySchema) {
39
+ if (!propertySchema.type || isExpectedType(value, propertySchema.type))
40
+ return [];
41
+ return [`argument "${key}" must be ${propertySchema.type}, received ${typeOf(value)}`];
42
+ }
43
+ function validateStringLength(key, value, propertySchema) {
44
+ if (typeof value !== 'string' || typeof propertySchema.minLength !== 'number')
45
+ return [];
46
+ if (value.trim().length >= propertySchema.minLength)
47
+ return [];
48
+ return [`argument "${key}" must be a non-empty string`];
49
+ }
50
+ function validateNumberRange(key, value, propertySchema) {
51
+ if (typeof value !== 'number')
52
+ return [];
53
+ const errors = [];
54
+ if (typeof propertySchema.minimum === 'number' && value < propertySchema.minimum) {
55
+ errors.push(`argument "${key}" must be >= ${propertySchema.minimum}`);
56
+ }
57
+ if (typeof propertySchema.maximum === 'number' && value > propertySchema.maximum) {
58
+ errors.push(`argument "${key}" must be <= ${propertySchema.maximum}`);
59
+ }
60
+ return errors;
61
+ }
62
+ function validateEnumValue(key, value, propertySchema) {
63
+ if (!propertySchema.enum)
64
+ return [];
65
+ if (propertySchema.enum.some((allowedValue) => Object.is(allowedValue, value)))
66
+ return [];
67
+ return [`argument "${key}" must be one of: ${formatEnum(propertySchema.enum)}`];
68
+ }
69
+ function validateRequiredArgs(required, value) {
70
+ return Array.from(required)
71
+ .filter((key) => !(key in value))
72
+ .map((key) => `missing required argument: ${key}`);
73
+ }
74
+ function validateArgumentValue(key, value, propertySchema) {
75
+ const typeErrors = validateArgumentType(key, value, propertySchema);
76
+ if (typeErrors.length > 0)
77
+ return typeErrors;
78
+ return [
79
+ ...validateStringLength(key, value, propertySchema),
80
+ ...validateNumberRange(key, value, propertySchema),
81
+ ...validateEnumValue(key, value, propertySchema),
82
+ ];
83
+ }
84
+ function validateProvidedArg(key, value, properties) {
85
+ const propertySchema = properties[key];
86
+ if (!propertySchema)
87
+ return [`unknown argument: ${key}`];
88
+ return validateArgumentValue(key, value, propertySchema);
89
+ }
90
+ export function validateToolArguments(definition, args) {
91
+ const inputSchema = schemaOf(definition.inputSchema);
92
+ const properties = inputSchema.properties ?? {};
93
+ const required = new Set(inputSchema.required ?? []);
94
+ const value = args ?? {};
95
+ const errors = [];
96
+ if (!isRecord(value)) {
97
+ return [`arguments must be an object, received ${typeOf(value)}`];
98
+ }
99
+ errors.push(...validateRequiredArgs(required, value));
100
+ for (const [key, argumentValue] of Object.entries(value)) {
101
+ errors.push(...validateProvidedArg(key, argumentValue, properties));
102
+ }
103
+ return errors;
104
+ }
105
+ function hasNonEmptyString(record, key) {
106
+ return typeof record[key] === 'string' && record[key].trim().length > 0;
107
+ }
108
+ function hasOptionalString(record, key) {
109
+ return !(key in record) || typeof record[key] === 'string';
110
+ }
111
+ function hasOptionalBoolean(record, key) {
112
+ return !(key in record) || typeof record[key] === 'boolean';
113
+ }
114
+ function isCatalogPrimitive(value) {
115
+ return (typeof value === 'string' ||
116
+ typeof value === 'number' ||
117
+ typeof value === 'boolean' ||
118
+ value === null);
119
+ }
120
+ function isStringArray(value) {
121
+ return Array.isArray(value) && value.every((item) => typeof item === 'string');
122
+ }
123
+ function validateStringArray({ key, nonEmptyItems, optional, owner, record, }) {
124
+ const value = record[key];
125
+ if (optional && !(key in record))
126
+ return [];
127
+ if (!Array.isArray(value))
128
+ return [`${owner}.${key} must be a string array`];
129
+ if (!value.every((item) => typeof item === 'string')) {
130
+ return [`${owner}.${key} must be a string array`];
131
+ }
132
+ if (nonEmptyItems && value.some((item) => item.trim().length === 0)) {
133
+ return [`${owner}.${key} must not contain empty strings`];
134
+ }
135
+ return [];
136
+ }
137
+ function validateCatalogSubpath(owner, value) {
138
+ if (!isRecord(value))
139
+ return [`${owner}.subpath must be an object`];
140
+ const errors = [];
141
+ for (const key of ['path', 'statement']) {
142
+ if (!hasNonEmptyString(value, key)) {
143
+ errors.push(`${owner}.subpath.${key} must be a non-empty string`);
144
+ }
145
+ }
146
+ return errors;
147
+ }
148
+ function validateCatalogImport(componentName, value) {
149
+ const owner = `component ${componentName}.import`;
150
+ if (value === undefined)
151
+ return [];
152
+ if (!isRecord(value))
153
+ return [`${owner} must be an object`];
154
+ const errors = [];
155
+ for (const key of ['package', 'path', 'statement']) {
156
+ if (!hasNonEmptyString(value, key))
157
+ errors.push(`${owner}.${key} must be a non-empty string`);
158
+ }
159
+ errors.push(...validateStringArray({ key: 'named', nonEmptyItems: true, owner, record: value }));
160
+ if ('subpath' in value) {
161
+ errors.push(...validateCatalogSubpath(owner, value.subpath));
162
+ }
163
+ return errors;
164
+ }
165
+ function validateCatalogProp(componentName, value, index) {
166
+ const owner = `component ${componentName}.props[${index}]`;
167
+ if (!isRecord(value))
168
+ return [`${owner} must be an object`];
169
+ const errors = [];
170
+ errors.push(...validateCatalogPropRequiredFields(owner, value));
171
+ errors.push(...validateCatalogPropOptionalStrings(owner, value));
172
+ errors.push(...validateCatalogPropDefault(owner, value));
173
+ errors.push(...validateCatalogPropValues(owner, value));
174
+ return errors;
175
+ }
176
+ function validateCatalogPropRequiredFields(owner, value) {
177
+ const errors = [];
178
+ for (const key of ['name', 'type']) {
179
+ if (!hasNonEmptyString(value, key))
180
+ errors.push(`${owner}.${key} must be a non-empty string`);
181
+ }
182
+ if (typeof value.required !== 'boolean')
183
+ errors.push(`${owner}.required must be boolean`);
184
+ return errors;
185
+ }
186
+ function validateCatalogPropOptionalStrings(owner, value) {
187
+ const errors = [];
188
+ for (const key of ['rawType', 'typeRef', 'description']) {
189
+ if (!hasOptionalString(value, key))
190
+ errors.push(`${owner}.${key} must be a string`);
191
+ }
192
+ return errors;
193
+ }
194
+ function validateCatalogPropDefault(owner, value) {
195
+ if (!('default' in value) || isCatalogPrimitive(value.default))
196
+ return [];
197
+ return [`${owner}.default must be a string, number, boolean, or null`];
198
+ }
199
+ function validateCatalogPropValues(owner, value) {
200
+ if (!('values' in value) || Array.isArray(value.values))
201
+ return [];
202
+ return [`${owner}.values must be an array`];
203
+ }
204
+ function validateCatalogProps(componentName, value) {
205
+ if (!Array.isArray(value))
206
+ return [`component ${componentName}.props must be an array`];
207
+ return value.flatMap((prop, index) => validateCatalogProp(componentName, prop, index));
208
+ }
209
+ function validateCatalogStory(componentName, value, index) {
210
+ const owner = `component ${componentName}.storybook[${index}]`;
211
+ if (!isRecord(value))
212
+ return [`${owner} must be an object`];
213
+ const errors = [];
214
+ for (const key of ['name', 'title', 'id', 'storyUrl', 'iframeUrl', 'sourcePath']) {
215
+ if (!hasNonEmptyString(value, key))
216
+ errors.push(`${owner}.${key} must be a non-empty string`);
217
+ }
218
+ if (!hasOptionalString(value, 'source'))
219
+ errors.push(`${owner}.source must be a string`);
220
+ if (!hasOptionalBoolean(value, 'sourceTruncated')) {
221
+ errors.push(`${owner}.sourceTruncated must be boolean`);
222
+ }
223
+ return errors;
224
+ }
225
+ function validateCatalogStories(componentName, value) {
226
+ if (value === undefined)
227
+ return [];
228
+ if (!Array.isArray(value))
229
+ return [`component ${componentName}.storybook must be an array`];
230
+ return value.flatMap((story, index) => validateCatalogStory(componentName, story, index));
231
+ }
232
+ function validateCatalogExample(componentName, value, index) {
233
+ const owner = `component ${componentName}.examples[${index}]`;
234
+ if (!isRecord(value))
235
+ return [`${owner} must be an object`];
236
+ const errors = [];
237
+ if (value.language !== 'tsx')
238
+ errors.push(`${owner}.language must be "tsx"`);
239
+ if (!hasNonEmptyString(value, 'source'))
240
+ errors.push(`${owner}.source must be a non-empty string`);
241
+ return errors;
242
+ }
243
+ function validateCatalogExamples(componentName, value) {
244
+ if (value === undefined)
245
+ return [];
246
+ if (!Array.isArray(value))
247
+ return [`component ${componentName}.examples must be an array`];
248
+ return value.flatMap((example, index) => validateCatalogExample(componentName, example, index));
249
+ }
250
+ function validateStorybookMetadata(catalog) {
251
+ if (!('storybook' in catalog))
252
+ return [];
253
+ if (!isRecord(catalog.storybook))
254
+ return ['catalog.storybook must be an object'];
255
+ const errors = [];
256
+ for (const key of ['baseUrl', 'env']) {
257
+ if (!hasNonEmptyString(catalog.storybook, key)) {
258
+ errors.push(`catalog.storybook.${key} must be a non-empty string`);
259
+ }
260
+ }
261
+ if (typeof catalog.storybook.localPort !== 'number') {
262
+ errors.push('catalog.storybook.localPort must be a number');
263
+ }
264
+ return errors;
265
+ }
266
+ function validateCatalogMetadata(catalog) {
267
+ const errors = [];
268
+ for (const key of ['package', 'version', 'generated']) {
269
+ if (!hasNonEmptyString(catalog, key))
270
+ errors.push(`catalog.${key} must be a non-empty string`);
271
+ }
272
+ const hasValidLayers = Array.isArray(catalog.layers) && catalog.layers.every((item) => typeof item === 'string');
273
+ if (!hasValidLayers)
274
+ errors.push('catalog.layers must be a string array');
275
+ errors.push(...validateStorybookMetadata(catalog));
276
+ return errors;
277
+ }
278
+ function validateRequiredComponentFields(componentName, component) {
279
+ const errors = [];
280
+ for (const key of ['name', 'layer', 'path']) {
281
+ if (!hasNonEmptyString(component, key)) {
282
+ errors.push(`component ${componentName}.${key} must be a non-empty string`);
283
+ }
284
+ }
285
+ return errors;
286
+ }
287
+ function validateOptionalComponentFields(componentName, component) {
288
+ const errors = [];
289
+ for (const key of ['displayName', 'category', 'description']) {
290
+ if (!hasOptionalString(component, key)) {
291
+ errors.push(`component ${componentName}.${key} must be a string`);
292
+ }
293
+ }
294
+ if (!hasOptionalBoolean(component, 'public')) {
295
+ errors.push(`component ${componentName}.public must be boolean`);
296
+ }
297
+ if ('aliases' in component && !isStringArray(component.aliases)) {
298
+ errors.push(`component ${componentName}.aliases must be a string array`);
299
+ }
300
+ return errors;
301
+ }
302
+ function validateComponentLiteralField({ component, componentName, key, validValues, }) {
303
+ if (!(key in component))
304
+ return [];
305
+ const value = component[key];
306
+ if (typeof value !== 'string')
307
+ return [`component ${componentName}.${key} must be a string`];
308
+ if (validValues.includes(value))
309
+ return [];
310
+ return [`component ${componentName}.${key} must be one of: ${validValues.join(', ')}`];
311
+ }
312
+ function validateComponent(componentName, component) {
313
+ const errors = [];
314
+ errors.push(...validateRequiredComponentFields(componentName, component));
315
+ errors.push(...validateOptionalComponentFields(componentName, component));
316
+ errors.push(...validateComponentLiteralField({
317
+ component,
318
+ componentName,
319
+ key: 'kind',
320
+ validValues: VALID_COMPONENT_KINDS,
321
+ }));
322
+ errors.push(...validateComponentLiteralField({
323
+ component,
324
+ componentName,
325
+ key: 'status',
326
+ validValues: VALID_COMPONENT_STATUSES,
327
+ }));
328
+ errors.push(...validateCatalogImport(componentName, component.import));
329
+ errors.push(...validateCatalogProps(componentName, component.props));
330
+ errors.push(...validateStringArray({
331
+ key: 'stories',
332
+ nonEmptyItems: true,
333
+ owner: `component ${componentName}`,
334
+ record: component,
335
+ }));
336
+ errors.push(...validateCatalogStories(componentName, component.storybook));
337
+ errors.push(...validateCatalogExamples(componentName, component.examples));
338
+ if (typeof component.hasTests !== 'boolean') {
339
+ errors.push(`component ${componentName}.hasTests must be boolean`);
340
+ }
341
+ if (typeof component.hasStories !== 'boolean') {
342
+ errors.push(`component ${componentName}.hasStories must be boolean`);
343
+ }
344
+ return errors;
345
+ }
346
+ function validateComponentRecord(components) {
347
+ const errors = [];
348
+ for (const [componentName, componentValue] of Object.entries(components)) {
349
+ if (isRecord(componentValue)) {
350
+ errors.push(...validateComponent(componentName, componentValue));
351
+ }
352
+ else {
353
+ errors.push(`component ${componentName} must be an object`);
354
+ }
355
+ }
356
+ return errors;
357
+ }
358
+ export function validateCatalogData(value) {
359
+ const errors = [];
360
+ if (!isRecord(value))
361
+ return ['catalog root must be an object'];
362
+ errors.push(...validateCatalogMetadata(value));
363
+ if (!isRecord(value.components)) {
364
+ errors.push('catalog.components must be an object');
365
+ return errors;
366
+ }
367
+ errors.push(...validateComponentRecord(value.components));
368
+ return errors;
369
+ }
370
+ export function assertCatalogData(value) {
371
+ const errors = validateCatalogData(value);
372
+ if (errors.length > 0) {
373
+ throw new Error(`Invalid MDS catalog data:\n- ${errors.join('\n- ')}`);
374
+ }
375
+ }
376
+ export function assertMarkdownDocs(label, docs) {
377
+ const errors = [];
378
+ for (const [id, doc] of Object.entries(docs)) {
379
+ const content = typeof doc === 'string' ? doc : doc.content;
380
+ if (content.trim().length === 0)
381
+ errors.push(`${label} "${id}" is empty`);
382
+ if (typeof doc !== 'string' && doc.title.trim().length === 0) {
383
+ errors.push(`${label} "${id}" is missing title`);
384
+ }
385
+ }
386
+ if (errors.length > 0) {
387
+ throw new Error(`Invalid MDS ${label} data:\n- ${errors.join('\n- ')}`);
388
+ }
389
+ }
390
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makitt.io/mds-mcp-server",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "MCP server for @makitt/mds — AI 가 catalog + playbook 자동 query (fabrication 0)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,8 +30,8 @@
30
30
  "@types/node": "^22.10.6",
31
31
  "tsx": "^4.21.0",
32
32
  "typescript": "5.9.2",
33
- "@makitt/eslint-config": "0.0.0",
34
- "@makitt/typescript-config": "0.0.0"
33
+ "@makitt/typescript-config": "0.0.0",
34
+ "@makitt/eslint-config": "0.0.0"
35
35
  },
36
36
  "keywords": [
37
37
  "mcp",
@@ -41,12 +41,14 @@
41
41
  "design-system"
42
42
  ],
43
43
  "scripts": {
44
- "build": "tsc && pnpm copy:data && pnpm verify:data && pnpm dogfood && pnpm smoke:stdio && pnpm verify:pack",
44
+ "build": "tsc && pnpm copy:data && pnpm verify:data && pnpm dogfood && pnpm eval:tools && pnpm smoke:stdio && pnpm verify:pack && pnpm smoke:packed",
45
45
  "copy:data": "node scripts/copy-data.mjs",
46
46
  "verify:data": "node scripts/verify-data.mjs",
47
47
  "verify:release": "node scripts/verify-release.mjs",
48
48
  "dogfood": "node scripts/dogfood.mjs",
49
+ "eval:tools": "node scripts/eval-tools.mjs",
49
50
  "smoke:stdio": "node scripts/smoke-stdio.mjs",
51
+ "smoke:packed": "node scripts/smoke-packed.mjs",
50
52
  "smoke:published": "node scripts/smoke-published.mjs",
51
53
  "verify:pack": "node scripts/verify-pack.mjs",
52
54
  "start": "node dist/index.js",