mycontext-cli 4.2.10 → 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 (126) 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/init.d.ts.map +1 -1
  57. package/dist/commands/init.js +110 -204
  58. package/dist/commands/init.js.map +1 -1
  59. package/dist/commands/plan-feature.d.ts +3 -0
  60. package/dist/commands/plan-feature.d.ts.map +1 -0
  61. package/dist/commands/plan-feature.js +57 -0
  62. package/dist/commands/plan-feature.js.map +1 -0
  63. package/dist/commands/sanitize.d.ts.map +1 -1
  64. package/dist/commands/sanitize.js +95 -7
  65. package/dist/commands/sanitize.js.map +1 -1
  66. package/dist/commands/vision-test.d.ts +67 -0
  67. package/dist/commands/vision-test.d.ts.map +1 -0
  68. package/dist/commands/vision-test.js +347 -0
  69. package/dist/commands/vision-test.js.map +1 -0
  70. package/dist/core/ai/AICore.d.ts +13 -0
  71. package/dist/core/ai/AICore.d.ts.map +1 -1
  72. package/dist/core/ai/AICore.js +65 -0
  73. package/dist/core/ai/AICore.js.map +1 -1
  74. package/dist/doctor/rules/node-rules.d.ts.map +1 -1
  75. package/dist/doctor/rules/node-rules.js +41 -0
  76. package/dist/doctor/rules/node-rules.js.map +1 -1
  77. package/dist/interfaces/AIClient.d.ts +1 -0
  78. package/dist/interfaces/AIClient.d.ts.map +1 -1
  79. package/dist/interfaces/AIClient.js.map +1 -1
  80. package/dist/mcp/vision-test-runner.d.ts +57 -0
  81. package/dist/mcp/vision-test-runner.d.ts.map +1 -0
  82. package/dist/mcp/vision-test-runner.js +337 -0
  83. package/dist/mcp/vision-test-runner.js.map +1 -0
  84. package/dist/mcp/vision-testing-server.d.ts +38 -0
  85. package/dist/mcp/vision-testing-server.d.ts.map +1 -0
  86. package/dist/mcp/vision-testing-server.js +637 -0
  87. package/dist/mcp/vision-testing-server.js.map +1 -0
  88. package/dist/package.json +1 -1
  89. package/dist/services/gemini-vision.d.ts +3 -11
  90. package/dist/services/gemini-vision.d.ts.map +1 -1
  91. package/dist/services/gemini-vision.js +13 -132
  92. package/dist/services/gemini-vision.js.map +1 -1
  93. package/dist/services/llmClarifier.d.ts +9 -0
  94. package/dist/services/llmClarifier.d.ts.map +1 -0
  95. package/dist/services/llmClarifier.js +22 -0
  96. package/dist/services/llmClarifier.js.map +1 -0
  97. package/dist/services/vision-element-finder.d.ts +64 -0
  98. package/dist/services/vision-element-finder.d.ts.map +1 -0
  99. package/dist/services/vision-element-finder.js +446 -0
  100. package/dist/services/vision-element-finder.js.map +1 -0
  101. package/dist/types/flow-testing.d.ts +1 -1
  102. package/dist/types/flow-testing.d.ts.map +1 -1
  103. package/dist/types/vision-testing.d.ts +382 -0
  104. package/dist/types/vision-testing.d.ts.map +1 -0
  105. package/dist/types/vision-testing.js +9 -0
  106. package/dist/types/vision-testing.js.map +1 -0
  107. package/dist/utils/claudeAgentClient.d.ts +4 -0
  108. package/dist/utils/claudeAgentClient.d.ts.map +1 -1
  109. package/dist/utils/claudeAgentClient.js +8 -0
  110. package/dist/utils/claudeAgentClient.js.map +1 -1
  111. package/dist/utils/geminiClient.d.ts +41 -6
  112. package/dist/utils/geminiClient.d.ts.map +1 -1
  113. package/dist/utils/geminiClient.js +124 -18
  114. package/dist/utils/geminiClient.js.map +1 -1
  115. package/dist/utils/githubModelsClient.d.ts +19 -6
  116. package/dist/utils/githubModelsClient.d.ts.map +1 -1
  117. package/dist/utils/githubModelsClient.js +94 -7
  118. package/dist/utils/githubModelsClient.js.map +1 -1
  119. package/dist/utils/openRouterClient.d.ts +12 -3
  120. package/dist/utils/openRouterClient.d.ts.map +1 -1
  121. package/dist/utils/openRouterClient.js +91 -2
  122. package/dist/utils/openRouterClient.js.map +1 -1
  123. package/dist/utils/unifiedDesignContextLoader.d.ts.map +1 -1
  124. package/dist/utils/unifiedDesignContextLoader.js +15 -0
  125. package/dist/utils/unifiedDesignContextLoader.js.map +1 -1
  126. package/package.json +1 -1
