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.
Files changed (77) hide show
  1. package/dist/execution-service.d.ts.map +1 -1
  2. package/dist/execution-service.js +1 -3
  3. package/dist/execution-service.js.map +1 -1
  4. package/dist/index.d.ts +7 -6
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +4 -4
  7. package/dist/index.js.map +1 -1
  8. package/dist/orchestrator/decision-parser.d.ts.map +1 -1
  9. package/dist/orchestrator/decision-parser.js +16 -0
  10. package/dist/orchestrator/decision-parser.js.map +1 -1
  11. package/dist/orchestrator/index.d.ts +3 -1
  12. package/dist/orchestrator/index.d.ts.map +1 -1
  13. package/dist/orchestrator/index.js +8 -1
  14. package/dist/orchestrator/index.js.map +1 -1
  15. package/dist/orchestrator/orchestrator-agent.d.ts +10 -4
  16. package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -1
  17. package/dist/orchestrator/orchestrator-agent.js +347 -93
  18. package/dist/orchestrator/orchestrator-agent.js.map +1 -1
  19. package/dist/orchestrator/orchestrator-prompts.d.ts.map +1 -1
  20. package/dist/orchestrator/orchestrator-prompts.js +364 -415
  21. package/dist/orchestrator/orchestrator-prompts.js.map +1 -1
  22. package/dist/orchestrator/page-loading-utils.d.ts +15 -0
  23. package/dist/orchestrator/page-loading-utils.d.ts.map +1 -0
  24. package/dist/orchestrator/page-loading-utils.js +115 -0
  25. package/dist/orchestrator/page-loading-utils.js.map +1 -0
  26. package/dist/orchestrator/page-som-handler.d.ts +2 -1
  27. package/dist/orchestrator/page-som-handler.d.ts.map +1 -1
  28. package/dist/orchestrator/page-som-handler.js +250 -33
  29. package/dist/orchestrator/page-som-handler.js.map +1 -1
  30. package/dist/orchestrator/site-learnings-utils.d.ts +31 -0
  31. package/dist/orchestrator/site-learnings-utils.d.ts.map +1 -0
  32. package/dist/orchestrator/site-learnings-utils.js +175 -0
  33. package/dist/orchestrator/site-learnings-utils.js.map +1 -0
  34. package/dist/orchestrator/som-types.d.ts +2 -0
  35. package/dist/orchestrator/som-types.d.ts.map +1 -1
  36. package/dist/orchestrator/som-types.js.map +1 -1
  37. package/dist/orchestrator/tools/take-screenshot.d.ts.map +1 -1
  38. package/dist/orchestrator/tools/take-screenshot.js +10 -1
  39. package/dist/orchestrator/tools/take-screenshot.js.map +1 -1
  40. package/dist/orchestrator/types.d.ts +54 -9
  41. package/dist/orchestrator/types.d.ts.map +1 -1
  42. package/dist/orchestrator/types.js.map +1 -1
  43. package/dist/progress-reporter.d.ts +23 -2
  44. package/dist/progress-reporter.d.ts.map +1 -1
  45. package/dist/progress-reporter.js.map +1 -1
  46. package/dist/scenario-service.d.ts +3 -3
  47. package/dist/scenario-service.d.ts.map +1 -1
  48. package/dist/scenario-service.js +6 -5
  49. package/dist/scenario-service.js.map +1 -1
  50. package/dist/scenario-worker-class.d.ts +7 -3
  51. package/dist/scenario-worker-class.d.ts.map +1 -1
  52. package/dist/scenario-worker-class.js +62 -9
  53. package/dist/scenario-worker-class.js.map +1 -1
  54. package/dist/types.d.ts +4 -0
  55. package/dist/types.d.ts.map +1 -1
  56. package/dist/types.js.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/testing/agent-tester.d.ts +0 -35
  59. package/dist/testing/agent-tester.d.ts.map +0 -1
  60. package/dist/testing/agent-tester.js +0 -84
  61. package/dist/testing/agent-tester.js.map +0 -1
  62. package/dist/testing/ref-translator-tester.d.ts +0 -44
  63. package/dist/testing/ref-translator-tester.d.ts.map +0 -1
  64. package/dist/testing/ref-translator-tester.js +0 -104
  65. package/dist/testing/ref-translator-tester.js.map +0 -1
  66. package/dist/utils/hierarchical-selector.d.ts +0 -47
  67. package/dist/utils/hierarchical-selector.d.ts.map +0 -1
  68. package/dist/utils/hierarchical-selector.js +0 -212
  69. package/dist/utils/hierarchical-selector.js.map +0 -1
  70. package/dist/utils/ref-attacher.d.ts +0 -21
  71. package/dist/utils/ref-attacher.d.ts.map +0 -1
  72. package/dist/utils/ref-attacher.js +0 -149
  73. package/dist/utils/ref-attacher.js.map +0 -1
  74. package/dist/utils/ref-translator.d.ts +0 -49
  75. package/dist/utils/ref-translator.d.ts.map +0 -1
  76. package/dist/utils/ref-translator.js +0 -276
  77. 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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"}