tamash-playwright 0.7.0-beta.2 → 0.7.0-beta.3

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":"locator.binding.d.ts","sourceRoot":"","sources":["../../src/bindings/locator.binding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA2E3F,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AA8EjE,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,EAC/E,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,WAAuB,EAC7B,WAAW,CAAC,EAAE,MAAM,EAKpB,UAAU,CAAC,EAAE,YAAY,EAMzB,QAAQ,CAAC,EAAE,MAAM,EAKjB,QAAQ,CAAC,EAAE,KAAK,GACf,CAAC,CA2HH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEhD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAEpD;AAYD,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAmCnE"}
1
+ {"version":3,"file":"locator.binding.d.ts","sourceRoot":"","sources":["../../src/bindings/locator.binding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA2E3F,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AAyJjE,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,EAC/E,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,WAAuB,EAC7B,WAAW,CAAC,EAAE,MAAM,EAKpB,UAAU,CAAC,EAAE,YAAY,EAMzB,QAAQ,CAAC,EAAE,MAAM,EAKjB,QAAQ,CAAC,EAAE,KAAK,GACf,CAAC,CAuIH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEhD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAEpD;AAYD,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAmCnE"}
@@ -8,6 +8,7 @@ exports.bindLocatorActions = bindLocatorActions;
8
8
  exports.bindPageActions = bindPageActions;
9
9
  exports.bindFrameActions = bindFrameActions;
10
10
  exports.bindContext = bindContext;
11
+ const fs_1 = __importDefault(require("fs"));
11
12
  const path_1 = __importDefault(require("path"));
12
13
  const healer_1 = require("../healer");
13
14
  const ACTIONS = [
@@ -136,6 +137,79 @@ function resolveCallerLocation(callSite) {
136
137
  }
137
138
  return undefined;
138
139
  }
140
+ // Third-tier fallback for the AI's element description, behind an explicit `.describe()` and
141
+ // ahead of the raw selector text: `this.txtUserName = page.getByPlaceholder(...)` or
142
+ // `let txtUserName = page.locator(...)` — most teams already name locator variables after what
143
+ // the element is, even when they never call `.describe()`. Reads the exact source line
144
+ // `sourceLocation` (from resolveCallerLocation, so already resolved by the time this runs — see
145
+ // its own comment for why this is only ever done on a genuine failure, never per locator) and
146
+ // takes whatever identifier sits immediately before the line's first real `=` — keyword-agnostic
147
+ // on purpose, so `this.x =`, `let x =`, `const x: Locator =`, and a bare `x =` reassignment all
148
+ // resolve the same way, without hardcoding which declaration style a given team uses.
149
+ function extractVariableName(sourceLocation) {
150
+ const separatorIndex = sourceLocation.lastIndexOf(':');
151
+ if (separatorIndex === -1) {
152
+ return undefined;
153
+ }
154
+ const filePath = sourceLocation.slice(0, separatorIndex);
155
+ const lineNumber = Number(sourceLocation.slice(separatorIndex + 1));
156
+ if (!Number.isFinite(lineNumber)) {
157
+ return undefined;
158
+ }
159
+ try {
160
+ const lines = fs_1.default.readFileSync(path_1.default.resolve(process.cwd(), filePath), 'utf-8').split('\n');
161
+ const line = lines[lineNumber - 1];
162
+ if (!line) {
163
+ return undefined;
164
+ }
165
+ const eqIndex = findAssignmentEquals(line);
166
+ if (eqIndex === -1) {
167
+ return undefined;
168
+ }
169
+ const match = line.slice(0, eqIndex).match(/(\w+)\s*(?::\s*[\w.<>[\]]+\s*)?$/);
170
+ return match?.[1];
171
+ }
172
+ catch {
173
+ // Same best-effort stance as the rest of this file — a source-read failure (file moved,
174
+ // permissions, whatever) must never break healing, just fall through to the next tier.
175
+ return undefined;
176
+ }
177
+ }
178
+ // The naive `line.search(/=(?!=)/)` this replaced had a real false-positive: a CSS attribute
179
+ // selector like `input[name="wrongname"]` contains a completely unrelated `=` inside the string
180
+ // literal, which got misread as an assignment and produced garbage ("name" extracted instead of
181
+ // nothing). String-aware so any `=` inside `'...'`/`"..."`/`` `...` `` is correctly ignored, and
182
+ // also skips `==`, `===`, `!=`, `!==`, `<=`, `>=`, and `=>` — none of those are an assignment.
183
+ function findAssignmentEquals(line) {
184
+ let inString = null;
185
+ for (let i = 0; i < line.length; i++) {
186
+ const ch = line[i];
187
+ if (inString) {
188
+ if (ch === '\\') {
189
+ i++;
190
+ continue;
191
+ }
192
+ if (ch === inString) {
193
+ inString = null;
194
+ }
195
+ continue;
196
+ }
197
+ if (ch === '"' || ch === "'" || ch === '`') {
198
+ inString = ch;
199
+ continue;
200
+ }
201
+ if (ch !== '=') {
202
+ continue;
203
+ }
204
+ const prev = line[i - 1];
205
+ const next = line[i + 1];
206
+ if (next === '=' || prev === '=' || prev === '!' || prev === '<' || prev === '>' || next === '>') {
207
+ continue;
208
+ }
209
+ return i;
210
+ }
211
+ return -1;
212
+ }
139
213
  // Marks every proxy this module creates so a target that's already wrapped is never wrapped
140
214
  // again. This matters concretely for the primary test `page`: Playwright's own built-in `page`
141
215
  // fixture is implemented as `context.newPage()`, and since bindContext() (below) already wraps
@@ -237,14 +311,28 @@ callSite) {
237
311
  return await target[prop](...callArgs);
238
312
  }
