@veloxts/mcp 0.6.23

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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/dist/bin.d.ts +17 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +25 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/index.d.ts +34 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +29 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/prompts/index.d.ts +8 -0
  11. package/dist/prompts/index.d.ts.map +1 -0
  12. package/dist/prompts/index.js +7 -0
  13. package/dist/prompts/index.js.map +1 -0
  14. package/dist/prompts/templates.d.ts +75 -0
  15. package/dist/prompts/templates.d.ts.map +1 -0
  16. package/dist/prompts/templates.js +442 -0
  17. package/dist/prompts/templates.js.map +1 -0
  18. package/dist/resources/errors.d.ts +45 -0
  19. package/dist/resources/errors.d.ts.map +1 -0
  20. package/dist/resources/errors.js +117 -0
  21. package/dist/resources/errors.js.map +1 -0
  22. package/dist/resources/index.d.ts +14 -0
  23. package/dist/resources/index.d.ts.map +1 -0
  24. package/dist/resources/index.js +10 -0
  25. package/dist/resources/index.js.map +1 -0
  26. package/dist/resources/procedures.d.ts +61 -0
  27. package/dist/resources/procedures.d.ts.map +1 -0
  28. package/dist/resources/procedures.js +147 -0
  29. package/dist/resources/procedures.js.map +1 -0
  30. package/dist/resources/routes.d.ts +44 -0
  31. package/dist/resources/routes.d.ts.map +1 -0
  32. package/dist/resources/routes.js +115 -0
  33. package/dist/resources/routes.js.map +1 -0
  34. package/dist/resources/schemas.d.ts +41 -0
  35. package/dist/resources/schemas.d.ts.map +1 -0
  36. package/dist/resources/schemas.js +143 -0
  37. package/dist/resources/schemas.js.map +1 -0
  38. package/dist/server.d.ts +28 -0
  39. package/dist/server.d.ts.map +1 -0
  40. package/dist/server.js +371 -0
  41. package/dist/server.js.map +1 -0
  42. package/dist/tools/generate.d.ts +64 -0
  43. package/dist/tools/generate.d.ts.map +1 -0
  44. package/dist/tools/generate.js +155 -0
  45. package/dist/tools/generate.js.map +1 -0
  46. package/dist/tools/index.d.ts +10 -0
  47. package/dist/tools/index.d.ts.map +1 -0
  48. package/dist/tools/index.js +8 -0
  49. package/dist/tools/index.js.map +1 -0
  50. package/dist/tools/migrate.d.ts +72 -0
  51. package/dist/tools/migrate.d.ts.map +1 -0
  52. package/dist/tools/migrate.js +163 -0
  53. package/dist/tools/migrate.js.map +1 -0
  54. package/dist/utils/project.d.ts +49 -0
  55. package/dist/utils/project.d.ts.map +1 -0
  56. package/dist/utils/project.js +133 -0
  57. package/dist/utils/project.js.map +1 -0
  58. package/package.json +63 -0
