testchimp-runner-core 0.0.58 → 0.0.59

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.
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-prompts.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator-prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAqIvC,qBAAa,mBAAmB;IAG9B;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,mBAAmB,GAAE,OAAe,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IA0KpG;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM;IA2WnF;;OAEG;IACH,MAAM,CAAC,4BAA4B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAiGrE;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAC/B,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;CA4JV"}
1
+ {"version":3,"file":"orchestrator-prompts.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator-prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAqIvC,qBAAa,mBAAmB;IAG9B;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,mBAAmB,GAAE,OAAe,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IA0KpG;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM;IAuSnF;;OAEG;IACH,MAAM,CAAC,4BAA4B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAiGrE;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAC/B,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;CA6EV"}
@@ -124,8 +124,8 @@ Rate on scale 0-5:
124
124
  - 5: Very useful, directly helped achieve goal
125
125
  - 3: Somewhat useful, provided context
126
126
  - 0: Not useful, didn't help
127
- Example: If you received results for "take_screenshot" and "refresh_som_markers":
128
- "debugInfo": { "toolUsefulnessFeedback": { "take_screenshot": 4, "refresh_som_markers": 2 } }
127
+ Example: If you received results for "view_previous_screenshot" and "refresh_som_markers":
128
+ "debugInfo": { "toolUsefulnessFeedback": { "view_previous_screenshot": 4, "refresh_som_markers": 2 } }
129
129
  `;
130
130
  // ===================================================================
131
131
  class OrchestratorPrompts {
@@ -198,7 +198,7 @@ Example: Step "Add new campaign" → Look for plus icon in toolbar → Check map
198
198
 
199
199
  CRITICAL: ONLY INTERACT WITH VISIBLE ELEMENTS - use your EYES, not assumptions!
200
200
  FORBIDDEN: Guessing locations, assuming "typical" positions, clicking without seeing element.
201
- REQUIRED: Only interact with elements you SEE in screenshot. If not visible, scroll or use take_screenshot(isFullPage=true).
201
+ REQUIRED: Only interact with elements you SEE in the provided full-page screenshot. If something seems missing, double-check the image and element map; if state changed, refresh markers or adjust the UI (expand sections, navigate) before acting.
202
202
  If action fails, try alternative elements - don't repeat same ID blindly.
203
203
 
204
204
  TYPESCRIPT INTERFACES (your response MUST conform to these):
@@ -343,7 +343,7 @@ OUTPUT: Return valid JSON. Example: { "status": "complete", "commands": [{"eleme
343
343
  // const heightOk = context.pageHeight && context.viewportHeight && context.pageHeight < (context.viewportHeight * 2);
344
344
  // const widthOk = context.pageWidth && context.viewportWidth && context.pageWidth < (context.viewportWidth * 2);
345
345
  // const isCompactPage = heightOk && widthOk;
346
- parts.push('- Screenshot tool: Use ONCE for visual context, then ACT (max 3 per step, system enforced)');
346
+ parts.push('- Screenshot already provided: study the full-page image carefully, then ACT (analysis without action is penalized)');
347
347
  parts.push('- Max 5 iterations per step, then forced STUCK\n');
348
348
  // Dynamic content follows (changes per iteration)
349
349
  parts.push('=== CURRENT CONTEXT ===\n');
@@ -365,34 +365,12 @@ OUTPUT: Return valid JSON. Example: { "status": "complete", "commands": [{"eleme
365
365
  parts.push(`Example: "debugInfo": { "toolUsefulnessFeedback": { "${toolNames[0]}": 4${toolNames.length > 1 ? `, "${toolNames[1]}": 3` : ''} } }`);
366
366
  parts.push('');
367
367
  }
368
- // Check for screenshot loops (analysis paralysis) - PER STEP tracking
369
368
  const recentSteps = context.journeyMemory.history.slice(-6);
370
- const screenshotsThisStep = recentSteps.filter(s => s.stepNumber === context.stepNumber &&
371
- (s.code.includes('take_screenshot') || s.action.toLowerCase().includes('screenshot')));
372
- const recentScreenshots = recentSteps.slice(-3).filter(s => s.code.includes('take_screenshot') || s.action.toLowerCase().includes('screenshot'));
373
- if (screenshotsThisStep.length >= 3) {
374
- parts.push(`[CRITICAL] SCREENSHOT LOOP DETECTED - ${screenshotsThisStep.length} SCREENSHOTS THIS STEP`);
375
- parts.push(`ANALYSIS PARALYSIS! You keep gathering info but NEVER ACTING!`);
376
- parts.push(`NO MORE SCREENSHOTS ALLOWED - YOU MUST ACT NOW!`);
377
- parts.push(`Pick ANY selector from your prior DOM snapshots and TRY IT.`);
378
- parts.push(`Even if uncertain, execute the command. Failure is better than analysis paralysis.`);
379
- parts.push(`If toolCalls contains "take_screenshot" → SYSTEM WILL REJECT IT\n`);
380
- }
381
- else if (recentScreenshots.length >= 2) {
382
- parts.push(`[WARNING] ${recentScreenshots.length} screenshots in last 3 iterations - avoid more screenshots`);
383
- parts.push(`Use selector recommendations from prior screenshots\n`);
384
- }
385
369
  // System warnings for accumulated failures
386
370
  if (consecutiveFailures && consecutiveFailures >= 2 && consecutiveFailures < 3) {
387
371
  parts.push(`[WARNING] SYSTEM WARNING: ${consecutiveFailures} failures!`);
388
- // Only suggest screenshot if we haven't already taken multiple THIS STEP
389
- if (screenshotsThisStep.length === 0) {
390
- parts.push(`Take full-page screenshot to see page state: { "name": "take_screenshot", "params": {"isFullPage": true} }`);
391
- parts.push(`Then ACT with selector from the screenshot analysis.`);
392
- }
393
- else {
394
- parts.push(`You already have visual context. Try different selector NOW.`);
395
- }
372
+ parts.push(`Re-study the full-page screenshot already provided to confirm page state.`);
373
+ parts.push(`If markers look stale after your last action, call refresh_som_markers; otherwise proceed with commands.`);
396
374
  parts.push(`Question assumptions: Am I at the right step?`);
397
375
  parts.push(`[WARNING]\n`);
398
376
  }
@@ -483,97 +461,62 @@ OUTPUT: Return valid JSON. Example: { "status": "complete", "commands": [{"eleme
483
461
  parts.push(` b. Look up those specific SoM IDs in the element map below`);
484
462
  parts.push(` c. Compare the element details (text, role, aria-label) in the map with your target`);
485
463
  parts.push(` d. Select the SoM ID whose element details in the map match your target`);
486
- parts.push(`3. The element map is for DISAMBIGUATION when visual position is ambiguous:`);
464
+ parts.push(`3. The element map is for DISAMBIGUATION when visual position is ambiguous - use it to verify which nearby element is correct`);
487
465
  parts.push(context.somElementMap);
488
466
  parts.push(``);
489
467
  }
468
+ parts.push(`[CRITICAL] DISABLED ELEMENTS`);
469
+ parts.push(`SoM only marks ENABLED interactive elements. If you don't see an expected element (e.g., Submit button):`);
470
+ parts.push(`- FIRST: Check visual appearance - is it present but grayed out/subdued/reduced opacity? If so, it's DISABLED`);
471
+ parts.push(`- If visually disabled: Fill required fields FIRST, then it will become enabled (markers will update automatically after page changes)`);
472
+ parts.push(`- DO NOT call refresh_som_markers just because an element is missing - check visual cues first`);
473
+ parts.push(`- Only use refresh_som_markers if markers are VISUALLY MISALIGNED with elements in the current screenshot`);
474
+ parts.push(`- Do NOT plan to refresh markers "after clicking" - execute the click command first, then refresh only if markers are actually stale`);
475
+ parts.push(``);
490
476
  }
