@visualprd/mcp-server 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +396 -0
  2. package/dist/cli.d.ts +9 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +27 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/index.d.ts +20 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +243 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/intelligence/context-optimizer.d.ts +93 -0
  11. package/dist/intelligence/context-optimizer.d.ts.map +1 -0
  12. package/dist/intelligence/context-optimizer.js +481 -0
  13. package/dist/intelligence/context-optimizer.js.map +1 -0
  14. package/dist/intelligence/error-analyzer.d.ts +49 -0
  15. package/dist/intelligence/error-analyzer.d.ts.map +1 -0
  16. package/dist/intelligence/error-analyzer.js +765 -0
  17. package/dist/intelligence/error-analyzer.js.map +1 -0
  18. package/dist/intelligence/gap-filler.d.ts +56 -0
  19. package/dist/intelligence/gap-filler.d.ts.map +1 -0
  20. package/dist/intelligence/gap-filler.js +410 -0
  21. package/dist/intelligence/gap-filler.js.map +1 -0
  22. package/dist/intelligence/guidance-generator.d.ts +43 -0
  23. package/dist/intelligence/guidance-generator.d.ts.map +1 -0
  24. package/dist/intelligence/guidance-generator.js +314 -0
  25. package/dist/intelligence/guidance-generator.js.map +1 -0
  26. package/dist/intelligence/index.d.ts +132 -0
  27. package/dist/intelligence/index.d.ts.map +1 -0
  28. package/dist/intelligence/index.js +683 -0
  29. package/dist/intelligence/index.js.map +1 -0
  30. package/dist/server-http.d.ts +9 -0
  31. package/dist/server-http.d.ts.map +1 -0
  32. package/dist/server-http.js +141 -0
  33. package/dist/server-http.js.map +1 -0
  34. package/dist/services/api-key-service.d.ts +68 -0
  35. package/dist/services/api-key-service.d.ts.map +1 -0
  36. package/dist/services/api-key-service.js +298 -0
  37. package/dist/services/api-key-service.js.map +1 -0
  38. package/dist/services/llm-client.d.ts +66 -0
  39. package/dist/services/llm-client.d.ts.map +1 -0
  40. package/dist/services/llm-client.js +141 -0
  41. package/dist/services/llm-client.js.map +1 -0
  42. package/dist/services/model-registry.d.ts +135 -0
  43. package/dist/services/model-registry.d.ts.map +1 -0
  44. package/dist/services/model-registry.js +276 -0
  45. package/dist/services/model-registry.js.map +1 -0
  46. package/dist/services/visualprd-client.d.ts +191 -0
  47. package/dist/services/visualprd-client.d.ts.map +1 -0
  48. package/dist/services/visualprd-client.js +805 -0
  49. package/dist/services/visualprd-client.js.map +1 -0
  50. package/dist/tools/index.d.ts +803 -0
  51. package/dist/tools/index.d.ts.map +1 -0
  52. package/dist/tools/index.js +570 -0
  53. package/dist/tools/index.js.map +1 -0
  54. package/dist/types/index.d.ts +497 -0
  55. package/dist/types/index.d.ts.map +1 -0
  56. package/dist/types/index.js +8 -0
  57. package/dist/types/index.js.map +1 -0
  58. package/package.json +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAgB7D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFvB,CAAC;AAGF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgS3B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAoB;gBAE5B,YAAY,EAAE,iBAAiB;IAIrC,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC;YA+CD,iBAAiB;YAKjB,kBAAkB;YASlB,iBAAiB;YAYjB,eAAe;YAYf,yBAAyB;YASzB,gBAAgB;YAYhB,iBAAiB;YAKjB,qBAAqB;YA2BrB,sBAAsB;YAStB,yBAAyB;YAczB,mBAAmB;YA0BnB,gBAAgB;YAwChB,mBAAmB;CAIlC"}
