testchimp-runner-core 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/VISION_DIAGNOSTICS_IMPROVEMENTS.md +336 -0
  2. package/dist/credit-usage-service.d.ts +9 -0
  3. package/dist/credit-usage-service.d.ts.map +1 -1
  4. package/dist/credit-usage-service.js +20 -5
  5. package/dist/credit-usage-service.js.map +1 -1
  6. package/dist/execution-service.d.ts +7 -2
  7. package/dist/execution-service.d.ts.map +1 -1
  8. package/dist/execution-service.js +91 -36
  9. package/dist/execution-service.js.map +1 -1
  10. package/dist/index.d.ts +30 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +91 -26
  13. package/dist/index.js.map +1 -1
  14. package/dist/llm-facade.d.ts +64 -8
  15. package/dist/llm-facade.d.ts.map +1 -1
  16. package/dist/llm-facade.js +361 -109
  17. package/dist/llm-facade.js.map +1 -1
  18. package/dist/llm-provider.d.ts +39 -0
  19. package/dist/llm-provider.d.ts.map +1 -0
  20. package/dist/llm-provider.js +7 -0
  21. package/dist/llm-provider.js.map +1 -0
  22. package/dist/model-constants.d.ts +21 -0
  23. package/dist/model-constants.d.ts.map +1 -0
  24. package/dist/model-constants.js +24 -0
  25. package/dist/model-constants.js.map +1 -0
  26. package/dist/orchestrator/index.d.ts +8 -0
  27. package/dist/orchestrator/index.d.ts.map +1 -0
  28. package/dist/orchestrator/index.js +23 -0
  29. package/dist/orchestrator/index.js.map +1 -0
  30. package/dist/orchestrator/orchestrator-agent.d.ts +66 -0
  31. package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -0
  32. package/dist/orchestrator/orchestrator-agent.js +855 -0
  33. package/dist/orchestrator/orchestrator-agent.js.map +1 -0
  34. package/dist/orchestrator/tool-registry.d.ts +74 -0
  35. package/dist/orchestrator/tool-registry.d.ts.map +1 -0
  36. package/dist/orchestrator/tool-registry.js +131 -0
  37. package/dist/orchestrator/tool-registry.js.map +1 -0
  38. package/dist/orchestrator/tools/check-page-ready.d.ts +13 -0
  39. package/dist/orchestrator/tools/check-page-ready.d.ts.map +1 -0
  40. package/dist/orchestrator/tools/check-page-ready.js +72 -0
  41. package/dist/orchestrator/tools/check-page-ready.js.map +1 -0
  42. package/dist/orchestrator/tools/extract-data.d.ts +13 -0
  43. package/dist/orchestrator/tools/extract-data.d.ts.map +1 -0
  44. package/dist/orchestrator/tools/extract-data.js +84 -0
  45. package/dist/orchestrator/tools/extract-data.js.map +1 -0
  46. package/dist/orchestrator/tools/index.d.ts +10 -0
  47. package/dist/orchestrator/tools/index.d.ts.map +1 -0
  48. package/dist/orchestrator/tools/index.js +18 -0
  49. package/dist/orchestrator/tools/index.js.map +1 -0
  50. package/dist/orchestrator/tools/inspect-page.d.ts +13 -0
  51. package/dist/orchestrator/tools/inspect-page.d.ts.map +1 -0
  52. package/dist/orchestrator/tools/inspect-page.js +39 -0
  53. package/dist/orchestrator/tools/inspect-page.js.map +1 -0
  54. package/dist/orchestrator/tools/recall-history.d.ts +13 -0
  55. package/dist/orchestrator/tools/recall-history.d.ts.map +1 -0
  56. package/dist/orchestrator/tools/recall-history.js +64 -0
  57. package/dist/orchestrator/tools/recall-history.js.map +1 -0
  58. package/dist/orchestrator/tools/take-screenshot.d.ts +15 -0
  59. package/dist/orchestrator/tools/take-screenshot.d.ts.map +1 -0
  60. package/dist/orchestrator/tools/take-screenshot.js +112 -0
  61. package/dist/orchestrator/tools/take-screenshot.js.map +1 -0
  62. package/dist/orchestrator/types.d.ts +133 -0
  63. package/dist/orchestrator/types.d.ts.map +1 -0
  64. package/dist/orchestrator/types.js +28 -0
  65. package/dist/orchestrator/types.js.map +1 -0
  66. package/dist/playwright-mcp-service.d.ts +9 -0
  67. package/dist/playwright-mcp-service.d.ts.map +1 -1
  68. package/dist/playwright-mcp-service.js +20 -5
  69. package/dist/playwright-mcp-service.js.map +1 -1
  70. package/dist/progress-reporter.d.ts +97 -0
  71. package/dist/progress-reporter.d.ts.map +1 -0
  72. package/dist/progress-reporter.js +18 -0
  73. package/dist/progress-reporter.js.map +1 -0
  74. package/dist/prompts.d.ts +24 -0
  75. package/dist/prompts.d.ts.map +1 -1
  76. package/dist/prompts.js +593 -68
  77. package/dist/prompts.js.map +1 -1
  78. package/dist/providers/backend-proxy-llm-provider.d.ts +25 -0
  79. package/dist/providers/backend-proxy-llm-provider.d.ts.map +1 -0
  80. package/dist/providers/backend-proxy-llm-provider.js +76 -0
  81. package/dist/providers/backend-proxy-llm-provider.js.map +1 -0
  82. package/dist/providers/local-llm-provider.d.ts +21 -0
  83. package/dist/providers/local-llm-provider.d.ts.map +1 -0
  84. package/dist/providers/local-llm-provider.js +35 -0
  85. package/dist/providers/local-llm-provider.js.map +1 -0
  86. package/dist/scenario-service.d.ts +27 -1
  87. package/dist/scenario-service.d.ts.map +1 -1
  88. package/dist/scenario-service.js +48 -12
  89. package/dist/scenario-service.js.map +1 -1
  90. package/dist/scenario-worker-class.d.ts +39 -2
  91. package/dist/scenario-worker-class.d.ts.map +1 -1
  92. package/dist/scenario-worker-class.js +614 -86
  93. package/dist/scenario-worker-class.js.map +1 -1
  94. package/dist/script-utils.d.ts +2 -0
  95. package/dist/script-utils.d.ts.map +1 -1
  96. package/dist/script-utils.js +44 -4
  97. package/dist/script-utils.js.map +1 -1
  98. package/dist/types.d.ts +11 -0
  99. package/dist/types.d.ts.map +1 -1
  100. package/dist/types.js.map +1 -1
  101. package/dist/utils/browser-utils.d.ts +20 -1
  102. package/dist/utils/browser-utils.d.ts.map +1 -1
  103. package/dist/utils/browser-utils.js +102 -51
  104. package/dist/utils/browser-utils.js.map +1 -1
  105. package/dist/utils/page-info-utils.d.ts +23 -4
  106. package/dist/utils/page-info-utils.d.ts.map +1 -1
  107. package/dist/utils/page-info-utils.js +174 -43
  108. package/dist/utils/page-info-utils.js.map +1 -1
  109. package/package.json +1 -2
  110. package/plandocs/HUMAN_LIKE_IMPROVEMENTS.md +642 -0
  111. package/plandocs/MULTI_AGENT_ARCHITECTURE_REVIEW.md +844 -0
  112. package/plandocs/ORCHESTRATOR_MVP_SUMMARY.md +539 -0
  113. package/plandocs/PHASE1_ABSTRACTION_COMPLETE.md +241 -0
  114. package/plandocs/PHASE1_FINAL_STATUS.md +210 -0
  115. package/plandocs/PLANNING_SESSION_SUMMARY.md +372 -0
  116. package/plandocs/SCRIPT_CLEANUP_FEATURE.md +201 -0
  117. package/plandocs/SCRIPT_GENERATION_ARCHITECTURE.md +364 -0
  118. package/plandocs/SELECTOR_IMPROVEMENTS.md +139 -0
  119. package/src/credit-usage-service.ts +23 -5
  120. package/src/execution-service.ts +152 -42
  121. package/src/index.ts +169 -26
  122. package/src/llm-facade.ts +500 -126
  123. package/src/llm-provider.ts +43 -0
  124. package/src/model-constants.ts +23 -0
  125. package/src/orchestrator/index.ts +33 -0
  126. package/src/orchestrator/orchestrator-agent.ts +1037 -0
  127. package/src/orchestrator/tool-registry.ts +182 -0
  128. package/src/orchestrator/tools/check-page-ready.ts +75 -0
  129. package/src/orchestrator/tools/extract-data.ts +92 -0
  130. package/src/orchestrator/tools/index.ts +11 -0
  131. package/src/orchestrator/tools/inspect-page.ts +42 -0
  132. package/src/orchestrator/tools/recall-history.ts +72 -0
  133. package/src/orchestrator/tools/take-screenshot.ts +128 -0
  134. package/src/orchestrator/types.ts +200 -0
  135. package/src/playwright-mcp-service.ts +23 -5
  136. package/src/progress-reporter.ts +109 -0
  137. package/src/prompts.ts +606 -69
  138. package/src/providers/backend-proxy-llm-provider.ts +91 -0
  139. package/src/providers/local-llm-provider.ts +38 -0
  140. package/src/scenario-service.ts +83 -13
  141. package/src/scenario-worker-class.ts +740 -72
  142. package/src/script-utils.ts +50 -5
  143. package/src/types.ts +13 -1
  144. package/src/utils/browser-utils.ts +123 -51
  145. package/src/utils/page-info-utils.ts +210 -53
  146. package/testchimp-runner-core-0.0.22.tgz +0 -0