491
- // Current page state (most variable content - at the end)
492
477
  parts.push(`\nCURRENT PAGE:`);
493
478
  parts.push(`URL: ${context.currentURL}`);
494
479
  parts.push(`Title: ${context.currentPageTitle}`);
495
- // Page dimensions for scroll decisions
496
- if (context.viewportWidth && context.viewportHeight && context.pageHeight) {
497
- const heightOk = context.pageHeight < (context.viewportHeight * 2);
498
- const widthOk = context.pageWidth && context.pageWidth < (context.viewportWidth * 2);
499
- const isCompactPage = heightOk && widthOk;
500
- parts.push(`\nPAGE DIMENSIONS & SCROLL POSITION:`);
501
- parts.push(`Viewport: ${context.viewportWidth}x${context.viewportHeight}px`);
502
- parts.push(`Full Page: ${context.pageWidth}x${context.pageHeight}px`);
503
- parts.push(`Screenshot Mode: ${isCompactPage ? 'FULL PAGE (compact page, all visible)' : 'VIEWPORT ONLY (large page, full-page markers would be too small)'}`);
504
- if (context.scrollY !== undefined && context.scrollY > 0) {
505
- parts.push(`Current Scroll: ${context.scrollY}px from top (you've already scrolled down)`);
506
- }
507
- else {
508
- parts.push(`Current Scroll: At top of page (scrollY = 0)`);
509
- }
510
- const canScrollDown = context.pageHeight > context.viewportHeight;
511
- const canScrollRight = context.pageWidth && context.pageWidth > context.viewportWidth;
512
- if (!isCompactPage && (canScrollDown || canScrollRight)) {
513
- const remainingBelow = Math.max(0, context.pageHeight - context.viewportHeight - (context.scrollY || 0));
514
- const remainingRight = context.pageWidth ? Math.max(0, context.pageWidth - context.viewportWidth - (context.scrollX || 0)) : 0;
515
- const hiddenContent = [];
516
- if (remainingBelow > 0)
517
- hiddenContent.push(`${remainingBelow}px below`);
518
- if (remainingRight > 0)
519
- hiddenContent.push(`${remainingRight}px to right`);
520
- if (hiddenContent.length > 0) {
521
- parts.push(`Hidden content: ${hiddenContent.join(', ')}`);
522
- parts.push(`💡 If element not found → Call: take_screenshot with {"isFullPage": true, "purpose": "Find X"}`);
523
- parts.push(` This shows entire page (markers small but LLM can still locate elements)`);
524
- }
525
- }
526
- else if (isCompactPage) {
527
- parts.push(`All content visible in screenshot (no need for additional tools)`);
528
- }
529
- }
530
- // In SoM mode, element details are in somElementMap (visual screenshot)
480
+ // In SoM mode, element details are in somElementMap
531
481
  parts.push(`\nNote: Element details available in visual screenshot with SoM markers.`);