@@ -0,0 +1,570 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Tools
4
+ *
5
+ * Defines the tools exposed to AI agents via the MCP protocol.
6
+ * Each tool has a schema definition and handler function.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ToolHandlers = exports.ToolDefinitions = exports.ToolSchemas = void 0;
10
+ const zod_1 = require("zod");
11
+ // Tool schemas using Zod for validation
12
+ exports.ToolSchemas = {
13
+ get_next_build_step: zod_1.z.object({
14
+ skipCompleted: zod_1.z.boolean().optional().describe('Skip already completed steps'),
15
+ preferCategory: zod_1.z.enum(['scaffold', 'database', 'pages', 'integration', 'testing', 'deployment', 'feature', 'bugfix'])
16
+ .optional()
17
+ .describe('Prefer steps from this category'),
18
+ }),
19
+ mark_step_complete: zod_1.z.object({
20
+ promptId: zod_1.z.string().describe('ID of the prompt/step to mark complete'),
21
+ completionNotes: zod_1.z.string().optional().describe('Notes about how the step was completed'),
22
+ filesCreated: zod_1.z.array(zod_1.z.string()).optional().describe('List of files created during this step'),
23
+ testResults: zod_1.z.object({
24
+ passed: zod_1.z.number(),
25
+ failed: zod_1.z.number(),
26
+ skipped: zod_1.z.number().optional(),
27
+ }).optional().describe('Test results if tests were run'),
28
+ }),
29
+ report_error: zod_1.z.object({
30
+ promptId: zod_1.z.string().describe('ID of the prompt where error occurred'),
31
+ errorType: zod_1.z.enum(['compile_error', 'runtime_error', 'test_failure', 'missing_dependency', 'other'])
32
+ .describe('Type of error'),
33
+ errorMessage: zod_1.z.string().describe('The error message'),
34
+ stackTrace: zod_1.z.string().optional().describe('Stack trace if available'),
35
+ context: zod_1.z.string().optional().describe('Additional context about what you were doing'),
36
+ affectedFiles: zod_1.z.array(zod_1.z.string()).optional().describe('Files affected by this error'),
37
+ }),
38
+ get_entity_details: zod_1.z.object({
39
+ entityType: zod_1.z.enum(['page', 'schema', 'endpoint', 'tech']).describe('Type of entity to fetch'),
40
+ entityId: zod_1.z.string().describe('ID or name of the entity'),
41
+ includeRelationships: zod_1.z.boolean().optional().describe('Include relationship information'),
42
+ includeUsageExamples: zod_1.z.boolean().optional().describe('Include code usage examples'),
43
+ }),
44
+ get_debug_suggestions: zod_1.z.object({
45
+ currentTask: zod_1.z.string().describe('What you are trying to accomplish'),
46
+ issue: zod_1.z.string().describe('The problem you are facing'),
47
+ context: zod_1.z.string().optional().describe('Additional context'),
48
+ attemptedSolutions: zod_1.z.array(zod_1.z.string()).optional().describe('What you have already tried'),
49
+ }),
50
+ inject_dynamic_step: zod_1.z.object({
51
+ insertAfter: zod_1.z.string().describe('Prompt ID to insert after'),
52
+ title: zod_1.z.string().describe('Title of the new step'),
53
+ category: zod_1.z.enum(['scaffold', 'database', 'pages', 'integration', 'testing', 'deployment', 'feature', 'bugfix'])
54
+ .describe('Category of the step'),
55
+ reason: zod_1.z.string().describe('Why this step is needed'),
56
+ instruction: zod_1.z.string().describe('Detailed instructions for the step'),
57
+ relatedEntities: zod_1.z.array(zod_1.z.string()).optional().describe('Related entity IDs'),
58
+ estimatedMinutes: zod_1.z.number().optional().describe('Estimated time to complete'),
59
+ dependsOn: zod_1.z.array(zod_1.z.string()).optional().describe('IDs of steps this depends on'),
60
+ }),
61
+ get_build_progress: zod_1.z.object({}),
62
+ get_design_system: zod_1.z.object({
63
+ section: zod_1.z.enum(['all', 'colors', 'typography', 'spacing', 'components'])
64
+ .optional()
65
+ .describe('Specific section to fetch'),
66
+ }),
67
+ set_thinking_model: zod_1.z.object({
68
+ model: zod_1.z.string().describe('OpenRouter model ID (e.g., "anthropic/claude-3.5-sonnet", "openai/gpt-4o")'),
69
+ }),
70
+ set_intelligence_mode: zod_1.z.object({
71
+ mode: zod_1.z.enum(['fast', 'deep']).describe('Intelligence mode: fast (rule-based) or deep (AI-powered)'),
72
+ }),
73
+ // ============================================================================
74
+ // V2 Tools - Autonomous Validation Workflow
75
+ // ============================================================================
76
+ get_next_step_v2: zod_1.z.object({}).describe('Get next step with structured testCriteria for v9-mega projects'),
77
+ submit_work: zod_1.z.object({
78
+ promptId: zod_1.z.string().describe('ID of the prompt/step being submitted'),
79
+ summary: zod_1.z.string().describe('Summary of work completed'),
80
+ filesCreated: zod_1.z.array(zod_1.z.string()).optional().describe('List of files created'),
81
+ errorsEncountered: zod_1.z.array(zod_1.z.string()).optional().describe('Any errors encountered during work'),
82
+ notesForReview: zod_1.z.string().optional().describe('Additional notes for validation'),
83
+ }),
84
+ get_build_progress_v2: zod_1.z.object({}).describe('Get build progress with flagged step counts'),
85
+ };
86
+ // Tool definitions for MCP protocol
87
+ exports.ToolDefinitions = [
88
+ {
89
+ name: 'get_next_build_step',
90
+ description: 'Get the next build step to work on, including full context (related pages, schemas, endpoints) and intelligent guidance. Use this when starting work or after completing a step.',
91
+ inputSchema: {
92
+ type: 'object',
93
+ properties: {
94
+ skipCompleted: {
95
+ type: 'boolean',
96
+ description: 'Skip already completed steps',
97
+ },
98
+ preferCategory: {
99
+ type: 'string',
100
+ enum: ['scaffold', 'database', 'pages', 'integration', 'testing', 'deployment', 'feature', 'bugfix'],
101
+ description: 'Prefer steps from this category',
102
+ },
103
+ },
104
+ },
105
+ },
106
+ {
107
+ name: 'mark_step_complete',
108
+ description: 'Mark the current build step as complete. Include details about files created and test results. Automatically fetches the next step.',
109
+ inputSchema: {
110
+ type: 'object',
111
+ properties: {
112
+ promptId: {
113
+ type: 'string',
114
+ description: 'ID of the prompt/step to mark complete',
115
+ },
116
+ completionNotes: {
117
+ type: 'string',
118
+ description: 'Notes about how the step was completed',
119
+ },
120
+ filesCreated: {
121
+ type: 'array',
122
+ items: { type: 'string' },
123
+ description: 'List of files created during this step',
124
+ },
125
+ testResults: {
126
+ type: 'object',
127
+ properties: {
128
+ passed: { type: 'number' },
129
+ failed: { type: 'number' },
130
+ skipped: { type: 'number' },
131
+ },
132
+ description: 'Test results if tests were run',
133
+ },
134
+ },
135
+ required: ['promptId'],
136
+ },
137
+ },
138
+ {
139
+ name: 'report_error',
140
+ description: 'Report an error encountered during building. Get intelligent diagnosis, suggested fixes, and potentially have new corrective steps injected.',
141
+ inputSchema: {
142
+ type: 'object',
143
+ properties: {
144
+ promptId: {
145
+ type: 'string',
146
+ description: 'ID of the prompt where error occurred',
147
+ },
148
+ errorType: {
149
+ type: 'string',
150
+ enum: ['compile_error', 'runtime_error', 'test_failure', 'missing_dependency', 'other'],
151
+ description: 'Type of error',
152
+ },
153
+ errorMessage: {
154
+ type: 'string',
155
+ description: 'The error message',
156
+ },
157
+ stackTrace: {
158
+ type: 'string',
159
+ description: 'Stack trace if available',
160
+ },
161
+ context: {
162
+ type: 'string',
163
+ description: 'Additional context about what you were doing',
164
+ },
165
+ affectedFiles: {
166
+ type: 'array',
167
+ items: { type: 'string' },
168
+ description: 'Files affected by this error',
169
+ },
170
+ },
171
+ required: ['promptId', 'errorType', 'errorMessage'],
172
+ },
173
+ },
174
+ {
175
+ name: 'get_entity_details',
176
+ description: 'Get detailed information about a specific entity (page, schema, endpoint, or tech stack item). Use when you need full specs for a specific item.',
177
+ inputSchema: {
178
+ type: 'object',
179
+ properties: {
180
+ entityType: {
181
+ type: 'string',
182
+ enum: ['page', 'schema', 'endpoint', 'tech'],
183
+ description: 'Type of entity to fetch',
184
+ },
185
+ entityId: {
186
+ type: 'string',
187
+ description: 'ID or name of the entity',
188
+ },
189
+ includeRelationships: {
190
+ type: 'boolean',
191
+ description: 'Include relationship information',
192
+ },
193
+ includeUsageExamples: {
194
+ type: 'boolean',
195
+ description: 'Include code usage examples',
196
+ },
197
+ },
198
+ required: ['entityType', 'entityId'],
199
+ },
200
+ },
201
+ {
202
+ name: 'get_debug_suggestions',
203
+ description: 'Get AI-powered suggestions when you are stuck on a problem. Provides debugging approaches and relevant context.',
204
+ inputSchema: {
205
+ type: 'object',
206
+ properties: {
207
+ currentTask: {
208
+ type: 'string',
209
+ description: 'What you are trying to accomplish',
210
+ },
211
+ issue: {
212
+ type: 'string',
213
+ description: 'The problem you are facing',
214
+ },
215
+ context: {
216
+ type: 'string',
217
+ description: 'Additional context',
218
+ },
219
+ attemptedSolutions: {
220
+ type: 'array',
221
+ items: { type: 'string' },
222
+ description: 'What you have already tried',
223
+ },
224
+ },
225
+ required: ['currentTask', 'issue'],
226
+ },
227
+ },
228
+ {
229
+ name: 'inject_dynamic_step',
230
+ description: 'Inject a new build step when you identify missing functionality or need to address an unexpected issue.',
231
+ inputSchema: {
232
+ type: 'object',
233
+ properties: {
234
+ insertAfter: {
235
+ type: 'string',
236
+ description: 'Prompt ID to insert after',
237
+ },
238
+ title: {
239
+ type: 'string',
240
+ description: 'Title of the new step',
241
+ },
242
+ category: {
243
+ type: 'string',
244
+ enum: ['scaffold', 'database', 'pages', 'integration', 'testing', 'deployment', 'feature', 'bugfix'],
245
+ description: 'Category of the step',
246
+ },
247
+ reason: {
248
+ type: 'string',
249
+ description: 'Why this step is needed',
250
+ },
251
+ instruction: {
252
+ type: 'string',
253
+ description: 'Detailed instructions for the step',
254
+ },
255
+ relatedEntities: {
256
+ type: 'array',
257
+ items: { type: 'string' },
258
+ description: 'Related entity IDs',
259
+ },
260
+ estimatedMinutes: {
261
+ type: 'number',
262
+ description: 'Estimated time to complete',
263
+ },
264
+ dependsOn: {
265
+ type: 'array',
266
+ items: { type: 'string' },
267
+ description: 'IDs of steps this depends on',
268
+ },
269
+ },
270
+ required: ['insertAfter', 'title', 'category', 'reason', 'instruction'],
271
+ },
272
+ },
273
+ {
274
+ name: 'get_build_progress',
275
+ description: 'Get current build progress statistics (completed steps, total steps, percentage).',
276
+ inputSchema: {
277
+ type: 'object',
278
+ properties: {},
279
+ },
280
+ },
281
+ {
282
+ name: 'get_design_system',
283
+ description: 'Get the project\'s design system (colors, typography, spacing, component patterns).',
284
+ inputSchema: {
285
+ type: 'object',
286
+ properties: {
287
+ section: {
288
+ type: 'string',
289
+ enum: ['all', 'colors', 'typography', 'spacing', 'components'],
290
+ description: 'Specific section to fetch',
291
+ },
292
+ },
293
+ },
294
+ },
295
+ {
296
+ name: 'set_thinking_model',
297
+ description: 'Set the AI thinking model for intelligent guidance. Requires OPENROUTER_API_KEY to be configured.',
298
+ inputSchema: {
299
+ type: 'object',
300
+ properties: {
301
+ model: {
302
+ type: 'string',
303
+ description: 'OpenRouter model ID (e.g., "anthropic/claude-3.5-sonnet", "openai/gpt-4o")',
304
+ },
305
+ },
306
+ required: ['model'],
307
+ },
308
+ },
309
+ {
310
+ name: 'set_intelligence_mode',
311
+ description: 'Set the intelligence mode: "fast" uses rule-based logic (free), "deep" uses AI-powered guidance (uses tokens).',
312
+ inputSchema: {
313
+ type: 'object',
314
+ properties: {
315
+ mode: {
316
+ type: 'string',
317
+ enum: ['fast', 'deep'],
318
+ description: 'Intelligence mode',
319
+ },
320
+ },
321
+ required: ['mode'],
322
+ },
323
+ },
324
+ // ============================================================================
325
+ // V2 Tools - Autonomous Validation Workflow
326
+ // ============================================================================
327
+ {
328
+ name: 'get_next_step_v2',
329
+ description: 'Get the next build step with V2 format including structured testCriteria. Use this for v9-mega projects. Returns step with criterion, type, verification, and expectedResult for each test.',
330
+ inputSchema: {
331
+ type: 'object',
332
+ properties: {},
333
+ },
334
+ },
335
+ {
336
+ name: 'submit_work',
337
+ description: 'Submit completed work for AI validation. The system will validate against testCriteria and either approve, request corrections, or flag for human review after 3 failed attempts.',
338
+ inputSchema: {
339
+ type: 'object',
340
+ properties: {
341
+ promptId: {
342
+ type: 'string',
343
+ description: 'ID of the prompt/step being submitted',
344
+ },
345
+ summary: {
346
+ type: 'string',
347
+ description: 'Summary of work completed',
348
+ },
349
+ filesCreated: {
350
+ type: 'array',
351
+ items: { type: 'string' },
352
+ description: 'List of files created',
353
+ },
354
+ errorsEncountered: {
355
+ type: 'array',
356
+ items: { type: 'string' },
357
+ description: 'Any errors encountered during work',
358
+ },
359
+ notesForReview: {
360
+ type: 'string',
361
+ description: 'Additional notes for validation',
362
+ },
363
+ },
364
+ required: ['promptId', 'summary'],
365
+ },
366
+ },
367
+ {
368
+ name: 'get_build_progress_v2',
369
+ description: 'Get V2 build progress including flagged step counts. Returns total, completed, flagged, remaining, and next step.',
370
+ inputSchema: {
371
+ type: 'object',
372
+ properties: {},
373
+ },
374
+ },
375
+ ];
376
+ /**
377
+ * Tool Handlers
378
+ *
379
+ * Execute tool requests using the Intelligence Layer
380
+ */
381
+ class ToolHandlers {
382
+ intelligence;
383
+ constructor(intelligence) {
384
+ this.intelligence = intelligence;
385
+ }
386
+ async handleToolCall(toolName, args) {
387
+ switch (toolName) {
388
+ case 'get_next_build_step':
389
+ return this.handleGetNextStep(args);
390
+ case 'mark_step_complete':
391
+ return this.handleMarkComplete(args);
392
+ case 'report_error':
393
+ return this.handleReportError(args);
394
+ case 'get_entity_details':
395
+ return this.handleGetEntity(args);
396
+ case 'get_debug_suggestions':
397
+ return this.handleGetDebugSuggestions(args);
398
+ case 'inject_dynamic_step':
399
+ return this.handleInjectStep(args);
400
+ case 'get_build_progress':
401
+ return this.handleGetProgress();
402
+ case 'get_design_system':
403
+ return this.handleGetDesignSystem(args);
404
+ case 'set_thinking_model':
405
+ return this.handleSetThinkingModel(args);
406
+ case 'set_intelligence_mode':
407
+ return this.handleSetIntelligenceMode(args);
408
+ // V2 Tools - Autonomous Validation Workflow
409
+ case 'get_next_step_v2':
410
+ return this.handleGetNextStepV2();
411
+ case 'submit_work':
412
+ return this.handleSubmitWork(args);
413
+ case 'get_build_progress_v2':
414
+ return this.handleGetProgressV2();
415
+ default:
416
+ throw new Error(`Unknown tool: ${toolName}`);
417
+ }
418
+ }
419
+ async handleGetNextStep(args) {
420
+ const validated = exports.ToolSchemas.get_next_build_step.parse(args);
421
+ return this.intelligence.getNextBuildStep();
422
+ }
423
+ async handleMarkComplete(args) {
424
+ const validated = exports.ToolSchemas.mark_step_complete.parse(args);
425
+ return this.intelligence.markStepComplete(validated.promptId, {
426
+ completionNotes: validated.completionNotes,
427
+ filesCreated: validated.filesCreated,
428
+ testResults: validated.testResults,
429
+ });
430
+ }
431
+ async handleReportError(args) {
432
+ const validated = exports.ToolSchemas.report_error.parse(args);
433
+ return this.intelligence.analyzeError({
434
+ promptId: validated.promptId,
435
+ errorType: validated.errorType,
436
+ errorMessage: validated.errorMessage,
437
+ stackTrace: validated.stackTrace,
438
+ context: validated.context,
439
+ affectedFiles: validated.affectedFiles,
440
+ });
441
+ }
442
+ async handleGetEntity(args) {
443
+ const validated = exports.ToolSchemas.get_entity_details.parse(args);
444
+ return this.intelligence.getEntityDetails(validated.entityType, validated.entityId, {
445
+ includeRelationships: validated.includeRelationships,
446
+ includeUsageExamples: validated.includeUsageExamples,
447
+ });
448
+ }
449
+ async handleGetDebugSuggestions(args) {
450
+ const validated = exports.ToolSchemas.get_debug_suggestions.parse(args);
451
+ return this.intelligence.getDebugSuggestions(validated.currentTask, validated.issue, validated.context);
452
+ }
453
+ async handleInjectStep(args) {
454
+ const validated = exports.ToolSchemas.inject_dynamic_step.parse(args);
455
+ return this.intelligence.injectDynamicStep(validated.insertAfter, {
456
+ title: validated.title,
457
+ category: validated.category,
458
+ reason: validated.reason,
459
+ instruction: validated.instruction,
460
+ relatedEntities: validated.relatedEntities,
461
+ estimatedMinutes: validated.estimatedMinutes,
462
+ });
463
+ }
464
+ async handleGetProgress() {
465
+ const response = await this.intelligence.getNextBuildStep();
466
+ return response.buildProgress;
467
+ }
468
+ async handleGetDesignSystem(args) {
469
+ const validated = exports.ToolSchemas.get_design_system.parse(args);
470
+ const response = await this.intelligence.getNextBuildStep();
471
+ const designSystem = response.relatedEntities.designSystem;
472
+ if (!designSystem) {
473
+ return { message: 'No design system defined for this project' };
474
+ }
475
+ if (!validated.section || validated.section === 'all') {
476
+ return designSystem;
477
+ }
478
+ switch (validated.section) {
479
+ case 'colors':
480
+ return { colorPalette: designSystem.colorPalette };
481
+ case 'typography':
482
+ return { typography: designSystem.typography };
483
+ case 'spacing':
484
+ return { spacing: designSystem.spacing };
485
+ case 'components':
486
+ return { componentPatterns: designSystem.componentPatterns };
487
+ default:
488
+ return designSystem;
489
+ }
490
+ }
491
+ async handleSetThinkingModel(args) {
492
+ const validated = exports.ToolSchemas.set_thinking_model.parse(args);
493
+ this.intelligence.setThinkingModel(validated.model);
494
+ return {
495
+ success: true,
496
+ message: `Thinking model set to: ${validated.model}`,
497
+ };
498
+ }
499
+ async handleSetIntelligenceMode(args) {
500
+ const validated = exports.ToolSchemas.set_intelligence_mode.parse(args);
501
+ this.intelligence.setIntelligenceMode(validated.mode);
502
+ return {
503
+ success: true,
504
+ message: `Intelligence mode set to: ${validated.mode}`,
505
+ mode: validated.mode,
506
+ };
507
+ }
508
+ // ============================================================================
509
+ // V2 Handlers - Autonomous Validation Workflow
510
+ // ============================================================================
511
+ async handleGetNextStepV2() {
512
+ const client = this.intelligence.getClient();
513
+ const instruction = await client.getNextBuildInstructionV2();
514
+ const progress = await client.getBuildProgressV2();
515
+ if (!instruction) {
516
+ return {
517
+ step: null,
518
+ progress,
519
+ message: progress.completed === progress.total
520
+ ? '🎉 All build steps completed!'
521
+ : `No available steps. ${progress.flagged} step(s) flagged for human review.`,
522
+ };
523
+ }
524
+ return {
525
+ step: instruction,
526
+ progress,
527
+ message: `Step ${instruction.promptNumber}: ${instruction.title}`,
528
+ };
529
+ }
530
+ async handleSubmitWork(args) {
531
+ const validated = exports.ToolSchemas.submit_work.parse(args);
532
+ const client = this.intelligence.getClient();
533
+ // For the local NPM package, we do simpler validation
534
+ // The full AI validation happens in Cloud Run MCP
535
+ // Here we just mark complete and return success
536
+ const success = await client.markInstructionCompleteV2(validated.promptId, {
537
+ completionNotes: validated.summary,
538
+ filesCreated: validated.filesCreated,
539
+ validationSummary: `Local submission: ${validated.summary}`,
540
+ });
541
+ if (!success) {
542
+ return {
543
+ verdict: 'NEEDS_CORRECTION',
544
+ message: `Failed to mark step ${validated.promptId} as complete. The step may not exist.`,
545
+ nextAction: 'Verify the promptId is correct and try again.',
546
+ };
547
+ }
548
+ const progress = await client.getBuildProgressV2();
549
+ return {
550
+ verdict: 'APPROVED',
551
+ message: 'Work submitted and approved.',
552
+ validationSummary: validated.summary,
553
+ progress: {
554
+ total: progress.total,
555
+ completed: progress.completed,
556
+ remaining: progress.remaining,
557
+ completionPercentage: progress.completionPercentage,
558
+ },
559
+ nextAction: progress.nextStep
560
+ ? `Proceed to step ${progress.nextStep.promptNumber}: ${progress.nextStep.title}`
561
+ : 'All steps completed!',
562
+ };
563
+ }
564
+ async handleGetProgressV2() {
565
+ const client = this.intelligence.getClient();
566
+ return client.getBuildProgressV2();
567
+ }
568
+ }
569
+ exports.ToolHandlers = ToolHandlers;
570
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}