@@ -0,0 +1,337 @@
1
+ "use strict";
2
+ /**
3
+ * Vision Test Runner
4
+ *
5
+ * Main execution engine for vision-based testing.
6
+ * Manages Playwright browser lifecycle, coordinates vision agents,
7
+ * and produces comprehensive test reports.
8
+ *
9
+ * REPLACES: browser-test-runner.ts (old selector-based testing)
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.VisionTestRunner = void 0;
49
+ const playwright_1 = require("playwright");
50
+ const path = __importStar(require("path"));
51
+ const fs = __importStar(require("fs-extra"));
52
+ const VisionTestCoordinator_1 = require("../agents/implementations/VisionTestCoordinator");
53
+ const ContextService_1 = require("../services/ContextService");
54
+ const uuid_1 = require("uuid");
55
+ const chalk_1 = __importDefault(require("chalk"));
56
+ class VisionTestRunner {
57
+ constructor(projectPath) {
58
+ this.projectPath = projectPath;
59
+ this.contextService = new ContextService_1.ContextService(projectPath);
60
+ this.screenshotsDir = path.join(projectPath, ".mycontext", "vision-screenshots");
61
+ this.videosDir = path.join(projectPath, ".mycontext", "vision-videos");
62
+ fs.ensureDirSync(this.screenshotsDir);
63
+ fs.ensureDirSync(this.videosDir);
64
+ }
65
+ /**
66
+ * Run a vision test mission
67
+ */
68
+ async runTest(mission, config = { headless: true }) {
69
+ const executionId = (0, uuid_1.v4)();
70
+ const startTime = Date.now();
71
+ console.log(chalk_1.default.bold.magenta(`\n${"═".repeat(70)}`));
72
+ console.log(chalk_1.default.bold.magenta(`🚀 VISION TEST RUNNER`));
73
+ console.log(chalk_1.default.bold.magenta(`${"═".repeat(70)}\n`));
74
+ console.log(chalk_1.default.white(`Mission: ${mission.name}`));
75
+ console.log(chalk_1.default.gray(`Description: ${mission.description}`));
76
+ console.log(chalk_1.default.gray(`Expected Outcome: ${mission.expectedOutcome}`));
77
+ console.log(chalk_1.default.gray(`Browser: ${config.headless ? "Headless" : "Headed"}`));
78
+ console.log(chalk_1.default.gray(`Execution ID: ${executionId}\n`));
79
+ try {
80
+ // Initialize context service
81
+ await this.contextService.initialize();
82
+ // Launch browser
83
+ await this.launchBrowser(config);
84
+ if (!this.context) {
85
+ throw new Error("Failed to create browser context");
86
+ }
87
+ // Create new page
88
+ const page = await this.context.newPage();
89
+ // Set viewport if specified
90
+ if (config.viewport) {
91
+ await page.setViewportSize(config.viewport);
92
+ }
93
+ // Navigate to start URL
94
+ const startUrl = config.baseUrl ||
95
+ mission.sourceFlow ||
96
+ mission.validationRules?.[0]?.expectedValue ||
97
+ "http://localhost:3000";
98
+ console.log(chalk_1.default.cyan(`\n🌐 Navigating to: ${startUrl}\n`));
99
+ await page.goto(startUrl, { waitUntil: "domcontentloaded" });
100
+ // Wait a moment for page to settle
101
+ await page.waitForTimeout(1000);
102
+ // Create and run vision test coordinator
103
+ const coordinator = new VisionTestCoordinator_1.VisionTestCoordinator();
104
+ const coordinatorOutput = await coordinator.run({
105
+ page,
106
+ browserContext: this.context,
107
+ mission,
108
+ projectPath: this.projectPath,
109
+ });
110
+ // Get the result
111
+ const result = coordinatorOutput.result;
112
+ // Close page
113
+ await page.close();
114
+ // Display final summary
115
+ this.displaySummary(result);
116
+ return result;
117
+ }
118
+ catch (error) {
119
+ console.error(chalk_1.default.red(`\n❌ Test execution failed: ${error.message}`));
120
+ console.error(chalk_1.default.gray(error.stack));
121
+ const endTime = Date.now();
122
+ // Return error result
123
+ const errorResult = {
124
+ missionId: mission.id,
125
+ executionId,
126
+ status: "error",
127
+ startedAt: new Date(startTime).toISOString(),
128
+ completedAt: new Date(endTime).toISOString(),
129
+ duration: endTime - startTime,
130
+ steps: [],
131
+ validationResults: [],
132
+ finalState: {
133
+ url: "",
134
+ },
135
+ error: {
136
+ message: error.message,
137
+ stack: error.stack,
138
+ },
139
+ };
140
+ return errorResult;
141
+ }
142
+ finally {
143
+ // Always close browser
144
+ await this.closeBrowser();
145
+ }
146
+ }
147
+ /**
148
+ * Generate a demo (record a flow without assertions)
149
+ */
150
+ async generateDemo(request) {
151
+ const requestId = (0, uuid_1.v4)();
152
+ const startTime = Date.now();
153
+ console.log(chalk_1.default.bold.blue(`\n${"═".repeat(70)}`));
154
+ console.log(chalk_1.default.bold.blue(`🎬 DEMO GENERATION`));
155
+ console.log(chalk_1.default.bold.blue(`${"═".repeat(70)}\n`));
156
+ console.log(chalk_1.default.white(`Flow: ${request.flow}`));
157
+ console.log(chalk_1.default.gray(`Start URL: ${request.startUrl}`));
158
+ console.log(chalk_1.default.gray(`Formats: ${request.config.outputFormats.join(", ")}\n`));
159
+ try {
160
+ // Create a temporary mission for demo recording
161
+ const demoMission = {
162
+ id: requestId,
163
+ name: request.metadata?.title || "Demo Recording",
164
+ description: request.metadata?.description || request.flow,
165
+ mission: request.flow,
166
+ expectedOutcome: "Demo recorded successfully",
167
+ tags: request.metadata?.tags || ["demo"],
168
+ createdAt: new Date().toISOString(),
169
+ updatedAt: new Date().toISOString(),
170
+ recordDemo: true,
171
+ demoConfig: request.config,
172
+ sourceFlow: request.startUrl,
173
+ };
174
+ // Run test with demo recording enabled
175
+ const result = await this.runTest(demoMission, {
176
+ headless: false, // Show browser for demos
177
+ recordVideo: true,
178
+ });
179
+ if (result.status === "error") {
180
+ throw new Error(result.error?.message || "Demo generation failed");
181
+ }
182
+ const endTime = Date.now();
183
+ const demoResult = {
184
+ requestId,
185
+ status: result.demoArtifacts ? "success" : "failed",
186
+ artifacts: result.demoArtifacts,
187
+ duration: endTime - startTime,
188
+ };
189
+ console.log(chalk_1.default.green(`\n✅ Demo generation complete!`));
190
+ console.log(chalk_1.default.gray(`Duration: ${(demoResult.duration / 1000).toFixed(1)}s\n`));
191
+ return demoResult;
192
+ }
193
+ catch (error) {
194
+ console.error(chalk_1.default.red(`\n❌ Demo generation failed: ${error.message}`));
195
+ const endTime = Date.now();
196
+ return {
197
+ requestId,
198
+ status: "failed",
199
+ artifacts: {
200
+ generatedAt: new Date().toISOString(),
201
+ formats: {},
202
+ },
203
+ duration: endTime - startTime,
204
+ error: error.message,
205
+ };
206
+ }
207
+ }
208
+ /**
209
+ * Run multiple tests in sequence
210
+ */
211
+ async runTestSuite(missions, config = { headless: true }) {
212
+ console.log(chalk_1.default.bold.cyan(`\n${"═".repeat(70)}`));
213
+ console.log(chalk_1.default.bold.cyan(`🧪 VISION TEST SUITE`));
214
+ console.log(chalk_1.default.bold.cyan(`${"═".repeat(70)}\n`));
215
+ console.log(chalk_1.default.white(`Tests: ${missions.length}\n`));
216
+ const results = [];
217
+ for (let i = 0; i < missions.length; i++) {
218
+ const mission = missions[i];
219
+ if (!mission)
220
+ continue; // Safety check for undefined
221
+ console.log(chalk_1.default.yellow(`\n[${i + 1}/${missions.length}] Running: ${mission.name}`));
222
+ const result = await this.runTest(mission, config);
223
+ results.push(result);
224
+ // Brief pause between tests
225
+ await new Promise((resolve) => setTimeout(resolve, 2000));
226
+ }
227
+ // Print suite summary
228
+ console.log(chalk_1.default.bold.cyan(`\n${"═".repeat(70)}`));
229
+ console.log(chalk_1.default.bold.cyan(`📊 TEST SUITE SUMMARY`));
230
+ console.log(chalk_1.default.bold.cyan(`${"═".repeat(70)}\n`));
231
+ const passed = results.filter((r) => r.status === "passed").length;
232
+ const failed = results.filter((r) => r.status === "failed").length;
233
+ const errors = results.filter((r) => r.status === "error").length;
234
+ console.log(chalk_1.default.green(`✓ Passed: ${passed}`));
235
+ console.log(chalk_1.default.red(`✗ Failed: ${failed}`));
236
+ console.log(chalk_1.default.yellow(`⚠ Errors: ${errors}`));
237
+ console.log(chalk_1.default.white(`Total: ${results.length}\n`));
238
+ return results;
239
+ }
240
+ /**
241
+ * Launch browser with configuration
242
+ */
243
+ async launchBrowser(config) {
244
+ console.log(chalk_1.default.gray(`\n🌐 Launching browser...`));
245
+ this.browser = await playwright_1.chromium.launch({
246
+ headless: config.headless !== false,
247
+ slowMo: config.slowMo || 0,
248
+ });
249
+ const contextOptions = {
250
+ viewport: config.viewport || { width: 1280, height: 720 },
251
+ };
252
+ // Enable video recording if requested
253
+ if (config.recordVideo) {
254
+ contextOptions.recordVideo = {
255
+ dir: this.videosDir,
256
+ size: config.viewport || { width: 1280, height: 720 },
257
+ };
258
+ }
259
+ this.context = await this.browser.newContext(contextOptions);
260
+ console.log(chalk_1.default.green(`✓ Browser ready\n`));
261
+ }
262
+ /**
263
+ * Close browser
264
+ */
265
+ async closeBrowser() {
266
+ if (this.context) {
267
+ await this.context.close();
268
+ this.context = undefined;
269
+ }
270
+ if (this.browser) {
271
+ await this.browser.close();
272
+ this.browser = undefined;
273
+ }
274
+ }
275
+ /**
276
+ * Display test summary
277
+ */
278
+ displaySummary(result) {
279
+ console.log(chalk_1.default.bold.magenta(`\n${"═".repeat(70)}`));
280
+ console.log(chalk_1.default.bold.magenta(`📋 TEST SUMMARY`));
281
+ console.log(chalk_1.default.bold.magenta(`${"═".repeat(70)}\n`));
282
+ // Status
283
+ const statusColor = result.status === "passed" ? "green" : "red";
284
+ console.log(chalk_1.default[statusColor](`Status: ${result.status.toUpperCase()}`));
285
+ // Duration
286
+ console.log(chalk_1.default.white(`Duration: ${((result.duration || 0) / 1000).toFixed(1)}s`));
287
+ // Steps
288
+ const successfulSteps = result.steps.filter((s) => s.success).length;
289
+ console.log(chalk_1.default.white(`Steps: ${successfulSteps}/${result.steps.length} successful`));
290
+ // Validations
291
+ if (result.validationResults.length > 0) {
292
+ const passedValidations = result.validationResults.filter((v) => v.passed).length;
293
+ console.log(chalk_1.default.white(`Validations: ${passedValidations}/${result.validationResults.length} passed`));
294
+ }
295
+ // Visual Summary
296
+ if (result.visualSummary) {
297
+ console.log(chalk_1.default.white(`Screenshots: ${result.visualSummary.totalScreenshots}`));
298
+ if (result.visualSummary.visualRegressionsDetected > 0) {
299
+ console.log(chalk_1.default.yellow(`Visual Regressions: ${result.visualSummary.visualRegressionsDetected}`));
300
+ }
301
+ }
302
+ // Demo Artifacts
303
+ if (result.demoArtifacts) {
304
+ console.log(chalk_1.default.white(`Demo Formats: ${Object.keys(result.demoArtifacts.formats).join(", ")}`));
305
+ }
306
+ // Final URL
307
+ console.log(chalk_1.default.gray(`\nFinal URL: ${result.finalState.url}`));
308
+ // Error details
309
+ if (result.error) {
310
+ console.log(chalk_1.default.red(`\nError: ${result.error.message}`));
311
+ }
312
+ console.log(chalk_1.default.bold.magenta(`\n${"═".repeat(70)}\n`));
313
+ }
314
+ /**
315
+ * Take a screenshot (utility method)
316
+ */
317
+ async takeScreenshot(page, name) {
318
+ const filename = `${name}-${Date.now()}.png`;
319
+ const filepath = path.join(this.screenshotsDir, filename);
320
+ await page.screenshot({ path: filepath, fullPage: true });
321
+ return filepath;
322
+ }
323
+ /**
324
+ * Get browser instance (for external use)
325
+ */
326
+ getBrowser() {
327
+ return this.browser;
328
+ }
329
+ /**
330
+ * Get browser context (for external use)
331
+ */
332
+ getContext() {
333
+ return this.context;
334
+ }
335
+ }
336
+ exports.VisionTestRunner = VisionTestRunner;
337
+ //# sourceMappingURL=vision-test-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vision-test-runner.js","sourceRoot":"","sources":["../../src/mcp/vision-test-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Vision Testing MCP Server
4
+ *
5
+ * A Model Context Protocol server for vision-based UI testing.
6
+ * Provides AI-powered autonomous navigation, visual validation,
7
+ * and professional demo generation.
8
+ *
9
+ * REPLACES: testing-server.ts (old selector-based testing)
10
+ *
11
+ * MCP Tools:
12
+ * - create_vision_test: Create a vision test mission
13
+ * - run_vision_test: Execute a vision test
14
+ * - generate_demo: Record and generate demo artifacts
15
+ * - visual_regression: Run visual regression tests
16
+ * - extract_vo_script: Generate voice-over script from test
17
+ * - list_vision_tests: List all vision test missions
18
+ * - get_vision_test_report: Get detailed test report
19
+ */
20
+ export declare class VisionTestingMCPServer {
21
+ private server;
22
+ private testRunner;
23
+ private missionManager;
24
+ private contextService;
25
+ private projectPath;
26
+ constructor(projectPath?: string);
27
+ private setupToolHandlers;
28
+ private getAvailableTools;
29
+ private handleCreateVisionTest;
30
+ private handleRunVisionTest;
31
+ private handleGenerateDemo;
32
+ private handleVisualRegression;
33
+ private handleExtractVOScript;
34
+ private handleListVisionTests;
35
+ private handleGetTestReport;
36
+ start(): Promise<void>;
37
+ }
38
+ //# sourceMappingURL=vision-testing-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vision-testing-server.d.ts","sourceRoot":"","sources":["../../src/mcp/vision-testing-server.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;GAiBG;AAqBH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,CAAC,EAAE,MAAM;IAuBhC,OAAO,CAAC,iBAAiB;IA6CzB,OAAO,CAAC,iBAAiB;YAgOX,sBAAsB;YA4EtB,mBAAmB;YA8FnB,kBAAkB;YAuGlB,sBAAsB;YAyBtB,qBAAqB;YA6BrB,qBAAqB;YAmCrB,mBAAmB;IA0B3B,KAAK;CAKZ"}