package/dist/server.js ADDED
@@ -0,0 +1,371 @@
1
+ /**
2
+ * VeloxTS MCP Server
3
+ *
4
+ * Model Context Protocol server that exposes VeloxTS project context to AI tools.
5
+ */
6
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
+ import { CallToolRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
9
+ import { z } from 'zod';
10
+ import { getPromptTemplate, listPromptTemplates } from './prompts/index.js';
11
+ import { formatErrorsAsText, formatProceduresAsText, formatRoutesAsText, formatSchemasAsText, getErrors, getProcedures, getRoutes, getSchemas, } from './resources/index.js';
12
+ import { formatGenerateResult, generate } from './tools/generate.js';
13
+ import { formatMigrateResult, migrate } from './tools/migrate.js';
14
+ import { findProjectRoot, getProjectInfo } from './utils/project.js';
15
+ // ============================================================================
16
+ // Tool Argument Schemas (Zod validation)
17
+ // ============================================================================
18
+ /**
19
+ * Schema for velox_generate tool arguments
20
+ */
21
+ const GenerateArgsSchema = z.object({
22
+ type: z
23
+ .enum(['procedure', 'schema', 'model', 'migration', 'test', 'resource', 'seeder', 'factory'])
24
+ .describe('Type of code to generate'),
25
+ name: z.string().min(1).describe('Entity name (e.g., User, Post)'),
26
+ crud: z.boolean().optional().describe('Generate full CRUD operations'),
27
+ dryRun: z.boolean().optional().describe('Preview without writing files'),
28
+ });
29
+ /**
30
+ * Schema for velox_migrate tool arguments
31
+ */
32
+ const MigrateArgsSchema = z.object({
33
+ action: z
34
+ .enum(['status', 'run', 'rollback', 'fresh', 'reset'])
35
+ .describe('Migration action to perform'),
36
+ dev: z.boolean().optional().describe('Development mode (creates migration from schema diff)'),
37
+ dryRun: z.boolean().optional().describe('Preview without executing'),
38
+ });
39
+ // ============================================================================
40
+ // Server Factory
41
+ // ============================================================================
42
+ /**
43
+ * Create a VeloxTS MCP server
44
+ */
45
+ export function createVeloxMCPServer(options = {}) {
46
+ const projectRoot = options.projectRoot ?? findProjectRoot() ?? process.cwd();
47
+ const debug = options.debug ?? false;
48
+ const serverName = options.name ?? 'veloxts-mcp';
49
+ const serverVersion = options.version ?? '0.5.0';
50
+ const server = new Server({
51
+ name: serverName,
52
+ version: serverVersion,
53
+ }, {
54
+ capabilities: {
55
+ resources: {},
56
+ tools: {},
57
+ prompts: {},
58
+ },
59
+ });
60
+ // Debug logging helper
61
+ const log = debug ? (message) => console.error(`[${serverName}] ${message}`) : () => { };
62
+ // ===========================================================================
63
+ // Resources
64
+ // ===========================================================================
65
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
66
+ log('Listing resources');
67
+ return {
68
+ resources: [
69
+ {
70
+ uri: 'velox://procedures',
71
+ name: 'VeloxTS Procedures',
72
+ description: 'List all registered procedures with their types, inputs, outputs, and routes',
73
+ mimeType: 'text/plain',
74
+ },
75
+ {
76
+ uri: 'velox://routes',
77
+ name: 'REST Routes',
78
+ description: 'REST route mappings generated from procedures',
79
+ mimeType: 'text/plain',
80
+ },
81
+ {
82
+ uri: 'velox://schemas',
83
+ name: 'Zod Schemas',
84
+ description: 'All Zod validation schemas in the project',
85
+ mimeType: 'text/plain',
86
+ },
87
+ {
88
+ uri: 'velox://errors',
89
+ name: 'Error Catalog',
90
+ description: 'VeloxTS error codes with messages and fix suggestions',
91
+ mimeType: 'text/plain',
92
+ },
93
+ {
94
+ uri: 'velox://project',
95
+ name: 'Project Info',
96
+ description: 'VeloxTS project information and structure',
97
+ mimeType: 'text/plain',
98
+ },
99
+ ],
100
+ };
101
+ });
102
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
103
+ const uri = request.params.uri;
104
+ log(`Reading resource: ${uri}`);
105
+ switch (uri) {
106
+ case 'velox://procedures': {
107
+ const data = await getProcedures(projectRoot);
108
+ return {
109
+ contents: [
110
+ {
111
+ uri,
112
+ mimeType: 'text/plain',
113
+ text: formatProceduresAsText(data),
114
+ },
115
+ ],
116
+ };
117
+ }
118
+ case 'velox://routes': {
119
+ const data = await getRoutes(projectRoot);
120
+ return {
121
+ contents: [
122
+ {
123
+ uri,
124
+ mimeType: 'text/plain',
125
+ text: formatRoutesAsText(data),
126
+ },
127
+ ],
128
+ };
129
+ }
130
+ case 'velox://schemas': {
131
+ const data = await getSchemas(projectRoot);
132
+ return {
133
+ contents: [
134
+ {
135
+ uri,
136
+ mimeType: 'text/plain',
137
+ text: formatSchemasAsText(data),
138
+ },
139
+ ],
140
+ };
141
+ }
142
+ case 'velox://errors': {
143
+ const data = getErrors();
144
+ return {
145
+ contents: [
146
+ {
147
+ uri,
148
+ mimeType: 'text/plain',
149
+ text: formatErrorsAsText(data),
150
+ },
151
+ ],
152
+ };
153
+ }
154
+ case 'velox://project': {
155
+ const info = await getProjectInfo(projectRoot);
156
+ const text = info
157
+ ? [
158
+ '# VeloxTS Project',
159
+ '',
160
+ `Name: ${info.name}`,
161
+ `Version: ${info.version}`,
162
+ `Root: ${info.root}`,
163
+ '',
164
+ '## Paths',
165
+ info.apiPath ? `API: ${info.apiPath}` : null,
166
+ info.webPath ? `Web: ${info.webPath}` : null,
167
+ info.proceduresPath ? `Procedures: ${info.proceduresPath}` : null,
168
+ info.schemasPath ? `Schemas: ${info.schemasPath}` : null,
169
+ info.prismaSchemaPath ? `Prisma Schema: ${info.prismaSchemaPath}` : null,
170
+ ]
171
+ .filter(Boolean)
172
+ .join('\n')
173
+ : 'No VeloxTS project detected in current directory.';
174
+ return {
175
+ contents: [
176
+ {
177
+ uri,
178
+ mimeType: 'text/plain',
179
+ text,
180
+ },
181
+ ],
182
+ };
183
+ }
184
+ default:
185
+ throw new Error(`Unknown resource: ${uri}`);
186
+ }
187
+ });
188
+ // ===========================================================================
189
+ // Tools
190
+ // ===========================================================================
191
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
192
+ log('Listing tools');
193
+ return {
194
+ tools: [
195
+ {
196
+ name: 'velox_generate',
197
+ description: 'Generate VeloxTS code (procedures, schemas, resources, etc.)',
198
+ inputSchema: {
199
+ type: 'object',
200
+ properties: {
201
+ type: {
202
+ type: 'string',
203
+ enum: [
204
+ 'procedure',
205
+ 'schema',
206
+ 'model',
207
+ 'migration',
208
+ 'test',
209
+ 'resource',
210
+ 'seeder',
211
+ 'factory',
212
+ ],
213
+ description: 'Type of code to generate',
214
+ },
215
+ name: {
216
+ type: 'string',
217
+ description: 'Entity name (e.g., User, Post)',
218
+ },
219
+ crud: {
220
+ type: 'boolean',
221
+ description: 'Generate full CRUD operations',
222
+ },
223
+ dryRun: {
224
+ type: 'boolean',
225
+ description: 'Preview without writing files',
226
+ },
227
+ },
228
+ required: ['type', 'name'],
229
+ },
230
+ },
231
+ {
232
+ name: 'velox_migrate',
233
+ description: 'Run database migrations',
234
+ inputSchema: {
235
+ type: 'object',
236
+ properties: {
237
+ action: {
238
+ type: 'string',
239
+ enum: ['status', 'run', 'rollback', 'fresh', 'reset'],
240
+ description: 'Migration action to perform',
241
+ },
242
+ dev: {
243
+ type: 'boolean',
244
+ description: 'Development mode (creates migration from schema diff)',
245
+ },
246
+ dryRun: {
247
+ type: 'boolean',
248
+ description: 'Preview without executing',
249
+ },
250
+ },
251
+ required: ['action'],
252
+ },
253
+ },
254
+ ],
255
+ };
256
+ });
257
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
258
+ const { name, arguments: args } = request.params;
259
+ log(`Calling tool: ${name}`);
260
+ switch (name) {
261
+ case 'velox_generate': {
262
+ // Validate arguments with Zod
263
+ const parsed = GenerateArgsSchema.safeParse(args);
264
+ if (!parsed.success) {
265
+ const errors = parsed.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`);
266
+ return {
267
+ content: [
268
+ {
269
+ type: 'text',
270
+ text: `Invalid arguments for velox_generate:\n${errors.join('\n')}`,
271
+ },
272
+ ],
273
+ isError: true,
274
+ };
275
+ }
276
+ const result = await generate({
277
+ type: parsed.data.type,
278
+ name: parsed.data.name,
279
+ crud: parsed.data.crud,
280
+ dryRun: parsed.data.dryRun,
281
+ json: true,
282
+ });
283
+ return {
284
+ content: [
285
+ {
286
+ type: 'text',
287
+ text: formatGenerateResult(result),
288
+ },
289
+ ],
290
+ isError: !result.success,
291
+ };
292
+ }
293
+ case 'velox_migrate': {
294
+ // Validate arguments with Zod
295
+ const parsed = MigrateArgsSchema.safeParse(args);
296
+ if (!parsed.success) {
297
+ const errors = parsed.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`);
298
+ return {
299
+ content: [
300
+ {
301
+ type: 'text',
302
+ text: `Invalid arguments for velox_migrate:\n${errors.join('\n')}`,
303
+ },
304
+ ],
305
+ isError: true,
306
+ };
307
+ }
308
+ const result = await migrate({
309
+ action: parsed.data.action,
310
+ dev: parsed.data.dev,
311
+ dryRun: parsed.data.dryRun,
312
+ json: true,
313
+ });
314
+ return {
315
+ content: [
316
+ {
317
+ type: 'text',
318
+ text: formatMigrateResult(result),
319
+ },
320
+ ],
321
+ isError: !result.success,
322
+ };
323
+ }
324
+ default:
325
+ throw new Error(`Unknown tool: ${name}`);
326
+ }
327
+ });
328
+ // ===========================================================================
329
+ // Prompts
330
+ // ===========================================================================
331
+ server.setRequestHandler(ListPromptsRequestSchema, async () => {
332
+ log('Listing prompts');
333
+ const prompts = listPromptTemplates();
334
+ return {
335
+ prompts: prompts.map((p) => ({
336
+ name: p.name,
337
+ description: p.description,
338
+ })),
339
+ };
340
+ });
341
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
342
+ const { name } = request.params;
343
+ log(`Getting prompt: ${name}`);
344
+ const template = getPromptTemplate(name);
345
+ if (!template) {
346
+ throw new Error(`Unknown prompt: ${name}`);
347
+ }
348
+ return {
349
+ description: template.description,
350
+ messages: [
351
+ {
352
+ role: 'user',
353
+ content: {
354
+ type: 'text',
355
+ text: template.content,
356
+ },
357
+ },
358
+ ],
359
+ };
360
+ });
361
+ return server;
362
+ }
363
+ /**
364
+ * Run the MCP server with stdio transport
365
+ */
366
+ export async function runMCPServer(options = {}) {
367
+ const server = createVeloxMCPServer(options);
368
+ const transport = new StdioServerTransport();
369
+ await server.connect(transport);
370
+ }
371
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Generate Tool
3
+ *
4
+ * Wraps `velox make` commands for AI tool invocation.
5
+ */
6
+ /**
7
+ * Generator types available via `velox make`
8
+ */
9
+ export type GeneratorType = 'procedure' | 'schema' | 'model' | 'migration' | 'test' | 'resource' | 'seeder' | 'factory';
10
+ /**
11
+ * Generator options
12
+ */
13
+ export interface GenerateOptions {
14
+ /** Generator type */
15
+ type: GeneratorType;
16
+ /** Entity name (e.g., 'User', 'Post') */
17
+ name: string;
18
+ /** Generate full CRUD operations */
19
+ crud?: boolean;
20
+ /** Include pagination for list */
21
+ paginated?: boolean;
22
+ /** Add soft delete support */
23
+ softDelete?: boolean;
24
+ /** Include timestamps */
25
+ timestamps?: boolean;
26
+ /** Force overwrite existing files */
27
+ force?: boolean;
28
+ /** Dry run - preview without writing */
29
+ dryRun?: boolean;
30
+ /** Output as JSON */
31
+ json?: boolean;
32
+ }
33
+ /**
34
+ * Generate tool result
35
+ */
36
+ export interface GenerateResult {
37
+ success: boolean;
38
+ type: GeneratorType;
39
+ name: string;
40
+ files?: string[];
41
+ output?: string;
42
+ error?: string;
43
+ }
44
+ /**
45
+ * Execute velox make command
46
+ */
47
+ export declare function generate(options: GenerateOptions): Promise<GenerateResult>;
48
+ /**
49
+ * Generate a procedure
50
+ */
51
+ export declare function generateProcedure(name: string, options?: Partial<Omit<GenerateOptions, 'type' | 'name'>>): Promise<GenerateResult>;
52
+ /**
53
+ * Generate a schema
54
+ */
55
+ export declare function generateSchema(name: string, options?: Partial<Omit<GenerateOptions, 'type' | 'name'>>): Promise<GenerateResult>;
56
+ /**
57
+ * Generate a full resource (procedure + schema + model)
58
+ */
59
+ export declare function generateResource(name: string, options?: Partial<Omit<GenerateOptions, 'type' | 'name'>>): Promise<GenerateResult>;
60
+ /**
61
+ * Format generate result as text
62
+ */
63
+ export declare function formatGenerateResult(result: GenerateResult): string;
64
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,QAAQ,GACR,OAAO,GACP,WAAW,GACX,MAAM,GACN,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuBD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAgFhF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GACxD,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GACxD,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GACxD,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAanE"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Generate Tool
3
+ *
4
+ * Wraps `velox make` commands for AI tool invocation.
5
+ */
6
+ import { spawn } from 'node:child_process';
7
+ import { z } from 'zod';
8
+ import { findProjectRoot } from '../utils/project.js';
9
+ // ============================================================================
10
+ // Output Validation Schemas
11
+ // ============================================================================
12
+ /**
13
+ * Schema for velox make JSON output
14
+ */
15
+ const GenerateOutputSchema = z.object({
16
+ files: z.array(z.string()).optional(),
17
+ success: z.boolean().optional(),
18
+ message: z.string().optional(),
19
+ });
20
+ // ============================================================================
21
+ // Tool Handler
22
+ // ============================================================================
23
+ /**
24
+ * Build CLI arguments for velox make command
25
+ */
26
+ function buildArgs(options) {
27
+ const args = ['make', options.type, options.name];
28
+ if (options.crud)
29
+ args.push('--crud');
30
+ if (options.paginated)
31
+ args.push('--paginated');
32
+ if (options.softDelete)
33
+ args.push('--soft-delete');
34
+ if (options.timestamps)
35
+ args.push('--timestamps');
36
+ if (options.force)
37
+ args.push('--force');
38
+ if (options.dryRun)
39
+ args.push('--dry-run');
40
+ if (options.json)
41
+ args.push('--json');
42
+ return args;
43
+ }
44
+ /**
45
+ * Execute velox make command
46
+ */
47
+ export async function generate(options) {
48
+ const projectRoot = findProjectRoot();
49
+ if (!projectRoot) {
50
+ return {
51
+ success: false,
52
+ type: options.type,
53
+ name: options.name,
54
+ error: 'Not in a VeloxTS project. Run this command from your project root.',
55
+ };
56
+ }
57
+ const args = buildArgs(options);
58
+ return new Promise((resolve) => {
59
+ const child = spawn('npx', ['velox', ...args], {
60
+ cwd: projectRoot,
61
+ shell: true,
62
+ stdio: ['pipe', 'pipe', 'pipe'],
63
+ });
64
+ let stdout = '';
65
+ let stderr = '';
66
+ child.stdout?.on('data', (data) => {
67
+ stdout += data.toString();
68
+ });
69
+ child.stderr?.on('data', (data) => {
70
+ stderr += data.toString();
71
+ });
72
+ child.on('close', (code) => {
73
+ if (code === 0) {
74
+ // Try to parse and validate JSON output if requested
75
+ if (options.json) {
76
+ try {
77
+ const jsonData = JSON.parse(stdout);
78
+ const parsed = GenerateOutputSchema.safeParse(jsonData);
79
+ if (parsed.success) {
80
+ resolve({
81
+ success: true,
82
+ type: options.type,
83
+ name: options.name,
84
+ files: parsed.data.files,
85
+ output: stdout,
86
+ });
87
+ return;
88
+ }
89
+ // Invalid JSON structure - fall through to plain output
90
+ }
91
+ catch {
92
+ // JSON parse failed - fall through to plain output
93
+ }
94
+ }
95
+ resolve({
96
+ success: true,
97
+ type: options.type,
98
+ name: options.name,
99
+ output: stdout,
100
+ });
101
+ }
102
+ else {
103
+ resolve({
104
+ success: false,
105
+ type: options.type,
106
+ name: options.name,
107
+ error: stderr || stdout || `Command failed with exit code ${code}`,
108
+ });
109
+ }
110
+ });
111
+ child.on('error', (err) => {
112
+ resolve({
113
+ success: false,
114
+ type: options.type,
115
+ name: options.name,
116
+ error: err.message,
117
+ });
118
+ });
119
+ });
120
+ }
121
+ /**
122
+ * Generate a procedure
123
+ */
124
+ export async function generateProcedure(name, options) {
125
+ return generate({ type: 'procedure', name, ...options });
126
+ }
127
+ /**
128
+ * Generate a schema
129
+ */
130
+ export async function generateSchema(name, options) {
131
+ return generate({ type: 'schema', name, ...options });
132
+ }
133
+ /**
134
+ * Generate a full resource (procedure + schema + model)
135
+ */
136
+ export async function generateResource(name, options) {
137
+ return generate({ type: 'resource', name, crud: true, ...options });
138
+ }
139
+ /**
140
+ * Format generate result as text
141
+ */
142
+ export function formatGenerateResult(result) {
143
+ if (result.success) {
144
+ const lines = [`Generated ${result.type}: ${result.name}`];
145
+ if (result.files?.length) {
146
+ lines.push('', 'Created files:');
147
+ for (const file of result.files) {
148
+ lines.push(` - ${file}`);
149
+ }
150
+ }
151
+ return lines.join('\n');
152
+ }
153
+ return `Failed to generate ${result.type} "${result.name}": ${result.error}`;
154
+ }
155
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * MCP Tools
3
+ *
4
+ * Tools provide actions that AI assistants can invoke.
5
+ */
6
+ export type { GenerateOptions, GenerateResult, GeneratorType } from './generate.js';
7
+ export { formatGenerateResult, generate, generateProcedure, generateResource, generateSchema, } from './generate.js';
8
+ export type { MigrateAction, MigrateOptions, MigrateResult, MigrationInfo } from './migrate.js';
9
+ export { formatMigrateResult, migrate, migrateFresh, migrateReset, migrateRollback, migrateRun, migrateStatus, } from './migrate.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP Tools
3
+ *
4
+ * Tools provide actions that AI assistants can invoke.
5
+ */
6
+ export { formatGenerateResult, generate, generateProcedure, generateResource, generateSchema, } from './generate.js';
7
+ export { formatMigrateResult, migrate, migrateFresh, migrateReset, migrateRollback, migrateRun, migrateStatus, } from './migrate.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,cAAc,CAAC"}