532
- parts.push('');
482
+ // Recent actions
533
483
  // Show current URL with change detection
534
484
  const currentUrl = truncateUrl(context.currentURL || '');
535
485
  const lastAction = context.journeyMemory.history[context.journeyMemory.history.length - 1];
536
486
  if (lastAction && lastAction.previousUrl && lastAction.url !== lastAction.previousUrl) {
537
487
  const prevUrl = truncateUrl(lastAction.previousUrl);
538
488
  const newUrl = truncateUrl(lastAction.url);
539
- parts.push(`🔄 URL CHANGED: ${prevUrl} → ${newUrl}`);
540
- parts.push(` ⚠️ Navigation occurred! Previous action likely succeeded and triggered page transition.\n`);
489
+ parts.push(`\n🔄 URL CHANGED: ${prevUrl} → ${newUrl}`);
490
+ parts.push(` ⚠️ Navigation occurred! Previous action likely triggered page transition.\n`);
541
491
  }
542
492
  else {
543
- parts.push(`📍 Current URL: ${currentUrl}\n`);
493
+ parts.push(`\n📍 Current URL: ${currentUrl}\n`);
544
494
  }
545
- // Recent steps (most variable content - at the end)
546
- const recentStepsDisplay = context.journeyMemory.history.slice(-6);
547
- if (recentStepsDisplay.length > 0) {
548
- parts.push(`RECENT STEPS (last ${recentStepsDisplay.length}):`);
549
- for (const step of recentStepsDisplay) {
495
+ const recentActions = context.journeyMemory.history.slice(-6);
496
+ if (recentActions.length > 0) {
497
+ parts.push(`RECENT ACTIONS (last ${recentActions.length}):`);
498
+ for (const step of recentActions) {
550
499
  const status = step.result === 'success' ? '[OK]' : '[FAIL]';
551
500
  const urlChanged = step.previousUrl && step.url !== step.previousUrl
552
- ? ` [URL: ${step.previousUrl} → ${step.url}]`
501
+ ? ` [URL: ${truncateUrl(step.previousUrl)} → ${truncateUrl(step.url)}]`
553
502
  : '';
554
- parts.push(` ${status} ${step.stepNumber}.${step.iteration || ''} ${step.action}${urlChanged}`);
555
- parts.push(` Code: ${step.code}`);
556
- if (step.result === 'failure' && step.error) {
557
- parts.push(` ERROR: ${step.error}`);
558
- parts.push(` ^^ THIS SELECTOR FAILED - TRY DIFFERENT APPROACH ^^`);
559
- }
560
- else {
561
- parts.push(` Result: ${step.observation}`);
562
- }
563
- }
564
- parts.push('');
565
- // Detect repeated failures
566
- const recentFailures = recentStepsDisplay.filter(s => s.result === 'failure');
567
- if (recentFailures.length >= 2) {
568
- const sameSelector = recentFailures.slice(-2).every((s, i, arr) => i === 0 || s.code === arr[i - 1].code);
569
- if (sameSelector) {
570
- parts.push(`[WARNING] WARNING: You've tried the same selector multiple times and it failed!`);
571
- parts.push(` Last failed selector: ${recentFailures[recentFailures.length - 1].code}`);
572
- parts.push(` YOU MUST try a completely different selector this time!\n`);
573
- }
503
+ parts.push(` ${status} ${step.action}${urlChanged}`);
504
+ parts.push(` ${step.observation}`);
574
505
  }
575
506
  }
576
- // Site learnings (persistent knowledge)
507
+ // System warnings for accumulated failures
508
+ if (consecutiveFailures && consecutiveFailures >= 2 && consecutiveFailures < 3) {
509
+ parts.push(`[WARNING] SYSTEM WARNING: ${consecutiveFailures} failures!`);
510
+ parts.push(`Re-study the full-page screenshot already provided to confirm page state.`);
511
+ parts.push(`If markers look stale after your last action, call refresh_som_markers; otherwise proceed with commands.`);
512
+ parts.push(`Question assumptions: Am I at the right step?`);
513
+ parts.push(`[WARNING]\n`);
514
+ }
515
+ else if (consecutiveFailures && consecutiveFailures >= 4) {
516
+ parts.push(`[WARNING] CRITICAL: ${consecutiveFailures} failures!`);
517
+ parts.push(`Next failure will force STUCK. Try radically different approach.\n`);
518
+ }
519
+ // Site learnings
577
520
  if (context.siteLearnings) {
578
521
  const { screens, uxPatterns } = context.siteLearnings;
579
522
  // Display UX patterns with IDs
@@ -788,75 +731,6 @@ YOU decide the exploration path to meet the journey goal based on: journey promp
788
731
  parts.push(`- Do NOT plan to refresh markers "after clicking" - execute the click command first, then refresh only if markers are actually stale`);
789
732
  parts.push(``);
790
733
  }
791
- parts.push(`\nCURRENT PAGE:`);
792
- parts.push(`URL: ${context.currentURL}`);
793
- parts.push(`Title: ${context.currentPageTitle}`);
794
- // In SoM mode, element details are in somElementMap
795
- parts.push(`\nNote: Element details available in visual screenshot with SoM markers.`);
796
- // Recent actions
797
- // Show current URL with change detection
798
- const currentUrl = truncateUrl(context.currentURL || '');
799
- const lastAction = context.journeyMemory.history[context.journeyMemory.history.length - 1];
800
- if (lastAction && lastAction.previousUrl && lastAction.url !== lastAction.previousUrl) {
801
- const prevUrl = truncateUrl(lastAction.previousUrl);
802
- const newUrl = truncateUrl(lastAction.url);
803
- parts.push(`\n🔄 URL CHANGED: ${prevUrl} → ${newUrl}`);
804
- parts.push(` ⚠️ Navigation occurred! Previous action likely triggered page transition.\n`);
805
- }
806
- else {
807
- parts.push(`\n📍 Current URL: ${currentUrl}\n`);
808
- }
809
- const recentActions = context.journeyMemory.history.slice(-6);
810
- if (recentActions.length > 0) {
811
- parts.push(`RECENT ACTIONS (last ${recentActions.length}):`);
812
- for (const step of recentActions) {
813
- const status = step.result === 'success' ? '[OK]' : '[FAIL]';
814
- const urlChanged = step.previousUrl && step.url !== step.previousUrl
815
- ? ` [URL: ${truncateUrl(step.previousUrl)} → ${truncateUrl(step.url)}]`
816
- : '';
817
- parts.push(` ${status} ${step.action}${urlChanged}`);
818
- parts.push(` ${step.observation}`);
819
- }
820
- }
821
- // Site learnings
822
- if (context.siteLearnings) {
823
- const { screens, uxPatterns } = context.siteLearnings;
824
- const uxPatternEntries = Object.entries(uxPatterns);
825
- if (uxPatternEntries.length > 0) {
826
- parts.push(`\n🎯 SITE-WIDE UX PATTERNS (reference [ID] for updates/deletes):`);
827
- uxPatternEntries.forEach(([id, text]) => parts.push(` [${id}] ${text}`));
828
- }
829
- // Display screen/state vocabulary first (for consistent naming)
830
- if (context.siteLearnings?.screenStateVocabulary && Object.keys(context.siteLearnings.screenStateVocabulary).length > 0) {
831
- parts.push(`\n📋 SCREEN STATE VOCABULARY (use these names for consistency):`);
832
- Object.entries(context.siteLearnings.screenStateVocabulary).forEach(([screenName, stateNames]) => {
833
- const statesDisplay = stateNames.length > 0
834
- ? ` → States: ${stateNames.map(s => s || '""').join(', ')}`
835
- : '';
836
- parts.push(` • ${screenName}${statesDisplay}`);
837
- });
838
- }
839
- if (screens && Object.keys(screens).length > 0) {
840
- parts.push(`\n📚 SCREEN STATE KNOWLEDGE (reference [ID] for updates/deletes):`);
841
- Object.entries(screens).forEach(([screenName, screenLearnings]) => {
842
- Object.entries(screenLearnings.states).forEach(([state, learning]) => {
843
- const stateLabel = state ? `[${state}]` : '';
844
- parts.push(`\n ${screenName}${stateLabel}:`);
845
- const obsEntries = Object.entries(learning.observations);
846
- if (obsEntries.length > 0) {
847
- obsEntries.forEach(([id, text]) => {
848
- parts.push(` [${id}] ${text}`);
849
- });
850
- }
851
- });
852
- });
853
- }
854
- }
855
- // Note from previous iteration
856
- if (context.journeyMemory.latestNote) {
857
- parts.push(`\nYOUR NOTE FROM LAST ITERATION: ${context.journeyMemory.latestNote.content}`);
858
- parts.push(` ^^ Follow your own instructions from previous iteration ^^`);
859
- }
860
734
  parts.push(`\nDECIDE NEXT ACTION: What to explore/test next? Check history to avoid repeating. Is goal achieved? Mark complete.`);
861
735
  return parts.join('\n');
862
736
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-prompts.js","sourceRoot":"","sources":["../../src/orchestrator/orchestrator-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator-prompts.js","sourceRoot":"","sources":["../../src/orchestrator/orchestrator-prompts.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testchimp-runner-core",
3
- "version": "0.0.58",
3
+ "version": "0.0.59",
4
4
  "description": "Core TestChimp functionality for test generation and AI repair",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,15 +0,0 @@
1
- /**
2
- * Take Screenshot Tool
3
- * Captures current page state visually and analyzes it with DOM snapshot
4
- */
5
- import { Tool, ToolParameter, ToolExecutionContext } from '../tool-registry';
6
- import { ToolResult } from '../types';
7
- export declare class TakeScreenshotTool implements Tool {
8
- name: string;
9
- description: string;
10
- private llmFacade?;
11
- setLLMFacade(llmFacade: any): void;
12
- parameters: ToolParameter[];
13
- execute(params: Record<string, any>, context: ToolExecutionContext): Promise<ToolResult>;
14
- }
15
- //# sourceMappingURL=take-screenshot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"take-screenshot.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/tools/take-screenshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,qBAAa,kBAAmB,YAAW,IAAI;IAC7C,IAAI,SAAqB;IACzB,WAAW,SAA4O;IAGvP,OAAO,CAAC,SAAS,CAAC,CAAM;IAExB,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAIlC,UAAU,EAAE,aAAa,EAAE,CAczB;IAEI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;CAkG/F"}
@@ -1,121 +0,0 @@
1
- "use strict";
2
- /**
3
- * Take Screenshot Tool
4
- * Captures current page state visually and analyzes it with DOM snapshot
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.TakeScreenshotTool = void 0;
8
- const page_info_utils_1 = require("../../utils/page-info-utils");
9
- const model_constants_1 = require("../../model-constants");
10
- class TakeScreenshotTool {
11
- constructor() {
12
- this.name = 'take_screenshot';
13
- this.description = 'Capture a screenshot and analyze it with DOM snapshot to get actionable selector recommendations. Use when you need to see the actual page visually to find the right elements. Returns text-based analysis with selector suggestions.';
14
- this.parameters = [
15
- {
16
- name: 'isFullPage',
17
- type: 'boolean',
18
- description: 'If true, captures entire page (scrolling). If false, captures only viewport. DEFAULT: true (recommended for finding elements that may be below fold)',
19
- required: false,
20
- default: true
21
- },
22
- {
23
- name: 'purpose',
24
- type: 'string',
25
- description: 'What you are trying to find or understand from the screenshot',
26
- required: false
27
- }
28
- ];
29
- }
30
- setLLMFacade(llmFacade) {
31
- this.llmFacade = llmFacade;
32
- }
33
- async execute(params, context) {
34
- const { page, logger } = context;
35
- const isFullPage = params.isFullPage !== undefined ? params.isFullPage : true; // Default: true (capture full page)
36
- const purpose = params.purpose || 'Analyze page structure and elements';
37
- try {
38
- // Debug logging to see actual params received
39
- logger?.(`[TakeScreenshot] Params received: ${JSON.stringify(params)}`, 'log');
40
- logger?.(`[TakeScreenshot] Capturing ${isFullPage ? 'full page' : 'viewport'} screenshot for: ${purpose}`, 'log');
41
- // Capture screenshot (JPEG 60 quality for smaller size)
42
- const screenshotBuffer = await page.screenshot({
43
- fullPage: isFullPage,
44
- type: 'jpeg',
45
- quality: 60
46
- });
47
- // Convert to data URL
48
- const base64 = screenshotBuffer.toString('base64');
49
- const dataUrl = `data:image/jpeg;base64,${base64}`;
50
- // Get page dimensions for debugging
51
- const viewport = page.viewportSize();
52
- // @ts-expect-error - document is available in browser context during page.evaluate()
53
- const pageHeight = await page.evaluate(() => document.body.scrollHeight);
54
- logger?.(`[TakeScreenshot] ✓ Screenshot captured (${Math.round(base64.length / 1024)}KB)`, 'log');
55
- logger?.(`[TakeScreenshot] Viewport: ${viewport?.width}x${viewport?.height}, Page height: ${pageHeight}px`, 'log');
56
- logger?.(`[TakeScreenshot] Screenshot type: ${isFullPage ? 'FULL PAGE' : 'VIEWPORT ONLY'}`, 'log');
57
- logger?.(`[TakeScreenshot] Analyzing with DOM...`, 'log');
58
- // Get DOM snapshot for correlation (already has ARIA tree + interactive elements with bboxes)
59
- const pageInfo = await (0, page_info_utils_1.getEnhancedPageInfo)(page);
60
- // Analyze screenshot with structured DOM via LLM
61
- let analysis = 'Screenshot captured. Use DOM snapshot in context to find selectors.';
62
- if (this.llmFacade) {
63
- try {
64
- logger?.(`[TakeScreenshot] Calling LLM for vision analysis...`, 'log');
65
- const analysisPrompt = `Analyze screenshot WITH DOM structure to identify correct Playwright selectors.
66
-
67
- PURPOSE: ${purpose}
68
-
69
- INTERACTIVE ELEMENTS (with positions and suggested selectors):
70
- ${pageInfo.formattedElements}
71
-
72
- ARIA TREE (hierarchical structure):
73
- ${JSON.stringify(pageInfo.ariaSnapshot, null, 2).substring(0, 2000)}
74
-
75
- TASK:
76
- 1. Look at screenshot - identify the visual elements you need for: ${purpose}
77
- 2. Match visual position with bounding boxes above
78
- 3. Recommend SEMANTIC SELECTORS FIRST: getByRole, getByLabel, getByPlaceholder, getByText
79
- 4. AVOID auto-generated IDs with unicode (e.g., #«r3»-form-item)
80
-
81
- Output format:
82
- "For [visual element description]:
83
- Try: [semantic selector from list - prefer getByRole/getByLabel]
84
- Or: [alternative selector]"
85
-
86
- Be concise. Only 2-3 recommendations. Prioritize user-friendly semantic selectors.`;
87
- const llmResponse = await this.llmFacade.llmProvider.callLLM({
88
- model: model_constants_1.VISION_MODEL,
89
- systemPrompt: 'You are a vision analysis expert for web automation. Analyze screenshots with DOM snapshots to recommend working Playwright selectors. ALWAYS prioritize semantic selectors (getByRole, getByLabel, getByText) over CSS selectors with auto-generated IDs.',
90
- userPrompt: analysisPrompt,
91
- imageUrl: dataUrl
92
- });
93
- analysis = llmResponse.answer || analysis;
94
- logger?.(`[TakeScreenshot] ✓ Vision analysis complete`, 'log');
95
- }
96
- catch (error) {
97
- logger?.(`[TakeScreenshot] ⚠ Vision analysis failed, returning raw screenshot: ${error.message}`, 'warn');
98
- }
99
- }
100
- return {
101
- success: true,
102
- data: {
103
- screenshot: dataUrl,
104
- isFullPage,
105
- size: base64.length,
106
- interactiveElementCount: pageInfo.interactiveElements.length
107
- },
108
- learning: analysis // Text-based analysis with selector recommendations
109
- };
110
- }
111
- catch (error) {
112
- logger?.(`[TakeScreenshot] ✗ Failed: ${error.message}`, 'error');
113
- return {
114
- success: false,
115
- error: `Screenshot capture failed: ${error.message}`
116
- };
117
- }
118
- }
119
- }
120
- exports.TakeScreenshotTool = TakeScreenshotTool;
121
- //# sourceMappingURL=take-screenshot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"take-screenshot.js","sourceRoot":"","sources":["../../../src/orchestrator/tools/take-screenshot.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,iEAAkE;AAClE,2DAAqD;AAErD,MAAa,kBAAkB;IAA/B;QACE,SAAI,GAAG,iBAAiB,CAAC;QACzB,gBAAW,GAAG,wOAAwO,CAAC;QASvP,eAAU,GAAoB;YAC5B;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,sJAAsJ;gBACnK,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+DAA+D;gBAC5E,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC;IAoGJ,CAAC;IAtHC,YAAY,CAAC,SAAc;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAkBD,KAAK,CAAC,OAAO,CAAC,MAA2B,EAAE,OAA6B;QACtE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAE,oCAAoC;QACpH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,qCAAqC,CAAC;QAExE,IAAI,CAAC;YACH,8CAA8C;YAC9C,MAAM,EAAE,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC/E,MAAM,EAAE,CAAC,8BAA8B,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,oBAAoB,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YAElH,wDAAwD;YACxD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBAC7C,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YAEH,sBAAsB;YACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,0BAA0B,MAAM,EAAE,CAAC;YAEnD,oCAAoC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,qFAAqF;YACrF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEzE,MAAM,EAAE,CAAC,2CAA2C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAClG,MAAM,EAAE,CAAC,gCAAgC,QAAQ,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,kBAAkB,UAAU,IAAI,EAAE,KAAK,CAAC,CAAC;YACrH,MAAM,EAAE,CAAC,uCAAuC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;YACrG,MAAM,EAAE,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YAE5D,8FAA8F;YAC9F,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;YAEjD,iDAAiD;YACjD,IAAI,QAAQ,GAAG,qEAAqE,CAAC;YAErF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;oBAEvE,MAAM,cAAc,GAAG;;WAEtB,OAAO;;;EAGhB,QAAQ,CAAC,iBAAiB;;;EAG1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;;;qEAGE,OAAO;;;;;;;;;;mFAUO,CAAC;oBAG1E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;wBAC3D,KAAK,EAAE,8BAAY;wBACnB,YAAY,EAAE,4PAA4P;wBAC1Q,UAAU,EAAE,cAAc;wBAC1B,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;oBAEH,QAAQ,GAAG,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC;oBAC1C,MAAM,EAAE,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;gBAEjE,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,MAAM,EAAE,CAAC,wEAAwE,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC5G,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,UAAU,EAAE,OAAO;oBACnB,UAAU;oBACV,IAAI,EAAE,MAAM,CAAC,MAAM;oBACnB,uBAAuB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,MAAM;iBAC7D;gBACD,QAAQ,EAAE,QAAQ,CAAE,oDAAoD;aACzE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,8BAA8B,KAAK,CAAC,OAAO,EAAE;aACrD,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA7HD,gDA6HC"}