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,64 @@
1
+ "use strict";
2
+ /**
3
+ * Recall History Tool
4
+ * Access deeper history beyond the recent 6-7 steps always provided
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RecallHistoryTool = void 0;
8
+ class RecallHistoryTool {
9
+ constructor() {
10
+ this.name = 'recall_history';
11
+ this.description = 'Access journey history beyond the recent 6-7 steps always provided in context. Use when you need to remember what happened earlier in the journey.';
12
+ this.parameters = [
13
+ {
14
+ name: 'maxSteps',
15
+ type: 'number',
16
+ description: 'Maximum number of historical steps to retrieve (from most recent backwards)',
17
+ required: false,
18
+ default: 10
19
+ },
20
+ {
21
+ name: 'query',
22
+ type: 'string',
23
+ description: 'Optional: Filter for specific actions (e.g., "login", "form fill")',
24
+ required: false
25
+ }
26
+ ];
27
+ }
28
+ async execute(params, context) {
29
+ const { memory, logger } = context;
30
+ const journeyMemory = memory;
31
+ const maxSteps = params.maxSteps || 10;
32
+ const query = params.query?.toLowerCase();
33
+ try {
34
+ logger?.(`[RecallHistory] Retrieving up to ${maxSteps} historical steps${query ? ` matching "${query}"` : ''}`, 'log');
35
+ let steps = [...journeyMemory.history];
36
+ // Filter by query if provided
37
+ if (query) {
38
+ steps = steps.filter(step => step.action.toLowerCase().includes(query) ||
39
+ step.code.toLowerCase().includes(query) ||
40
+ step.observation.toLowerCase().includes(query));
41
+ }
42
+ // Take most recent N steps
43
+ const recentSteps = steps.slice(-maxSteps);
44
+ logger?.(`[RecallHistory] ✓ Found ${recentSteps.length} historical steps`, 'log');
45
+ return {
46
+ success: true,
47
+ data: {
48
+ steps: recentSteps,
49
+ totalHistorySize: journeyMemory.history.length,
50
+ filtered: !!query
51
+ }
52
+ };
53
+ }
54
+ catch (error) {
55
+ logger?.(`[RecallHistory] ✗ Failed: ${error.message}`, 'error');
56
+ return {
57
+ success: false,
58
+ error: `History recall failed: ${error.message}`
59
+ };
60
+ }
61
+ }
62
+ }
63
+ exports.RecallHistoryTool = RecallHistoryTool;
64
+ //# sourceMappingURL=recall-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall-history.js","sourceRoot":"","sources":["../../../src/orchestrator/tools/recall-history.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAMH,MAAa,iBAAiB;IAA9B;QACE,SAAI,GAAG,gBAAgB,CAAC;QACxB,gBAAW,GAAG,oJAAoJ,CAAC;QAEnK,eAAU,GAAoB;YAC5B;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6EAA6E;gBAC1F,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,EAAE;aACZ;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oEAAoE;gBACjF,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC;IA2CJ,CAAC;IAzCC,KAAK,CAAC,OAAO,CAAC,MAA2B,EAAE,OAA6B;QACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACnC,MAAM,aAAa,GAAG,MAAuB,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,oCAAoC,QAAQ,oBAAoB,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAEvH,IAAI,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAEvC,8BAA8B;YAC9B,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACvC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC/C,CAAC;YACJ,CAAC;YAED,2BAA2B;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE3C,MAAM,EAAE,CAAC,2BAA2B,WAAW,CAAC,MAAM,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAElF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,KAAK,EAAE,WAAW;oBAClB,gBAAgB,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM;oBAC9C,QAAQ,EAAE,CAAC,CAAC,KAAK;iBAClB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAChE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA7DD,8CA6DC"}
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
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;CAwF/F"}
@@ -0,0 +1,112 @@
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
+ logger?.(`[TakeScreenshot] Capturing ${isFullPage ? 'full page' : 'viewport'} screenshot for: ${purpose}`, 'log');
39
+ // Capture screenshot (JPEG 60 quality for smaller size)
40
+ const screenshotBuffer = await page.screenshot({
41
+ fullPage: isFullPage,
42
+ type: 'jpeg',
43
+ quality: 60
44
+ });
45
+ // Convert to data URL
46
+ const base64 = screenshotBuffer.toString('base64');
47
+ const dataUrl = `data:image/jpeg;base64,${base64}`;
48
+ logger?.(`[TakeScreenshot] ✓ Screenshot captured (${Math.round(base64.length / 1024)}KB), analyzing with DOM...`, 'log');
49
+ // Get DOM snapshot for correlation (already has ARIA tree + interactive elements with bboxes)
50
+ const pageInfo = await (0, page_info_utils_1.getEnhancedPageInfo)(page);
51
+ // Analyze screenshot with structured DOM via LLM
52
+ let analysis = 'Screenshot captured. Use DOM snapshot in context to find selectors.';
53
+ if (this.llmFacade) {
54
+ try {
55
+ logger?.(`[TakeScreenshot] Calling LLM for vision analysis...`, 'log');
56
+ const analysisPrompt = `Analyze screenshot WITH DOM structure to identify correct Playwright selectors.
57
+
58
+ PURPOSE: ${purpose}
59
+
60
+ INTERACTIVE ELEMENTS (with positions and suggested selectors):
61
+ ${pageInfo.formattedElements}
62
+
63
+ ARIA TREE (hierarchical structure):
64
+ ${JSON.stringify(pageInfo.ariaSnapshot, null, 2).substring(0, 2000)}
65
+
66
+ TASK:
67
+ 1. Look at screenshot - identify the visual elements you need for: ${purpose}
68
+ 2. Match visual position with bounding boxes above
69
+ 3. Recommend SEMANTIC SELECTORS FIRST: getByRole, getByLabel, getByPlaceholder, getByText
70
+ 4. AVOID auto-generated IDs with unicode (e.g., #«r3»-form-item)
71
+
72
+ Output format:
73
+ "For [visual element description]:
74
+ Try: [semantic selector from list - prefer getByRole/getByLabel]
75
+ Or: [alternative selector]"
76
+
77
+ Be concise. Only 2-3 recommendations. Prioritize user-friendly semantic selectors.`;
78
+ const llmResponse = await this.llmFacade.llmProvider.callLLM({
79
+ model: model_constants_1.VISION_MODEL,
80
+ 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.',
81
+ userPrompt: analysisPrompt,
82
+ imageUrl: dataUrl
83
+ });
84
+ analysis = llmResponse.answer || analysis;
85
+ logger?.(`[TakeScreenshot] ✓ Vision analysis complete`, 'log');
86
+ }
87
+ catch (error) {
88
+ logger?.(`[TakeScreenshot] ⚠ Vision analysis failed, returning raw screenshot: ${error.message}`, 'warn');
89
+ }
90
+ }
91
+ return {
92
+ success: true,
93
+ data: {
94
+ screenshot: dataUrl,
95
+ isFullPage,
96
+ size: base64.length,
97
+ interactiveElementCount: pageInfo.interactiveElements.length
98
+ },
99
+ learning: analysis // Text-based analysis with selector recommendations
100
+ };
101
+ }
102
+ catch (error) {
103
+ logger?.(`[TakeScreenshot] ✗ Failed: ${error.message}`, 'error');
104
+ return {
105
+ success: false,
106
+ error: `Screenshot capture failed: ${error.message}`
107
+ };
108
+ }
109
+ }
110
+ }
111
+ exports.TakeScreenshotTool = TakeScreenshotTool;
112
+ //# sourceMappingURL=take-screenshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"take-screenshot.js","sourceRoot":"","sources":["../../../src/orchestrator/tools/take-screenshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Orchestrator Agent Types
3
+ * Core types for the tool-using, memory-maintaining orchestrator agent
4
+ */
5
+ /**
6
+ * Self-reflection guidance for next iteration
7
+ */
8
+ export interface SelfReflection {
9
+ guidanceForNext: string;
10
+ detectingLoop: boolean;
11
+ loopReasoning?: string;
12
+ }
13
+ /**
14
+ * Journey memory - tracks the agent's journey through the scenario
15
+ */
16
+ export interface JourneyMemory {
17
+ history: MemoryStep[];
18
+ experiences: string[];
19
+ extractedData: Record<string, string>;
20
+ }
21
+ /**
22
+ * Individual step in journey history
23
+ */
24
+ export interface MemoryStep {
25
+ stepNumber: number;
26
+ iteration?: number;
27
+ action: string;
28
+ code: string;
29
+ result: 'success' | 'failure';
30
+ observation: string;
31
+ error?: string;
32
+ url: string;
33
+ timestamp: number;
34
+ }
35
+ /**
36
+ * Tool call request from agent
37
+ */
38
+ export interface ToolCall {
39
+ name: string;
40
+ params: Record<string, any>;
41
+ }
42
+ /**
43
+ * Tool execution result
44
+ */
45
+ export interface ToolResult {
46
+ success: boolean;
47
+ data?: any;
48
+ error?: string;
49
+ learning?: string;
50
+ }
51
+ /**
52
+ * Agent decision output
53
+ */
54
+ export interface AgentDecision {
55
+ toolCalls?: ToolCall[];
56
+ toolReasoning?: string;
57
+ needsToolResults?: boolean;
58
+ commands?: string[];
59
+ commandReasoning?: string;
60
+ selfReflection?: SelfReflection;
61
+ memoryUpdate?: {
62
+ action: string;
63
+ observation: string;
64
+ extractedData?: Record<string, any>;
65
+ };
66
+ experiences?: string[];
67
+ status: 'complete' | 'stuck' | 'infeasible' | 'continue';
68
+ statusReasoning: string;
69
+ reasoning: string;
70
+ blockerDetected?: {
71
+ description: string;
72
+ clearingCommands: string[];
73
+ };
74
+ stepReEvaluation?: {
75
+ detected: boolean;
76
+ issue: 'prior_incomplete' | 'already_done' | 'wrong_order' | null;
77
+ explanation: string;
78
+ };
79
+ }
80
+ /**
81
+ * Context provided to agent each iteration
82
+ */
83
+ export interface AgentContext {
84
+ overallGoal: string;
85
+ currentStepGoal: string;
86
+ stepNumber: number;
87
+ totalSteps: number;
88
+ completedSteps: string[];
89
+ remainingSteps: string[];
90
+ currentPageInfo: any;
91
+ currentURL: string;
92
+ recentSteps: MemoryStep[];
93
+ experiences: string[];
94
+ extractedData: Record<string, string>;
95
+ previousIterationGuidance?: SelfReflection;
96
+ toolResults?: Record<string, ToolResult>;
97
+ }
98
+ /**
99
+ * Configurable guardrails
100
+ */
101
+ export interface AgentConfig {
102
+ maxIterationsPerStep?: number;
103
+ maxToolCallsPerIteration?: number;
104
+ maxCommandsPerIteration?: number;
105
+ maxExploratoryActionsPerIteration?: number;
106
+ maxExploratoryActionsPerStep?: number;
107
+ maxConsecutiveStepFailures?: number;
108
+ maxTotalIterations?: number;
109
+ continueOnStepFailure?: boolean;
110
+ maxExperiences?: number;
111
+ maxHistorySize?: number;
112
+ recentStepsCount?: number;
113
+ commandTimeout?: number;
114
+ explorationTimeout?: number;
115
+ allowedExplorationActions?: string[];
116
+ allowedDomains?: string[];
117
+ }
118
+ /**
119
+ * Step execution result from orchestrator
120
+ */
121
+ export interface OrchestratorStepResult {
122
+ success: boolean;
123
+ commands: string[];
124
+ iterations: number;
125
+ terminationReason?: 'complete' | 'stuck' | 'infeasible' | 'system_limit' | 'agent_stuck';
126
+ memory: JourneyMemory;
127
+ error?: string;
128
+ }
129
+ /**
130
+ * Default config values
131
+ */
132
+ export declare const DEFAULT_AGENT_CONFIG: Required<AgentConfig>;
133
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * Orchestrator Agent Types
4
+ * Core types for the tool-using, memory-maintaining orchestrator agent
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DEFAULT_AGENT_CONFIG = void 0;
8
+ /**
9
+ * Default config values
10
+ */
11
+ exports.DEFAULT_AGENT_CONFIG = {
12
+ maxIterationsPerStep: 8,
13
+ maxToolCallsPerIteration: 5,
14
+ maxCommandsPerIteration: 5,
15
+ maxExploratoryActionsPerIteration: 3,
16
+ maxExploratoryActionsPerStep: 10,
17
+ maxConsecutiveStepFailures: 3, // Increased from 2
18
+ maxTotalIterations: 50,
19
+ continueOnStepFailure: true, // Try subsequent steps even if one fails
20
+ maxExperiences: 20,
21
+ maxHistorySize: 100,
22
+ recentStepsCount: 7,
23
+ commandTimeout: 30000,
24
+ explorationTimeout: 2000,
25
+ allowedExplorationActions: ['hover', 'click_info', 'click_menu', 'focus'],
26
+ allowedDomains: []
27
+ };
28
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAgLH;;GAEG;AACU,QAAA,oBAAoB,GAA0B;IACzD,oBAAoB,EAAE,CAAC;IACvB,wBAAwB,EAAE,CAAC;IAC3B,uBAAuB,EAAE,CAAC;IAC1B,iCAAiC,EAAE,CAAC;IACpC,4BAA4B,EAAE,EAAE;IAChC,0BAA0B,EAAE,CAAC,EAAG,mBAAmB;IACnD,kBAAkB,EAAE,EAAE;IACtB,qBAAqB,EAAE,IAAI,EAAG,yCAAyC;IACvE,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,GAAG;IACnB,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,KAAK;IACrB,kBAAkB,EAAE,IAAI;IACxB,yBAAyB,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC;IACzE,cAAc,EAAE,EAAE;CACnB,CAAC"}
@@ -4,7 +4,16 @@ import { ScriptResult, PlaywrightConfig } from './types';
4
4
  */