239
313
  catch (error) {
314
+ // Only resolved now, on a genuine failure — not at every locator creation. See
315
+ // resolveCallerLocation's own comment for why. Computed before effectiveDescription
316
+ // below since extractVariableName needs it too.
317
+ const resolvedSourceLocation = callSite ? resolveCallerLocation(callSite) : undefined;
240
318
  // description defaults to the selector text at the factory call, so the two are
241
- // identical until `.describe()` overrides description — only combine them once
242
- // they've actually diverged, so a plain (never-described) locator still reports a
243
- // single clean "selector \"#foo\"" instead of a redundant "selector \"#foo\"
244
- // (selector \"#foo\")".
245
- const effectiveDescription = description && selector && description !== selector
246
- ? `${description} (${selector})`
247
- : (description ?? selector ?? `${kind} action ${String(prop)}`);
319
+ // identical until `.describe()` overrides description — that equality is exactly
320
+ // how an explicit `.describe()` is told apart from "never called": only once they've
321
+ // actually diverged do the two get combined. When they haven't diverged (no
322
+ // `.describe()`), the locator's own variable name — e.g. `this.txtUserName = ` or
323
+ // `let txtUserName = ` is a better fallback than raw selector text alone, since
324
+ // most teams already name locators after what the element is. Priority for what the
325
+ // AI actually sees: explicit .describe() > inferred variable name > raw selector text.
326
+ let effectiveDescription;
327
+ if (description && selector && description !== selector) {
328
+ effectiveDescription = `${description} (${selector})`;
329
+ }
330
+ else {
331
+ const variableName = resolvedSourceLocation ? extractVariableName(resolvedSourceLocation) : undefined;
332
+ effectiveDescription = variableName && selector
333
+ ? `${variableName} (${selector})`
334
+ : (description ?? selector ?? `${kind} action ${String(prop)}`);
335
+ }
248
336
  const healing = await (0, healer_1.healActionFailure)({
249
337
  action: String(prop),
250
338
  kind,
@@ -255,9 +343,7 @@ callSite) {
255
343
  target: target,
256
344
  callArgs,
257
345
  frameScope,
258
- // Only resolved now, on a genuine failure — not at every locator creation. See
259
- // resolveCallerLocation's own comment for why.
260
- sourceLocation: callSite ? resolveCallerLocation(callSite) : undefined,
346
+ sourceLocation: resolvedSourceLocation,
261
347
  });
262
348
  // NOTE: most Playwright actions (click/fill/check/hover/...) resolve to `undefined`
263
349
  // on success, so `healing.recovered` alone is the correct success signal here —
@@ -1 +1 @@
1
- {"version":3,"file":"locator.binding.js","sourceRoot":"","sources":["../../src/bindings/locator.binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locator.binding.js","sourceRoot":"","sources":["../../src/bindings/locator.binding.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export type FixOutcome = {
10
10
  export declare function planFixes(cwd?: string, rawEntries?: HealLogEntry[]): {
11
11
  outcomes: FixOutcome[];
12
12
  fileContents: Map<string, string>;
13
+ affectedTests: string[];
13
14
  };
14
15
  export declare function runApplyHeals(args?: string[]): Promise<void>;
15
16
  //# sourceMappingURL=applyHeals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyHeals.d.ts","sourceRoot":"","sources":["../../src/cli/applyHeals.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwF,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiH7I,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAqBF,wBAAgB,SAAS,CAAC,GAAG,GAAE,MAAsB,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE,GAAG;IAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA2DjJ;AA2ED,wBAAsB,aAAa,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DtE"}
1
+ {"version":3,"file":"applyHeals.d.ts","sourceRoot":"","sources":["../../src/cli/applyHeals.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwF,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA+K7I,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAqBF,wBAAgB,SAAS,CAAC,GAAG,GAAE,MAAsB,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE,GAAG;IAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CA2F1K;AAmFD,wBAAsB,aAAa,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoEtE"}
@@ -26,6 +26,24 @@ function generateReplacementCall(suggestion) {
26
26
  return `getByPlaceholder(${JSON.stringify(suggestion.placeholder)})`;
27
27
  case 'css':
28
28
  return `locator(${JSON.stringify(suggestion.css)})`;
29
+ case 'near': {
30
+ // parentLevels is set by resolveNearLocator (healer/index.ts) at heal time, from whichever
31
+ // candidate in its ladder actually resolved to exactly one live element — this file has no
32
+ // live page to re-test against, so it reuses that proven depth rather than guessing. Falls
33
+ // back to 1 only for a malformed/legacy entry that somehow lacks it, since 1 level is the
34
+ // more common real-world shape (see resolveNearLocator's own comment).
35
+ const xpath = suggestion.parentLevels === 2 ? '../..' : '..';
36
+ return `getByText(${JSON.stringify(suggestion.anchorText)}).locator(${JSON.stringify(`xpath=${xpath}`)}).getByRole(${JSON.stringify(suggestion.role)})`;
37
+ }
38
+ case 'scoped': {
39
+ const containerArgs = suggestion.containerName ? `${JSON.stringify(suggestion.containerRole)}, { name: ${JSON.stringify(suggestion.containerName)} }` : JSON.stringify(suggestion.containerRole);
40
+ const targetArgs = suggestion.name ? `${JSON.stringify(suggestion.role)}, { name: ${JSON.stringify(suggestion.name)} }` : JSON.stringify(suggestion.role);
41
+ return `getByRole(${containerArgs}).getByRole(${targetArgs})`;
42
+ }
43
+ case 'containing':
44
+ // hasText, not has: <nested locator> — see resolveContainingLocator's comment for why: no
45
+ // safe way to know whether the receiver here should be `page.` or `this.page.` etc.
46
+ return `getByRole(${JSON.stringify(suggestion.role)}).filter({ hasText: ${JSON.stringify(suggestion.anchorText)} })`;
29
47
  default:
30
48
  return undefined;
31
49
  }
@@ -52,21 +70,11 @@ function isRegexLiteralStart(content, index) {
52
70
  }
53
71
  return !/[\w$)\]`'"]/.test(content[j]);
54
72
  }
55
- function findFactoryCallOnLine(content, targetLine) {
56
- const lines = content.split('\n');
57
- if (targetLine < 1 || targetLine > lines.length) {
58
- return undefined;
59
- }
60
- let lineStartOffset = 0;
61
- for (let i = 0; i < targetLine - 1; i++) {
62
- lineStartOffset += lines[i].length + 1; // +1 for the '\n' each split() consumed
63
- }
64
- const match = lines[targetLine - 1].match(FACTORY_METHOD_PATTERN);
65
- if (!match || match.index === undefined) {
66
- return undefined;
67
- }
68
- const dotIndex = lineStartOffset + match.index;
69
- const openParenIndex = dotIndex + match[0].length - 1;
73
+ // Balances parens starting from `openParenIndex` (the `(` itself) and returns the index just past
74
+ // its matching `)`, or undefined if the argument list contains something unbalanced or otherwise
75
+ // unsafe to track. Shared by findFactoryCallOnLine below for both the first call it finds and any
76
+ // chained continuations after it, so both use identical string/regex-literal-aware logic.
77
+ function scanBalancedParens(content, openParenIndex) {
70
78
  let depth = 1;
71
79
  let i = openParenIndex + 1;
72
80
  // Tracks whichever of `"`, `'`, `` ` ``, or `/` (regex) we're currently inside — parens found
@@ -98,12 +106,63 @@ function findFactoryCallOnLine(content, targetLine) {
98
106
  }
99
107
  i++;
100
108
  }
101
- if (depth !== 0) {
109
+ return depth === 0 ? i : undefined;
110
+ }
111
+ // Matches specifically the `near` strategy's chain shape — `.locator("xpath=...")` immediately
112
+ // after the first call — so it can be recognized and consumed whole on a later re-heal, instead of
113
+ // only replacing the first call and leaving `.locator("xpath=...").getByRole(...)` dangling after
114
+ // whatever replaces it.
115
+ //
116
+ // Deliberately NOT done for `scoped` (`.getByRole(...).getByRole(...)`) or `containing`
117
+ // (`.getByRole(...).filter({hasText: ...})`): both of those continuation shapes are completely
118
+ // plausible things a person would write by hand for their own reasons — filter({hasText}) chained
119
+ // onto a role lookup is literally Playwright's own documented recommended pattern (see
120
+ // other-locators.md). Auto-consuming either on an unrelated heal risks silently discarding a
121
+ // user's own real filtering logic, which is a worse failure mode than the narrower one this only
122
+ // partially fixes. `xpath=...` is a safe, narrow exception — implausible for anyone to have
123
+ // written by hand outside of this exact generated shape.
124
+ const NEAR_XPATH_CONTINUATION_PATTERN = /^\.locator\(\s*(["'`])xpath=/;
125
+ const ROLE_CONTINUATION_PATTERN = /^\.getByRole\(/;
126
+ function findFactoryCallOnLine(content, targetLine) {
127
+ const lines = content.split('\n');
128
+ if (targetLine < 1 || targetLine > lines.length) {
129
+ return undefined;
130
+ }
131
+ let lineStartOffset = 0;
132
+ for (let i = 0; i < targetLine - 1; i++) {
133
+ lineStartOffset += lines[i].length + 1; // +1 for the '\n' each split() consumed
134
+ }
135
+ const match = lines[targetLine - 1].match(FACTORY_METHOD_PATTERN);
136
+ if (!match || match.index === undefined) {
137
+ return undefined;
138
+ }
139
+ const dotIndex = lineStartOffset + match.index;
140
+ const openParenIndex = dotIndex + match[0].length - 1;
141
+ let callEnd = scanBalancedParens(content, openParenIndex);
142
+ if (callEnd === undefined) {
102
143
  // Unbalanced, or the argument list contains something this scanner can't safely track — bail
103
144
  // out rather than guess at a range that might be wrong.
104
145
  return undefined;
105
146
  }
106
- return { dotIndex, callEnd: i };
147
+ // See NEAR_XPATH_CONTINUATION_PATTERN's comment for why only this specific shape is safe to
148
+ // auto-consume — `.locator("xpath=...")` immediately followed by `.getByRole(...)`, exactly
149
+ // `near`'s own generated chain and nothing broader.
150
+ const xpathContinuation = content.slice(callEnd).match(NEAR_XPATH_CONTINUATION_PATTERN);
151
+ if (xpathContinuation) {
152
+ const xpathOpenParenIndex = callEnd + xpathContinuation[0].indexOf('(');
153
+ const afterXpath = scanBalancedParens(content, xpathOpenParenIndex);
154
+ if (afterXpath !== undefined) {
155
+ const roleContinuation = content.slice(afterXpath).match(ROLE_CONTINUATION_PATTERN);
156
+ if (roleContinuation) {
157
+ const roleOpenParenIndex = afterXpath + roleContinuation[0].length - 1;
158
+ const afterRole = scanBalancedParens(content, roleOpenParenIndex);
159
+ if (afterRole !== undefined) {
160
+ callEnd = afterRole;
161
+ }
162
+ }
163
+ }
164
+ }
165
+ return { dotIndex, callEnd };
107
166
  }
108
167
  // Only the most recent entry per file:line survives — later runs supersede earlier ones, and
109
168
  // there's nothing useful about applying the same location twice.
@@ -124,7 +183,8 @@ function latestPerLocation(entries) {
124
183
  // any subsequent chained calls like `.describe(...)` are left completely untouched since they sit
125
184
  // outside the replaced range entirely.
126
185
  function planFixes(cwd = process.cwd(), rawEntries) {
127
- const entries = latestPerLocation(rawEntries ?? (0, heal_log_1.readHealLog)(cwd));
186
+ const allEntries = rawEntries ?? (0, heal_log_1.readHealLog)(cwd);
187
+ const entries = latestPerLocation(allEntries);
128
188
  const byFile = new Map();
129
189
  for (const entry of entries) {
130
190
  const list = byFile.get(entry.file) ?? [];
@@ -172,7 +232,36 @@ function planFixes(cwd = process.cwd(), rawEntries) {
172
232
  fileContents.set(fullPath, content);
173
233
  }
174
234
  }
175
- return { outcomes, fileContents };
235
+ // Every test observed exercising a location that actually got fixed — not just the entry
236
+ // latestPerLocation picked for its suggestion text. A location can be exercised by many tests in
237
+ // one run; only one of them pays for the fresh AI call (see usedCache in healer/index.ts), but
238
+ // every one of them needs re-verifying once the line changes under them. Each entry becomes
239
+ // "<testFile>:<testLine>" — ready to hand straight to `npx playwright test` to run exactly that
240
+ // test, not the whole file it lives in — unless some occurrence for that file couldn't be pinned
241
+ // to a line (an older log entry, or test.info() unavailable), in which case the whole file is
242
+ // used as a safe fallback rather than silently missing a test that needs re-verifying.
243
+ const appliedLocations = new Set(outcomes.filter((o) => o.applied).map((o) => `${o.file}:${o.line}`));
244
+ const linesByTestFile = new Map();
245
+ for (const entry of allEntries) {
246
+ if (!entry.testFile || !appliedLocations.has(`${entry.file}:${entry.line}`)) {
247
+ continue;
248
+ }
249
+ const lines = linesByTestFile.get(entry.testFile) ?? new Set();
250
+ lines.add(entry.testLine);
251
+ linesByTestFile.set(entry.testFile, lines);
252
+ }
253
+ const affectedTests = [];
254
+ for (const [file, lines] of linesByTestFile) {
255
+ if (lines.has(undefined)) {
256
+ affectedTests.push(file);
257
+ continue;
258
+ }
259
+ for (const line of [...lines].sort((a, b) => a - b)) {
260
+ affectedTests.push(`${file}:${line}`);
261
+ }
262
+ }
263
+ affectedTests.sort();
264
+ return { outcomes, fileContents, affectedTests };
176
265
  }
177
266
  const REPORT_DIR = '.tamash-playwright';
178
267
  // Filesystem-safe version of an ISO timestamp (`:` isn't valid in a Windows filename) — shared
@@ -191,7 +280,7 @@ function timestampLabel() {
191
280
  // always "the latest run"), and once archived under history/<timestamp>.* — otherwise a second
192
281
  // apply-heals run silently erases the first's report with no trace, and since .tamash-playwright/
193
282
  // is gitignored, that's not recoverable from git either.
194
- function writeReports(outcomes, dryRun, cwd, label) {
283
+ function writeReports(outcomes, affectedTests, dryRun, cwd, label) {
195
284
  const dir = path_1.default.join(cwd, REPORT_DIR);
196
285
  const historyDir = path_1.default.join(dir, 'history');
197
286
  if (!fs_1.default.existsSync(historyDir)) {
@@ -200,7 +289,7 @@ function writeReports(outcomes, dryRun, cwd, label) {
200
289
  const applied = outcomes.filter((o) => o.applied);
201
290
  const skipped = outcomes.filter((o) => !o.applied);
202
291
  const timestamp = new Date().toISOString();
203
- const jsonContent = JSON.stringify({ timestamp, dryRun, applied: applied.length, skipped: skipped.length, fixes: outcomes }, null, 2);
292
+ const jsonContent = JSON.stringify({ timestamp, dryRun, applied: applied.length, skipped: skipped.length, fixes: outcomes, affectedTests }, null, 2);
204
293
  const jsonPath = path_1.default.join(dir, 'apply-heals-report.json');
205
294
  fs_1.default.writeFileSync(jsonPath, jsonContent, 'utf-8');
206
295
  fs_1.default.writeFileSync(path_1.default.join(historyDir, `${label}.apply-heals-report.json`), jsonContent, 'utf-8');
@@ -223,6 +312,13 @@ function writeReports(outcomes, dryRun, cwd, label) {
223
312
  }
224
313
  lines.push('');
225
314
  }
315
+ if (affectedTests.length > 0) {
316
+ lines.push('## Tests to re-verify', '', 'Every test observed exercising a location that got fixed above — pass these straight to `npx playwright test` to re-run exactly them (not the whole suite, and not even the whole file unless the exact test couldn\'t be pinned to a line) with healing disabled, to prove the fix works standalone:', '');
317
+ for (const test of affectedTests) {
318
+ lines.push(`- \`${test}\``);
319
+ }
320
+ lines.push('');
321
+ }
226
322
  const markdownContent = lines.join('\n');
227
323
  const markdownPath = path_1.default.join(dir, 'apply-heals-report.md');
228
324
  fs_1.default.writeFileSync(markdownPath, markdownContent, 'utf-8');
@@ -242,7 +338,7 @@ async function runApplyHeals(args = []) {
242
338
  // --logs-dir supports the sharded-CI pattern: a merge job downloads every shard's heals.jsonl
243
339
  // artifact into one directory and points here instead of relying on a single local log file.
244
340
  const rawEntries = logsDir ? (0, heal_log_1.readHealLogsFromDir)(path_1.default.resolve(process.cwd(), logsDir)) : undefined;
245
- const { outcomes, fileContents } = planFixes(process.cwd(), rawEntries);
341
+ const { outcomes, fileContents, affectedTests } = planFixes(process.cwd(), rawEntries);
246
342
  if (outcomes.length === 0) {
247
343
  console.log(logsDir ? `No eligible heals found under ${logsDir}.` : 'No eligible heals found in .tamash-playwright/heals.jsonl.');
248
344
  console.log('(Only text/ARIA-based heals with a known source location are eligible — run your tests first.)');
@@ -260,9 +356,12 @@ async function runApplyHeals(args = []) {
260
356
  }
261
357
  console.log('');
262
358
  const label = timestampLabel();
263
- const { markdownPath } = writeReports(outcomes, dryRun, process.cwd(), label);
359
+ const { markdownPath } = writeReports(outcomes, affectedTests, dryRun, process.cwd(), label);
264
360
  console.log(`Report written to ${path_1.default.relative(process.cwd(), markdownPath)} (and the matching .json).`);
265
361
  console.log(`Archived under .tamash-playwright/history/${label}.* — kept even after the next run.`);
362
+ console.log(affectedTests.length > 0
363
+ ? `Tests to re-verify: ${affectedTests.join(' ')}`
364
+ : 'Tests to re-verify: (none recorded — pre-existing heals.jsonl entries or no test.info() available; re-run the full suite to be safe.)');
266
365
  if (dryRun) {
267
366
  console.log(`${applied.length} fix(es) would be applied, ${skipped.length} skipped. Re-run without --dry-run to write them.`);
268
367
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"applyHeals.js","sourceRoot":"","sources":["../../src/cli/applyHeals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applyHeals.js","sourceRoot":"","sources":["../../src/cli/applyHeals.ts"],"names":[],"mappings":";;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,iDAA6I;AAG7I,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AACrJ,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE1F,SAAS,uBAAuB,CAAC,UAA8B;IAC7D,QAAQ,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI;gBACpB,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;gBAC/F,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,KAAK,MAAM;YACT,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QACzD,KAAK,QAAQ;YACX,OAAO,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;QAC7D,KAAK,OAAO;YACV,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3D,KAAK,aAAa;YAChB,OAAO,oBAAoB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC;QACvE,KAAK,KAAK;YACR,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QACtD,KAAK,MAAM,EAAE,CAAC;YACZ,2FAA2F;YAC3F,2FAA2F;YAC3F,2FAA2F;YAC3F,0FAA0F;YAC1F,uEAAuE;YACvE,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,EAAE,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1J,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACjM,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC1J,OAAO,aAAa,aAAa,eAAe,UAAU,GAAG,CAAC;QAChE,CAAC;QACD,KAAK,YAAY;YACf,0FAA0F;YAC1F,oFAAoF;YACpF,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QACvH;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AASD,wFAAwF;AACxF,gGAAgG;AAChG,8FAA8F;AAC9F,kGAAkG;AAClG,iFAAiF;AACjF,4FAA4F;AAC5F,gFAAgF;AAChF,6FAA6F;AAC7F,4FAA4F;AAC5F,uFAAuF;AACvF,0FAA0F;AAC1F,iGAAiG;AACjG,SAAS,mBAAmB,CAAC,OAAe,EAAE,KAAa;IACzD,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAClB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,CAAC,EAAE,CAAC;IACN,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,kGAAkG;AAClG,iGAAiG;AACjG,kGAAkG;AAClG,0FAA0F;AAC1F,SAAS,kBAAkB,CAAC,OAAe,EAAE,cAAsB;IACjE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC;IAC3B,8FAA8F;IAC9F,+FAA+F;IAC/F,+EAA+E;IAC/E,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACpB,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAClD,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;YACzD,QAAQ,GAAG,GAAG,CAAC;QACjB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;QACV,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrC,CAAC;AAED,+FAA+F;AAC/F,mGAAmG;AACnG,kGAAkG;AAClG,wBAAwB;AACxB,EAAE;AACF,wFAAwF;AACxF,+FAA+F;AAC/F,kGAAkG;AAClG,uFAAuF;AACvF,6FAA6F;AAC7F,iGAAiG;AACjG,4FAA4F;AAC5F,yDAAyD;AACzD,MAAM,+BAA+B,GAAG,8BAA8B,CAAC;AACvE,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAEnD,SAAS,qBAAqB,CAAC,OAAe,EAAE,UAAkB;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,wCAAwC;IAClF,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;IAC/C,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAEtD,IAAI,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC1D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,6FAA6F;QAC7F,wDAAwD;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,4FAA4F;IAC5F,4FAA4F;IAC5F,oDAAoD;IACpD,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACxF,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,mBAAmB,GAAG,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACpE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACpF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,kBAAkB,GAAG,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvE,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBAClE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,OAAO,GAAG,SAAS,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAWD,6FAA6F;AAC7F,iEAAiE;AACjE,SAAS,iBAAiB,CAAC,OAAuB;IAChD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACtD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,6FAA6F;AAC7F,0FAA0F;AAC1F,mGAAmG;AACnG,kGAAkG;AAClG,uCAAuC;AACvC,mBAA0B,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE,EAAE,UAA2B;IAChF,MAAM,UAAU,GAAG,UAAU,IAAI,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE/C,KAAK,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACnI,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,4FAA4F;QAC5F,oCAAoC;QACpC,MAAM,aAAa,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAEvE,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAElF,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,CAAC,KAAK;wBACZ,CAAC,CAAC,iHAAiH;wBACnH,CAAC,CAAC,oCAAoC,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAI;iBACtE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;YAEhC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClF,OAAO,GAAG,IAAI,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,iGAAiG;IACjG,+FAA+F;IAC/F,4FAA4F;IAC5F,gGAAgG;IAChG,iGAAiG;IACjG,8FAA8F;IAC9F,uFAAuF;IACvF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtG,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmC,CAAC;IACnE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5E,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAsB,CAAC;QACnF,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1B,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAY,GAAI,CAAY,CAAC,EAAE,CAAC;YAC5E,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,CAAC;IAErB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,+FAA+F;AAC/F,gGAAgG;AAChG,qBAAqB;AACrB,SAAS,cAAc;IACrB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,8FAA8F;AAC9F,gGAAgG;AAChG,gGAAgG;AAChG,8FAA8F;AAC9F,YAAY;AACZ,EAAE;AACF,8FAA8F;AAC9F,+FAA+F;AAC/F,kGAAkG;AAClG,yDAAyD;AACzD,SAAS,YAAY,CAAC,QAAsB,EAAE,aAAuB,EAAE,MAAe,EAAE,GAAW,EAAE,KAAa;IAChH,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE3C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrJ,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IAC3D,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,0BAA0B,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAElG,MAAM,KAAK,GAAa;QACtB,sBAAsB;QACtB,EAAE;QACF,aAAa,SAAS,wCAAwC,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,GAAG;QAC9G,EAAE;KACH,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAChJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,uSAAuS,EAAE,EAAE,CAAC,CAAC;QACrV,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAC7D,YAAE,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IACzD,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,wBAAwB,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAEpG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAChD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClC,OAAO,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAClE,CAAC;AACJ,CAAC;AAEM,KAAK,wBAAwB,IAAI,GAAa,EAAE;IACrD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,8FAA8F;IAC9F,6FAA6F;IAC7F,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAA,8BAAmB,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAEvF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,OAAO,GAAG,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC;QAClI,OAAO,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAC;QAC9G,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEnD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,qBAAqB,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,4BAA4B,CAAC,CAAC;IACzG,OAAO,CAAC,GAAG,CAAC,6CAA6C,KAAK,oCAAoC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CACT,aAAa,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC,uBAAuB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAClD,CAAC,CAAC,uIAAuI,CAC5I,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,8BAA8B,OAAO,CAAC,MAAM,mDAAmD,CAAC,CAAC;QAC9H,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC/C,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,uBAAuB,YAAY,CAAC,IAAI,aAAa,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;IAC7G,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IAEvE,+FAA+F;IAC/F,iGAAiG;IACjG,gGAAgG;IAChG,gGAAgG;IAChG,qEAAqE;IACrE,EAAE;IACF,6FAA6F;IAC7F,oFAAoF;IACpF,2FAA2F;IAC3F,2FAA2F;IAC3F,IAAI,OAAO,EAAE,CAAC;QACZ,IAAA,+BAAoB,EAAC,UAAU,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,IAAA,yBAAc,EAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,IAAA,uBAAY,GAAE,CAAC;AACjB,CAAC"}
@@ -6,6 +6,10 @@ export type HealLogEntry = {
6
6
  action: string;
7
7
  description?: string;
8
8
  suggestion: SelectorSuggestion;
9
+ testFile?: string;
10
+ testLine?: number;
11
+ testTitle?: string;
12
+ usedCache?: boolean;
9
13
  };
10
14
  export declare function parseSourceLocation(sourceLocation: string): {
11
15
  file: string;
@@ -1 +1 @@
1
- {"version":3,"file":"heal-log.d.ts","sourceRoot":"","sources":["../../src/healer/heal-log.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAO5D,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAYF,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAYtG;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAUzF;AAmBD,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,YAAY,EAAE,CAEvE;AAOD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAe/D;AAQD,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,kBAAkB,GAAG,SAAS,CAiBxH;AAOD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAc/E;AAOD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAc9G;AAED,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,IAAI,CAM9D"}
1
+ {"version":3,"file":"heal-log.d.ts","sourceRoot":"","sources":["../../src/healer/heal-log.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAO5D,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAO/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAYF,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAYtG;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAUzF;AAmBD,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,YAAY,EAAE,CAEvE;AAOD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAe/D;AAQD,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,kBAAkB,GAAG,SAAS,CAiBxH;AAOD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAc/E;AAOD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAc9G;AAED,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,IAAI,CAM9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"heal-log.js","sourceRoot":"","sources":["../../src/healer/heal-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heal-log.js","sourceRoot":"","sources":["../../src/healer/heal-log.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/healer/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAI3E,OAAO,KAAK,EAAoC,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQtF,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,UAAU,EAAE,OAAO,CAAC;IAIpB,kBAAkB,EAAE,OAAO,CAAC;IAK5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAsSF,wBAAgB,gBAAgB,IAAI,OAAO,CAG1C;AAMD,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AA4FD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAKrB,UAAU,CAAC,EAAE,YAAY,CAAC;IAG1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAqM/E;AAED,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAEvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/healer/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAI3E,OAAO,KAAK,EAAoC,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQtF,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,UAAU,EAAE,OAAO,CAAC;IAIpB,kBAAkB,EAAE,OAAO,CAAC;IAK5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA6XF,wBAAgB,gBAAgB,IAAI,OAAO,CAG1C;AAMD,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAkHD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAKrB,UAAU,CAAC,EAAE,YAAY,CAAC;IAG1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAmM/E;AAED,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAEvD"}
@@ -65,31 +65,108 @@ async function captureAriaSnapshot(pageContext, timeoutMs) {
65
65
  return undefined;
66
66
  }
67
67
  try {
68
- return await pageContext.locator('body').ariaSnapshot({ timeout: timeoutMs });
68
+ // mode: 'ai' adds [ref=...] identifiers; boxes adds each element's on-screen [box=x,y,w,h] in
69
+ // CSS pixels — both needed so the 'near' strategy (see resolveNearLocator) has real position
70
+ // data to judge "close to this text" the way a sighted user would, not just tree nesting.
71
+ return await pageContext.locator('body').ariaSnapshot({ timeout: timeoutMs, mode: 'ai', boxes: true });
69
72
  }
70
73
  catch {
71
74
  try {
72
- return await pageContext.locator(':root').ariaSnapshot({ timeout: timeoutMs });
75
+ return await pageContext.locator(':root').ariaSnapshot({ timeout: timeoutMs, mode: 'ai', boxes: true });
73
76
  }
74
77
  catch {
75
78
  return undefined;
76
79
  }
77
80
  }
78
81
  }
79
- function buildLocatorFromSuggestion(pageContext, suggestion) {
82
+ // For an element with no accessible identity of its own: anchor on nearby text (the way a sighted
83
+ // user reads a label, then looks at the field next to it) and try a short ladder of ways to
84
+ // express "the <role> near this text" as a real locator, in order, keeping the first one that
85
+ // resolves to EXACTLY one match. Uniqueness isn't optional here — unlike role/testId/label, "near"
86
+ // is a weak enough signal that a wrong-but-plausible match is a real risk, so an ambiguous result
87
+ // (0 or >1 matches) is treated as "couldn't find it," never a guess.
88
+ //
89
+ // `xpath=..`/`xpath=../..` (not a raw CSS `+ *` sibling combinator) because the anchor and target
90
+ // are commonly siblings under a shared container rather than the anchor's own element having a
91
+ // sibling directly — going up to that shared container and then using Playwright's own
92
+ // getByRole() (which correctly computes *implicit* roles, e.g. a plain <input> is "textbox" with
93
+ // no role attribute needed) covers that shape correctly, and still pierces Shadow DOM since
94
+ // getByRole does. Two levels are tried since the container is sometimes one level deeper (an
95
+ // extra wrapping <div> around the label alone) — see the CLI reference this pattern is modeled on.
96
+ // parentLevels on the return value records WHICH candidate actually resolved — apply-heals (a
97
+ // pure offline source-code rewriter, no live page to test against) needs this later to write the
98
+ // exact pattern that was proven to work, rather than guessing between the two.
99
+ async function resolveNearLocator(pageContext, suggestion) {
100
+ const anchor = pageContext.getByText(new RegExp(escapeRegExp(suggestion.anchorText), 'i')).first();
101
+ const candidates = [
102
+ { parentLevels: 1, build: () => anchor.locator('xpath=..').getByRole(suggestion.role) },
103
+ { parentLevels: 2, build: () => anchor.locator('xpath=../..').getByRole(suggestion.role) },
104
+ ];
105
+ for (const { parentLevels, build } of candidates) {
106
+ try {
107
+ const candidate = build();
108
+ if (await candidate.count() === 1) {
109
+ return { locator: candidate, parentLevels };
110
+ }
111
+ }
112
+ catch {
113
+ // This candidate's shape doesn't apply to this page's structure — try the next.
114
+ }
115
+ }
116
+ return undefined;
117
+ }
118
+ // A target with real identity (role+name) that isn't unique page-wide, scoped through a directly-
119
+ // addressable enclosing landmark — no ancestor-climbing needed, unlike resolveNearLocator, since
120
+ // both the container and the target are found by their own accessible names. Still enforces
121
+ // uniqueness within the container, for the same reason as everywhere else: better to report "not
122
+ // found" than to guess between two matches.
123
+ async function resolveScopedLocator(pageContext, suggestion) {
124
+ const container = pageContext.getByRole(suggestion.containerRole, suggestion.containerName ? { name: new RegExp(escapeRegExp(suggestion.containerName), 'i') } : undefined);
125
+ const candidate = container.getByRole(suggestion.role, suggestion.name ? { name: new RegExp(escapeRegExp(suggestion.name), 'i') } : undefined);
126
+ return (await candidate.count()) === 1 ? candidate : undefined;
127
+ }
128
+ // The inverse of resolveNearLocator: the target IS the container, identified by text found INSIDE
129
+ // it rather than beside it — Playwright's own filter({hasText}) shape. Deliberately hasText (a
130
+ // plain string/regex), not has: <nested locator> — the latter would need its own reference to the
131
+ // page (e.g. `page.getByText(...)`), which generateReplacementCall (applyHeals.ts) has no safe way
132
+ // to reconstruct when writing this to source (it only ever sees the text *after* the receiver,
133
+ // never the receiver itself, so it can't know whether to write `page.` or `this.page.`). hasText
134
+ // needs no such reference, so the runtime resolution and the permanent fix stay mechanically
135
+ // identical instead of diverging.
136
+ async function resolveContainingLocator(pageContext, suggestion) {
137
+ const candidate = pageContext.getByRole(suggestion.role).filter({ hasText: new RegExp(escapeRegExp(suggestion.anchorText), 'i') });
138
+ return (await candidate.count()) === 1 ? candidate : undefined;
139
+ }
140
+ // Returns the resolved suggestion alongside the locator, not just the locator — identical to the
141
+ // input for every strategy except 'near', where resolveNearLocator fills in parentLevels from
142
+ // what actually worked. Callers should log/capture *this* returned suggestion, not the one they
143
+ // passed in, so that detail isn't lost.
144
+ async function buildLocatorFromSuggestion(pageContext, suggestion) {
80
145
  switch (suggestion.strategy) {
81
146
  case 'role':
82
- return pageContext.getByRole(suggestion.role, suggestion.name ? { name: new RegExp(escapeRegExp(suggestion.name), 'i') } : undefined);
147
+ return { locator: pageContext.getByRole(suggestion.role, suggestion.name ? { name: new RegExp(escapeRegExp(suggestion.name), 'i') } : undefined), resolvedSuggestion: suggestion };
83
148
  case 'text':
84
- return pageContext.getByText(suggestion.text, { exact: false });
149
+ return { locator: pageContext.getByText(suggestion.text, { exact: false }), resolvedSuggestion: suggestion };
85
150
  case 'testId':
86
- return pageContext.getByTestId(suggestion.testId);
151
+ return { locator: pageContext.getByTestId(suggestion.testId), resolvedSuggestion: suggestion };
87
152
  case 'label':
88
- return pageContext.getByLabel(suggestion.label, { exact: false });
153
+ return { locator: pageContext.getByLabel(suggestion.label, { exact: false }), resolvedSuggestion: suggestion };
89
154
  case 'placeholder':
90
- return pageContext.getByPlaceholder(suggestion.placeholder, { exact: false });
155
+ return { locator: pageContext.getByPlaceholder(suggestion.placeholder, { exact: false }), resolvedSuggestion: suggestion };
91
156
  case 'css':
92
- return pageContext.locator(suggestion.css);
157
+ return { locator: pageContext.locator(suggestion.css), resolvedSuggestion: suggestion };
158
+ case 'near': {
159
+ const resolved = await resolveNearLocator(pageContext, suggestion);
160
+ return resolved ? { locator: resolved.locator, resolvedSuggestion: { ...suggestion, parentLevels: resolved.parentLevels } } : undefined;
161
+ }
162
+ case 'scoped': {
163
+ const locator = await resolveScopedLocator(pageContext, suggestion);
164
+ return locator ? { locator, resolvedSuggestion: suggestion } : undefined;
165
+ }
166
+ case 'containing': {
167
+ const locator = await resolveContainingLocator(pageContext, suggestion);
168
+ return locator ? { locator, resolvedSuggestion: suggestion } : undefined;
169
+ }
93
170
  default:
94
171
  return undefined;
95
172
  }
@@ -108,6 +185,12 @@ function describeSuggestion(suggestion) {
108
185
  return `placeholder:${suggestion.placeholder}`;
109
186
  case 'css':
110
187
  return `css:${suggestion.css}`;
188
+ case 'near':
189
+ return `near:${suggestion.role}:"${suggestion.anchorText}"`;
190
+ case 'scoped':
191
+ return `scoped:${suggestion.containerRole}${suggestion.containerName ? `:"${suggestion.containerName}"` : ''} > ${suggestion.role}${suggestion.name ? `:"${suggestion.name}"` : ''}`;
192
+ case 'containing':
193
+ return `containing:${suggestion.role}:"${suggestion.anchorText}"`;
111
194
  default:
112
195
  return undefined;
113
196
  }
@@ -324,7 +407,7 @@ function attachReportToRunningTest(report) {
324
407
  // narrow about what's eligible: vision heals have no reusable source form (the "selector" is a
325
408
  // runtime screenshot coordinate, tagged onto a temporary DOM attribute), and an action-recovery
326
409
  // heal means the *locator* was already right — nothing about the selector itself needs fixing.
327
- function logEligibleHeal(report, suggestion, usedVision, usedActionRecovery) {
410
+ function logEligibleHeal(report, suggestion, usedVision, usedActionRecovery, usedCache) {
328
411
  if (!report.healed || !report.sourceLocation || !suggestion || usedVision || usedActionRecovery) {
329
412
  return;
330
413
  }
@@ -332,6 +415,24 @@ function logEligibleHeal(report, suggestion, usedVision, usedActionRecovery) {
332
415
  if (!location) {
333
416
  return;
334
417
  }
418
+ // Same guard as attachReportToRunningTest — test.info() throws outside a live Playwright
419
+ // worker, which this function must survive rather than lose the entry entirely.
420
+ let testFile;
421
+ let testLine;
422
+ let testTitle;
423
+ try {
424
+ const testInfo = test_1.test.info();
425
+ testFile = path_1.default.relative(process.cwd(), testInfo.file);
426
+ // Where this test's own `test(...)` call is declared — not to be confused with
427
+ // location.line above, which is where the *locator* was declared. This is what lets
428
+ // apply-heals target `npx playwright test <testFile>:<testLine>` later: the exact test that
429
+ // used this locator, not every test in the same file.
430
+ testLine = testInfo.line;
431
+ testTitle = testInfo.titlePath.join(' > ');
432
+ }
433
+ catch {
434
+ // Not running inside a Playwright test worker — leave testFile/testLine/testTitle undefined.
435
+ }
335
436
  (0, heal_log_1.appendHealLogEntry)({
336
437
  timestamp: new Date().toISOString(),
337
438
  file: location.file,
@@ -339,6 +440,10 @@ function logEligibleHeal(report, suggestion, usedVision, usedActionRecovery) {
339
440
  action: report.action,
340
441
  description: report.description,
341
442
  suggestion,
443
+ testFile,
444
+ testLine,
445
+ testTitle,
446
+ usedCache,
342
447
  });
343
448
  }
344
449
  async function healActionFailure(context) {
@@ -385,12 +490,12 @@ async function healActionFailure(context) {
385
490
  if (attemptHealing && pageContext && context.sourceLocation) {
386
491
  const cached = (0, heal_log_1.findCachedSuggestion)(context.sourceLocation);
387
492
  if (cached) {
388
- const locator = buildLocatorFromSuggestion(pageContext, cached);
389
- if (locator) {
493
+ const built = await buildLocatorFromSuggestion(pageContext, cached);
494
+ if (built) {
390
495
  try {
391
- const replayResult = await (0, replay_action_1.replayAction)(locator, context.action, callArgs);
392
- suggestedSelector = describeSuggestion(cached);
393
- capturedSuggestion = cached;
496
+ const replayResult = await (0, replay_action_1.replayAction)(built.locator, context.action, callArgs);
497
+ suggestedSelector = describeSuggestion(built.resolvedSuggestion);
498
+ capturedSuggestion = built.resolvedSuggestion;
394
499
  usedCache = true;
395
500
  healing = {
396
501
  provider: 'cache',
@@ -430,19 +535,19 @@ async function healActionFailure(context) {
430
535
  failureStage = 'ai_declined';
431
536
  }
432
537
  else {
433
- const locator = buildLocatorFromSuggestion(pageContext, suggestion);
434
- if (!locator) {
538
+ const built = await buildLocatorFromSuggestion(pageContext, suggestion);
539
+ if (!built) {
435
540
  failureStage = 'unbuildable_suggestion';
436
541
  }
437
542
  else {
438
543
  // Set *before* the replay attempt (not just on success) — an AI suggestion that
439
544
  // turned out to also fail is exactly the case worth seeing in the report, not
440
545
  // silently discarding in favor of the original error alone.
441
- suggestedSelector = describeSuggestion(suggestion);
442
- capturedSuggestion = suggestion;
546
+ suggestedSelector = describeSuggestion(built.resolvedSuggestion);
547
+ capturedSuggestion = built.resolvedSuggestion;
443
548
  failureStage = 'replay_failed';
444
549
  try {
445
- const replayResult = await (0, replay_action_1.replayAction)(locator, context.action, callArgs);
550
+ const replayResult = await (0, replay_action_1.replayAction)(built.locator, context.action, callArgs);
446
551
  healing = {
447
552
  provider: provider.name,
448
553
  warning: `Recovered using ${provider.name} (${suggestedSelector ?? 'suggested selector'}).`,
@@ -453,7 +558,7 @@ async function healActionFailure(context) {
453
558
  }
454
559
  catch (replayError) {
455
560
  if (isActionRecoveryEnabled()) {
456
- const fallback = await attemptActionRecoveryFallback(provider, locator, context.action, callArgs, replayError, actionTimeoutMs, suggestedSelector, usage);
561
+ const fallback = await attemptActionRecoveryFallback(provider, built.locator, context.action, callArgs, replayError, actionTimeoutMs, suggestedSelector, usage);
457
562
  usage = fallback.usage;
458
563
  usedActionRecovery = true;
459
564
  healing = fallback.healing;
@@ -529,12 +634,10 @@ async function healActionFailure(context) {
529
634
  console.warn(formatConsoleLine(report));
530
635
  }
531
636
  attachReportToRunningTest(report);
532
- // A cache hit is already backed by an existing log entry (that's what made it a hit) — re-logging
533
- // it on every single confirmation would just grow the log unboundedly for a fix nobody's applied
534
- // yet, with no new information to add.
535
- if (!usedCache) {
536
- logEligibleHeal(report, capturedSuggestion, usedVision, usedActionRecovery);
537
- }
637
+ // Logged on every occurrence, cache hit or not a cache hit doesn't need a fresh AI call, but
638
+ // it still means *this* test touched the healed location, and apply-heals needs that fact (via
639
+ // testFile) to know which tests to re-verify once the fix is applied. See logEligibleHeal.
640
+ logEligibleHeal(report, capturedSuggestion, usedVision, usedActionRecovery, usedCache);
538
641
  return {
539
642
  report,
540
643
  recovered: Boolean(healing),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/healer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/healer/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ActionTactic, SelectorSuggestion, SuggestActionTacticInput, SuggestElementFromImageInput, SuggestSelectorInput, TokenUsage, VisionPoint } from './types';
2
- export declare const SYSTEM_PROMPT = "You are a Playwright self-healing assistant.\nYou will be given an ARIA accessibility snapshot of a web page, an action that just failed, and a human description of the element the test intended to interact with.\nPick the single best-matching element that is LITERALLY present in the snapshot and respond with strict JSON only (no markdown, no prose) matching one of:\n{\"strategy\":\"role\",\"role\":\"<aria role>\",\"name\":\"<accessible name>\"}\n{\"strategy\":\"text\",\"text\":\"<visible text>\"}\n{\"strategy\":\"testId\",\"testId\":\"<test id>\"}\n{\"strategy\":\"label\",\"label\":\"<label text>\"}\n{\"strategy\":\"placeholder\",\"placeholder\":\"<placeholder text>\"}\n{\"strategy\":\"css\",\"css\":\"<css selector>\"}\n{\"strategy\":\"none\"}\nIf nothing in the snapshot plausibly matches the description, respond with {\"strategy\":\"none\"}. Never invent an element that isn't in the snapshot.";
2
+ export declare const SYSTEM_PROMPT = "You are a Playwright self-healing assistant.\nYou will be given an ARIA accessibility snapshot of a web page, an action that just failed, and a human description of the element the test intended to interact with. The snapshot includes each element's [ref=...] and, where available, its on-screen position as [box=x,y,width,height] in CSS pixels.\nPick the single best-matching element that is LITERALLY present in the snapshot and respond with strict JSON only (no markdown, no prose) matching one of:\n{\"strategy\":\"role\",\"role\":\"<aria role>\",\"name\":\"<accessible name>\"}\n{\"strategy\":\"text\",\"text\":\"<visible text>\"}\n{\"strategy\":\"testId\",\"testId\":\"<test id>\"}\n{\"strategy\":\"label\",\"label\":\"<label text>\"}\n{\"strategy\":\"placeholder\",\"placeholder\":\"<placeholder text>\"}\n{\"strategy\":\"css\",\"css\":\"<css selector>\"}\n{\"strategy\":\"near\",\"anchorText\":\"<nearby visible text>\",\"role\":\"<aria role of the TARGET element itself>\"}\n{\"strategy\":\"scoped\",\"containerRole\":\"<aria role of an enclosing landmark>\",\"containerName\":\"<that landmark's accessible name>\",\"role\":\"<target's own role>\",\"name\":\"<target's own accessible name>\"}\n{\"strategy\":\"containing\",\"role\":\"<role of the TARGET, which is itself a container>\",\"anchorText\":\"<text found INSIDE that container>\"}\n{\"strategy\":\"none\"}\nUse \"role\"/\"text\"/\"testId\"/\"label\"/\"placeholder\" whenever the target element has one of those identities of its own AND that identity is unique in the snapshot \u2014 always prefer these first.\nUse \"near\" when the target has no accessible name, no label, and no placeholder of its own (e.g. a plain \"textbox\" or \"generic\" node with no quoted name before its [ref]), but sits close to some label-like text that is NOT inside it. \"anchorText\" is that nearby text, \"role\" is the target's own role \u2014 not the anchor text's role. Use each element's [box=...] position to judge \"nearby\" the way a human would look at the page, not just tree nesting.\nUse \"scoped\" when the target DOES have its own role and name, but that same role+name also appears elsewhere in the snapshot (so it alone wouldn't be unique) \u2014 and it sits inside a distinctly-named container (a dialog, a section, a landmark with its own accessible name). \"containerRole\"/\"containerName\" identify that enclosing container; \"role\"/\"name\" identify the target within it.\nUse \"containing\" when the target is itself a container (e.g. a table row) and the only way to identify WHICH one is by text found inside it (e.g. one specific cell's value) \u2014 \"role\" is the container's own role, \"anchorText\" is the distinguishing text found inside it.\nIf nothing in the snapshot plausibly matches the description, respond with {\"strategy\":\"none\"}. Never invent an element that isn't in the snapshot.";
3
3
  export declare function buildUserPrompt(input: SuggestSelectorInput): string;
4
4
  export declare function parseSuggestion(content: string): SelectorSuggestion | null;
5
5
  export declare const VISION_SYSTEM_PROMPT = "You are a Playwright self-healing assistant.\nYou will be given a screenshot of a web page, an action that just failed, and a human description of the element the test intended to interact with.\nFind the single best-matching element that is LITERALLY visible in the screenshot and respond with strict JSON only (no markdown, no prose):\n{\"found\":true,\"x\":<0-1000>,\"y\":<0-1000>}\nWhere x and y are the CENTER of the matching element, expressed as its position within the image scaled to a 0-1000 range (0 = left/top edge, 1000 = right/bottom edge) \u2014 NOT raw pixel coordinates.\nIf nothing in the screenshot plausibly matches the description, respond with {\"found\":false}. Never invent an element that isn't visible in the image.";
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIvK,eAAO,MAAM,aAAa,g5BAU0H,CAAC;AAErJ,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAWnE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CA4C1E;AAKD,eAAO,MAAM,oBAAoB,0uBAKsH,CAAC;AAExJ,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,CAMjF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAiCzE;AASD,eAAO,MAAM,6BAA6B,4/CAOoD,CAAC;AAE/F,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CAKrF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAsBhF;AAID,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,UAAU,GAAG,SAAS,CAWvK"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIvK,eAAO,MAAM,aAAa,o0FAiB0H,CAAC;AAErJ,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAWnE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAqD1E;AAKD,eAAO,MAAM,oBAAoB,0uBAKsH,CAAC;AAExJ,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,CAMjF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAiCzE;AASD,eAAO,MAAM,6BAA6B,4/CAOoD,CAAC;AAE/F,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CAKrF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAsBhF;AAID,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,UAAU,GAAG,SAAS,CAWvK"}
@@ -10,7 +10,7 @@ exports.parseActionTacticSuggestion = parseActionTacticSuggestion;
10
10
  exports.extractOpenAICompatibleUsage = extractOpenAICompatibleUsage;
11
11
  const MAX_SNAPSHOT_CHARS = 8000;
12
12
  exports.SYSTEM_PROMPT = `You are a Playwright self-healing assistant.
13
- You will be given an ARIA accessibility snapshot of a web page, an action that just failed, and a human description of the element the test intended to interact with.
13
+ You will be given an ARIA accessibility snapshot of a web page, an action that just failed, and a human description of the element the test intended to interact with. The snapshot includes each element's [ref=...] and, where available, its on-screen position as [box=x,y,width,height] in CSS pixels.
14
14
  Pick the single best-matching element that is LITERALLY present in the snapshot and respond with strict JSON only (no markdown, no prose) matching one of:
15
15
  {"strategy":"role","role":"<aria role>","name":"<accessible name>"}
16
16
  {"strategy":"text","text":"<visible text>"}
@@ -18,7 +18,14 @@ Pick the single best-matching element that is LITERALLY present in the snapshot
18
18
  {"strategy":"label","label":"<label text>"}
19
19
  {"strategy":"placeholder","placeholder":"<placeholder text>"}
20
20
  {"strategy":"css","css":"<css selector>"}
21
+ {"strategy":"near","anchorText":"<nearby visible text>","role":"<aria role of the TARGET element itself>"}
22
+ {"strategy":"scoped","containerRole":"<aria role of an enclosing landmark>","containerName":"<that landmark's accessible name>","role":"<target's own role>","name":"<target's own accessible name>"}
23
+ {"strategy":"containing","role":"<role of the TARGET, which is itself a container>","anchorText":"<text found INSIDE that container>"}
21
24
  {"strategy":"none"}
25
+ Use "role"/"text"/"testId"/"label"/"placeholder" whenever the target element has one of those identities of its own AND that identity is unique in the snapshot — always prefer these first.
26
+ Use "near" when the target has no accessible name, no label, and no placeholder of its own (e.g. a plain "textbox" or "generic" node with no quoted name before its [ref]), but sits close to some label-like text that is NOT inside it. "anchorText" is that nearby text, "role" is the target's own role — not the anchor text's role. Use each element's [box=...] position to judge "nearby" the way a human would look at the page, not just tree nesting.
27
+ Use "scoped" when the target DOES have its own role and name, but that same role+name also appears elsewhere in the snapshot (so it alone wouldn't be unique) — and it sits inside a distinctly-named container (a dialog, a section, a landmark with its own accessible name). "containerRole"/"containerName" identify that enclosing container; "role"/"name" identify the target within it.
28
+ Use "containing" when the target is itself a container (e.g. a table row) and the only way to identify WHICH one is by text found inside it (e.g. one specific cell's value) — "role" is the container's own role, "anchorText" is the distinguishing text found inside it.
22
29
  If nothing in the snapshot plausibly matches the description, respond with {"strategy":"none"}. Never invent an element that isn't in the snapshot.`;
23
30
  function buildUserPrompt(input) {
24
31
  const snapshot = input.ariaSnapshot.length > MAX_SNAPSHOT_CHARS
@@ -73,6 +80,15 @@ function parseSuggestion(content) {
73
80
  if (suggestion.strategy === 'css' && typeof suggestion.css === 'string') {
74
81
  return suggestion;
75
82
  }
83
+ if (suggestion.strategy === 'near' && typeof suggestion.anchorText === 'string' && typeof suggestion.role === 'string') {
84
+ return suggestion;
85
+ }
86
+ if (suggestion.strategy === 'scoped' && typeof suggestion.containerRole === 'string' && typeof suggestion.role === 'string') {
87
+ return suggestion;
88
+ }
89
+ if (suggestion.strategy === 'containing' && typeof suggestion.role === 'string' && typeof suggestion.anchorText === 'string') {
90
+ return suggestion;
91
+ }
76
92
  return null;
77
93
  }
78
94
  // Used only as a fallback, after the ARIA/text-based prompt above has already failed to produce
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/healer/providers/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/healer/providers/prompt.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,21 @@ export type SelectorSuggestion = {
19
19
  } | {
20
20
  strategy: 'css';
21
21
  css: string;
22
+ } | {
23
+ strategy: 'near';
24
+ anchorText: string;
25
+ role: string;
26
+ parentLevels?: 1 | 2;
27
+ } | {
28
+ strategy: 'scoped';
29
+ containerRole: string;
30
+ containerName?: string;
31
+ role: string;
32
+ name?: string;
33
+ } | {
34
+ strategy: 'containing';
35
+ role: string;
36
+ anchorText: string;
22
37
  };
23
38
  export type SuggestSelectorInput = {
24
39
  action: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAOF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAMF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7E,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7E;;;oCAGgC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAGpG,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CAC1F,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamash-playwright",
3
- "version": "0.7.0-beta.2",
3
+ "version": "0.7.0-beta.3",
4
4
  "description": "Plug and Play Self-healing for Playwright and automatically recovers broken selectors using an AI model (Ollama, OpenAI, Anthropic, or Gemini).",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",