@schemyx/mcp 0.1.0 → 0.1.2

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 (106) hide show
  1. package/README.md +79 -2
  2. package/dist/backend-client.d.ts +1 -17
  3. package/dist/backend-client.js +15 -91
  4. package/dist/backend-client.js.map +1 -1
  5. package/dist/client/backend-client.d.ts +17 -0
  6. package/dist/client/backend-client.js +97 -0
  7. package/dist/client/backend-client.js.map +1 -0
  8. package/dist/client/local-theme-source.d.ts +19 -0
  9. package/dist/client/local-theme-source.js +737 -0
  10. package/dist/client/local-theme-source.js.map +1 -0
  11. package/dist/client/mcp-client.d.ts +15 -0
  12. package/dist/client/mcp-client.js +46 -0
  13. package/dist/client/mcp-client.js.map +1 -0
  14. package/dist/codebase-scanner/backend.d.ts +12 -0
  15. package/dist/codebase-scanner/backend.js +814 -0
  16. package/dist/codebase-scanner/backend.js.map +1 -0
  17. package/dist/codebase-scanner/bundle.d.ts +315 -0
  18. package/dist/codebase-scanner/bundle.js +5195 -0
  19. package/dist/codebase-scanner/bundle.js.map +1 -0
  20. package/dist/codebase-scanner/constants.d.ts +26 -0
  21. package/dist/codebase-scanner/constants.js +231 -0
  22. package/dist/codebase-scanner/constants.js.map +1 -0
  23. package/dist/codebase-scanner/database.d.ts +8 -0
  24. package/dist/codebase-scanner/database.js +1252 -0
  25. package/dist/codebase-scanner/database.js.map +1 -0
  26. package/dist/codebase-scanner/extractors.d.ts +241 -0
  27. package/dist/codebase-scanner/extractors.js +3513 -0
  28. package/dist/codebase-scanner/extractors.js.map +1 -0
  29. package/dist/codebase-scanner/files.d.ts +16 -0
  30. package/dist/codebase-scanner/files.js +250 -0
  31. package/dist/codebase-scanner/files.js.map +1 -0
  32. package/dist/codebase-scanner/index.d.ts +217 -0
  33. package/dist/codebase-scanner/index.js +387 -0
  34. package/dist/codebase-scanner/index.js.map +1 -0
  35. package/dist/codebase-scanner/recipes.d.ts +74 -0
  36. package/dist/codebase-scanner/recipes.js +743 -0
  37. package/dist/codebase-scanner/recipes.js.map +1 -0
  38. package/dist/codebase-scanner/storage.d.ts +19 -0
  39. package/dist/codebase-scanner/storage.js +103 -0
  40. package/dist/codebase-scanner/storage.js.map +1 -0
  41. package/dist/codebase-scanner/types.d.ts +743 -0
  42. package/dist/codebase-scanner/types.js +3 -0
  43. package/dist/codebase-scanner/types.js.map +1 -0
  44. package/dist/codebase-scanner/utils.d.ts +37 -0
  45. package/dist/codebase-scanner/utils.js +259 -0
  46. package/dist/codebase-scanner/utils.js.map +1 -0
  47. package/dist/codebase-scanner.d.ts +1 -0
  48. package/dist/codebase-scanner.js +18 -0
  49. package/dist/codebase-scanner.js.map +1 -0
  50. package/dist/config.d.ts +1 -2
  51. package/dist/config.js +15 -37
  52. package/dist/config.js.map +1 -1
  53. package/dist/local-theme-source.d.ts +1 -0
  54. package/dist/local-theme-source.js +18 -0
  55. package/dist/local-theme-source.js.map +1 -0
  56. package/dist/main.js +3 -3
  57. package/dist/main.js.map +1 -1
  58. package/dist/mcp-client.d.ts +1 -0
  59. package/dist/mcp-client.js +18 -0
  60. package/dist/mcp-client.js.map +1 -0
  61. package/dist/prompts.d.ts +1 -7
  62. package/dist/prompts.js +15 -52
  63. package/dist/prompts.js.map +1 -1
  64. package/dist/server/index.d.ts +4 -0
  65. package/dist/server/index.js +163 -0
  66. package/dist/server/index.js.map +1 -0
  67. package/dist/server/prompts.d.ts +7 -0
  68. package/dist/server/prompts.js +55 -0
  69. package/dist/server/prompts.js.map +1 -0
  70. package/dist/server/tool-definitions.d.ts +22 -0
  71. package/dist/server/tool-definitions.js +531 -0
  72. package/dist/server/tool-definitions.js.map +1 -0
  73. package/dist/server.d.ts +3 -3
  74. package/dist/server.js +33 -0
  75. package/dist/server.js.map +1 -1
  76. package/dist/shared/config.d.ts +2 -0
  77. package/dist/shared/config.js +54 -0
  78. package/dist/shared/config.js.map +1 -0
  79. package/dist/shared/text.d.ts +14 -0
  80. package/dist/shared/text.js +33 -0
  81. package/dist/shared/text.js.map +1 -0
  82. package/dist/shared/types.d.ts +118 -0
  83. package/dist/shared/types.js +3 -0
  84. package/dist/shared/types.js.map +1 -0
  85. package/dist/shared/uri.d.ts +6 -0
  86. package/dist/shared/uri.js +24 -0
  87. package/dist/shared/uri.js.map +1 -0
  88. package/dist/style-recipes.d.ts +1 -0
  89. package/dist/style-recipes.js +18 -0
  90. package/dist/style-recipes.js.map +1 -0
  91. package/dist/text.d.ts +1 -14
  92. package/dist/text.js +15 -30
  93. package/dist/text.js.map +1 -1
  94. package/dist/theme/style-recipes.d.ts +26 -0
  95. package/dist/theme/style-recipes.js +129 -0
  96. package/dist/theme/style-recipes.js.map +1 -0
  97. package/dist/tool-definitions.d.ts +1 -11
  98. package/dist/tool-definitions.js +15 -127
  99. package/dist/tool-definitions.js.map +1 -1
  100. package/dist/types.d.ts +1 -106
  101. package/dist/types.js +15 -0
  102. package/dist/types.js.map +1 -1
  103. package/dist/uri.d.ts +1 -6
  104. package/dist/uri.js +15 -21
  105. package/dist/uri.js.map +1 -1
  106. package/package.json +5 -2
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/codebase-scanner/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import type { CodebaseProjectType } from './types';
2
+ export declare function stringArrayValue(value: unknown): string[];
3
+ export declare function toJsonLines(values: unknown[]): string;
4
+ export declare function estimateTokens(value: unknown): number;
5
+ export declare function cursorToOffset(value: unknown): number;
6
+ export declare function lineNumberAt(content: string, index: number): number;
7
+ export declare function truncate(value: string, maxLength: number): string;
8
+ export declare function classBase(className: string): string;
9
+ export declare function pathTerms(relPath: string): string[];
10
+ export declare function toKebabCase(value: string): string;
11
+ export declare function resolveRootPath(value: unknown): string;
12
+ export declare function resolveOutputDir(rootPath: string, value: string): string;
13
+ export declare function resolveInsideRoot(rootPath: string, value: string): string;
14
+ export declare function isInsideRoot(rootPath: string, fullPath: string): boolean;
15
+ export declare function pathExists(filePath: string): Promise<boolean>;
16
+ export declare function requiredProjectType(value: unknown): CodebaseProjectType;
17
+ export declare function requiredStringArg(value: unknown, name: string): string;
18
+ export declare function stringArg(value: unknown): string | undefined;
19
+ export declare function stringArrayArg(value: unknown): string[];
20
+ export declare function numberArg(value: unknown, fallback: number, min: number, max: number): number;
21
+ export declare function toRegistryKey(group: string, value: string): string;
22
+ export declare function toPosixPath(value: string): string;
23
+ export declare function stripLeadingDot(value: string): string;
24
+ export declare function stripQuery(value: string): string;
25
+ export declare function unique<T>(values: T[]): T[];
26
+ export declare function uniqueBy<T>(values: T[], keyFn: (value: T) => string): T[];
27
+ export declare function groupBy<T>(values: T[], keyFn: (value: T) => string): Map<string, T[]>;
28
+ export declare function isPascalCase(value: string): boolean;
29
+ export declare function isRelativeImport(value: string): boolean;
30
+ export declare function resolveImportPath(fromRelPath: string, importValue: string, relPaths: Set<string>, rootPath: string): string | undefined;
31
+ export declare function matchingNames(names: string[], value: string): string[];
32
+ export declare function readAttr(attrs: string, name: string): string | undefined;
33
+ export declare function titleCase(value: string): string;
34
+ export declare function toPascalCase(value: string): string;
35
+ export declare function escapeRegExp(value: string): string;
36
+ export declare function shortHash(value: string): string;
37
+ export declare function clampPatternScore(value: number): number;
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stringArrayValue = stringArrayValue;
4
+ exports.toJsonLines = toJsonLines;
5
+ exports.estimateTokens = estimateTokens;
6
+ exports.cursorToOffset = cursorToOffset;
7
+ exports.lineNumberAt = lineNumberAt;
8
+ exports.truncate = truncate;
9
+ exports.classBase = classBase;
10
+ exports.pathTerms = pathTerms;
11
+ exports.toKebabCase = toKebabCase;
12
+ exports.resolveRootPath = resolveRootPath;
13
+ exports.resolveOutputDir = resolveOutputDir;
14
+ exports.resolveInsideRoot = resolveInsideRoot;
15
+ exports.isInsideRoot = isInsideRoot;
16
+ exports.pathExists = pathExists;
17
+ exports.requiredProjectType = requiredProjectType;
18
+ exports.requiredStringArg = requiredStringArg;
19
+ exports.stringArg = stringArg;
20
+ exports.stringArrayArg = stringArrayArg;
21
+ exports.numberArg = numberArg;
22
+ exports.toRegistryKey = toRegistryKey;
23
+ exports.toPosixPath = toPosixPath;
24
+ exports.stripLeadingDot = stripLeadingDot;
25
+ exports.stripQuery = stripQuery;
26
+ exports.unique = unique;
27
+ exports.uniqueBy = uniqueBy;
28
+ exports.groupBy = groupBy;
29
+ exports.isPascalCase = isPascalCase;
30
+ exports.isRelativeImport = isRelativeImport;
31
+ exports.resolveImportPath = resolveImportPath;
32
+ exports.matchingNames = matchingNames;
33
+ exports.readAttr = readAttr;
34
+ exports.titleCase = titleCase;
35
+ exports.toPascalCase = toPascalCase;
36
+ exports.escapeRegExp = escapeRegExp;
37
+ exports.shortHash = shortHash;
38
+ exports.clampPatternScore = clampPatternScore;
39
+ const node_fs_1 = require("node:fs");
40
+ const path = require("node:path");
41
+ const constants_1 = require("./constants");
42
+ function stringArrayValue(value) {
43
+ if (Array.isArray(value)) {
44
+ return value.filter((item) => typeof item === 'string' && Boolean(item));
45
+ }
46
+ if (typeof value === 'string' && value) {
47
+ return [value];
48
+ }
49
+ return [];
50
+ }
51
+ function toJsonLines(values) {
52
+ return values.map((value) => JSON.stringify(value)).join('\n') + (values.length ? '\n' : '');
53
+ }
54
+ function estimateTokens(value) {
55
+ return Math.ceil(JSON.stringify(value).length / 4);
56
+ }
57
+ function cursorToOffset(value) {
58
+ const cursor = stringArg(value);
59
+ const parsed = cursor ? Number.parseInt(cursor, 10) : 0;
60
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : 0;
61
+ }
62
+ function lineNumberAt(content, index) {
63
+ let line = 1;
64
+ const end = Math.max(0, Math.min(index, content.length));
65
+ for (let cursor = 0; cursor < end; cursor += 1) {
66
+ if (content[cursor] === '\n') {
67
+ line += 1;
68
+ }
69
+ }
70
+ return line;
71
+ }
72
+ function truncate(value, maxLength) {
73
+ return value.length > maxLength ? `${value.slice(0, Math.max(0, maxLength - 3))}...` : value;
74
+ }
75
+ function classBase(className) {
76
+ const parts = className.split(':');
77
+ return parts[parts.length - 1];
78
+ }
79
+ function pathTerms(relPath) {
80
+ return unique(relPath
81
+ .replace(/\.[^.]+$/, '')
82
+ .split(/[/_.-]+/)
83
+ .filter((term) => term.length > 1));
84
+ }
85
+ function toKebabCase(value) {
86
+ return value
87
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
88
+ .replace(/_/g, '-')
89
+ .toLowerCase();
90
+ }
91
+ function resolveRootPath(value) {
92
+ const fallback = process.env.SCHEMYX_MCP_CWD ?? process.cwd();
93
+ const rootPath = stringArg(value) ?? fallback;
94
+ return path.resolve(rootPath);
95
+ }
96
+ function resolveOutputDir(rootPath, value) {
97
+ const outputDir = path.resolve(rootPath, value);
98
+ if (!isInsideRoot(rootPath, outputDir)) {
99
+ throw new Error('outputDir must stay inside the scanned project root.');
100
+ }
101
+ return outputDir;
102
+ }
103
+ function resolveInsideRoot(rootPath, value) {
104
+ const fullPath = path.resolve(rootPath, value);
105
+ if (!isInsideRoot(rootPath, fullPath)) {
106
+ throw new Error(`Path must stay inside the scanned project root: ${value}`);
107
+ }
108
+ return fullPath;
109
+ }
110
+ function isInsideRoot(rootPath, fullPath) {
111
+ const relative = path.relative(rootPath, fullPath);
112
+ return !relative.startsWith('..') && !path.isAbsolute(relative);
113
+ }
114
+ async function pathExists(filePath) {
115
+ try {
116
+ await node_fs_1.promises.access(filePath);
117
+ return true;
118
+ }
119
+ catch {
120
+ return false;
121
+ }
122
+ }
123
+ function requiredProjectType(value) {
124
+ const projectType = stringArg(value);
125
+ if (projectType === 'frontend' ||
126
+ projectType === 'backend' ||
127
+ projectType === 'full' ||
128
+ projectType === 'custom') {
129
+ return projectType;
130
+ }
131
+ throw new Error('projectType is required and must be one of frontend, backend, full, or custom. Ask the user which scope to scan before calling this tool.');
132
+ }
133
+ function requiredStringArg(value, name) {
134
+ const result = stringArg(value);
135
+ if (!result) {
136
+ throw new Error(`Tool argument "${name}" is required.`);
137
+ }
138
+ return result;
139
+ }
140
+ function stringArg(value) {
141
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
142
+ }
143
+ function stringArrayArg(value) {
144
+ if (!Array.isArray(value)) {
145
+ return [];
146
+ }
147
+ return value.filter((item) => typeof item === 'string' && Boolean(item.trim()));
148
+ }
149
+ function numberArg(value, fallback, min, max) {
150
+ if (typeof value !== 'number') {
151
+ return fallback;
152
+ }
153
+ if (!Number.isFinite(value)) {
154
+ return fallback;
155
+ }
156
+ return Math.min(Math.max(Math.trunc(value), min), max);
157
+ }
158
+ function toRegistryKey(group, value) {
159
+ const keyValue = value === '/' ? 'root' : value.replace(/\s+/g, '.').replace(/^\/+/, '');
160
+ return `${group}.${keyValue}`
161
+ .replace(/\\/g, '/')
162
+ .replace(/^\/+|\/+$/g, '')
163
+ .replace(/\/+/g, '.')
164
+ .replace(/[^a-zA-Z0-9._:-]+/g, '-')
165
+ .replace(/-+/g, '-')
166
+ .replace(/\.+/g, '.')
167
+ .replace(/^\.|\.$/g, '');
168
+ }
169
+ function toPosixPath(value) {
170
+ return value.split(path.sep).join('/');
171
+ }
172
+ function stripLeadingDot(value) {
173
+ return value.replace(/^\.\//, '');
174
+ }
175
+ function stripQuery(value) {
176
+ return value.split('?')[0].split('#')[0];
177
+ }
178
+ function unique(values) {
179
+ return Array.from(new Set(values.filter(Boolean)));
180
+ }
181
+ function uniqueBy(values, keyFn) {
182
+ const seen = new Set();
183
+ const result = [];
184
+ for (const value of values) {
185
+ const key = keyFn(value);
186
+ if (!seen.has(key)) {
187
+ seen.add(key);
188
+ result.push(value);
189
+ }
190
+ }
191
+ return result;
192
+ }
193
+ function groupBy(values, keyFn) {
194
+ const grouped = new Map();
195
+ for (const value of values) {
196
+ const key = keyFn(value);
197
+ grouped.set(key, [...(grouped.get(key) ?? []), value]);
198
+ }
199
+ return grouped;
200
+ }
201
+ function isPascalCase(value) {
202
+ return /^[A-Z][A-Za-z0-9_]*$/.test(value);
203
+ }
204
+ function isRelativeImport(value) {
205
+ return value.startsWith('.') || value.startsWith('/');
206
+ }
207
+ function resolveImportPath(fromRelPath, importValue, relPaths, rootPath) {
208
+ const baseDir = path.posix.dirname(toPosixPath(fromRelPath));
209
+ const normalizedImport = importValue.startsWith('/')
210
+ ? stripLeadingDot(toPosixPath(path.relative(rootPath, path.resolve(rootPath, importValue.replace(/^\/+/, '')))))
211
+ : path.posix.normalize(path.posix.join(baseDir, importValue));
212
+ const candidates = [
213
+ normalizedImport,
214
+ ...Array.from(constants_1.scannableExtensions).map((extension) => `${normalizedImport}${extension}`),
215
+ ...Array.from(constants_1.scannableExtensions).map((extension) => `${normalizedImport}/index${extension}`),
216
+ ].map((candidate) => stripLeadingDot(toPosixPath(candidate)));
217
+ return candidates.find((candidate) => relPaths.has(candidate));
218
+ }
219
+ function matchingNames(names, value) {
220
+ const haystack = value.toLowerCase();
221
+ return names.filter((name) => haystack.includes(name.toLowerCase()));
222
+ }
223
+ function readAttr(attrs, name) {
224
+ const pattern = new RegExp(`\\b${escapeRegExp(name)}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|\\{?\\s*\`([^\`]*)\`\\s*\\}?)`, 'i');
225
+ const match = attrs.match(pattern);
226
+ return match?.[1] ?? match?.[2] ?? match?.[3];
227
+ }
228
+ function titleCase(value) {
229
+ return value
230
+ .split(/[-_.\s]+/)
231
+ .filter(Boolean)
232
+ .map((part) => `${part.charAt(0).toUpperCase()}${part.slice(1)}`)
233
+ .join(' ');
234
+ }
235
+ function toPascalCase(value) {
236
+ return value
237
+ .split(/[^A-Za-z0-9]+/)
238
+ .filter(Boolean)
239
+ .map((part) => `${part.charAt(0).toUpperCase()}${part.slice(1)}`)
240
+ .join('');
241
+ }
242
+ function escapeRegExp(value) {
243
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
244
+ }
245
+ function shortHash(value) {
246
+ let hash = 2166136261;
247
+ for (let index = 0; index < value.length; index += 1) {
248
+ hash ^= value.charCodeAt(index);
249
+ hash = Math.imul(hash, 16777619);
250
+ }
251
+ return (hash >>> 0).toString(36).slice(0, 6);
252
+ }
253
+ function clampPatternScore(value) {
254
+ if (!Number.isFinite(value)) {
255
+ return 0;
256
+ }
257
+ return Math.min(Math.max(value, 0), 1);
258
+ }
259
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/codebase-scanner/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './codebase-scanner/index';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./codebase-scanner/index"), exports);
18
+ //# sourceMappingURL=codebase-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codebase-scanner.js","sourceRoot":"","sources":["../src/codebase-scanner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
package/dist/config.d.ts CHANGED
@@ -1,2 +1 @@
1
- import { LocalMcpConfig } from './types';
2
- export declare function loadLocalMcpConfig(env?: NodeJS.ProcessEnv): LocalMcpConfig;
1
+ export * from './shared/config';
package/dist/config.js CHANGED
@@ -1,40 +1,18 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadLocalMcpConfig = loadLocalMcpConfig;
4
- const defaultApiUrl = 'https://api.schemyx.com';
5
- const defaultCacheTtlMs = 10_000;
6
- function loadLocalMcpConfig(env = process.env) {
7
- const apiKey = env.SCHEMYX_API_KEY?.trim();
8
- if (!apiKey) {
9
- throw new Error('SCHEMYX_API_KEY is required to start the Schemyx MCP server.');
10
- }
11
- return {
12
- apiUrl: normalizeApiUrl(env.SCHEMYX_API_URL ?? defaultApiUrl),
13
- apiKey,
14
- projectId: optionalValue(env.SCHEMYX_PROJECT_ID),
15
- configId: optionalValue(env.SCHEMYX_CONFIG_ID),
16
- cacheTtlMs: parseCacheTtl(env.SCHEMYX_MCP_CACHE_TTL_MS),
17
- };
18
- }
19
- function normalizeApiUrl(value) {
20
- const trimmed = value.trim();
21
- if (!trimmed) {
22
- return defaultApiUrl;
23
- }
24
- return trimmed.replace(/\/+$/, '');
25
- }
26
- function optionalValue(value) {
27
- const trimmed = value?.trim();
28
- return trimmed ? trimmed : undefined;
29
- }
30
- function parseCacheTtl(value) {
31
- if (!value) {
32
- return defaultCacheTtlMs;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
7
  }
34
- const parsed = Number(value);
35
- if (!Number.isFinite(parsed) || parsed < 0) {
36
- throw new Error('SCHEMYX_MCP_CACHE_TTL_MS must be a non-negative number.');
37
- }
38
- return parsed;
39
- }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./shared/config"), exports);
40
18
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAKA,gDAcC;AAjBD,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAChD,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC,SAAgB,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACrE,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACL,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,eAAe,IAAI,aAAa,CAAC;QAC7D,MAAM;QACN,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAChD,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9C,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,wBAAwB,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAE9B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB;IAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
@@ -0,0 +1 @@
1
+ export * from './client/local-theme-source';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./client/local-theme-source"), exports);
18
+ //# sourceMappingURL=local-theme-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-theme-source.js","sourceRoot":"","sources":["../src/local-theme-source.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C"}
package/dist/main.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- const backend_client_1 = require("./backend-client");
5
- const config_1 = require("./config");
4
+ const mcp_client_1 = require("./client/mcp-client");
6
5
  const server_1 = require("./server");
6
+ const config_1 = require("./shared/config");
7
7
  async function main() {
8
8
  const config = (0, config_1.loadLocalMcpConfig)();
9
- await (0, server_1.runLocalMcpServer)(new backend_client_1.SchemyxBackendClient(config));
9
+ await (0, server_1.runLocalMcpServer)(new mcp_client_1.SchemyxMcpClient(config));
10
10
  }
11
11
  main().catch((error) => {
12
12
  console.error(error instanceof Error ? error.message : error);
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,qCAA8C;AAC9C,qCAA6C;AAE7C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAA,2BAAkB,GAAE,CAAC;IACpC,MAAM,IAAA,0BAAiB,EAAC,IAAI,qCAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AACA,oDAAuD;AACvD,qCAA6C;AAC7C,4CAAqD;AAMrD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAA,2BAAkB,GAAE,CAAC;IACpC,MAAM,IAAA,0BAAiB,EAAC,IAAI,6BAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './client/mcp-client';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./client/mcp-client"), exports);
18
+ //# sourceMappingURL=mcp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
package/dist/prompts.d.ts CHANGED
@@ -1,7 +1 @@
1
- import { GetPromptResult, Prompt } from '@modelcontextprotocol/sdk/types.js';
2
- import { SchemyxBackendClient } from './backend-client';
3
- export declare const localPromptNames: {
4
- readonly applyTheme: "schemyx_apply_theme";
5
- };
6
- export declare const localPrompts: Prompt[];
7
- export declare function getLocalPrompt(client: SchemyxBackendClient, name: string, args: Record<string, string> | undefined): Promise<GetPromptResult>;
1
+ export * from './server/prompts';
package/dist/prompts.js CHANGED
@@ -1,55 +1,18 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.localPrompts = exports.localPromptNames = void 0;
4
- exports.getLocalPrompt = getLocalPrompt;
5
- const text_1 = require("./text");
6
- exports.localPromptNames = {
7
- applyTheme: 'schemyx_apply_theme',
8
- };
9
- exports.localPrompts = [
10
- {
11
- name: exports.localPromptNames.applyTheme,
12
- title: 'Apply Schemyx Theme',
13
- description: 'Use the saved Schemyx theme contract before building or restyling UI.',
14
- arguments: [
15
- {
16
- name: 'task',
17
- description: 'The UI or product workflow to build.',
18
- required: true,
19
- },
20
- {
21
- name: 'configId',
22
- description: 'Schemyx config id. Optional when only one config is available.',
23
- required: false,
24
- },
25
- ],
26
- },
27
- ];
28
- async function getLocalPrompt(client, name, args) {
29
- if (name !== exports.localPromptNames.applyTheme) {
30
- throw new Error(`Unknown Schemyx prompt: ${name}`);
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
31
7
  }
32
- const configId = await client.resolveConfigId(args?.configId);
33
- const guide = await client.executeTool(configId, 'theme-forge.get-implementation-guide', {});
34
- const task = args?.task ?? 'Build the requested UI.';
35
- return {
36
- description: 'Apply the saved Schemyx theme contract to a codebase.',
37
- messages: [
38
- {
39
- role: 'user',
40
- content: {
41
- type: 'text',
42
- text: [
43
- `Task: ${task}`,
44
- '',
45
- 'Use the Schemyx config as source of truth before writing UI code.',
46
- 'Read generated artifacts from this MCP server instead of inventing colors, radius, spacing, shadows, or typography.',
47
- '',
48
- (0, text_1.stringifyMcpContent)(guide.content),
49
- ].join('\n'),
50
- },
51
- },
52
- ],
53
- };
54
- }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./server/prompts"), exports);
55
18
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":";;;AA4BA,wCAgCC;AA1DD,iCAA6C;AAEhC,QAAA,gBAAgB,GAAG;IAC9B,UAAU,EAAE,qBAAqB;CACzB,CAAC;AAEE,QAAA,YAAY,GAAa;IACpC;QACE,IAAI,EAAE,wBAAgB,CAAC,UAAU;QACjC,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,uEAAuE;QACpF,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,sCAAsC;gBACnD,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,gEAAgE;gBAC7E,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;CACF,CAAC;AAEK,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,IAAY,EACZ,IAAwC;IAExC,IAAI,IAAI,KAAK,wBAAgB,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,sCAAsC,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,yBAAyB,CAAC;IAErD,OAAO;QACL,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,SAAS,IAAI,EAAE;wBACf,EAAE;wBACF,mEAAmE;wBACnE,qHAAqH;wBACrH,EAAE;wBACF,IAAA,0BAAmB,EAAC,KAAK,CAAC,OAAO,CAAC;qBACnC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
@@ -0,0 +1,4 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { SchemyxMcpSource } from '../shared/types';
3
+ export declare function createLocalMcpServer(client: SchemyxMcpSource): Server;
4
+ export declare function runLocalMcpServer(client: SchemyxMcpSource): Promise<void>;