@@ -0,0 +1,336 @@
1
+ # Vision-Based Diagnostic Analysis Improvements
2
+
3
+ ## Overview
4
+ Enhanced the test automation system to use screenshot-based vision analysis as a **diagnostic tool** to understand WHY failures occur and recommend better strategies based on visual reality vs DOM assumptions.
5
+
6
+ **Vision diagnostics are now utilized in BOTH:**
7
+ 1. **Script Generation** (`ScenarioWorker`) - When generating commands from scenarios
8
+ 2. **Script Repair/Execution** (`ExecutionService`) - When repairing failing scripts with AI
9
+
10
+ ## Problem Statement (From Logs)
11
+ 1. **Hallucinated Verification Targets**: Goal completion was creating fake sub-goals like "verify message was sent" and looking for non-existent elements like "Message sent" text
12
+ 2. **No Screenshot Analysis**: Vision mode was never triggering because LLM assessment always said "NO"
13
+
14
+ ## Solutions Implemented
15
+
16
+ ### 1. Fixed Hallucinated Verification Targets ✅
17
+
18
+ #### A. Goal Completion Check (`prompts.ts` lines 55-129)
19
+ **Changes:**
20
+ - System prompt: "Be EXTREMELY CONSERVATIVE - mark goals complete when PRIMARY action succeeds. DO NOT invent verification steps"
21
+ - Added golden rule: "If goal is SIMPLE ACTION and action SUCCEEDED, mark COMPLETE immediately"
22
+ - Explicit examples showing action goals complete after action succeeds (no verification needed)
23
+
24
+ **Example:**
25
+ ```
26
+ Before: "Click send button" → click succeeds → "INCOMPLETE - need to verify message sent"
27
+ After: "Click send button" → click succeeds → "COMPLETE ✅"
28
+ ```
29
+
30
+ #### B. Command Generation Anti-Hallucination (`prompts.ts` lines 215-225)
31
+ **New Section: "NEVER Hallucinate Verification Elements"**
32
+ - ONLY verify elements that ACTUALLY EXIST in current DOM state
33
+ - Don't invent success messages, confirmations, or sent indicators
34
+ - Use alternative verification: state changes, network, page load
35
+ - Stop trying to find elements after previous attempts failed
36
+
37
+ #### C. Smart Hallucination Detection (`llm-facade.ts` lines 573-599)
38
+ **Automatic Detection:**
39
+ - Detects when LLM repeatedly tries to find non-existent elements (2+ attempts)
40
+ - Shows "⚠️ HALLUCINATION ALERT" with guidance to stop and use alternatives
41
+ - Analyzes command patterns (getByText, toBeVisible) + errors (not found, timeout)
42
+
43
+ ### 2. Enabled Screenshot-Based Diagnostic Analysis 📸
44
+
45
+ #### A. Conservative Screenshot Trigger (`scenario-worker-class.ts` line 193)
46
+ ```typescript
47
+ // ONLY on attempt 2 (3rd attempt, after exactly 2 failures)
48
+ // This is the ONLY chance to use vision - must be absolutely necessary
49
+ if (attempt === 2 && lastError && !usedVisionMode)
50
+ ```
51
+
52
+ **Attempt Flow:**
53
+ - Attempt 0: First try (DOM-based)
54
+ - Attempt 1: Second try (DOM-based)
55
+ - **Attempt 2: Third try - Vision assessment (if truly needed)**
56
+ - Attempt 3: Fourth try (final, DOM-based)
57
+
58
+ #### B. Conservative Screenshot Assessment (`prompts.ts` lines 131-191)
59
+ **System Prompt:** "Be LIBERAL in recommending screenshots - visual context provides diagnostic insights DOM cannot"
60
+
61
+ **Diagnostic Value Framework:**
62
+ 1. Identify WHY attempts failed (DOM assumptions vs visual reality)
63
+ 2. Detect hallucinated elements (see if expected elements exist visually)
64
+ 3. Recommend better strategies (verification based on what's visible)
65
+ 4. Find visual blockers (overlays, modals, layout issues)
66
+ 5. Correct wrong assumptions (actual state vs expected state)
67
+
68
+ **Hallucination Detection in Assessment:**
69
+ - If "not found/timeout" errors + verification attempts → HIGH chance of hallucination
70
+ - Screenshot reveals if elements actually exist
71
+
72
+ #### C. Enhanced Vision Mode as Diagnostic Tool (`prompts.ts` lines 359-462)
73
+
74
+ **System Prompt:** "Analyze screenshot to understand WHY previous attempts failed and recommend BEST next step based on visual reality vs DOM assumptions"
75
+
76
+ **Three Primary Tasks:**
77
+ 1. **DEBUG WHY PREVIOUS ATTEMPTS FAILED** - Compare what you assumed vs what you SEE
78
+ 2. **IDENTIFY THE ROOT CAUSE** - Why did DOM-based approaches fail?
79
+ 3. **RECOMMEND SMARTER ALTERNATIVES** - What should we do instead?
80
+
81
+ **Critical Questions Framework:**
82
+
83
+ 🔍 **Visual vs DOM Reality Check:**
84
+ - What do you SEE vs what DOM suggested?
85
+ - Are elements you tried to find VISIBLE on screen?
86
+ - Are there visual indicators you missed?
87
+ - What's ACTUALLY present vs ASSUMED?
88
+
89
+ 🚫 **Why Did Previous Attempts Fail?**
90
+ - Looking for elements that DON'T EXIST? (hallucination)
91
+ - Wrong selectors for elements that ARE visible?
92
+ - Elements blocked/covered by overlays?
93
+ - Elements in different state than expected?
94
+ - Page in different state than assumed?
95
+
96
+ 💡 **What Should You Do Differently?**
97
+ - If verification elements don't exist: Use state-based verification
98
+ - If elements blocked: Remove blocker first
99
+ - If wrong selector: Use visual clues for better selectors
100
+ - If goal achieved: Confirm with simple wait/check
101
+
102
+ **Verification Strategy Based on Visual Reality:**
103
+
104
+ ```
105
+ IF you see success indicators in screenshot:
106
+ ✅ Use them: await expect(page.getByText('visible-text-here')).toBeVisible()
107
+
108
+ IF you DON'T see success indicators but action appears complete:
109
+ ✅ Use state-based checks:
110
+ - Button disabled check
111
+ - Form cleared/reset check
112
+ - URL changed check
113
+ - Network response verification
114
+ - Load state verification
115
+
116
+ IF previous attempts looked for non-existent elements:
117
+ ❌ STOP looking for them
118
+ ✅ Switch to alternative verification
119
+ ```
120
+
121
+ **Comparison Analysis Template:**
122
+ ```
123
+ "Based on screenshot analysis:
124
+ - DOM suggested: [what you thought was there]
125
+ - Visual reality: [what you actually see]
126
+ - Why previous failed: [root cause analysis]
127
+ - Better approach: [what to do instead]"
128
+ ```
129
+
130
+ #### D. Enhanced Diagnostic Logging (`llm-facade.ts` lines 313-328)
131
+
132
+ **Vision Mode Response Now Includes:**
133
+ - `visualInsights`: What screenshot revealed that DOM couldn't tell you
134
+ - `failureRootCause`: Why previous DOM-based attempts failed
135
+ - `recommendedAlternative`: Better verification/interaction strategy
136
+ - `reasoning`: Full diagnostic analysis
137
+
138
+ **Console Logging:**
139
+ ```
140
+ 📸 Visual insights: [what was discovered]
141
+ 🔍 Root cause analysis: [why it failed]
142
+ 💡 Recommended alternative: [what to do instead]
143
+ 🧠 Vision-based reasoning: [full analysis]
144
+ ```
145
+
146
+ ## Code Modularization
147
+
148
+ Vision diagnostics are properly modularized and reused across both flows:
149
+
150
+ 1. **`LLMFacade` Methods** (shared by both flows):
151
+ - `assessScreenshotNeed()` - Conservative assessment if screenshot would help
152
+ - `getVisionDiagnostics()` - Supervisor analyzes screenshot (gpt-4o)
153
+ - `generateCommandFromSupervisorInstructions()` - Worker generates command (gpt-4.1-mini)
154
+
155
+ 2. **Two-Step Supervisor Pattern** (used consistently):
156
+ ```typescript
157
+ // Step 1: Supervisor analyzes screenshot (expensive vision model)
158
+ const supervisorDiagnostics = await llmFacade.getVisionDiagnostics(...)
159
+
160
+ // Step 2: Use insights for action
161
+ // - In generation: Generate command from instructions
162
+ // - In repair: Enhance failure context with visual insights
163
+ ```
164
+
165
+ 3. **No Code Duplication**:
166
+ - Vision prompts defined once in `prompts.ts`
167
+ - LLM calls handled by `LLMFacade`
168
+ - Both flows use same vision assessment logic
169
+
170
+ ## Behavioral Changes
171
+
172
+ ### Script Generation - Before:
173
+ ```
174
+ 1. Click send button → succeeds
175
+ 2. Goal check → "INCOMPLETE - verify message sent" (hallucinated)
176
+ 3. Try: await expect(page.getByText('Message sent')).toBeVisible()
177
+ 4. Fail: Element not found
178
+ 5. Try: await page.getByRole('status').waitFor()
179
+ 6. Fail: Timeout
180
+ 7. Repeat until max failures
181
+ 8. Screenshot assessment → "NO, not needed"
182
+ 9. Vision mode → never triggers
183
+ ```
184
+
185
+ ### Script Generation - After:
186
+ ```
187
+ 1. Click send button → succeeds
188
+ 2. Goal check → "COMPLETE ✅" (action succeeded, no verification needed)
189
+ OR if verification truly needed but wrong approach:
190
+ 3. After 2 failures → Screenshot assessment
191
+ 4. Assessment → "YES - Diagnostic value: Visual reveals if success indicators exist"
192
+ 5. Vision mode activates with screenshot
193
+ 6. Diagnostic analysis:
194
+ - "DOM suggested: Success message would appear"
195
+ - "Visual reality: No success message visible, button is now disabled"
196
+ - "Root cause: Hallucinated verification element that doesn't exist"
197
+ - "Better approach: Check button disabled state instead"
198
+ 7. Generates: await expect(page.locator('button[name="Send"]')).toBeDisabled()
199
+ 8. Success ✅
200
+ ```
201
+
202
+ ### Script Repair - Before:
203
+ ```
204
+ 1. Script step fails: await page.click('button[name="Submit"]')
205
+ 2. AI Repair attempt 1: Try different selector → Fails
206
+ 3. AI Repair attempt 2: Try with wait → Fails
207
+ 4. AI Repair attempt 3: Try another approach → Fails
208
+ 5. Give up - repair failed
209
+ ```
210
+
211
+ ### Script Repair - After:
212
+ ```
213
+ 1. Script step fails: await page.click('button[name="Submit"]')
214
+ 2. AI Repair attempt 1: Try different selector → Fails
215
+ 3. AI Repair attempt 2: Try with wait → Fails
216
+ 4. After 2 failures → Screenshot assessment
217
+ 5. Assessment → "YES - Visual analysis can reveal why repairs are failing"
218
+ 6. Vision supervisor analyzes screenshot:
219
+ - "Visual analysis: Button is disabled and grayed out"
220
+ - "Root cause: Trying to click a disabled button"
221
+ - "Recommended approach: Wait for button to become enabled first"
222
+ 7. AI Repair attempt 3 with vision insights: Insert wait step before click
223
+ 8. Success ✅ (vision-aided repair)
224
+ ```
225
+
226
+ ## Cost Considerations
227
+
228
+ **Vision Mode (GPT-4o) Triggers in Both Flows:**
229
+
230
+ 1. **Script Generation** (`ScenarioWorker`):
231
+ - After 2 failed command generation attempts (3rd attempt)
232
+ - Only when LLM assessment says "YES"
233
+ - Prevents endless DOM-based retries on wrong assumptions
234
+
235
+ 2. **Script Repair** (`ExecutionService`):
236
+ - After 2 failed repair attempts (3rd/final repair attempt)
237
+ - Only when LLM assessment says "YES"
238
+ - Prevents wasted repair cycles on wrong strategy
239
+
240
+ **What You Get (Both Flows):**
241
+ - Root cause analysis of failures
242
+ - Visual vs DOM reality comparison
243
+ - Recommended alternative strategies
244
+ - Smart fallback only when truly needed
245
+ - Prevents wasted attempts on wrong approaches
246
+
247
+ ## Files Modified
248
+
249
+ 1. **`/runner-core/src/prompts.ts`**
250
+ - Enhanced goal completion check (lines 55-129)
251
+ - Enhanced screenshot assessment (lines 131-184)
252
+ - Enhanced vision mode prompt with diagnostics (lines 359-462)
253
+ - Added anti-hallucination sections
254
+
255
+ 2. **`/runner-core/src/llm-facade.ts`**
256
+ - Added hallucination detection (lines 573-599)
257
+ - Enhanced vision logging (lines 313-328)
258
+ - Vision methods: `assessScreenshotNeed`, `getVisionDiagnostics`, `generateCommandFromSupervisorInstructions`
259
+
260
+ 3. **`/runner-core/src/scenario-worker-class.ts`** (Script Generation)
261
+ - Vision fallback on attempt 2 (line 197)
262
+ - Two-step supervisor pattern for command generation (lines 197-241)
263
+
264
+ 4. **`/runner-core/src/execution-service.ts`** (Script Repair/Execution)
265
+ - Vision fallback on final repair attempt after 2 failures (lines 500-594)
266
+ - Vision-enhanced context for repair suggestions
267
+ - Same supervisor pattern for consistency
268
+
269
+ ## Testing Recommendations
270
+
271
+ ### Script Generation Tests
272
+
273
+ 1. **Test with messaging flow:**
274
+ - Verify "send message" steps complete without hallucinated verification
275
+ - Check if vision mode provides diagnostic insights when command generation fails
276
+
277
+ 2. **Test with form submission:**
278
+ - Ensure submit actions complete without looking for non-existent confirmations
279
+ - Verify alternative verification strategies are used
280
+
281
+ ### Script Repair Tests
282
+
283
+ 1. **Test with selector failures:**
284
+ - Run script with outdated selectors
285
+ - Verify vision diagnostics reveal actual element state
286
+ - Check that repairs use vision insights
287
+
288
+ 2. **Test with state-dependent failures:**
289
+ - Run script where timing/state causes failures
290
+ - Verify vision reveals actual page state (e.g., disabled buttons, loading states)
291
+ - Check that repairs address root cause
292
+
293
+ ### Monitor Both Flows
294
+
295
+ 1. **Vision mode activation:**
296
+ - Should trigger after 2 failures when truly needed (not for every failure)
297
+ - Check diagnostic logs for root cause analysis
298
+ - Verify recommended alternatives are sensible
299
+
300
+ 2. **Success patterns:**
301
+ - Look for "(vision-aided)" markers in success logs
302
+ - Track improvement in success rate after vision diagnostics added
303
+
304
+ ## Next Steps
305
+
306
+ 1. **Monitor logs for:**
307
+ - Reduced hallucination instances (generation flow)
308
+ - Vision mode diagnostic quality (both flows)
309
+ - Alternative verification strategies effectiveness (generation flow)
310
+ - Repair success rate improvement (repair flow)
311
+
312
+ 2. **Metrics to track:**
313
+ - Vision mode activation rate in generation vs repair
314
+ - Hallucination detection rate
315
+ - Test success rate improvement (generation)
316
+ - Repair success rate improvement (execution)
317
+ - Cost vs benefit of vision mode in each flow
318
+
319
+ 3. **Potential future enhancements:**
320
+ - Learn from vision diagnostics to improve DOM-only approaches
321
+ - Build a library of common visual patterns and solutions
322
+ - Optimize screenshot timing based on diagnostic value
323
+ - Consider vision diagnostics for other failure scenarios
324
+ - Share vision insights between generation and repair flows
325
+
326
+ ## Summary
327
+
328
+ **✅ Vision-based diagnostics are now properly integrated into BOTH:**
329
+ - **Script Generation** - Helps generate better commands when DOM info insufficient
330
+ - **Script Repair** - Helps diagnose why repairs fail and suggest better fixes
331
+
332
+ **✅ Properly modularized with no code duplication:**
333
+ - Shared `LLMFacade` methods
334
+ - Consistent two-step supervisor pattern
335
+ - Single source of truth for prompts and logic
336
+
@@ -15,7 +15,16 @@ export interface InsertCreditUsageResponse {
15
15
  export declare class CreditUsageService {
16
16
  private backendUrl;
17
17
  private authConfig;
18
+ private logger?;
18
19
  constructor(authConfig?: AuthConfig, backendUrl?: string);
20
+ /**
21
+ * Set a logger callback for capturing execution logs
22
+ */
23
+ setLogger(logger: (message: string, level?: 'log' | 'error' | 'warn') => void): void;
24
+ /**
25
+ * Log a message using the configured logger
26
+ */
27
+ private log;
19
28
  /**
20
29
  * Update authentication configuration
21
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"credit-usage-service.d.ts","sourceRoot":"","sources":["../src/credit-usage-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAC;AAG3D,oBAAY,iBAAiB;IAC3B,2BAA2B,IAAI;IAC/B,aAAa,IAAI;IACjB,WAAW,IAAI;IACf,eAAe,IAAI;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;CAEzC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAoB;gBAE1B,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM;IAaxD;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAI3C;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACG,iBAAiB,CACrB,OAAO,EAAE,MAAM,YAAI,EACnB,WAAW,EAAE,iBAAiB,EAC9B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,yBAAyB,CAAC;IA8BrC;;OAEG;IACG,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjE;;OAEG;IACG,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS1D"}
1
+ {"version":3,"file":"credit-usage-service.d.ts","sourceRoot":"","sources":["../src/credit-usage-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAC;AAG3D,oBAAY,iBAAiB;IAC3B,2BAA2B,IAAI;IAC/B,aAAa,IAAI;IACjB,WAAW,IAAI;IACf,eAAe,IAAI;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;CAEzC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,MAAM,CAAC,CAA8D;gBAEjE,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM;IAaxD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI;IAIpF;;OAEG;IACH,OAAO,CAAC,GAAG;IAOX;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAI3C;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACG,iBAAiB,CACrB,OAAO,EAAE,MAAM,YAAI,EACnB,WAAW,EAAE,iBAAiB,EAC9B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,yBAAyB,CAAC;IA8BrC;;OAEG;IACG,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjE;;OAEG;IACG,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS1D"}
@@ -27,6 +27,21 @@ class CreditUsageService {
27
27
  }
28
28
  this.authConfig = authConfig || null;
29
29
  }
30
+ /**
31
+ * Set a logger callback for capturing execution logs
32
+ */
33
+ setLogger(logger) {
34
+ this.logger = logger;
35
+ }
36
+ /**
37
+ * Log a message using the configured logger
38
+ */
39
+ log(message, level = 'log') {
40
+ if (this.logger) {
41
+ this.logger(message, level);
42
+ }
43
+ // No console fallback - logs are routed to consumer
44
+ }
30
45
  /**
31
46
  * Update authentication configuration
32
47
  */
@@ -64,7 +79,7 @@ class CreditUsageService {
64
79
  return response.data;
65
80
  }
66
81
  catch (error) {
67
- console.error('Credit usage report failed:', error);
82
+ this.log(`Credit usage report failed: ${error}`, 'error');
68
83
  throw new Error(`Credit usage report failed: ${error.message}`);
69
84
  }
70
85
  }
@@ -74,10 +89,10 @@ class CreditUsageService {
74
89
  async reportScriptGenerationCredit(jobId) {
75
90
  try {
76
91
  await this.reportCreditUsage(1, CreditUsageReason.SCRIPT_GENERATE, jobId);
77
- console.log(`Credit usage reported for script generation${jobId ? ` (job: ${jobId})` : ''}`);
92
+ this.log(`Credit usage reported for script generation${jobId ? ` (job: ${jobId})` : ''}`);
78
93
  }
79
94
  catch (error) {
80
- console.error('Failed to report script generation credit usage:', error);
95
+ this.log(`Failed to report script generation credit usage: ${error}`, 'error');
81
96
  // Don't throw - credit reporting should not break the main flow
82
97
  }
83
98
  }
@@ -87,10 +102,10 @@ class CreditUsageService {
87
102
  async reportAIRepairCredit(jobId) {
88
103
  try {
89
104
  await this.reportCreditUsage(1, CreditUsageReason.TEST_REPAIR, jobId);
90
- console.log(`Credit usage reported for AI repair${jobId ? ` (job: ${jobId})` : ''}`);
105
+ this.log(`Credit usage reported for AI repair${jobId ? ` (job: ${jobId})` : ''}`);
91
106
  }
92
107
  catch (error) {
93
- console.error('Failed to report AI repair credit usage:', error);
108
+ this.log(`Failed to report AI repair credit usage: ${error}`, 'error');
94
109
  // Don't throw - credit reporting should not break the main flow
95
110
  }
96
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"credit-usage-service.js","sourceRoot":"","sources":["../src/credit-usage-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credit-usage-service.js","sourceRoot":"","sources":["../src/credit-usage-service.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,26 @@
1
1
  import { PlaywrightExecutionRequest, PlaywrightExecutionResponse, ScriptExecutionRequest, ScriptExecutionResponse } from './types';
2
2
  import { AuthConfig } from './auth-config';
3
+ import { LLMProvider } from './llm-provider';
4
+ import { ProgressReporter } from './progress-reporter';
3
5
  /**
4
6
  * Service for orchestrating Playwright script execution
5
7
  */
6
8
  export declare class ExecutionService {
7
9
  private playwrightService;
8
10
  private llmFacade;
11
+ private llmProvider;
12
+ private progressReporter?;
9
13
  private creditUsageService;
10
14
  private maxConcurrentExecutions;
11
15
  private activeExecutions;
12
16
  private logger?;
13
- constructor(authConfig?: AuthConfig, backendUrl?: string, maxConcurrentExecutions?: number);
17
+ constructor(authConfig?: AuthConfig, backendUrl?: string, maxConcurrentExecutions?: number, llmProvider?: LLMProvider, progressReporter?: ProgressReporter);
14
18
  /**
15
19
  * Set a logger callback for capturing execution logs
16
20
  */
17
21
  setLogger(logger: (message: string, level?: 'log' | 'error' | 'warn') => void): void;
18
22
  /**
19
- * Log a message using the configured logger or console
23
+ * Log a message using the configured logger
20
24
  */
21
25
  private log;
22
26
  /**
@@ -25,6 +29,7 @@ export declare class ExecutionService {
25
29
  initialize(): Promise<void>;
26
30
  /**
27
31
  * Set authentication configuration for the service
32
+ * Note: This recreates the LLM provider with new auth config
28
33
  */
29
34
  setAuthConfig(authConfig: AuthConfig): void;
30
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"execution-service.d.ts","sourceRoot":"","sources":["../src/execution-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAE3B,sBAAsB,EACtB,uBAAuB,EAKxB,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,MAAM,CAAC,CAA8D;gBAEjE,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,uBAAuB,GAAE,MAAW;IAO9F;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI;IAIpF;;OAEG;IACH,OAAO,CAAC,GAAG;IAcX;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAM3C;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAkBtF;;OAEG;YACW,qBAAqB;IAmBnC;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAgCjG;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsC7B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,OAAO,IAAI,OAAO;YAIJ,UAAU;YAwDV,eAAe;YAsGf,oBAAoB;IAgBlC,OAAO,CAAC,4BAA4B;YA8CtB,iBAAiB;YAuOjB,eAAe;IAyB7B;;OAEG;IACH,OAAO,CAAC,aAAa;YAeP,oBAAoB;YAoDpB,oBAAoB;YAiBpB,mBAAmB;IAejC,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,yBAAyB;YA0CnB,0BAA0B;YAkF1B,iBAAiB;IA0D/B,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;YACW,iBAAiB;IAI/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAkC3B"}
1
+ {"version":3,"file":"execution-service.d.ts","sourceRoot":"","sources":["../src/execution-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAE3B,sBAAsB,EACtB,uBAAuB,EAKxB,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,MAAM,CAAC,CAA8D;gBAG3E,UAAU,CAAC,EAAE,UAAU,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,uBAAuB,GAAE,MAAW,EACpC,WAAW,CAAC,EAAE,WAAW,EACzB,gBAAgB,CAAC,EAAE,gBAAgB;IAarC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI;IAIpF;;OAEG;IACH,OAAO,CAAC,GAAG;IAOX;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAQ3C;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAkBtF;;OAEG;YACW,qBAAqB;IAmBnC;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAgCjG;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsC7B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,OAAO,IAAI,OAAO;YAIJ,UAAU;YAwDV,eAAe;YAsGf,oBAAoB;IAgBlC,OAAO,CAAC,4BAA4B;YA8CtB,iBAAiB;YAqUjB,eAAe;IA0B7B;;OAEG;IACH,OAAO,CAAC,aAAa;YAeP,oBAAoB;YAoDpB,oBAAoB;YAiBpB,mBAAmB;IAcjC,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,yBAAyB;YA0CnB,0BAA0B;YAkF1B,iBAAiB;IA0D/B,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;YACW,iBAAiB;IAI/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAkC3B"}