mycontext-cli 4.2.8 → 4.2.11

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 (132) hide show
  1. package/README.md +13 -4
  2. package/dist/README.md +13 -4
  3. package/dist/agents/implementations/ArchitectAgent.js.map +1 -1
  4. package/dist/agents/implementations/BuildStrategyAgent.js.map +1 -1
  5. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  6. package/dist/agents/implementations/DemoRecorderAgent.d.ts +73 -0
  7. package/dist/agents/implementations/DemoRecorderAgent.d.ts.map +1 -0
  8. package/dist/agents/implementations/DemoRecorderAgent.js +485 -0
  9. package/dist/agents/implementations/DemoRecorderAgent.js.map +1 -0
  10. package/dist/agents/implementations/DesignPipelineAgent.d.ts +4 -0
  11. package/dist/agents/implementations/DesignPipelineAgent.d.ts.map +1 -1
  12. package/dist/agents/implementations/DesignPipelineAgent.js +82 -10
  13. package/dist/agents/implementations/DesignPipelineAgent.js.map +1 -1
  14. package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
  15. package/dist/agents/implementations/FeaturePlannerAgent.d.ts +10 -0
  16. package/dist/agents/implementations/FeaturePlannerAgent.d.ts.map +1 -0
  17. package/dist/agents/implementations/FeaturePlannerAgent.js +35 -0
  18. package/dist/agents/implementations/FeaturePlannerAgent.js.map +1 -0
  19. package/dist/agents/implementations/QASubAgent.js.map +1 -1
  20. package/dist/agents/implementations/SecurityAgent.js.map +1 -1
  21. package/dist/agents/implementations/VOScriptExtractorAgent.d.ts +84 -0
  22. package/dist/agents/implementations/VOScriptExtractorAgent.d.ts.map +1 -0
  23. package/dist/agents/implementations/VOScriptExtractorAgent.js +414 -0
  24. package/dist/agents/implementations/VOScriptExtractorAgent.js.map +1 -0
  25. package/dist/agents/implementations/VisionNavigatorAgent.d.ts +52 -0
  26. package/dist/agents/implementations/VisionNavigatorAgent.d.ts.map +1 -0
  27. package/dist/agents/implementations/VisionNavigatorAgent.js +313 -0
  28. package/dist/agents/implementations/VisionNavigatorAgent.js.map +1 -0
  29. package/dist/agents/implementations/VisionTestCoordinator.d.ts +51 -0
  30. package/dist/agents/implementations/VisionTestCoordinator.d.ts.map +1 -0
  31. package/dist/agents/implementations/VisionTestCoordinator.js +348 -0
  32. package/dist/agents/implementations/VisionTestCoordinator.js.map +1 -0
  33. package/dist/agents/implementations/VisualValidatorAgent.d.ts +83 -0
  34. package/dist/agents/implementations/VisualValidatorAgent.d.ts.map +1 -0
  35. package/dist/agents/implementations/VisualValidatorAgent.js +472 -0
  36. package/dist/agents/implementations/VisualValidatorAgent.js.map +1 -0
  37. package/dist/agents/orchestrator/SubAgentOrchestrator.js.map +1 -1
  38. package/dist/cli.js +3 -0
  39. package/dist/cli.js.map +1 -1
  40. package/dist/clients/ClaudeSDKClient.d.ts +4 -0
  41. package/dist/clients/ClaudeSDKClient.d.ts.map +1 -1
  42. package/dist/clients/ClaudeSDKClient.js +8 -0
  43. package/dist/clients/ClaudeSDKClient.js.map +1 -1
  44. package/dist/clients/MyContextAIClient.d.ts +4 -0
  45. package/dist/clients/MyContextAIClient.d.ts.map +1 -1
  46. package/dist/clients/MyContextAIClient.js +69 -0
  47. package/dist/clients/MyContextAIClient.js.map +1 -1
  48. package/dist/clients/ProviderChain.d.ts +1 -0
  49. package/dist/clients/ProviderChain.d.ts.map +1 -1
  50. package/dist/clients/ProviderChain.js +3 -0
  51. package/dist/clients/ProviderChain.js.map +1 -1
  52. package/dist/clients/XAIClient.d.ts +4 -0
  53. package/dist/clients/XAIClient.d.ts.map +1 -1
  54. package/dist/clients/XAIClient.js +8 -0
  55. package/dist/clients/XAIClient.js.map +1 -1
  56. package/dist/commands/agent.d.ts.map +1 -1
  57. package/dist/commands/agent.js +10 -1
  58. package/dist/commands/agent.js.map +1 -1
  59. package/dist/commands/init.d.ts.map +1 -1
  60. package/dist/commands/init.js +110 -204
  61. package/dist/commands/init.js.map +1 -1
  62. package/dist/commands/plan-feature.d.ts +3 -0
  63. package/dist/commands/plan-feature.d.ts.map +1 -0
  64. package/dist/commands/plan-feature.js +57 -0
  65. package/dist/commands/plan-feature.js.map +1 -0
  66. package/dist/commands/sanitize.d.ts.map +1 -1
  67. package/dist/commands/sanitize.js +95 -7
  68. package/dist/commands/sanitize.js.map +1 -1
  69. package/dist/commands/vision-test.d.ts +67 -0
  70. package/dist/commands/vision-test.d.ts.map +1 -0
  71. package/dist/commands/vision-test.js +347 -0
  72. package/dist/commands/vision-test.js.map +1 -0
  73. package/dist/core/ai/AICore.d.ts +13 -0
  74. package/dist/core/ai/AICore.d.ts.map +1 -1
  75. package/dist/core/ai/AICore.js +65 -0
  76. package/dist/core/ai/AICore.js.map +1 -1
  77. package/dist/doctor/rules/node-rules.d.ts.map +1 -1
  78. package/dist/doctor/rules/node-rules.js +41 -0
  79. package/dist/doctor/rules/node-rules.js.map +1 -1
  80. package/dist/interfaces/AIClient.d.ts +1 -0
  81. package/dist/interfaces/AIClient.d.ts.map +1 -1
  82. package/dist/interfaces/AIClient.js.map +1 -1
  83. package/dist/mcp/vision-test-runner.d.ts +57 -0
  84. package/dist/mcp/vision-test-runner.d.ts.map +1 -0
  85. package/dist/mcp/vision-test-runner.js +337 -0
  86. package/dist/mcp/vision-test-runner.js.map +1 -0
  87. package/dist/mcp/vision-testing-server.d.ts +38 -0
  88. package/dist/mcp/vision-testing-server.d.ts.map +1 -0
  89. package/dist/mcp/vision-testing-server.js +637 -0
  90. package/dist/mcp/vision-testing-server.js.map +1 -0
  91. package/dist/package.json +1 -1
  92. package/dist/services/ProjectScanner.d.ts.map +1 -1
  93. package/dist/services/ProjectScanner.js +8 -5
  94. package/dist/services/ProjectScanner.js.map +1 -1
  95. package/dist/services/gemini-vision.d.ts +3 -11
  96. package/dist/services/gemini-vision.d.ts.map +1 -1
  97. package/dist/services/gemini-vision.js +13 -132
  98. package/dist/services/gemini-vision.js.map +1 -1
  99. package/dist/services/llmClarifier.d.ts +9 -0
  100. package/dist/services/llmClarifier.d.ts.map +1 -0
  101. package/dist/services/llmClarifier.js +22 -0
  102. package/dist/services/llmClarifier.js.map +1 -0
  103. package/dist/services/vision-element-finder.d.ts +64 -0
  104. package/dist/services/vision-element-finder.d.ts.map +1 -0
  105. package/dist/services/vision-element-finder.js +446 -0
  106. package/dist/services/vision-element-finder.js.map +1 -0
  107. package/dist/types/flow-testing.d.ts +1 -1
  108. package/dist/types/flow-testing.d.ts.map +1 -1
  109. package/dist/types/vision-testing.d.ts +382 -0
  110. package/dist/types/vision-testing.d.ts.map +1 -0
  111. package/dist/types/vision-testing.js +9 -0
  112. package/dist/types/vision-testing.js.map +1 -0
  113. package/dist/utils/claudeAgentClient.d.ts +4 -0
  114. package/dist/utils/claudeAgentClient.d.ts.map +1 -1
  115. package/dist/utils/claudeAgentClient.js +8 -0
  116. package/dist/utils/claudeAgentClient.js.map +1 -1
  117. package/dist/utils/geminiClient.d.ts +41 -6
  118. package/dist/utils/geminiClient.d.ts.map +1 -1
  119. package/dist/utils/geminiClient.js +124 -18
  120. package/dist/utils/geminiClient.js.map +1 -1
  121. package/dist/utils/githubModelsClient.d.ts +19 -6
  122. package/dist/utils/githubModelsClient.d.ts.map +1 -1
  123. package/dist/utils/githubModelsClient.js +94 -7
  124. package/dist/utils/githubModelsClient.js.map +1 -1
  125. package/dist/utils/openRouterClient.d.ts +12 -3
  126. package/dist/utils/openRouterClient.d.ts.map +1 -1
  127. package/dist/utils/openRouterClient.js +91 -2
  128. package/dist/utils/openRouterClient.js.map +1 -1
  129. package/dist/utils/unifiedDesignContextLoader.d.ts.map +1 -1
  130. package/dist/utils/unifiedDesignContextLoader.js +15 -0
  131. package/dist/utils/unifiedDesignContextLoader.js.map +1 -1
  132. package/package.json +1 -1
