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,446 @@
1
+ "use strict";
2
+ /**
3
+ * Vision Element Finder Service
4
+ *
5
+ * Combines vision AI with DOM understanding to identify and interact with UI elements.
6
+ * This is the revolutionary approach: instead of brittle CSS selectors,
7
+ * we "see" the page and find elements like a human would.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.VisionElementFinder = void 0;
44
+ const AICore_1 = require("../core/ai/AICore");
45
+ const fs = __importStar(require("fs-extra"));
46
+ const path = __importStar(require("path"));
47
+ const uuid_1 = require("uuid");
48
+ class VisionElementFinder {
49
+ constructor(projectPath, confidenceThreshold = 70 // Minimum confidence to trust vision over DOM
50
+ ) {
51
+ this.aiCore = AICore_1.AICore.getInstance({
52
+ fallbackEnabled: true,
53
+ workingDirectory: projectPath
54
+ });
55
+ this.screenshotsDir = path.join(projectPath, ".mycontext", "vision-screenshots");
56
+ this.confidenceThreshold = confidenceThreshold;
57
+ fs.ensureDirSync(this.screenshotsDir);
58
+ }
59
+ /**
60
+ * Analyze the current page using vision
61
+ */
62
+ async analyzePage(page) {
63
+ // Take screenshot
64
+ const screenshotPath = await this.takeScreenshot(page);
65
+ // Get DOM context for hybrid approach
66
+ const domContext = await this.getDOMContext(page);
67
+ // Analyze with vision AI
68
+ const prompt = this.buildAnalysisPrompt(domContext);
69
+ const visionAnalysis = await this.analyzeScreenshotWithPrompt(screenshotPath, prompt);
70
+ return visionAnalysis;
71
+ }
72
+ /**
73
+ * Find an element by natural language description
74
+ */
75
+ async findElement(page, description, fallbackSelector) {
76
+ // Take screenshot
77
+ const screenshotPath = await this.takeScreenshot(page);
78
+ // Get DOM context
79
+ const domContext = await this.getDOMContext(page);
80
+ // Ask vision AI to locate the element
81
+ const prompt = `You are analyzing a web page screenshot to locate a specific UI element.
82
+
83
+ **Target Element**: ${description}
84
+
85
+ **Available DOM Context** (use this to correlate with visual):
86
+ ${domContext}
87
+
88
+ **Task**: Find the element described as "${description}" in the screenshot.
89
+
90
+ Return a JSON response with this structure:
91
+ \`\`\`json
92
+ {
93
+ "found": true/false,
94
+ "element": {
95
+ "description": "Clear description of what you see",
96
+ "type": "button|link|input|form|card|navigation|text|image|unknown",
97
+ "visualCoordinates": {
98
+ "x": number (center X coordinate),
99
+ "y": number (center Y coordinate),
100
+ "width": number,
101
+ "height": number
102
+ },
103
+ "domSelector": "CSS selector if you can determine one from context",
104
+ "confidence": number (0-100),
105
+ "interactable": true/false,
106
+ "textContent": "Any text visible in the element"
107
+ }
108
+ }
109
+ \`\`\`
110
+
111
+ If you cannot find the element, set "found": false and provide your reasoning.`;
112
+ try {
113
+ const result = await this.askVisionAI(screenshotPath, prompt);
114
+ if (!result.found) {
115
+ // Try fallback selector if provided
116
+ if (fallbackSelector) {
117
+ return await this.findByDOMSelector(page, fallbackSelector);
118
+ }
119
+ return null;
120
+ }
121
+ // Validate confidence
122
+ if (result.element.confidence < this.confidenceThreshold) {
123
+ console.warn(`Vision confidence (${result.element.confidence}%) below threshold (${this.confidenceThreshold}%). Trying fallback.`);
124
+ if (fallbackSelector) {
125
+ return await this.findByDOMSelector(page, fallbackSelector);
126
+ }
127
+ }
128
+ return {
129
+ id: (0, uuid_1.v4)(),
130
+ ...result.element,
131
+ };
132
+ }
133
+ catch (error) {
134
+ console.error("Vision element finding failed:", error);
135
+ // Try fallback
136
+ if (fallbackSelector) {
137
+ return await this.findByDOMSelector(page, fallbackSelector);
138
+ }
139
+ return null;
140
+ }
141
+ }
142
+ /**
143
+ * Find all interactive elements on the page
144
+ */
145
+ async findAllInteractiveElements(page) {
146
+ const screenshotPath = await this.takeScreenshot(page);
147
+ const domContext = await this.getDOMContext(page);
148
+ const prompt = `You are analyzing a web page to find ALL interactive elements (buttons, links, inputs, etc.).
149
+
150
+ **DOM Context**:
151
+ ${domContext}
152
+
153
+ Return a JSON array of all interactive elements you can identify:
154
+ \`\`\`json
155
+ {
156
+ "elements": [
157
+ {
158
+ "description": "Clear description",
159
+ "type": "button|link|input|form|etc",
160
+ "visualCoordinates": { "x": number, "y": number, "width": number, "height": number },
161
+ "domSelector": "CSS selector if determinable",
162
+ "confidence": number (0-100),
163
+ "interactable": true,
164
+ "textContent": "Text visible in element"
165
+ }
166
+ ]
167
+ }
168
+ \`\`\`
169
+
170
+ Be thorough but focus on elements users can interact with.`;
171
+ try {
172
+ const result = await this.askVisionAI(screenshotPath, prompt);
173
+ return result.elements.map((el) => ({
174
+ id: (0, uuid_1.v4)(),
175
+ ...el,
176
+ }));
177
+ }
178
+ catch (error) {
179
+ console.error("Failed to find interactive elements:", error);
180
+ return [];
181
+ }
182
+ }
183
+ /**
184
+ * Decide next action based on current page state
185
+ */
186
+ async decideNextAction(page, mission, previousSteps, primeObjective) {
187
+ const screenshotPath = await this.takeScreenshot(page);
188
+ const domContext = await this.getDOMContext(page);
189
+ const currentUrl = page.url();
190
+ const prompt = `You are an AI agent testing a web application.
191
+
192
+ **PRIME OBJECTIVE (Hard Gravity)**: "${primeObjective}"
193
+
194
+ **Your Mission**: ${mission}
195
+
196
+ **Current URL**: ${currentUrl}
197
+
198
+ **Previous Steps Taken**:
199
+ ${previousSteps.map((step, i) => `${i + 1}. ${step}`).join("\n")}
200
+
201
+ **DOM Context**:
202
+ ${domContext}
203
+
204
+ **Task**: Analyze the screenshot and decide the NEXT ACTION to accomplish the mission while staying aligned with the Prime Objective.
205
+
206
+ Return JSON:
207
+ \`\`\`json
208
+ {
209
+ "action": "click|fill|scroll|wait|navigate|upload|complete",
210
+ "confidence": number (0-100),
211
+ "reasoning": "Why you chose this action",
212
+ "visualContext": "What you see on screen",
213
+ "targetElement": {
214
+ "description": "What element to interact with",
215
+ "visualCoordinates": { "x": number, "y": number },
216
+ "domSelector": "CSS selector if possible",
217
+ "confidence": number
218
+ },
219
+ "value": "value for fill/upload actions",
220
+ "url": "URL for navigate action",
221
+ "intent": "High-level intent (e.g., 'submitting form')",
222
+ "alignsWithPrimeObjective": true/false,
223
+ "gravityScore": number (0-100, alignment score)
224
+ }
225
+ \`\`\`
226
+
227
+ If mission is complete, set "action": "complete".
228
+
229
+ CRITICAL: Always check alignment with Prime Objective. If your action deviates, set alignsWithPrimeObjective to false.`;
230
+ try {
231
+ const decision = await this.askVisionAI(screenshotPath, prompt);
232
+ return decision;
233
+ }
234
+ catch (error) {
235
+ throw new Error(`Failed to decide next action: ${error instanceof Error ? error.message : "Unknown error"}`);
236
+ }
237
+ }
238
+ /**
239
+ * Click an element using visual coordinates
240
+ */
241
+ async clickElement(page, element) {
242
+ try {
243
+ // Try visual coordinates first
244
+ if (element.visualCoordinates) {
245
+ const { x, y } = element.visualCoordinates;
246
+ await page.mouse.click(x, y);
247
+ return true;
248
+ }
249
+ // Fallback to DOM selector
250
+ if (element.domSelector) {
251
+ await page.click(element.domSelector);
252
+ return true;
253
+ }
254
+ throw new Error("No valid method to click element");
255
+ }
256
+ catch (error) {
257
+ console.error("Click failed:", error);
258
+ return false;
259
+ }
260
+ }
261
+ /**
262
+ * Fill an input element using visual coordinates or selector
263
+ */
264
+ async fillElement(page, element, value) {
265
+ try {
266
+ // Try visual coordinates first
267
+ if (element.visualCoordinates) {
268
+ const { x, y } = element.visualCoordinates;
269
+ await page.mouse.click(x, y);
270
+ // Keyboard.type is appropriate for visual coordinates after focus
271
+ await page.keyboard.type(value, { delay: 50 });
272
+ return true;
273
+ }
274
+ // Fallback to DOM selector
275
+ if (element.domSelector) {
276
+ // Use locator().pressSequentially() instead of page.fill() for React state sync
277
+ await page.locator(element.domSelector).pressSequentially(value, { delay: 50 });
278
+ return true;
279
+ }
280
+ throw new Error("No valid method to fill element");
281
+ }
282
+ catch (error) {
283
+ console.error("Fill failed:", error);
284
+ return false;
285
+ }
286
+ }
287
+ // Private helper methods
288
+ /**
289
+ * Take screenshot of current page
290
+ */
291
+ async takeScreenshot(page) {
292
+ const filename = `vision-${Date.now()}-${(0, uuid_1.v4)()}.png`;
293
+ const filepath = path.join(this.screenshotsDir, filename);
294
+ await page.screenshot({ path: filepath, fullPage: true });
295
+ return filepath;
296
+ }
297
+ /**
298
+ * Get DOM context for hybrid approach
299
+ */
300
+ async getDOMContext(page) {
301
+ try {
302
+ return await page.evaluate(() => {
303
+ const title = document.title;
304
+ const url = window.location.href;
305
+ // Get interactive elements
306
+ const buttons = Array.from(document.querySelectorAll("button"))
307
+ .slice(0, 20)
308
+ .map((b, i) => `Button ${i + 1}: "${b.textContent?.trim()}" (${b.className})`);
309
+ const links = Array.from(document.querySelectorAll("a"))
310
+ .slice(0, 20)
311
+ .map((a, i) => `Link ${i + 1}: "${a.textContent?.trim()}" -> ${a.href} (${a.className})`);
312
+ const inputs = Array.from(document.querySelectorAll("input, textarea"))
313
+ .slice(0, 15)
314
+ .map((i, idx) => `Input ${idx + 1}: type="${i.getAttribute("type")}" placeholder="${i.getAttribute("placeholder")}" name="${i.getAttribute("name")}"`);
315
+ const forms = Array.from(document.querySelectorAll("form"))
316
+ .slice(0, 5)
317
+ .map((f, i) => `Form ${i + 1}: action="${f.action}" (${f.className})`);
318
+ return `
319
+ Page Title: ${title}
320
+ URL: ${url}
321
+
322
+ Interactive Elements:
323
+
324
+ BUTTONS:
325
+ ${buttons.join("\n")}
326
+
327
+ LINKS:
328
+ ${links.join("\n")}
329
+
330
+ INPUTS:
331
+ ${inputs.join("\n")}
332
+
333
+ FORMS:
334
+ ${forms.join("\n")}
335
+ `.trim();
336
+ });
337
+ }
338
+ catch (error) {
339
+ return "DOM context unavailable";
340
+ }
341
+ }
342
+ /**
343
+ * Build comprehensive analysis prompt
344
+ */
345
+ buildAnalysisPrompt(domContext) {
346
+ return `You are analyzing a web page screenshot to understand the UI state.
347
+
348
+ **DOM Context**:
349
+ ${domContext}
350
+
351
+ Return a comprehensive JSON analysis:
352
+ \`\`\`json
353
+ {
354
+ "elements": [/* array of VisualElement objects */],
355
+ "interactiveElements": [/* filteredarray of interactive elements */],
356
+ "uiState": {
357
+ "pageTitle": "string",
358
+ "url": "string",
359
+ "loadingState": "loading|loaded|error",
360
+ "modalOpen": true/false,
361
+ "mainContent": "description of main content"
362
+ },
363
+ "designSystem": {
364
+ "colors": ["#hex1", "#hex2"],
365
+ "typography": ["Font family, size"],
366
+ "spacing": "spacing pattern"
367
+ },
368
+ "layoutStructure": {
369
+ "type": "grid|flex|fixed|responsive",
370
+ "sections": ["header", "sidebar", "main", "footer"]
371
+ },
372
+ "aiInterpretation": "Natural language summary of what's on screen"
373
+ }
374
+ \`\`\``;
375
+ }
376
+ /**
377
+ * Analyze screenshot with custom prompt using AICore fallback
378
+ */
379
+ async analyzeScreenshotWithPrompt(screenshotPath, prompt) {
380
+ return this.askVisionAI(screenshotPath, prompt);
381
+ }
382
+ /**
383
+ * Ask vision AI with a custom prompt via AICore (with fallback)
384
+ */
385
+ async askVisionAI(screenshotPath, prompt) {
386
+ try {
387
+ const text = await this.aiCore.generateVisionText(prompt, screenshotPath);
388
+ // Extract JSON from response
389
+ const jsonMatch = text.match(/```json\n([\s\S]*?)\n```/);
390
+ const jsonText = jsonMatch?.[1] || text;
391
+ try {
392
+ return JSON.parse(jsonText);
393
+ }
394
+ catch (parseError) {
395
+ // If JSON parsing fails, try to find ANY JSON object in the string
396
+ const fallbackMatch = text.match(/\{[\s\S]*\}/);
397
+ if (fallbackMatch) {
398
+ return JSON.parse(fallbackMatch[0]);
399
+ }
400
+ throw parseError;
401
+ }
402
+ }
403
+ catch (error) {
404
+ console.error("Vision AI query failed:", error);
405
+ throw error;
406
+ }
407
+ }
408
+ /**
409
+ * Fallback: Find element by DOM selector
410
+ */
411
+ async findByDOMSelector(page, selector) {
412
+ try {
413
+ const element = await page.$(selector);
414
+ if (!element) {
415
+ return null;
416
+ }
417
+ // Get bounding box for coordinates
418
+ const box = await element.boundingBox();
419
+ if (!box) {
420
+ return null;
421
+ }
422
+ // Get text content
423
+ const textContent = await element.textContent();
424
+ return {
425
+ id: (0, uuid_1.v4)(),
426
+ description: `Element found by selector: ${selector}`,
427
+ type: "unknown",
428
+ visualCoordinates: {
429
+ x: box.x + box.width / 2,
430
+ y: box.y + box.height / 2,
431
+ width: box.width,
432
+ height: box.height,
433
+ },
434
+ domSelector: selector,
435
+ confidence: 60, // Lower confidence for DOM fallback
436
+ interactable: true,
437
+ textContent: textContent || undefined,
438
+ };
439
+ }
440
+ catch (error) {
441
+ return null;
442
+ }
443
+ }
444
+ }
445
+ exports.VisionElementFinder = VisionElementFinder;
446
+ //# sourceMappingURL=vision-element-finder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vision-element-finder.js","sourceRoot":"","sources":["../../src/services/vision-element-finder.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export interface TestMission {
22
22
  * Validation Rule - Specific things to check during testing
23
23
  */
24
24
  export interface ValidationRule {
25
- type: "url-match" | "element-exists" | "text-contains" | "element-visible" | "form-submitted" | "data-updated" | "custom";
25
+ type: string;
26
26
  description: string;
27
27
  selector?: string;
28
28
  expectedValue?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"flow-testing.d.ts","sourceRoot":"","sources":["../../src/types/flow-testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-testing.d.ts","sourceRoot":"","sources":["../../src/types/flow-testing.ts"],"names":[],"mappings":"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"}