testchimp-runner-core 0.0.39 → 0.0.41
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.
- package/dist/execution-service.d.ts.map +1 -1
- package/dist/execution-service.js +1 -3
- package/dist/execution-service.js.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/decision-parser.d.ts.map +1 -1
- package/dist/orchestrator/decision-parser.js +16 -0
- package/dist/orchestrator/decision-parser.js.map +1 -1
- package/dist/orchestrator/index.d.ts +3 -1
- package/dist/orchestrator/index.d.ts.map +1 -1
- package/dist/orchestrator/index.js +8 -1
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/orchestrator-agent.d.ts +10 -4
- package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator-agent.js +347 -93
- package/dist/orchestrator/orchestrator-agent.js.map +1 -1
- package/dist/orchestrator/orchestrator-prompts.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator-prompts.js +364 -415
- package/dist/orchestrator/orchestrator-prompts.js.map +1 -1
- package/dist/orchestrator/page-loading-utils.d.ts +15 -0
- package/dist/orchestrator/page-loading-utils.d.ts.map +1 -0
- package/dist/orchestrator/page-loading-utils.js +115 -0
- package/dist/orchestrator/page-loading-utils.js.map +1 -0
- package/dist/orchestrator/page-som-handler.d.ts +2 -1
- package/dist/orchestrator/page-som-handler.d.ts.map +1 -1
- package/dist/orchestrator/page-som-handler.js +250 -33
- package/dist/orchestrator/page-som-handler.js.map +1 -1
- package/dist/orchestrator/site-learnings-utils.d.ts +31 -0
- package/dist/orchestrator/site-learnings-utils.d.ts.map +1 -0
- package/dist/orchestrator/site-learnings-utils.js +175 -0
- package/dist/orchestrator/site-learnings-utils.js.map +1 -0
- package/dist/orchestrator/som-types.d.ts +2 -0
- package/dist/orchestrator/som-types.d.ts.map +1 -1
- package/dist/orchestrator/som-types.js.map +1 -1
- package/dist/orchestrator/tools/take-screenshot.d.ts.map +1 -1
- package/dist/orchestrator/tools/take-screenshot.js +10 -1
- package/dist/orchestrator/tools/take-screenshot.js.map +1 -1
- package/dist/orchestrator/types.d.ts +54 -9
- package/dist/orchestrator/types.d.ts.map +1 -1
- package/dist/orchestrator/types.js.map +1 -1
- package/dist/progress-reporter.d.ts +23 -2
- package/dist/progress-reporter.d.ts.map +1 -1
- package/dist/progress-reporter.js.map +1 -1
- package/dist/scenario-service.d.ts +3 -3
- package/dist/scenario-service.d.ts.map +1 -1
- package/dist/scenario-service.js +6 -5
- package/dist/scenario-service.js.map +1 -1
- package/dist/scenario-worker-class.d.ts +7 -3
- package/dist/scenario-worker-class.d.ts.map +1 -1
- package/dist/scenario-worker-class.js +62 -9
- package/dist/scenario-worker-class.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/testing/agent-tester.d.ts +0 -35
- package/dist/testing/agent-tester.d.ts.map +0 -1
- package/dist/testing/agent-tester.js +0 -84
- package/dist/testing/agent-tester.js.map +0 -1
- package/dist/testing/ref-translator-tester.d.ts +0 -44
- package/dist/testing/ref-translator-tester.d.ts.map +0 -1
- package/dist/testing/ref-translator-tester.js +0 -104
- package/dist/testing/ref-translator-tester.js.map +0 -1
- package/dist/utils/hierarchical-selector.d.ts +0 -47
- package/dist/utils/hierarchical-selector.d.ts.map +0 -1
- package/dist/utils/hierarchical-selector.js +0 -212
- package/dist/utils/hierarchical-selector.js.map +0 -1
- package/dist/utils/ref-attacher.d.ts +0 -21
- package/dist/utils/ref-attacher.d.ts.map +0 -1
- package/dist/utils/ref-attacher.js +0 -149
- package/dist/utils/ref-attacher.js.map +0 -1
- package/dist/utils/ref-translator.d.ts +0 -49
- package/dist/utils/ref-translator.d.ts.map +0 -1
- package/dist/utils/ref-translator.js +0 -276
- package/dist/utils/ref-translator.js.map +0 -1
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Ref Translation Utility
|
|
4
|
-
* Converts structured ref commands to Playwright commands with fallback alternatives
|
|
5
|
-
* Uses hierarchical ARIA tree context for robust selector generation
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.RefTranslator = void 0;
|
|
9
|
-
const hierarchical_selector_1 = require("./hierarchical-selector");
|
|
10
|
-
class RefTranslator {
|
|
11
|
-
constructor(logger) {
|
|
12
|
-
this.logger = logger;
|
|
13
|
-
this.hierarchicalGenerator = new hierarchical_selector_1.HierarchicalSelectorGenerator(logger);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* LEGACY: Translate string commands (supports regex getByRef pattern)
|
|
17
|
-
* Use translateRefCommands() instead for new code
|
|
18
|
-
*/
|
|
19
|
-
async translateStringCommands(commands, page, refMap, ariaTree) {
|
|
20
|
-
const translated = [];
|
|
21
|
-
for (const cmd of commands) {
|
|
22
|
-
// Check if command contains getByRef (legacy regex pattern)
|
|
23
|
-
const refMatch = cmd.match(/getByRef\s*\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]*)['"]\s*)?\)/);
|
|
24
|
-
if (refMatch && refMap && ariaTree) {
|
|
25
|
-
const [, ref, operation, value] = refMatch;
|
|
26
|
-
// Use structured approach internally
|
|
27
|
-
const refCmd = {
|
|
28
|
-
type: 'ref',
|
|
29
|
-
ref,
|
|
30
|
-
operation: operation,
|
|
31
|
-
value
|
|
32
|
-
};
|
|
33
|
-
const result = await this.translateRefCommands([refCmd], page, refMap, ariaTree);
|
|
34
|
-
const firstResult = result[0];
|
|
35
|
-
translated.push({
|
|
36
|
-
original: cmd,
|
|
37
|
-
alternatives: firstResult.alternatives,
|
|
38
|
-
successful: firstResult.successful
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
// Not a ref command - pass through
|
|
43
|
-
translated.push({
|
|
44
|
-
original: cmd,
|
|
45
|
-
alternatives: [cmd],
|
|
46
|
-
successful: cmd
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return translated;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Translation layer: Convert ref commands to actual Playwright commands
|
|
54
|
-
* Tries multiple selector alternatives until one succeeds
|
|
55
|
-
*
|
|
56
|
-
* Agent outputs:
|
|
57
|
-
* { ref: 'e22', operation: 'fill', value: 'test@test.com' }
|
|
58
|
-
* This generates and tries multiple Playwright alternatives using hierarchical context
|
|
59
|
-
* Returns: The command that worked (for script storage)
|
|
60
|
-
*/
|
|
61
|
-
async translateRefCommands(refCommands, page, refMap, ariaTree) {
|
|
62
|
-
const translated = [];
|
|
63
|
-
if (!refMap) {
|
|
64
|
-
this.logger?.(`[Translation] ⚠️ RefMap not available`, 'warn');
|
|
65
|
-
return translated;
|
|
66
|
-
}
|
|
67
|
-
for (const cmd of refCommands) {
|
|
68
|
-
const element = refMap.get(cmd.ref);
|
|
69
|
-
if (!element) {
|
|
70
|
-
this.logger?.(`[Translation] ⚠️ Ref '${cmd.ref}' not found in refMap`, 'warn');
|
|
71
|
-
translated.push({
|
|
72
|
-
original: cmd,
|
|
73
|
-
alternatives: [],
|
|
74
|
-
successful: undefined
|
|
75
|
-
});
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
// Generate Playwright alternatives using hierarchical context
|
|
79
|
-
const selectors = this.hierarchicalGenerator.generateSelectorsForRef(cmd.ref, refMap, ariaTree);
|
|
80
|
-
// Handle drag specially (needs coordinates)
|
|
81
|
-
if (cmd.operation === 'drag' && cmd.toCoords) {
|
|
82
|
-
const alternatives = this.generateDragCommands(cmd.ref, selectors, cmd.fromCoords || { x: 0, y: 0 }, cmd.toCoords);
|
|
83
|
-
const fromDesc = cmd.fromCoords ? `(${cmd.fromCoords.x},${cmd.fromCoords.y})` : 'center';
|
|
84
|
-
this.logger?.(`[Translation] ref='${cmd.ref}' drag from ${fromDesc} to (${cmd.toCoords.x},${cmd.toCoords.y}) → ${alternatives.length} alternatives`, 'log');
|
|
85
|
-
// Try drag commands
|
|
86
|
-
let successful;
|
|
87
|
-
for (const alt of alternatives) {
|
|
88
|
-
try {
|
|
89
|
-
const func = new Function('page', 'expect', 'return (async () => { ' + alt + ' })()');
|
|
90
|
-
await func(page, global.expect);
|
|
91
|
-
successful = alt;
|
|
92
|
-
this.logger?.(`[Translation] ✓ Success: ${alt.substring(0, 70)}...`, 'log');
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
this.logger?.(`[Translation] ✗ Failed: ${alt.substring(0, 70)}... (${error.message.substring(0, 50)})`, 'log');
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
translated.push({
|
|
101
|
-
original: cmd,
|
|
102
|
-
alternatives,
|
|
103
|
-
successful
|
|
104
|
-
});
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
const alternatives = this.convertSelectorsToCommands(selectors, cmd.operation, cmd.value);
|
|
108
|
-
this.logger?.(`[Translation] ref='${cmd.ref}' operation='${cmd.operation}' → ${alternatives.length} alternatives`, 'log');
|
|
109
|
-
// Try each alternative until one succeeds
|
|
110
|
-
let successful;
|
|
111
|
-
for (const alt of alternatives) {
|
|
112
|
-
try {
|
|
113
|
-
const func = new Function('page', 'expect', 'return (async () => { ' + alt + ' })()');
|
|
114
|
-
await func(page, global.expect);
|
|
115
|
-
successful = alt;
|
|
116
|
-
this.logger?.(`[Translation] ✓ Success: ${alt.substring(0, 70)}...`, 'log');
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
this.logger?.(`[Translation] ✗ Failed: ${alt.substring(0, 70)}... (${error.message.substring(0, 50)})`, 'log');
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
if (!successful) {
|
|
125
|
-
this.logger?.(`[Translation] ❌ All ${alternatives.length} alternatives failed for ref='${cmd.ref}'`, 'error');
|
|
126
|
-
}
|
|
127
|
-
translated.push({
|
|
128
|
-
original: cmd,
|
|
129
|
-
alternatives,
|
|
130
|
-
successful
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
return translated;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Generate drag commands with coordinates
|
|
137
|
-
*/
|
|
138
|
-
generateDragCommands(ref, selectors, fromCoords, toCoords) {
|
|
139
|
-
const commands = [];
|
|
140
|
-
// Try top selectors with drag coordinates
|
|
141
|
-
for (const selector of selectors.slice(0, 5)) {
|
|
142
|
-
const locChain = this.selectorToLocatorChain(selector);
|
|
143
|
-
// Drag from element's position + fromCoords offset to absolute toCoords
|
|
144
|
-
commands.push(`await ${locChain}.hover(); ` +
|
|
145
|
-
`await page.mouse.down(); ` +
|
|
146
|
-
`await page.mouse.move(${toCoords.x}, ${toCoords.y}); ` +
|
|
147
|
-
`await page.mouse.up()`);
|
|
148
|
-
}
|
|
149
|
-
return commands;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Convert selectors to full Playwright commands with action
|
|
153
|
-
*/
|
|
154
|
-
convertSelectorsToCommands(selectors, operation, value) {
|
|
155
|
-
const commands = [];
|
|
156
|
-
const actionCode = this.getActionCode(operation, value);
|
|
157
|
-
for (const selector of selectors) {
|
|
158
|
-
// Handle different selector formats
|
|
159
|
-
if (selector.includes('>>')) {
|
|
160
|
-
// Chained selector (e.g., "text=Email >> input")
|
|
161
|
-
const parts = selector.split('>>').map(s => s.trim());
|
|
162
|
-
let chain = 'page';
|
|
163
|
-
for (const part of parts) {
|
|
164
|
-
if (part.startsWith('text=')) {
|
|
165
|
-
const text = part.substring(5);
|
|
166
|
-
chain += `.locator('text=${text}')`;
|
|
167
|
-
}
|
|
168
|
-
else if (part.startsWith('nth=')) {
|
|
169
|
-
const index = part.substring(4);
|
|
170
|
-
chain += `.nth(${index})`;
|
|
171
|
-
}
|
|
172
|
-
else if (part === 'first') {
|
|
173
|
-
chain += '.first()';
|
|
174
|
-
}
|
|
175
|
-
else if (part === 'last') {
|
|
176
|
-
chain += '.last()';
|
|
177
|
-
}
|
|
178
|
-
else if (part.startsWith('[') || part.match(/^[a-z]/)) {
|
|
179
|
-
chain += `.locator('${part}')`;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
commands.push(`await ${chain}.${actionCode}`);
|
|
183
|
-
}
|
|
184
|
-
else if (selector.startsWith('getBy')) {
|
|
185
|
-
// Playwright getBy* method
|
|
186
|
-
commands.push(`await page.${selector}.${actionCode}`);
|
|
187
|
-
}
|
|
188
|
-
else if (selector.startsWith('locator(')) {
|
|
189
|
-
// Playwright locator() method
|
|
190
|
-
commands.push(`await page.${selector}.${actionCode}`);
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
// CSS/attribute selector
|
|
194
|
-
commands.push(`await page.locator('${selector}').${actionCode}`);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return commands;
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Convert selector string to locator chain for building commands
|
|
201
|
-
*/
|
|
202
|
-
selectorToLocatorChain(selector) {
|
|
203
|
-
if (selector.includes('>>')) {
|
|
204
|
-
const parts = selector.split('>>').map(s => s.trim());
|
|
205
|
-
let chain = 'page';
|
|
206
|
-
for (const part of parts) {
|
|
207
|
-
if (part.startsWith('text=')) {
|
|
208
|
-
chain += `.locator('text=${part.substring(5)}')`;
|
|
209
|
-
}
|
|
210
|
-
else if (part.startsWith('nth=')) {
|
|
211
|
-
chain += `.nth(${part.substring(4)})`;
|
|
212
|
-
}
|
|
213
|
-
else if (part === 'first') {
|
|
214
|
-
chain += '.first()';
|
|
215
|
-
}
|
|
216
|
-
else if (part === 'last') {
|
|
217
|
-
chain += '.last()';
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
chain += `.locator('${part}')`;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
return chain;
|
|
224
|
-
}
|
|
225
|
-
else if (selector.startsWith('getBy')) {
|
|
226
|
-
return `page.${selector}`;
|
|
227
|
-
}
|
|
228
|
-
else if (selector.startsWith('locator(')) {
|
|
229
|
-
return `page.${selector}`;
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
return `page.locator('${selector}')`;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
getActionCode(operation, value) {
|
|
236
|
-
switch (operation.toLowerCase()) {
|
|
237
|
-
// Common interactions
|
|
238
|
-
case 'click':
|
|
239
|
-
return 'click()';
|
|
240
|
-
case 'doubleclick':
|
|
241
|
-
return 'dblclick()';
|
|
242
|
-
case 'rightclick':
|
|
243
|
-
return 'click({ button: "right" })';
|
|
244
|
-
// Input operations
|
|
245
|
-
case 'fill':
|
|
246
|
-
return `fill('${this.escape(value || '')}')`;
|
|
247
|
-
case 'type':
|
|
248
|
-
return `type('${this.escape(value || '')}')`;
|
|
249
|
-
case 'clear':
|
|
250
|
-
return 'clear()';
|
|
251
|
-
case 'press':
|
|
252
|
-
return `press('${this.escape(value || 'Enter')}')`;
|
|
253
|
-
// Selection operations
|
|
254
|
-
case 'select':
|
|
255
|
-
return `selectOption('${this.escape(value || '')}')`;
|
|
256
|
-
case 'check':
|
|
257
|
-
return 'check()';
|
|
258
|
-
case 'uncheck':
|
|
259
|
-
return 'uncheck()';
|
|
260
|
-
// Focus operations
|
|
261
|
-
case 'hover':
|
|
262
|
-
return 'hover()';
|
|
263
|
-
case 'focus':
|
|
264
|
-
return 'focus()';
|
|
265
|
-
case 'blur':
|
|
266
|
-
return 'blur()';
|
|
267
|
-
default:
|
|
268
|
-
return `${operation}()`;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
escape(str) {
|
|
272
|
-
return str.replace(/'/g, "\\'").replace(/"/g, '\\"');
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
exports.RefTranslator = RefTranslator;
|
|
276
|
-
//# sourceMappingURL=ref-translator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ref-translator.js","sourceRoot":"","sources":["../../src/utils/ref-translator.ts"],"names":[],"mappings":"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"}
|