@@ -0,0 +1,637 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Vision Testing MCP Server
5
+ *
6
+ * A Model Context Protocol server for vision-based UI testing.
7
+ * Provides AI-powered autonomous navigation, visual validation,
8
+ * and professional demo generation.
9
+ *
10
+ * REPLACES: testing-server.ts (old selector-based testing)
11
+ *
12
+ * MCP Tools:
13
+ * - create_vision_test: Create a vision test mission
14
+ * - run_vision_test: Execute a vision test
15
+ * - generate_demo: Record and generate demo artifacts
16
+ * - visual_regression: Run visual regression tests
17
+ * - extract_vo_script: Generate voice-over script from test
18
+ * - list_vision_tests: List all vision test missions
19
+ * - get_vision_test_report: Get detailed test report
20
+ */
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.VisionTestingMCPServer = void 0;
26
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
27
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
28
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
29
+ const vision_test_runner_1 = require("./vision-test-runner");
30
+ const test_mission_manager_1 = require("./test-mission-manager");
31
+ const ContextService_1 = require("../services/ContextService");
32
+ const chalk_1 = __importDefault(require("chalk"));
33
+ class VisionTestingMCPServer {
34
+ constructor(projectPath) {
35
+ this.projectPath = projectPath || process.cwd();
36
+ this.server = new index_js_1.Server({
37
+ name: "vision-testing-server",
38
+ version: "1.0.0",
39
+ }, {
40
+ capabilities: {
41
+ tools: {},
42
+ },
43
+ });
44
+ // Initialize managers
45
+ this.testRunner = new vision_test_runner_1.VisionTestRunner(this.projectPath);
46
+ this.missionManager = new test_mission_manager_1.TestMissionManager(this.projectPath);
47
+ this.contextService = new ContextService_1.ContextService(this.projectPath);
48
+ this.setupToolHandlers();
49
+ }
50
+ setupToolHandlers() {
51
+ // List available tools
52
+ this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
53
+ return {
54
+ tools: this.getAvailableTools(),
55
+ };
56
+ });
57
+ // Handle tool calls
58
+ this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
59
+ const { name, arguments: args } = request.params;
60
+ try {
61
+ switch (name) {
62
+ case "create_vision_test":
63
+ return await this.handleCreateVisionTest(args);
64
+ case "run_vision_test":
65
+ return await this.handleRunVisionTest(args);
66
+ case "generate_demo":
67
+ return await this.handleGenerateDemo(args);
68
+ case "visual_regression":
69
+ return await this.handleVisualRegression(args);
70
+ case "extract_vo_script":
71
+ return await this.handleExtractVOScript(args);
72
+ case "list_vision_tests":
73
+ return await this.handleListVisionTests(args);
74
+ case "get_vision_test_report":
75
+ return await this.handleGetTestReport(args);
76
+ default:
77
+ throw new Error(`Unknown tool: ${name}`);
78
+ }
79
+ }
80
+ catch (error) {
81
+ return {
82
+ content: [
83
+ {
84
+ type: "text",
85
+ text: `❌ Error executing ${name}: ${error.message}\n\n${error.stack || ""}`,
86
+ },
87
+ ],
88
+ isError: true,
89
+ };
90
+ }
91
+ });
92
+ }
93
+ getAvailableTools() {
94
+ return [
95
+ {
96
+ name: "create_vision_test",
97
+ description: "Create a new vision-based UI test mission. The AI will autonomously navigate and validate the UI using visual understanding.",
98
+ inputSchema: {
99
+ type: "object",
100
+ properties: {
101
+ name: {
102
+ type: "string",
103
+ description: "Name for the test mission",
104
+ },
105
+ mission: {
106
+ type: "string",
107
+ description: "Natural language description of what to test (e.g., 'User should be able to login and view dashboard')",
108
+ },
109
+ expectedOutcome: {
110
+ type: "string",
111
+ description: "Expected result after completing the mission",
112
+ },
113
+ startUrl: {
114
+ type: "string",
115
+ description: "Starting URL for the test (default: http://localhost:3000)",
116
+ },
117
+ recordDemo: {
118
+ type: "boolean",
119
+ description: "Whether to record demo artifacts (default: false)",
120
+ },
121
+ demoConfig: {
122
+ type: "object",
123
+ description: "Demo recording configuration",
124
+ properties: {
125
+ outputFormats: {
126
+ type: "array",
127
+ items: {
128
+ type: "string",
129
+ enum: ["video", "screenshots", "html-replay", "markdown-script"],
130
+ },
131
+ },
132
+ videoQuality: {
133
+ type: "string",
134
+ enum: ["720p", "1080p", "4K"],
135
+ },
136
+ includeVoiceOver: {
137
+ type: "boolean",
138
+ },
139
+ narrationStyle: {
140
+ type: "string",
141
+ enum: ["technical", "casual", "marketing", "educational"],
142
+ },
143
+ },
144
+ },
145
+ visualExpectations: {
146
+ type: "array",
147
+ description: "Visual expectations to validate",
148
+ items: {
149
+ type: "object",
150
+ properties: {
151
+ name: { type: "string" },
152
+ description: { type: "string" },
153
+ screenshot: { type: "string" },
154
+ },
155
+ },
156
+ },
157
+ },
158
+ required: ["name", "mission", "expectedOutcome"],
159
+ },
160
+ },
161
+ {
162
+ name: "run_vision_test",
163
+ description: "Execute a vision test with autonomous AI navigation. The AI will see the UI and make intelligent decisions about interactions.",
164
+ inputSchema: {
165
+ type: "object",
166
+ properties: {
167
+ missionId: {
168
+ type: "string",
169
+ description: "ID of the test mission to run",
170
+ },
171
+ headless: {
172
+ type: "boolean",
173
+ description: "Run browser in headless mode (default: true)",
174
+ },
175
+ baseUrl: {
176
+ type: "string",
177
+ description: "Base URL to use if different from mission config",
178
+ },
179
+ recordVideo: {
180
+ type: "boolean",
181
+ description: "Record video of test execution (default: false)",
182
+ },
183
+ },
184
+ required: ["missionId"],
185
+ },
186
+ },
187
+ {
188
+ name: "generate_demo",
189
+ description: "Record a UI flow and generate professional demo artifacts in multiple formats (video, HTML replay, screenshots, VO script)",
190
+ inputSchema: {
191
+ type: "object",
192
+ properties: {
193
+ flow: {
194
+ type: "string",
195
+ description: "Natural language description of the flow to demonstrate",
196
+ },
197
+ startUrl: {
198
+ type: "string",
199
+ description: "URL to start the demo from",
200
+ },
201
+ outputFormats: {
202
+ type: "array",
203
+ description: "Output formats to generate",
204
+ items: {
205
+ type: "string",
206
+ enum: ["video", "screenshots", "html-replay", "markdown-script"],
207
+ },
208
+ },
209
+ videoQuality: {
210
+ type: "string",
211
+ enum: ["720p", "1080p", "4K"],
212
+ description: "Video quality (default: 1080p)",
213
+ },
214
+ includeVoiceOver: {
215
+ type: "boolean",
216
+ description: "Generate voice-over script (default: false)",
217
+ },
218
+ narrationStyle: {
219
+ type: "string",
220
+ enum: ["technical", "casual", "marketing", "educational"],
221
+ description: "Narration style (default: technical)",
222
+ },
223
+ },
224
+ required: ["flow", "startUrl", "outputFormats"],
225
+ },
226
+ },
227
+ {
228
+ name: "visual_regression",
229
+ description: "Run visual regression tests by comparing current UI against baseline screenshots",
230
+ inputSchema: {
231
+ type: "object",
232
+ properties: {
233
+ missionId: {
234
+ type: "string",
235
+ description: "ID of the test mission with baseline screenshots",
236
+ },
237
+ threshold: {
238
+ type: "number",
239
+ description: "Acceptable difference percentage (0-100, default: 5)",
240
+ },
241
+ },
242
+ required: ["missionId"],
243
+ },
244
+ },
245
+ {
246
+ name: "extract_vo_script",
247
+ description: "Extract voice-over narration script from an existing test execution",
248
+ inputSchema: {
249
+ type: "object",
250
+ properties: {
251
+ executionId: {
252
+ type: "string",
253
+ description: "ID of the test execution",
254
+ },
255
+ narrationStyle: {
256
+ type: "string",
257
+ enum: ["technical", "casual", "marketing", "educational"],
258
+ description: "Narration style (default: technical)",
259
+ },
260
+ generateAudio: {
261
+ type: "boolean",
262
+ description: "Generate audio using TTS (default: false)",
263
+ },
264
+ },
265
+ required: ["executionId"],
266
+ },
267
+ },
268
+ {
269
+ name: "list_vision_tests",
270
+ description: "List all vision test missions",
271
+ inputSchema: {
272
+ type: "object",
273
+ properties: {
274
+ status: {
275
+ type: "string",
276
+ enum: ["all", "passing", "failing"],
277
+ description: "Filter by status (default: all)",
278
+ },
279
+ tag: {
280
+ type: "string",
281
+ description: "Filter by tag",
282
+ },
283
+ },
284
+ },
285
+ },
286
+ {
287
+ name: "get_vision_test_report",
288
+ description: "Get detailed report from a vision test execution with screenshots and visual analysis",
289
+ inputSchema: {
290
+ type: "object",
291
+ properties: {
292
+ executionId: {
293
+ type: "string",
294
+ description: "ID of the test execution",
295
+ },
296
+ includeScreenshots: {
297
+ type: "boolean",
298
+ description: "Include screenshot paths in report (default: true)",
299
+ },
300
+ },
301
+ required: ["executionId"],
302
+ },
303
+ },
304
+ ];
305
+ }
306
+ async handleCreateVisionTest(args) {
307
+ const { name, mission, expectedOutcome, startUrl, recordDemo = false, demoConfig, visualExpectations = [], } = args;
308
+ // Validate against Prime Objective if available
309
+ await this.contextService.initialize();
310
+ const manifest = this.contextService.getManifest();
311
+ if (manifest) {
312
+ const grounding = await this.contextService.validateIntent(mission);
313
+ if (!grounding.valid) {
314
+ return {
315
+ content: [
316
+ {
317
+ type: "text",
318
+ text: `âš ī¸ MISSION REJECTED: Your mission "${mission}" may deviate from the Project's Prime Objective.\n\n**Prime Objective**: "${manifest.phases.functional_summary.core_purpose}"\n\n**Reason**: ${grounding.reason}\n\nPlease revise your mission to align with the project's core purpose.`,
319
+ },
320
+ ],
321
+ isError: true,
322
+ };
323
+ }
324
+ }
325
+ const visionMission = {
326
+ id: `vision-${Date.now()}`,
327
+ name,
328
+ description: mission,
329
+ mission,
330
+ expectedOutcome,
331
+ tags: ["vision-test"],
332
+ createdAt: new Date().toISOString(),
333
+ updatedAt: new Date().toISOString(),
334
+ sourceFlow: startUrl,
335
+ recordDemo,
336
+ demoConfig,
337
+ visualExpectations,
338
+ };
339
+ // Save mission
340
+ const saved = await this.missionManager.createMission(visionMission);
341
+ return {
342
+ content: [
343
+ {
344
+ type: "text",
345
+ text: `✅ Vision test mission created successfully!
346
+
347
+ **Mission ID**: ${saved.id}
348
+ **Name**: ${saved.name}
349
+ **Mission**: ${saved.mission}
350
+ **Expected Outcome**: ${saved.expectedOutcome}
351
+ **Record Demo**: ${recordDemo ? "Yes" : "No"}
352
+ ${startUrl ? `**Start URL**: ${startUrl}` : ""}
353
+
354
+ You can now run this mission with:
355
+ \`\`\`
356
+ run_vision_test(missionId: "${saved.id}")
357
+ \`\`\`
358
+
359
+ Or from CLI:
360
+ \`\`\`bash
361
+ mycontext test:vision ${saved.id}
362
+ \`\`\`
363
+ `,
364
+ },
365
+ ],
366
+ };
367
+ }
368
+ async handleRunVisionTest(args) {
369
+ const { missionId, headless = true, baseUrl, recordVideo = false } = args;
370
+ const mission = await this.missionManager.getMission(missionId);
371
+ if (!mission) {
372
+ throw new Error(`Mission not found: ${missionId}`);
373
+ }
374
+ // Pre-flight checks
375
+ await this.contextService.initialize();
376
+ const manifest = this.contextService.getManifest();
377
+ if (manifest) {
378
+ console.log(chalk_1.default.blue(`đŸ›°ī¸ Pre-flight: Anchoring to "${manifest.project_name}"`));
379
+ }
380
+ // Execute the test
381
+ const config = {
382
+ headless,
383
+ baseUrl,
384
+ recordVideo,
385
+ };
386
+ const result = await this.testRunner.runTest(mission, config);
387
+ // Save execution result
388
+ await this.missionManager.saveExecution(result);
389
+ const statusEmoji = result.status === "passed" ? "✅" : "❌";
390
+ let output = `${statusEmoji} Test execution ${result.status.toUpperCase()}
391
+
392
+ **Mission**: ${mission.name}
393
+ **Execution ID**: ${result.executionId}
394
+ **Duration**: ${((result.duration || 0) / 1000).toFixed(1)}s
395
+ **Steps Executed**: ${result.steps.length} (${result.steps.filter((s) => s.success).length} successful)
396
+ **Validations**: ${result.validationResults.length} (${result.validationResults.filter((v) => v.passed).length} passed)
397
+
398
+ ${result.status === "failed" || result.status === "error" ? `**Error**: ${result.error?.message}\n` : ""}
399
+
400
+ **Final State**:
401
+ - URL: ${result.finalState.url}
402
+ - Screenshot: ${result.finalState.screenshot || "N/A"}
403
+ `;
404
+ if (result.visualSummary) {
405
+ output += `
406
+ **Visual Summary**:
407
+ - Screenshots: ${result.visualSummary.totalScreenshots}
408
+ - Visual Regressions: ${result.visualSummary.visualRegressionsDetected}
409
+ - Color Scheme Match: ${result.visualSummary.colorSchemeMatches ? "✓" : "✗"}
410
+ - Layout Match: ${result.visualSummary.layoutMatches ? "✓" : "✗"}
411
+ `;
412
+ }
413
+ if (result.demoArtifacts) {
414
+ output += `
415
+ **Demo Artifacts**:
416
+ - Formats: ${Object.keys(result.demoArtifacts.formats).join(", ")}
417
+ `;
418
+ if (result.demoArtifacts.formats.video) {
419
+ output += `- Video: ${result.demoArtifacts.formats.video.path}\n`;
420
+ }
421
+ if (result.demoArtifacts.formats.htmlReplay) {
422
+ output += `- HTML Replay: ${result.demoArtifacts.formats.htmlReplay.path}\n`;
423
+ }
424
+ if (result.demoArtifacts.voiceOver) {
425
+ output += `- VO Script: ${result.demoArtifacts.voiceOver.script.segments.length} segments\n`;
426
+ }
427
+ }
428
+ output += `
429
+ View full report:
430
+ \`\`\`
431
+ get_vision_test_report(executionId: "${result.executionId}")
432
+ \`\`\`
433
+ `;
434
+ return {
435
+ content: [
436
+ {
437
+ type: "text",
438
+ text: output,
439
+ },
440
+ ],
441
+ };
442
+ }
443
+ async handleGenerateDemo(args) {
444
+ const { flow, startUrl, outputFormats, videoQuality = "1080p", includeVoiceOver = false, narrationStyle = "technical", } = args;
445
+ const request = {
446
+ missionId: `demo-${Date.now()}`,
447
+ config: {
448
+ outputFormats,
449
+ videoQuality,
450
+ includeVoiceOver,
451
+ narrationStyle,
452
+ generateAudio: false,
453
+ },
454
+ startUrl,
455
+ flow,
456
+ metadata: {
457
+ title: "Demo Recording",
458
+ description: flow,
459
+ },
460
+ };
461
+ const result = await this.testRunner.generateDemo(request);
462
+ if (result.status === "failed") {
463
+ return {
464
+ content: [
465
+ {
466
+ type: "text",
467
+ text: `❌ Demo generation failed: ${result.error}`,
468
+ },
469
+ ],
470
+ isError: true,
471
+ };
472
+ }
473
+ let output = `✅ Demo generated successfully!
474
+
475
+ **Request ID**: ${result.requestId}
476
+ **Duration**: ${(result.duration / 1000).toFixed(1)}s
477
+
478
+ **Artifacts**:
479
+ `;
480
+ const formats = result.artifacts.formats;
481
+ if (formats.video) {
482
+ output += `
483
+ 📹 **Video**
484
+ - Path: ${formats.video.path}
485
+ - Duration: ${formats.video.duration}s
486
+ - Size: ${(formats.video.size / 1024 / 1024).toFixed(2)}MB
487
+ - Resolution: ${formats.video.resolution}
488
+ `;
489
+ }
490
+ if (formats.screenshots) {
491
+ output += `
492
+ 📸 **Screenshots**
493
+ - Count: ${formats.screenshots.count}
494
+ - Format: ${formats.screenshots.format}
495
+ `;
496
+ }
497
+ if (formats.htmlReplay) {
498
+ output += `
499
+ 🌐 **HTML Replay**
500
+ - Path: ${formats.htmlReplay.path}
501
+ - Interactive: ${formats.htmlReplay.interactive ? "Yes" : "No"}
502
+ `;
503
+ }
504
+ if (formats.markdownScript) {
505
+ output += `
506
+ 📝 **Markdown Script**
507
+ - Path: ${formats.markdownScript.path}
508
+ - Word Count: ${formats.markdownScript.wordCount}
509
+ `;
510
+ }
511
+ if (result.artifacts.voiceOver) {
512
+ output += `
513
+ đŸŽ™ī¸ **Voice-Over Script**
514
+ - Segments: ${result.artifacts.voiceOver.script.segments.length}
515
+ - Duration: ${result.artifacts.voiceOver.script.totalDuration.toFixed(1)}s
516
+ `;
517
+ }
518
+ return {
519
+ content: [
520
+ {
521
+ type: "text",
522
+ text: output,
523
+ },
524
+ ],
525
+ };
526
+ }
527
+ async handleVisualRegression(args) {
528
+ const { missionId, threshold = 5 } = args;
529
+ // Placeholder - in production would run visual regression tests
530
+ return {
531
+ content: [
532
+ {
533
+ type: "text",
534
+ text: `🔍 Visual regression testing for mission: ${missionId}
535
+
536
+ Threshold: ${threshold}%
537
+
538
+ â„šī¸ Visual regression testing is currently in development.
539
+ This feature will compare current UI against baseline screenshots and detect:
540
+ - Layout changes
541
+ - Color scheme drift
542
+ - Component positioning
543
+ - Text content differences
544
+
545
+ Stay tuned!`,
546
+ },
547
+ ],
548
+ };
549
+ }
550
+ async handleExtractVOScript(args) {
551
+ const { executionId, narrationStyle = "technical", generateAudio = false, } = args;
552
+ // Placeholder - would extract VO from saved execution
553
+ return {
554
+ content: [
555
+ {
556
+ type: "text",
557
+ text: `đŸŽ™ī¸ Extracting voice-over script for execution: ${executionId}
558
+
559
+ Narration Style: ${narrationStyle}
560
+ Generate Audio: ${generateAudio ? "Yes" : "No"}
561
+
562
+ â„šī¸ VO script extraction is currently in development.
563
+ This will analyze test execution screenshots and generate:
564
+ - Natural language narration
565
+ - Timestamped script segments
566
+ - Optional TTS audio
567
+
568
+ Stay tuned!`,
569
+ },
570
+ ],
571
+ };
572
+ }
573
+ async handleListVisionTests(args) {
574
+ const { status = "all", tag } = args;
575
+ const missions = await this.missionManager.listMissions({ status, tag });
576
+ const visionMissions = missions.filter((m) => m.visualExpectations !== undefined ||
577
+ m.tags?.includes("vision-test"));
578
+ const output = [
579
+ `# Vision Test Missions (${visionMissions.length})`,
580
+ "",
581
+ ...visionMissions.map((m, index) => {
582
+ const vm = m;
583
+ return `${index + 1}. **${m.name}** (${m.id})
584
+ - Mission: ${m.mission}
585
+ - Expected: ${m.expectedOutcome}
586
+ - Record Demo: ${vm.recordDemo ? "Yes" : "No"}
587
+ - Visual Expectations: ${vm.visualExpectations?.length || 0}
588
+ - Created: ${new Date(m.createdAt).toLocaleString()}`;
589
+ }),
590
+ ];
591
+ return {
592
+ content: [
593
+ {
594
+ type: "text",
595
+ text: output.join("\n"),
596
+ },
597
+ ],
598
+ };
599
+ }
600
+ async handleGetTestReport(args) {
601
+ const { executionId, includeScreenshots = true } = args;
602
+ // Placeholder - would retrieve detailed report
603
+ return {
604
+ content: [
605
+ {
606
+ type: "text",
607
+ text: `📊 Test Report for execution: ${executionId}
608
+
609
+ Include Screenshots: ${includeScreenshots ? "Yes" : "No"}
610
+
611
+ â„šī¸ Detailed reporting is currently in development.
612
+ The full report will include:
613
+ - Step-by-step breakdown with screenshots
614
+ - Visual analysis at each step
615
+ - Validation results with diffs
616
+ - Performance metrics
617
+ - AI decision reasoning
618
+
619
+ Stay tuned!`,
620
+ },
621
+ ],
622
+ };
623
+ }
624
+ async start() {
625
+ const transport = new stdio_js_1.StdioServerTransport();
626
+ await this.server.connect(transport);
627
+ console.error("Vision Testing MCP Server running on stdio");
628
+ }
629
+ }
630
+ exports.VisionTestingMCPServer = VisionTestingMCPServer;
631
+ // Start server if run directly
632
+ if (require.main === module) {
633
+ const projectPath = process.argv[2] || process.cwd();
634
+ const server = new VisionTestingMCPServer(projectPath);
635
+ server.start().catch(console.error);
636
+ }
637
+ //# sourceMappingURL=vision-testing-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vision-testing-server.js","sourceRoot":"","sources":["../../src/mcp/vision-testing-server.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mycontext-cli",
3
- "version": "4.2.8",
3
+ "version": "4.2.11",
4
4
  "description": "CLI tool for spec-driven development - Generate comprehensive context, visual screens, and scaffolding for AI-powered coding",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectScanner.d.ts","sourceRoot":"","sources":["../../src/services/ProjectScanner.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAC;IAC3E,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,qBAAqB,EAAE,GAAG,CAAC;CAC5B;AAqCD,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,EAAE,CAAuB;gBAErB,WAAW,GAAE,MAAsB;IAI/C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAqCtC;;OAEG;YACW,aAAa;IAiF3B;;OAEG;YACW,eAAe;IAe7B;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,GAAG,GACnB,OAAO,CAAC,iBAAiB,CAAC;IA6E7B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYhD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IA8B9C;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;CAMxB"}
1
+ {"version":3,"file":"ProjectScanner.d.ts","sourceRoot":"","sources":["../../src/services/ProjectScanner.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAC;IAC3E,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,qBAAqB,EAAE,GAAG,CAAC;CAC5B;AAsCD,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,EAAE,CAAuB;gBAErB,WAAW,GAAE,MAAsB;IAI/C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAqCtC;;OAEG;YACW,aAAa;IAoF3B;;OAEG;YACW,eAAe;IAe7B;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,GAAG,GACnB,OAAO,CAAC,iBAAiB,CAAC;IA6E7B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYhD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IA8B9C;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;CAMxB"}