5
5
  export declare class PlaywrightMCPService {
6
6
  private isConnected;
7
+ private logger?;
7
8
  constructor();
9
+ /**
10
+ * Set a logger callback for capturing execution logs
11
+ */
12
+ setLogger(logger: (message: string, level?: 'log' | 'error' | 'warn') => void): void;
13
+ /**
14
+ * Log a message using the configured logger
15
+ */
16
+ private log;
8
17
  /**
9
18
  * Initialize the service
10
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-mcp-service.d.ts","sourceRoot":"","sources":["../src/playwright-mcp-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;;IAM5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAClI,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE;YACP,SAAS,CAAC,EAAE,YAAY,CAAC;YACzB,MAAM,EAAE,YAAY,CAAC;YACrB,UAAU,CAAC,EAAE,YAAY,CAAC;SAC3B,CAAC;QACF,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAsBF;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH;;OAEG;YACW,qBAAqB;IAwG7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB"}
1
+ {"version":3,"file":"playwright-mcp-service.d.ts","sourceRoot":"","sources":["../src/playwright-mcp-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAC,CAA8D;;IAM7E;;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;IAYjC;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAClI,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE;YACP,SAAS,CAAC,EAAE,YAAY,CAAC;YACzB,MAAM,EAAE,YAAY,CAAC;YACrB,UAAU,CAAC,EAAE,YAAY,CAAC;SAC3B,CAAC;QACF,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAsBF;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH;;OAEG;YACW,qBAAqB;IAwG7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB"}
@@ -10,15 +10,30 @@ class PlaywrightMCPService {
10
10
  this.isConnected = false;
11
11
  // No initialization needed for direct Playwright execution
12
12
  }
13
+ /**
14
+ * Set a logger callback for capturing execution logs
15
+ */
16
+ setLogger(logger) {
17
+ this.logger = logger;
18
+ }
19
+ /**
20
+ * Log a message using the configured logger
21
+ */
22
+ log(message, level = 'log') {
23
+ if (this.logger) {
24
+ this.logger(message, level);
25
+ }
26
+ // No console fallback - logs are routed to consumer
27
+ }
13
28
  /**
14
29
  * Initialize the service
15
30
  */
16
31
  async initialize() {
17
32
  try {
18
- console.log('Initializing Playwright service...');
33
+ this.log('Initializing Playwright service...');
19
34
  // No specific initialization needed for direct Playwright execution
20
35
  this.isConnected = true;
21
- console.log('Playwright service initialized successfully');
36
+ this.log('Playwright service initialized successfully');
22
37
  }
23
38
  catch (error) {
24
39
  throw new Error(`Failed to initialize Playwright service: ${error}`);
@@ -76,7 +91,7 @@ class PlaywrightMCPService {
76
91
  let page;
77
92
  try {
78
93
  // Use the centralized browser initialization utility
79
- const browserInstance = await (0, browser_utils_1.initializeBrowser)(config);
94
+ const browserInstance = await (0, browser_utils_1.initializeBrowser)(config, undefined, undefined, this.logger);
80
95
  browser = browserInstance.browser;
81
96
  context = browserInstance.context;
82
97
  page = browserInstance.page;
@@ -152,10 +167,10 @@ class PlaywrightMCPService {
152
167
  try {
153
168
  // No cleanup needed for direct Playwright execution
154
169
  this.isConnected = false;
155
- console.log('Playwright service closed');
170
+ this.log('Playwright service closed');
156
171
  }
157
172
  catch (error) {
158
- console.error('Error during shutdown:', error);
173
+ this.log(`Error during shutdown: ${error}`, 'error');
159
174
  }
160
175
  }
161
176
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-mcp-service.js","sourceRoot":"","sources":["../src/playwright-mcp-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright-mcp-service.js","sourceRoot":"","sources":["../src/playwright-mcp-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Progress Reporter Interface
3
+ * Allows consumers to track execution progress (logs, DB writes, etc.)
4
+ */
5
+ /**
6
+ * Execution status for a step
7
+ * Matches scriptservice StepExecutionStatus enum
8
+ */
9
+ export declare enum StepExecutionStatus {
10
+ SUCCESS = "SUCCESS_STEP_EXECUTION",
11
+ FAILURE = "FAILURE_STEP_EXECUTION",
12
+ IN_PROGRESS = "IN_PROGRESS_STEP_EXECUTION"
13
+ }
14
+ /**
15
+ * Step progress report - camelCase for TypeScript
16
+ * Structure matches scriptservice's SmartTestExecutionStep / ScriptGenStep
17
+ */
18
+ export interface StepProgress {
19
+ jobId: string;
20
+ stepId?: string;
21
+ stepNumber: number;
22
+ description: string;
23
+ code?: string;
24
+ screenshotDataUrl?: string;
25
+ status: StepExecutionStatus;
26
+ error?: string;
27
+ wasRepaired?: boolean;
28
+ subActionCount?: number;
29
+ attempt?: number;
30
+ agentIteration?: number;
31
+ agentReasoning?: string;
32
+ agentSelfReflection?: any;
33
+ agentExperiences?: string[];
34
+ agentToolsUsed?: string[];
35
+ agentStatus?: string;
36
+ }
37
+ /**
38
+ * Job progress report - camelCase for TypeScript
39
+ */
40
+ export interface JobProgress {
41
+ jobId: string;
42
+ status: 'started' | 'in_progress' | 'completed' | 'failed';
43
+ currentStep?: number;
44
+ totalSteps?: number;
45
+ testName?: string;
46
+ script?: string;
47
+ error?: string;
48
+ }
49
+ /**
50
+ * Token usage tracking
51
+ */
52
+ export interface TokenUsage {
53
+ jobId: string;
54
+ stepNumber?: number;
55
+ iteration?: number;
56
+ inputTokens: number;
57
+ outputTokens: number;
58
+ includesImage: boolean;
59
+ model: string;
60
+ timestamp: number;
61
+ }
62
+ /**
63
+ * Progress reporter interface for external consumers
64
+ */
65
+ export interface ProgressReporter {
66
+ /**
67
+ * Called when a step starts, updates, or completes
68
+ * - VS Extension/GitHub: Log to console
69
+ * - Script Service: Write to DB, upload screenshot to GCS
70
+ */
71
+ onStepProgress?(progress: StepProgress): Promise<void>;
72
+ /**
73
+ * Called when overall job status changes
74
+ * - VS Extension/GitHub: Log status
75
+ * - Script Service: Update job in DB
76
+ */
77
+ onJobProgress?(progress: JobProgress): Promise<void>;
78
+ /**
79
+ * Called when script is generated/updated
80
+ */
81
+ onScriptGenerated?(jobId: string, script: string, testName: string): Promise<void>;
82
+ /**
83
+ * Called when script is repaired/updated
84
+ */
85
+ onScriptRepaired?(jobId: string, originalScript: string, repairedScript: string, confidence: number): Promise<void>;
86
+ /**
87
+ * Called when tokens are used (for cost tracking)
88
+ * - VS Extension/GitHub: Log token usage
89
+ * - Script Service: Store in DB for analytics
90
+ */
91
+ onTokensUsed?(usage: TokenUsage): Promise<void>;
92
+ /**
93
+ * Generic logging (for environments that don't need structured progress)
94
+ */
95
+ log?(message: string, level?: 'log' | 'error' | 'warn'): void;
96
+ }
97
+ //# sourceMappingURL=progress-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-reporter.d.ts","sourceRoot":"","sources":["../src/progress-reporter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,oBAAY,mBAAmB;IAC7B,OAAO,2BAA2B;IAClC,OAAO,2BAA2B;IAClC,WAAW,+BAA+B;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,cAAc,CAAC,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;OAIG;IACH,aAAa,CAAC,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,iBAAiB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;OAEG;IACH,gBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpH;;;;OAIG;IACH,YAAY,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/D"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * Progress Reporter Interface
4
+ * Allows consumers to track execution progress (logs, DB writes, etc.)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.StepExecutionStatus = void 0;
8
+ /**
9
+ * Execution status for a step
10
+ * Matches scriptservice StepExecutionStatus enum
11
+ */
12
+ var StepExecutionStatus;
13
+ (function (StepExecutionStatus) {
14
+ StepExecutionStatus["SUCCESS"] = "SUCCESS_STEP_EXECUTION";
15
+ StepExecutionStatus["FAILURE"] = "FAILURE_STEP_EXECUTION";
16
+ StepExecutionStatus["IN_PROGRESS"] = "IN_PROGRESS_STEP_EXECUTION";
17
+ })(StepExecutionStatus || (exports.StepExecutionStatus = StepExecutionStatus = {}));
18
+ //# sourceMappingURL=progress-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-reporter.js","sourceRoot":"","sources":["../src/progress-reporter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;GAGG;AACH,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,yDAAkC,CAAA;IAClC,yDAAkC,CAAA;IAClC,iEAA0C,CAAA;AAC5C,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B"}
package/dist/prompts.d.ts CHANGED
@@ -14,10 +14,30 @@ export declare const PROMPTS: {
14
14
  SYSTEM: string;
15
15
  USER: (scenario: string) => string;
16
16
  };
17
+ GOAL_COMPLETION_CHECK: {
18
+ SYSTEM: string;
19
+ USER: (goalDescription: string, completedActions: string[], pageInfo: any) => string;
20
+ };
21
+ SCREENSHOT_NEED_ASSESSMENT: {
22
+ SYSTEM: string;
23
+ USER: (stepDescription: string, errorMessage: string, attemptCount: number, pageInfo: any) => string;
24
+ };
17
25
  PLAYWRIGHT_COMMAND: {
18
26
  SYSTEM: string;
19
27
  USER: (stepDescription: string, pageInfo: any, previousCommands: string, attemptHistory: string, errorContext: string) => string;
20
28
  };
29
+ VISION_DIAGNOSTIC_ANALYSIS: {
30
+ SYSTEM: string;
31
+ USER: (stepDescription: string, pageInfo: any, previousCommands: string, attemptHistory: string, errorContext: string) => string;
32
+ };
33
+ PLAYWRIGHT_COMMAND_WITH_SUPERVISOR: {
34
+ SYSTEM: string;
35
+ USER: (stepDescription: string, supervisorInstructions: string, supervisorAnalysis: string, elementsFound: string[], elementsNotFound: string[], pageInfo: any) => string;
36
+ };
37
+ PLAYWRIGHT_COMMAND_WITH_VISION: {
38
+ SYSTEM: string;
39
+ USER: (stepDescription: string, pageInfo: any, previousCommands: string, attemptHistory: string, errorContext: string) => string;
40
+ };
21
41
  SCRIPT_PARSING: {
22
42
  SYSTEM: string;
23
43
  USER: (script: string) => string;
@@ -34,5 +54,9 @@ export declare const PROMPTS: {
34
54
  SYSTEM: string;
35
55
  USER: (originalScript: string, updatedScript: string, newRepairAdvice: string) => string;
36
56
  };
57
+ SCRIPT_CLEANUP: {
58
+ SYSTEM: string;
59
+ USER: (script: string) => string;
60
+ };
37
61
  };
38
62
  //# sourceMappingURL=prompts.d.ts.map