tamash-playwright 0.9.0 → 0.10.0-beta.2
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/CHANGELOG.md +40 -0
- package/dist/healer/durable-locator.d.ts +4 -0
- package/dist/healer/durable-locator.d.ts.map +1 -1
- package/dist/healer/durable-locator.js +86 -0
- package/dist/healer/durable-locator.js.map +1 -1
- package/dist/healer/index.d.ts +13 -0
- package/dist/healer/index.d.ts.map +1 -1
- package/dist/healer/index.js +203 -12
- package/dist/healer/index.js.map +1 -1
- package/dist/healer/providers/claude-subscription.d.ts.map +1 -1
- package/dist/healer/providers/claude-subscription.js +11 -0
- package/dist/healer/providers/claude-subscription.js.map +1 -1
- package/dist/healer/providers/prompt.d.ts +1 -1
- package/dist/healer/providers/prompt.d.ts.map +1 -1
- package/dist/healer/providers/prompt.js +13 -3
- package/dist/healer/providers/prompt.js.map +1 -1
- package/dist/healer/providers/types.d.ts +8 -0
- package/dist/healer/providers/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,46 @@
|
|
|
3
3
|
All notable changes to this project are documented here. Format loosely follows
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/); dates are when each version was published.
|
|
5
5
|
|
|
6
|
+
## [0.10.0] - 2026-08-26
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
|
|
10
|
+
- **`claude-subscription` was burning a real, unnecessary amount of extra tokens.** The SDK's
|
|
11
|
+
`effort` option silently defaults to `'high'` ("deep reasoning") when left unset, and this
|
|
12
|
+
provider never set it — a small prompt-complexity increase (below) pushed adaptive thinking to
|
|
13
|
+
reason unpredictably harder for a task that only ever needs to return one line of JSON.
|
|
14
|
+
Confirmed live via real CI runs: output tokens for the same heal went from a 188-445 baseline up
|
|
15
|
+
to 422-881, inconsistently, run to run. `thinking: { type: 'disabled' }` + `effort: 'low'`
|
|
16
|
+
removes the variability entirely — verified repeatedly at a steady 28-30 output tokens, below
|
|
17
|
+
even the pre-regression baseline, with no change to correctness.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **Full attempt-history logging**: `SelfHealingReport` now carries an `attempts[]` array — one
|
|
22
|
+
entry per cache/ref/text/vision/action-recovery attempt actually made, each with its own
|
|
23
|
+
`succeeded`/`stage`/`error`. Previously only the *last* attempt's stage survived; an earlier
|
|
24
|
+
attempt's real failure (and the specific error it threw) was silently discarded the moment a
|
|
25
|
+
later attempt also failed — the exact shape of a real user-reported bug, where a genuine
|
|
26
|
+
candidate selector was shown next to an unrelated `vision_provider_error` with no way to tell
|
|
27
|
+
why the candidate itself hadn't worked. The attempt history now also prints directly to
|
|
28
|
+
console/CI output (not just the JSON attachment) whenever more than one attempt was made, on
|
|
29
|
+
both pass and fail — since that plain-text output is what most bug reports actually paste, not
|
|
30
|
+
an attachment nobody opens.
|
|
31
|
+
- **`ariaSnapshot` is attached to the test report on failure** — the exact accessibility tree the
|
|
32
|
+
AI reasoned over, so a confusing report can be diagnosed against real evidence instead of a
|
|
33
|
+
separately-captured DevTools screenshot.
|
|
34
|
+
- **A new `adjacent` selector strategy**, fixing a real ambiguity in the existing `near` strategy:
|
|
35
|
+
when two fields with no identity of their own share a row/section (two dropdowns side by side,
|
|
36
|
+
say), `near`'s "climb to a shared ancestor, then search it for any element of this role"
|
|
37
|
+
approach matches both and gives up rather than risk the wrong one. The AI's `ref` response can
|
|
38
|
+
now optionally report `nearbyRef`/`nearbyText`/`nearbyRole` for a nameless target it identified;
|
|
39
|
+
`deriveDurableLocator` uses that hint to find the true common ancestor between the target and
|
|
40
|
+
its label — via each ref's own full ancestor chain, not by assuming either sits at a matching
|
|
41
|
+
depth — and, when they're proven to be immediate sibling branches, builds a precise CSS
|
|
42
|
+
`:text() + *` sibling match (or an xpath climb-then-step, when the label text turns out to be
|
|
43
|
+
nested below its own branch root). Verified live against a real configured provider, resolving
|
|
44
|
+
the correct field and never its same-row neighbor in both directions.
|
|
45
|
+
|
|
6
46
|
## [0.9.0] - 2026-08-26
|
|
7
47
|
|
|
8
48
|
### Fixed
|
|
@@ -21,6 +21,10 @@ export type SiblingAnchorCandidate = {
|
|
|
21
21
|
levelsUp: 1 | 2;
|
|
22
22
|
};
|
|
23
23
|
export declare function findSiblingAnchorTexts(nodes: AriaAiNode[], targetRef: string, maxLevels?: 1 | 2): SiblingAnchorCandidate[];
|
|
24
|
+
export type AdjacentBranchPath = {
|
|
25
|
+
anchorClimbLevels: number;
|
|
26
|
+
};
|
|
27
|
+
export declare function findAdjacentBranchPath(nodes: AriaAiNode[], targetRef: string, anchorRef: string): AdjacentBranchPath | undefined;
|
|
24
28
|
export declare function buildNearestRefCandidates(nodes: AriaAiNode[], x: number, y: number, radiusPx?: number, maxCandidates?: number): string[];
|
|
25
29
|
export declare function isPositionalSelectorText(code: string): boolean;
|
|
26
30
|
export declare function generateReplacementCall(suggestion: SelectorSuggestion): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-locator.d.ts","sourceRoot":"","sources":["../../src/healer/durable-locator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAe5D,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAY5F;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAcF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA6D9D;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC;AAOvE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,GAAG,CAAK,GAAG,sBAAsB,EAAE,CAqE7H;AAUD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAM,EAAE,aAAa,SAAI,GAAG,MAAM,EAAE,CAQhI;AAgBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAOD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"durable-locator.d.ts","sourceRoot":"","sources":["../../src/healer/durable-locator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAe5D,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAY5F;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAcF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA6D9D;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC;AAOvE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,GAAG,CAAK,GAAG,sBAAsB,EAAE,CAqE7H;AAED,MAAM,MAAM,kBAAkB,GAAG;IAQ/B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAYF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CA2DhI;AAUD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAM,EAAE,aAAa,SAAI,GAAG,MAAM,EAAE,CAQhI;AAgBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAOD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAqE1F;AAgBD,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAiCxG"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.sameElement = sameElement;
|
|
4
4
|
exports.parseAriaAiTree = parseAriaAiTree;
|
|
5
5
|
exports.findSiblingAnchorTexts = findSiblingAnchorTexts;
|
|
6
|
+
exports.findAdjacentBranchPath = findAdjacentBranchPath;
|
|
6
7
|
exports.buildNearestRefCandidates = buildNearestRefCandidates;
|
|
7
8
|
exports.isPositionalSelectorText = isPositionalSelectorText;
|
|
8
9
|
exports.generateReplacementCall = generateReplacementCall;
|
|
@@ -165,6 +166,70 @@ function findSiblingAnchorTexts(nodes, targetRef, maxLevels = 2) {
|
|
|
165
166
|
return true;
|
|
166
167
|
});
|
|
167
168
|
}
|
|
169
|
+
// Finds whether targetRef's branch is the IMMEDIATE next sibling branch of anchorRef's branch
|
|
170
|
+
// under their true common ancestor — regardless of how deeply nested either ref is INSIDE its own
|
|
171
|
+
// branch. Works by walking both refs' full ancestor chains, finding the nearest ancestor common to
|
|
172
|
+
// both (the shared parent, whatever depth that turns out to be), then checking that the target's
|
|
173
|
+
// branch is the very next one after the anchor's branch with nothing else in between. This is the
|
|
174
|
+
// general form of "find the common parent, then draw the path from there" — the anchor and target
|
|
175
|
+
// no longer need to sit at a matching depth for the relationship to be found correctly.
|
|
176
|
+
// Only meaningful when the AI supplied a specific nearbyRef (see AiSuggestion) — there is no blind/
|
|
177
|
+
// enumerated version of this the way findSiblingAnchorTexts is, because trying every possible pair
|
|
178
|
+
// of refs on a page for adjacency would be needless, unbounded work with no anchor to start from.
|
|
179
|
+
function findAdjacentBranchPath(nodes, targetRef, anchorRef) {
|
|
180
|
+
const targetIndex = nodes.findIndex((n) => n.ref === targetRef);
|
|
181
|
+
const anchorIndex = nodes.findIndex((n) => n.ref === anchorRef);
|
|
182
|
+
if (targetIndex === -1 || anchorIndex === -1) {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
// A flat depth-annotated list is enough to reconstruct the ancestor chain without building a
|
|
186
|
+
// real tree: walk backward collecting every earlier node whose depth is strictly less than the
|
|
187
|
+
// last one collected — each is one level further up.
|
|
188
|
+
function ancestorChain(index) {
|
|
189
|
+
const chain = [index];
|
|
190
|
+
let depth = nodes[index].depth;
|
|
191
|
+
for (let i = index - 1; i >= 0; i--) {
|
|
192
|
+
if (nodes[i].depth < depth) {
|
|
193
|
+
chain.push(i);
|
|
194
|
+
depth = nodes[i].depth;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return chain;
|
|
198
|
+
}
|
|
199
|
+
const anchorChain = ancestorChain(anchorIndex);
|
|
200
|
+
const targetChain = ancestorChain(targetIndex);
|
|
201
|
+
const targetChainSet = new Set(targetChain);
|
|
202
|
+
// Scanning outward from the anchor's own position (nearest ancestor first): in a valid tree, the
|
|
203
|
+
// FIRST ancestor also found in target's own chain is necessarily the DEEPEST shared ancestor —
|
|
204
|
+
// every ancestor further out from it is trivially shared too, so there's no need to check past it.
|
|
205
|
+
for (let i = 0; i < anchorChain.length; i++) {
|
|
206
|
+
if (!targetChainSet.has(anchorChain[i])) {
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
const targetChainIdx = targetChain.indexOf(anchorChain[i]);
|
|
210
|
+
if (i === 0 && targetChainIdx === 0) {
|
|
211
|
+
return undefined; // anchorRef === targetRef — not a sibling relationship at all
|
|
212
|
+
}
|
|
213
|
+
if (i === 0 || targetChainIdx === 0) {
|
|
214
|
+
return undefined; // one ref is a literal ANCESTOR of the other, not a sibling branch of it
|
|
215
|
+
}
|
|
216
|
+
const anchorBranchIndex = anchorChain[i - 1];
|
|
217
|
+
const targetBranchIndex = targetChain[targetChainIdx - 1];
|
|
218
|
+
const branchDepth = nodes[anchorBranchIndex].depth;
|
|
219
|
+
if (nodes[targetBranchIndex].depth !== branchDepth || targetBranchIndex <= anchorBranchIndex) {
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
// The target's branch must be the very NEXT one after the anchor's — nothing else at or above
|
|
223
|
+
// branchDepth sitting between them, or a third branch is what's actually adjacent, not this one.
|
|
224
|
+
for (let k = anchorBranchIndex + 1; k < targetBranchIndex; k++) {
|
|
225
|
+
if (nodes[k].depth <= branchDepth) {
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return { anchorClimbLevels: nodes[anchorIndex].depth - branchDepth };
|
|
230
|
+
}
|
|
231
|
+
return undefined;
|
|
232
|
+
}
|
|
168
233
|
function distanceToBoxCenter(box, x, y) {
|
|
169
234
|
return Math.hypot(box.x + box.width / 2 - x, box.y + box.height / 2 - y);
|
|
170
235
|
}
|
|
@@ -229,6 +294,27 @@ function generateReplacementCall(suggestion) {
|
|
|
229
294
|
const xpath = suggestion.parentLevels === 2 ? '../..' : '..';
|
|
230
295
|
return `getByText(${JSON.stringify(suggestion.anchorText)}).locator(${JSON.stringify(`xpath=${xpath}`)}).getByRole(${JSON.stringify(suggestion.role)})`;
|
|
231
296
|
}
|
|
297
|
+
case 'adjacent': {
|
|
298
|
+
// Playwright's own `:text()` CSS pseudo-class (not one of the deprecated layout ones like
|
|
299
|
+
// :near()/:right-of()) matches the smallest element whose own text equals/contains the
|
|
300
|
+
// string. When that's already the branch root (the common case: a plain label cell sitting
|
|
301
|
+
// directly next to its field cell), `+` — standard CSS3, not a Playwright extension — steps
|
|
302
|
+
// straight to the one sibling actually next to it: precise by construction, unlike a `near`
|
|
303
|
+
// locator's climb-then-search-everything approach.
|
|
304
|
+
const climb = suggestion.anchorClimbLevels ?? 0;
|
|
305
|
+
if (climb === 0) {
|
|
306
|
+
const css = `:text(${JSON.stringify(suggestion.anchorText)}) + *`;
|
|
307
|
+
return `locator(${JSON.stringify(css)}).getByRole(${JSON.stringify(suggestion.role)})`;
|
|
308
|
+
}
|
|
309
|
+
// The label text sits nested inside its own wrapper BELOW the actual branch point (e.g. a
|
|
310
|
+
// styling <span>/<div> around it) — CSS has no parent combinator, so climbing back up to the
|
|
311
|
+
// branch root needs xpath (`xpath=..`, the same idiom resolveNearLocator already uses for
|
|
312
|
+
// its own ancestor climb); `following-sibling::*[1]` then steps sideways exactly once, the
|
|
313
|
+
// xpath equivalent of the `+` combinator used in the climb:0 case above.
|
|
314
|
+
const climbXpath = Array(climb).fill('..').join('/');
|
|
315
|
+
const textLocator = JSON.stringify(`:text(${JSON.stringify(suggestion.anchorText)})`);
|
|
316
|
+
return `locator(${textLocator}).locator(${JSON.stringify(`xpath=${climbXpath}`)}).locator(${JSON.stringify('xpath=following-sibling::*[1]')}).getByRole(${JSON.stringify(suggestion.role)})`;
|
|
317
|
+
}
|
|
232
318
|
case 'scoped': {
|
|
233
319
|
const containerArgs = suggestion.containerName ? `${JSON.stringify(suggestion.containerRole)}, { name: ${JSON.stringify(suggestion.containerName)} }` : JSON.stringify(suggestion.containerRole);
|
|
234
320
|
const targetArgs = suggestion.name ? `${JSON.stringify(suggestion.role)}, { name: ${JSON.stringify(suggestion.name)} }` : JSON.stringify(suggestion.role);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-locator.js","sourceRoot":"","sources":["../../src/healer/durable-locator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"durable-locator.js","sourceRoot":"","sources":["../../src/healer/durable-locator.ts"],"names":[],"mappings":";;;;;;;;;;AAGA,8FAA8F;AAC9F,gDAAgD;AAEhD,wFAAwF;AACxF,+FAA+F;AAC/F,gGAAgG;AAChG,gGAAgG;AAChG,4DAA4D;AAC5D,EAAE;AACF,8FAA8F;AAC9F,gGAAgG;AAChG,gGAAgG;AAChG,2FAA2F;AACpF,KAAK,sBAAsB,CAAU,EAAE,CAAU,EAAE,SAAS,GAAG,IAAI;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAYD,iGAAiG;AACjG,+FAA+F;AAC/F,kGAAkG;AAClG,gEAAgE;AAChE,0FAA0F;AAC1F,iGAAiG;AACjG,wCAAwC;AACxC,4FAA4F;AAC5F,+FAA+F;AAC/F,wFAAwF;AACxF,yBAAyB;AACzB,4EAA4E;AAC5E,yBAAgC,QAAgB;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEvB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,wFAAwF;QACxF,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrF,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACtF,MAAM,GAAG,GAAG,QAAQ;YAClB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7G,CAAC,CAAC,SAAS,CAAC;QAEd,0FAA0F;QAC1F,2FAA2F;QAC3F,yBAAyB;QACzB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QAErF,0FAA0F;QAC1F,sFAAsF;QACtF,wFAAwF;QACxF,yFAAyF;QACzF,iCAAiC;QACjC,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/F,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAErD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAID,8FAA8F;AAC9F,gGAAgG;AAChG,gGAAgG;AAChG,gGAAgG;AAChG,sBAAsB;AACtB,gCAAuC,KAAmB,EAAE,SAAiB,EAAE,SAAS,GAAU,CAAC;IACjG,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAElC,6FAA6F;IAC7F,+FAA+F;IAC/F,wFAAwF;IACxF,SAAS,YAAY,CAAC,SAAiB,EAAE,SAAiB;QACxD,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,IAAI,aAAa,GAAG,WAAW,CAAC;IAChC,IAAI,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IAEjC,KAAK,IAAI,QAAQ,GAAG,CAAU,EAAE,QAAQ,IAAI,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC;QAClE,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM;QACR,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,YAAY,GAAG,aAAa,CAAC;QAEnC,MAAM,UAAU,GAA0C,EAAE,CAAC;QAC7D,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,8BAA8B;YACvC,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC/B,SAAS,CAAC,oCAAoC;YAChD,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAc,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAc,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,UAAU;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;aACnG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE5D,aAAa,GAAG,WAAW,CAAC;QAC5B,aAAa,GAAG,WAAW,CAAC;IAC9B,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAaD,8FAA8F;AAC9F,kGAAkG;AAClG,mGAAmG;AACnG,iGAAiG;AACjG,kGAAkG;AAClG,kGAAkG;AAClG,wFAAwF;AACxF,oGAAoG;AACpG,mGAAmG;AACnG,kGAAkG;AAClG,gCAAuC,KAAmB,EAAE,SAAiB,EAAE,SAAiB;IAC9F,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChE,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,6FAA6F;IAC7F,+FAA+F;IAC/F,qDAAqD;IACrD,SAAS,aAAa,CAAC,KAAa;QAClC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IAE5C,iGAAiG;IACjG,+FAA+F;IAC/F,mGAAmG;IACnG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,SAAS;QACX,CAAC;QACD,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC,CAAC,8DAA8D;QAClF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC,CAAC,yEAAyE;QAC7F,CAAC;QAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;QAEnD,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;YAC7F,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,8FAA8F;QAC9F,iGAAiG;QACjG,KAAK,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAmC,EAAE,CAAS,EAAE,CAAS;IACpF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,gGAAgG;AAChG,4FAA4F;AAC5F,iGAAiG;AACjG,YAAY;AACZ,mCAA0C,KAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,QAAQ,GAAG,GAAG,EAAE,aAAa,GAAG,CAAC;IACpH,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAA0E,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACvH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACxE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;SACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SACvC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAS;IACrC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,oDAAoD;AACpD,MAAM,GAAG,GAAG,uBAAuB,CAAC;AAEpC,iGAAiG;AACjG,+FAA+F;AAC/F,yFAAyF;AACzF,+FAA+F;AAC/F,gGAAgG;AAChG,sFAAsF;AACtF,6FAA6F;AAC7F,kCAAyC,IAAY;IACnD,OAAO,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,+FAA+F;AAC/F,+FAA+F;AAC/F,kGAAkG;AAClG,+FAA+F;AAC/F,qDAAqD;AACrD,iCAAwC,UAA8B;IACpE,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,SAAS;YACZ,OAAO,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;QAC/D,KAAK,OAAO;YACV,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3D,KAAK,KAAK;YACR,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QACtD,KAAK,MAAM,EAAE,CAAC;YACZ,2FAA2F;YAC3F,6FAA6F;YAC7F,4FAA4F;YAC5F,qCAAqC;YACrC,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,UAAU,EAAE,CAAC;YAChB,0FAA0F;YAC1F,uFAAuF;YACvF,2FAA2F;YAC3F,4FAA4F;YAC5F,4FAA4F;YAC5F,mDAAmD;YACnD,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,IAAI,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBAClE,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YACzF,CAAC;YACD,0FAA0F;YAC1F,6FAA6F;YAC7F,0FAA0F;YAC1F,2FAA2F;YAC3F,yEAAyE;YACzE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtF,OAAO,WAAW,WAAW,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,UAAU,EAAE,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/L,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,KAAK,YAAY;YACf,iFAAiF;YACjF,+EAA+E;YAC/E,0FAA0F;YAC1F,yFAAyF;YACzF,4FAA4F;YAC5F,4FAA4F;YAC5F,OAAO,UAAU,CAAC,IAAI,CAAC;QACzB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,gGAAgG;AAChG,sFAAsF;AACtF,kGAAkG;AAClG,4FAA4F;AAC5F,EAAE;AACF,8FAA8F;AAC9F,8FAA8F;AAC9F,mGAAmG;AACnG,oEAAoE;AACpE,EAAE;AACF,4FAA4F;AAC5F,iGAAiG;AACjG,4BAA4B;AAC5B,6CAAoD,YAAoB;IACtE,IAAI,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAA0B,CAAC;IAE/B,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,GAAG,6BAA6B,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACnI,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,wBAAwB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/healer/index.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { Frame, FrameLocator, Locator, Page } from '@playwright/test';
|
|
2
2
|
import type { TokenUsage } from './providers/types';
|
|
3
3
|
type BindingKind = 'locator' | 'page' | 'frame' | 'frameLocator';
|
|
4
|
+
export type HealAttempt = {
|
|
5
|
+
method: 'cache' | 'ref' | 'text' | 'vision' | 'action-recovery';
|
|
6
|
+
provider?: string;
|
|
7
|
+
suggestedSelector?: string;
|
|
8
|
+
succeeded: boolean;
|
|
9
|
+
stage?: string;
|
|
10
|
+
error?: string;
|
|
11
|
+
aiRef?: string;
|
|
12
|
+
aiNearbyRef?: string;
|
|
13
|
+
aiNearbyText?: string;
|
|
14
|
+
aiNearbyRole?: string;
|
|
15
|
+
};
|
|
4
16
|
export type SelfHealingReport = {
|
|
5
17
|
action: string;
|
|
6
18
|
kind: BindingKind;
|
|
@@ -18,6 +30,7 @@ export type SelfHealingReport = {
|
|
|
18
30
|
initialSelector?: string;
|
|
19
31
|
needsReview?: boolean;
|
|
20
32
|
reviewNote?: string;
|
|
33
|
+
attempts: HealAttempt[];
|
|
21
34
|
};
|
|
22
35
|
export declare function getDurableLocator(locator: Locator, action?: string): Promise<Locator>;
|
|
23
36
|
export declare function isHealingEnabled(): boolean;
|
|
@@ -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,EAAkD,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpG,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;
|
|
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,EAAkD,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpG,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AAWjE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,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;IAIxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAMzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAwiBF,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B3F;AA6JD,wBAAgB,gBAAgB,IAAI,OAAO,CAG1C;AAMD,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AA8KD,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,CAkX/E;AAED,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAEvD"}
|
package/dist/healer/index.js
CHANGED
|
@@ -122,6 +122,36 @@ async function resolveNearLocator(pageContext, suggestion) {
|
|
|
122
122
|
}
|
|
123
123
|
return undefined;
|
|
124
124
|
}
|
|
125
|
+
// The live counterpart to isImmediateFollowingBranch (durable-locator.ts): builds and verifies the
|
|
126
|
+
// CSS `+`-sibling locator for a proven-adjacent (label, field) pair. No ancestor-climbing/xpath
|
|
127
|
+
// involved — `:text()` finds the label element directly, `+` steps to the one sibling right after
|
|
128
|
+
// it, and `.getByRole()` narrows within just that element, so a second same-role field elsewhere
|
|
129
|
+
// in the same row/section is never even in scope to be confused with the real target.
|
|
130
|
+
async function resolveAdjacentLocator(pageContext, suggestion) {
|
|
131
|
+
try {
|
|
132
|
+
const climb = suggestion.anchorClimbLevels ?? 0;
|
|
133
|
+
let candidate;
|
|
134
|
+
if (climb === 0) {
|
|
135
|
+
// The common case: the label's own matched element IS the branch root, so a plain CSS
|
|
136
|
+
// sibling combinator reaches the field directly — no xpath needed at all.
|
|
137
|
+
candidate = pageContext.locator(`:text(${JSON.stringify(suggestion.anchorText)}) + *`).getByRole(suggestion.role);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// The label text is nested inside its own wrapper below the actual branch point — climb to
|
|
141
|
+
// the branch root first (CSS has no parent combinator, so this needs xpath, same idiom
|
|
142
|
+
// resolveNearLocator already uses), then step to the one sibling actually next to it.
|
|
143
|
+
const xpath = Array(climb).fill('..').join('/');
|
|
144
|
+
candidate = pageContext.locator(`:text(${JSON.stringify(suggestion.anchorText)})`).locator(`xpath=${xpath}`).locator('xpath=following-sibling::*[1]').getByRole(suggestion.role);
|
|
145
|
+
}
|
|
146
|
+
return (await candidate.count()) === 1 ? candidate : undefined;
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// This shape doesn't apply to this page's structure (e.g. the label and field aren't actually
|
|
150
|
+
// direct sibling branches live, despite looking that way in the snapshot) — caller falls back
|
|
151
|
+
// to the near-strategy ladder.
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
125
155
|
// A target with real identity (role+name) that isn't unique page-wide, scoped through a directly-
|
|
126
156
|
// addressable enclosing landmark — no ancestor-climbing needed, unlike resolveNearLocator, since
|
|
127
157
|
// both the container and the target are found by their own accessible names. Still enforces
|
|
@@ -219,6 +249,10 @@ async function buildLocatorFromSuggestion(pageContext, suggestion, action) {
|
|
|
219
249
|
const resolved = await resolveNearLocator(pageContext, suggestion);
|
|
220
250
|
return resolved ? { locator: resolved.locator, resolvedSuggestion: { ...suggestion, parentLevels: resolved.parentLevels } } : undefined;
|
|
221
251
|
}
|
|
252
|
+
case 'adjacent': {
|
|
253
|
+
const locator = await resolveAdjacentLocator(pageContext, suggestion);
|
|
254
|
+
return locator ? { locator, resolvedSuggestion: suggestion } : undefined;
|
|
255
|
+
}
|
|
222
256
|
case 'scoped': {
|
|
223
257
|
const locator = await resolveScopedLocator(pageContext, suggestion);
|
|
224
258
|
return locator ? { locator, resolvedSuggestion: suggestion } : undefined;
|
|
@@ -256,7 +290,8 @@ function excludeRefStrategy(suggestion) {
|
|
|
256
290
|
// retried, so the caller passes in whichever selector description it already resolved (a text
|
|
257
291
|
// suggestion or a "visual match at (x,y)" description) to carry into the final report.
|
|
258
292
|
async function attemptActionRecoveryFallback(provider, locator, action, callArgs, replayError, timeoutMs, suggestedSelectorForReport, baseUsage) {
|
|
259
|
-
const
|
|
293
|
+
const triggeringError = normalizeError(replayError);
|
|
294
|
+
const actionRecovery = await (0, action_recovery_1.tryActionRecovery)(provider, locator, action, callArgs, triggeringError, timeoutMs);
|
|
260
295
|
const combinedUsage = baseUsage && actionRecovery.usage ? sumTokenUsage(baseUsage, actionRecovery.usage) : (actionRecovery.usage ?? baseUsage);
|
|
261
296
|
if (actionRecovery.healing) {
|
|
262
297
|
return {
|
|
@@ -267,9 +302,10 @@ async function attemptActionRecoveryFallback(provider, locator, action, callArgs
|
|
|
267
302
|
result: actionRecovery.healing.result,
|
|
268
303
|
},
|
|
269
304
|
usage: combinedUsage,
|
|
305
|
+
triggeringError,
|
|
270
306
|
};
|
|
271
307
|
}
|
|
272
|
-
return { healing: null, usage: combinedUsage, stage: actionRecovery.stage };
|
|
308
|
+
return { healing: null, usage: combinedUsage, stage: actionRecovery.stage, triggeringError };
|
|
273
309
|
}
|
|
274
310
|
// The widening search: self -> parent/siblings -> named landmark. Called after `anchorLocator`
|
|
275
311
|
// (an aria-ref= resolution, or a vision-tagged element) has ALREADY been proven correct by a
|
|
@@ -330,7 +366,46 @@ async function deriveDurableLocator(pageContext, anchorLocator, action, treeCont
|
|
|
330
366
|
if (!inferredRole) {
|
|
331
367
|
continue;
|
|
332
368
|
}
|
|
333
|
-
|
|
369
|
+
// Tried FIRST and most precise: when the AI named a specific anchor ref AND it's provably the
|
|
370
|
+
// immediate sibling branch of the target (findAdjacentBranchPath — finds the true common
|
|
371
|
+
// ancestor and compares branch positions from there, regardless of how deeply either ref is
|
|
372
|
+
// nested inside its own branch), express that adjacency directly via a sibling-step locator —
|
|
373
|
+
// sidesteps `near`'s "climb up, then search the whole subtree for this role" approach
|
|
374
|
+
// entirely, which is exactly what breaks when a second same-role field shares the same
|
|
375
|
+
// row/section (two dropdowns side by side, say): climbing to their shared ancestor and
|
|
376
|
+
// searching for "any combobox" matches both and gets rejected as ambiguous, even though the
|
|
377
|
+
// correct one is unambiguously "whichever is right next to this label."
|
|
378
|
+
if (treeContext.aiNearbyRef) {
|
|
379
|
+
const branchPath = (0, durable_locator_1.findAdjacentBranchPath)(nodes, ref, treeContext.aiNearbyRef);
|
|
380
|
+
if (branchPath) {
|
|
381
|
+
const anchorNode = nodes.find((n) => n.ref === treeContext.aiNearbyRef);
|
|
382
|
+
const adjacentAnchorText = anchorNode?.text ?? anchorNode?.name;
|
|
383
|
+
if (adjacentAnchorText) {
|
|
384
|
+
const adjacent = await resolveAdjacentLocator(pageContext, { anchorText: adjacentAnchorText, role: inferredRole, anchorClimbLevels: branchPath.anchorClimbLevels });
|
|
385
|
+
if (adjacent && (await (0, durable_locator_1.sameElement)(adjacent, anchorLocator, timeoutMs))) {
|
|
386
|
+
return {
|
|
387
|
+
locator: adjacent,
|
|
388
|
+
suggestion: { strategy: 'adjacent', anchorText: adjacentAnchorText, role: inferredRole, anchorClimbLevels: branchPath.anchorClimbLevels || undefined },
|
|
389
|
+
initialSelector,
|
|
390
|
+
needsReview: true,
|
|
391
|
+
reviewNote: 'No stable identity of its own (id/testId/role+name/label/placeholder) — durable selector anchors on the adjacent label instead, scoped to exactly the sibling next to it (safe even when another same-role field shares the same row/section). Please verify this still targets the right element if the page layout changes.',
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
const structuralCandidates = (0, durable_locator_1.findSiblingAnchorTexts)(nodes, ref);
|
|
398
|
+
// The AI-named anchor, if any, goes first — it's a specific reasoned pick rather than every
|
|
399
|
+
// nearby label in ladder order, and (see the aiNearbyRef/aiNearbyText doc comment above) may
|
|
400
|
+
// find something the structural scan's own 1-2 level cap on THIS parsed tree missed entirely.
|
|
401
|
+
// Deduped against the structural list so a match doesn't get tried twice.
|
|
402
|
+
const hintedText = treeContext.aiNearbyRef
|
|
403
|
+
? (nodes.find((n) => n.ref === treeContext.aiNearbyRef)?.text ?? nodes.find((n) => n.ref === treeContext.aiNearbyRef)?.name)
|
|
404
|
+
: treeContext.aiNearbyText;
|
|
405
|
+
const candidates = hintedText
|
|
406
|
+
? [{ text: hintedText, levelsUp: 1 }, ...structuralCandidates.filter((c) => c.text !== hintedText)]
|
|
407
|
+
: structuralCandidates;
|
|
408
|
+
for (const candidate of candidates) {
|
|
334
409
|
const resolved = await resolveNearLocator(pageContext, { anchorText: candidate.text, role: inferredRole });
|
|
335
410
|
if (resolved && (await (0, durable_locator_1.sameElement)(resolved.locator, anchorLocator, timeoutMs))) {
|
|
336
411
|
return {
|
|
@@ -458,10 +533,10 @@ async function tryVisionRecovery(provider, pageContext, action, description, cal
|
|
|
458
533
|
}
|
|
459
534
|
catch (replayError) {
|
|
460
535
|
if (!isActionRecoveryEnabled()) {
|
|
461
|
-
return { healing: null, usage, stage: 'vision_replay_failed' };
|
|
536
|
+
return { healing: null, usage, stage: 'vision_replay_failed', replayError: normalizeError(replayError) };
|
|
462
537
|
}
|
|
463
538
|
const fallback = await attemptActionRecoveryFallback(provider, locator, action, callArgs, replayError, timeoutMs, `visual match at (${point.x},${point.y})`, usage);
|
|
464
|
-
return { ...fallback, usedActionRecovery: true };
|
|
539
|
+
return { ...fallback, usedActionRecovery: true, replayError: fallback.triggeringError };
|
|
465
540
|
}
|
|
466
541
|
finally {
|
|
467
542
|
await (0, vision_1.cleanupVisionTag)(pageContext, id);
|
|
@@ -590,7 +665,34 @@ function formatConsoleLine(report) {
|
|
|
590
665
|
const location = report.sourceLocation ? `${report.sourceLocation} — ` : '';
|
|
591
666
|
return `[self-healer] ${location}${report.kind}.${report.action}${description} -> ${outcome} [${meta.join(', ')}] — ${reasonFirstLine}`;
|
|
592
667
|
}
|
|
593
|
-
|
|
668
|
+
// Printed to the console, never into the test annotation/warning — the annotation stays a short,
|
|
669
|
+
// human-readable one-liner (see attachReportToRunningTest), while the full attempts[] JSON already
|
|
670
|
+
// lives in the JSON attachment for anyone opening the HTML report. This exists for the far more
|
|
671
|
+
// common path: someone copy-pastes the console/CI log output directly into a chat message or bug
|
|
672
|
+
// report, without ever opening the HTML report or its attachments at all. Without this, that
|
|
673
|
+
// copy-paste carries only the LAST attempt's outcome (via formatConsoleLine's `stage=`/`suggested=`
|
|
674
|
+
// fields) — exactly the confusing shape the original bug report showed, where a real candidate
|
|
675
|
+
// selector sat next to an unrelated later-stage error with no visible connection between them.
|
|
676
|
+
function formatAttemptsBlock(attempts) {
|
|
677
|
+
const lines = attempts.map((attempt, i) => {
|
|
678
|
+
const parts = [`${i + 1}. ${attempt.method}`, attempt.succeeded ? 'OK' : 'FAILED'];
|
|
679
|
+
if (attempt.provider) {
|
|
680
|
+
parts.push(`provider=${attempt.provider}`);
|
|
681
|
+
}
|
|
682
|
+
if (attempt.suggestedSelector) {
|
|
683
|
+
parts.push(`tried="${attempt.suggestedSelector}"`);
|
|
684
|
+
}
|
|
685
|
+
if (attempt.stage) {
|
|
686
|
+
parts.push(`stage=${attempt.stage}`);
|
|
687
|
+
}
|
|
688
|
+
if (attempt.error) {
|
|
689
|
+
parts.push(`error: ${attempt.error.split('\n')[0]}`);
|
|
690
|
+
}
|
|
691
|
+
return ` ${parts.join(' ')}`;
|
|
692
|
+
});
|
|
693
|
+
return ` attempts:\n${lines.join('\n')}`;
|
|
694
|
+
}
|
|
695
|
+
function attachReportToRunningTest(report, ariaSnapshot) {
|
|
594
696
|
try {
|
|
595
697
|
const testInfo = test_1.test.info();
|
|
596
698
|
testInfo.annotations.push({ type: report.healed ? 'self-healed' : 'self-heal-failed', description: report.warning });
|
|
@@ -610,6 +712,18 @@ function attachReportToRunningTest(report) {
|
|
|
610
712
|
body: JSON.stringify(report, null, 2),
|
|
611
713
|
contentType: 'application/json',
|
|
612
714
|
});
|
|
715
|
+
// Only on a genuine failure, and only the exact tree the AI actually reasoned over — this is
|
|
716
|
+
// the ground truth needed to tell "the AI picked the wrong ref" from "it picked correctly but
|
|
717
|
+
// widening/replay still failed" apart, without which either one produces an identical-looking
|
|
718
|
+
// report (see healActionFailure's own attempts[] entries for what it actually returned).
|
|
719
|
+
// Skipped on success: the ariaSnapshot is page content, not something worth attaching to every
|
|
720
|
+
// passing/healed run.
|
|
721
|
+
if (!report.healed && ariaSnapshot) {
|
|
722
|
+
void testInfo.attach(`self-healing-${report.action}-aria-snapshot`, {
|
|
723
|
+
body: ariaSnapshot,
|
|
724
|
+
contentType: 'text/plain',
|
|
725
|
+
});
|
|
726
|
+
}
|
|
613
727
|
}
|
|
614
728
|
catch {
|
|
615
729
|
// Not running inside a Playwright test worker (e.g. a unit test calling this directly) — skip.
|
|
@@ -707,6 +821,9 @@ async function healActionFailure(context) {
|
|
|
707
821
|
let initialSelector;
|
|
708
822
|
let needsReview;
|
|
709
823
|
let reviewNote;
|
|
824
|
+
// Every meaningful attempt this call makes, in order — never overwritten by a later one, unlike
|
|
825
|
+
// failureStage/suggestedSelector above. See HealAttempt's own comment for why this exists.
|
|
826
|
+
const attempts = [];
|
|
710
827
|
// Tried before paying for anything else: if this exact source location has already healed
|
|
711
828
|
// successfully before — this run, or a previous one, since the log persists on disk (see
|
|
712
829
|
// heal-log.ts) — try that suggestion directly. No ARIA snapshot, no AI call, no tokens spent.
|
|
@@ -719,9 +836,10 @@ async function healActionFailure(context) {
|
|
|
719
836
|
if (cached) {
|
|
720
837
|
const built = await buildLocatorFromSuggestion(pageContext, cached.suggestion, context.action);
|
|
721
838
|
if (built) {
|
|
839
|
+
const cachedSelectorDescription = describeSuggestion(built.resolvedSuggestion);
|
|
722
840
|
try {
|
|
723
841
|
const replayResult = await (0, replay_action_1.replayAction)(built.locator, context.action, callArgs);
|
|
724
|
-
suggestedSelector =
|
|
842
|
+
suggestedSelector = cachedSelectorDescription;
|
|
725
843
|
// cached.suggestion came from findCachedSuggestion, always SelectorSuggestion-typed, so
|
|
726
844
|
// this can never actually be 'ref' — excludeRefStrategy is here purely to satisfy the
|
|
727
845
|
// type system with the same helper every other site uses, not because this path needs it.
|
|
@@ -739,9 +857,11 @@ async function healActionFailure(context) {
|
|
|
739
857
|
result: replayResult,
|
|
740
858
|
};
|
|
741
859
|
failureStage = undefined;
|
|
860
|
+
attempts.push({ method: 'cache', succeeded: true, suggestedSelector: cachedSelectorDescription });
|
|
742
861
|
}
|
|
743
|
-
catch {
|
|
862
|
+
catch (cacheError) {
|
|
744
863
|
// Cached suggestion no longer resolves — fall through to the normal flow below.
|
|
864
|
+
attempts.push({ method: 'cache', succeeded: false, suggestedSelector: cachedSelectorDescription, error: normalizeError(cacheError) });
|
|
745
865
|
}
|
|
746
866
|
}
|
|
747
867
|
}
|
|
@@ -787,7 +907,7 @@ async function healActionFailure(context) {
|
|
|
787
907
|
const refSuggestion = built.resolvedSuggestion;
|
|
788
908
|
suggestedSelector = describeSuggestion(refSuggestion);
|
|
789
909
|
failureStage = 'replay_failed';
|
|
790
|
-
const derived = await deriveDurableLocator(pageContext, built.locator, context.action, { snapshot: ariaSnapshot, candidateRefs: [refSuggestion.ref] }, actionTimeoutMs ?? 2000);
|
|
910
|
+
const derived = await deriveDurableLocator(pageContext, built.locator, context.action, { snapshot: ariaSnapshot, candidateRefs: [refSuggestion.ref], aiNearbyRef: refSuggestion.nearbyRef, aiNearbyText: refSuggestion.nearbyText }, actionTimeoutMs ?? 2000);
|
|
791
911
|
const primaryLocator = derived?.locator ?? built.locator;
|
|
792
912
|
try {
|
|
793
913
|
let replayResult;
|
|
@@ -838,14 +958,25 @@ async function healActionFailure(context) {
|
|
|
838
958
|
result: replayResult,
|
|
839
959
|
};
|
|
840
960
|
failureStage = undefined;
|
|
961
|
+
attempts.push({ method: 'ref', provider: provider.name, succeeded: true, suggestedSelector, aiRef: refSuggestion.ref, aiNearbyRef: refSuggestion.nearbyRef, aiNearbyText: refSuggestion.nearbyText, aiNearbyRole: refSuggestion.nearbyRole });
|
|
841
962
|
}
|
|
842
963
|
catch (replayError) {
|
|
964
|
+
const replayErrorMessage = normalizeError(replayError);
|
|
965
|
+
attempts.push({ method: 'ref', provider: provider.name, succeeded: false, suggestedSelector, stage: 'replay_failed', error: replayErrorMessage, aiRef: refSuggestion.ref, aiNearbyRef: refSuggestion.nearbyRef, aiNearbyText: refSuggestion.nearbyText, aiNearbyRole: refSuggestion.nearbyRole });
|
|
843
966
|
if (isActionRecoveryEnabled()) {
|
|
844
967
|
const fallback = await attemptActionRecoveryFallback(provider, built.locator, context.action, callArgs, replayError, actionTimeoutMs, suggestedSelector, usage);
|
|
845
968
|
usage = fallback.usage;
|
|
846
969
|
usedActionRecovery = true;
|
|
847
970
|
healing = fallback.healing;
|
|
848
971
|
failureStage = fallback.healing ? undefined : fallback.stage;
|
|
972
|
+
attempts.push({
|
|
973
|
+
method: 'action-recovery',
|
|
974
|
+
provider: provider.name,
|
|
975
|
+
succeeded: Boolean(fallback.healing),
|
|
976
|
+
suggestedSelector: fallback.healing?.suggestedSelector,
|
|
977
|
+
stage: fallback.healing ? undefined : fallback.stage,
|
|
978
|
+
error: fallback.healing ? undefined : (fallback.stage ? FAILURE_STAGE_MESSAGES[fallback.stage] : undefined),
|
|
979
|
+
});
|
|
849
980
|
}
|
|
850
981
|
else {
|
|
851
982
|
healing = null;
|
|
@@ -868,14 +999,25 @@ async function healActionFailure(context) {
|
|
|
868
999
|
result: replayResult,
|
|
869
1000
|
};
|
|
870
1001
|
failureStage = undefined;
|
|
1002
|
+
attempts.push({ method: 'text', provider: provider.name, succeeded: true, suggestedSelector });
|
|
871
1003
|
}
|
|
872
1004
|
catch (replayError) {
|
|
1005
|
+
const replayErrorMessage = normalizeError(replayError);
|
|
1006
|
+
attempts.push({ method: 'text', provider: provider.name, succeeded: false, suggestedSelector, stage: 'replay_failed', error: replayErrorMessage });
|
|
873
1007
|
if (isActionRecoveryEnabled()) {
|
|
874
1008
|
const fallback = await attemptActionRecoveryFallback(provider, built.locator, context.action, callArgs, replayError, actionTimeoutMs, suggestedSelector, usage);
|
|
875
1009
|
usage = fallback.usage;
|
|
876
1010
|
usedActionRecovery = true;
|
|
877
1011
|
healing = fallback.healing;
|
|
878
1012
|
failureStage = fallback.healing ? undefined : fallback.stage;
|
|
1013
|
+
attempts.push({
|
|
1014
|
+
method: 'action-recovery',
|
|
1015
|
+
provider: provider.name,
|
|
1016
|
+
succeeded: Boolean(fallback.healing),
|
|
1017
|
+
suggestedSelector: fallback.healing?.suggestedSelector,
|
|
1018
|
+
stage: fallback.healing ? undefined : fallback.stage,
|
|
1019
|
+
error: fallback.healing ? undefined : (fallback.stage ? FAILURE_STAGE_MESSAGES[fallback.stage] : undefined),
|
|
1020
|
+
});
|
|
879
1021
|
}
|
|
880
1022
|
else {
|
|
881
1023
|
healing = null;
|
|
@@ -911,10 +1053,40 @@ async function healActionFailure(context) {
|
|
|
911
1053
|
needsReview = visionOutcome.needsReview;
|
|
912
1054
|
reviewNote = visionOutcome.reviewNote;
|
|
913
1055
|
failureStage = undefined;
|
|
1056
|
+
if (visionOutcome.usedActionRecovery) {
|
|
1057
|
+
// The visual match itself was found and replay was attempted, but that replay failed —
|
|
1058
|
+
// it was action-recovery's own fallback tactic that actually made this run succeed. Log
|
|
1059
|
+
// both: the vision replay's real failure, and the recovery that fixed it.
|
|
1060
|
+
attempts.push({ method: 'vision', provider: provider.name, succeeded: false, stage: 'vision_replay_failed', error: visionOutcome.replayError });
|
|
1061
|
+
attempts.push({ method: 'action-recovery', provider: provider.name, succeeded: true, suggestedSelector: visionOutcome.healing.suggestedSelector });
|
|
1062
|
+
}
|
|
1063
|
+
else {
|
|
1064
|
+
attempts.push({ method: 'vision', provider: provider.name, succeeded: true, suggestedSelector: visionOutcome.healing.suggestedSelector });
|
|
1065
|
+
}
|
|
914
1066
|
}
|
|
915
1067
|
else if (visionOutcome.stage) {
|
|
916
1068
|
usedVision = true;
|
|
917
1069
|
failureStage = visionOutcome.stage;
|
|
1070
|
+
// When action-recovery was tried after vision's replay failed, visionOutcome.stage is
|
|
1071
|
+
// action-recovery's OWN stage (declined/failed), not vision's — log the vision replay's
|
|
1072
|
+
// real failure separately so it isn't silently absorbed into the action-recovery stage.
|
|
1073
|
+
const visionStage = visionOutcome.usedActionRecovery ? 'vision_replay_failed' : visionOutcome.stage;
|
|
1074
|
+
attempts.push({
|
|
1075
|
+
method: 'vision',
|
|
1076
|
+
provider: provider.name,
|
|
1077
|
+
succeeded: false,
|
|
1078
|
+
stage: visionStage,
|
|
1079
|
+
error: visionOutcome.replayError ?? FAILURE_STAGE_MESSAGES[visionStage],
|
|
1080
|
+
});
|
|
1081
|
+
if (visionOutcome.usedActionRecovery) {
|
|
1082
|
+
attempts.push({
|
|
1083
|
+
method: 'action-recovery',
|
|
1084
|
+
provider: provider.name,
|
|
1085
|
+
succeeded: false,
|
|
1086
|
+
stage: visionOutcome.stage,
|
|
1087
|
+
error: FAILURE_STAGE_MESSAGES[visionOutcome.stage],
|
|
1088
|
+
});
|
|
1089
|
+
}
|
|
918
1090
|
}
|
|
919
1091
|
}
|
|
920
1092
|
}
|
|
@@ -924,10 +1096,16 @@ async function healActionFailure(context) {
|
|
|
924
1096
|
warning = healing.warning;
|
|
925
1097
|
}
|
|
926
1098
|
else if (failureStage === 'replay_failed') {
|
|
927
|
-
|
|
1099
|
+
// Find the ref/text attempt's own recorded error — the specific exception its replay threw,
|
|
1100
|
+
// not just the generic "that failed too" this line used to stop at (the exact gap the user
|
|
1101
|
+
// flagged: a real candidate selector was found, but the report never said WHY acting on it
|
|
1102
|
+
// didn't work).
|
|
1103
|
+
const failedAttempt = [...attempts].reverse().find((a) => (a.method === 'ref' || a.method === 'text') && !a.succeeded);
|
|
1104
|
+
warning = `Action "${context.action}" failed: ${reason}. AI suggested "${suggestedSelector}", but that failed too${failedAttempt?.error ? ` (${failedAttempt.error})` : ''}.`;
|
|
928
1105
|
}
|
|
929
1106
|
else if (failureStage === 'vision_replay_failed') {
|
|
930
|
-
|
|
1107
|
+
const failedAttempt = [...attempts].reverse().find((a) => a.method === 'vision' && !a.succeeded);
|
|
1108
|
+
warning = `Action "${context.action}" failed: ${reason}. AI located a visual match, but acting on it failed too${failedAttempt?.error ? ` (${failedAttempt.error})` : ''}.`;
|
|
931
1109
|
}
|
|
932
1110
|
else if (failureStage) {
|
|
933
1111
|
warning = `Action "${context.action}" failed: ${reason}. (${FAILURE_STAGE_MESSAGES[failureStage]})`;
|
|
@@ -952,15 +1130,28 @@ async function healActionFailure(context) {
|
|
|
952
1130
|
initialSelector,
|
|
953
1131
|
needsReview,
|
|
954
1132
|
reviewNote,
|
|
1133
|
+
attempts,
|
|
955
1134
|
};
|
|
956
1135
|
reports.push(report);
|
|
1136
|
+
// The attempts block prints on EITHER outcome whenever there was more than one attempt — a
|
|
1137
|
+
// heal that only succeeded after an earlier attempt failed (say, text failed and vision saved
|
|
1138
|
+
// it) has exactly the same "story worth knowing" as an outright failure: a selector quietly
|
|
1139
|
+
// degrading toward the expensive fallback is worth seeing even when the test itself still
|
|
1140
|
+
// passes. A clean single-attempt success stays quiet — nothing to add beyond the one line below.
|
|
1141
|
+
const showAttempts = report.attempts.length > 1 || (report.attempts.length === 1 && !report.attempts[0].succeeded);
|
|
957
1142
|
if (report.healed) {
|
|
958
1143
|
console.log(formatConsoleLine(report));
|
|
1144
|
+
if (showAttempts) {
|
|
1145
|
+
console.log(formatAttemptsBlock(report.attempts));
|
|
1146
|
+
}
|
|
959
1147
|
}
|
|
960
1148
|
else {
|
|
961
1149
|
console.warn(formatConsoleLine(report));
|
|
1150
|
+
if (showAttempts) {
|
|
1151
|
+
console.warn(formatAttemptsBlock(report.attempts));
|
|
1152
|
+
}
|
|
962
1153
|
}
|
|
963
|
-
attachReportToRunningTest(report);
|
|
1154
|
+
attachReportToRunningTest(report, ariaSnapshot);
|
|
964
1155
|
// Logged on every occurrence, cache hit or not — a cache hit doesn't need a fresh AI call, but
|
|
965
1156
|
// it still means *this* test touched the healed location, and apply-heals needs that fact (via
|
|
966
1157
|
// testFile) to know which tests to re-verify once the fix is applied. See logEligibleHeal.
|
package/dist/healer/index.js.map
CHANGED
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-subscription.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/claude-subscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,YAAY,EAAsH,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-subscription.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/claude-subscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,YAAY,EAAsH,MAAM,SAAS,CAAC;AAoHpL,wBAAgB,gCAAgC,IAAI,YAAY,CAqE/D"}
|
|
@@ -41,6 +41,17 @@ async function runQuery(model, systemPrompt, prompt, timeoutMs) {
|
|
|
41
41
|
permissionMode: 'bypassPermissions',
|
|
42
42
|
systemPrompt,
|
|
43
43
|
abortController: controller,
|
|
44
|
+
// Both `effort` and `thinking` default to deep/adaptive reasoning when left unset (see
|
|
45
|
+
// the SDK's own doc comment on `effort`: "'high' — Deep reasoning (default)") — complete
|
|
46
|
+
// overkill for this narrow, single-shot "read the snapshot, pick a strategy" task, and the
|
|
47
|
+
// actual cause of a real, confirmed output-token blowup (up to 4.7x on some calls) once the
|
|
48
|
+
// prompt grew even slightly more complex (see nearbyRef/nearbyText in prompt.ts): a longer
|
|
49
|
+
// instruction pushed adaptive thinking to reason more, and that reasoning is billed as
|
|
50
|
+
// output tokens even though it's discarded — parseSuggestion only ever reads the final JSON
|
|
51
|
+
// line. Disabling thinking and forcing minimal effort removes that variability entirely,
|
|
52
|
+
// rather than just hoping shorter prompt wording keeps it in check.
|
|
53
|
+
thinking: { type: 'disabled' },
|
|
54
|
+
effort: 'low',
|
|
44
55
|
},
|
|
45
56
|
})) {
|
|
46
57
|
if (message.type === 'result') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-subscription.js","sourceRoot":"","sources":["../../../src/healer/providers/claude-subscription.ts"],"names":[],"mappings":";;;AAEA,qCAA0O;AAC1O,mDAAuD;AAEvD,sGAAsG;AACtG,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,mGAAmG;AACnG,8FAA8F;AAC9F,6FAA6F;AAC7F,uFAAuF;AACvF,gGAAgG;AAChG,6FAA6F;AAC7F,2FAA2F;AAC3F,iGAAiG;AACjG,2BAA2B;AAC3B,MAAM,oBAAoB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAEpB,CAAC;AAE9D,SAAS,eAAe,CAAC,MAAc,EAAE,KAAc;IACrD,MAAM,GAAG,GAAG,KAA8B,CAAC;IAC3C,MAAM,YAAY,GAAG,GAAG,EAAE,IAAI,KAAK,sBAAsB,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB,CAAC;IAC9F,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CACV,kNAAkN,CACnN,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,IAAI,CACV,sCAAsC,MAAM,+KAA+K,CAC5N,CAAC;AACJ,CAAC;AAID,mGAAmG;AACnG,mGAAmG;AACnG,+BAA+B;AAC/B,KAAK,UAAU,QAAQ,CAAC,KAAa,EAAE,YAAoB,EAAE,MAA8C,EAAE,SAAiB;IAC5H,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,gCAAgC,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,KAAK,CAAC;YAChC,MAAM;YACN,OAAO,EAAE;gBACP,KAAK;gBACL,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,EAAE;gBACT,cAAc,EAAE,mBAAmB;gBACnC,YAAY;gBACZ,eAAe,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"claude-subscription.js","sourceRoot":"","sources":["../../../src/healer/providers/claude-subscription.ts"],"names":[],"mappings":";;;AAEA,qCAA0O;AAC1O,mDAAuD;AAEvD,sGAAsG;AACtG,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,mGAAmG;AACnG,8FAA8F;AAC9F,6FAA6F;AAC7F,uFAAuF;AACvF,gGAAgG;AAChG,6FAA6F;AAC7F,2FAA2F;AAC3F,iGAAiG;AACjG,2BAA2B;AAC3B,MAAM,oBAAoB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAEpB,CAAC;AAE9D,SAAS,eAAe,CAAC,MAAc,EAAE,KAAc;IACrD,MAAM,GAAG,GAAG,KAA8B,CAAC;IAC3C,MAAM,YAAY,GAAG,GAAG,EAAE,IAAI,KAAK,sBAAsB,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB,CAAC;IAC9F,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CACV,kNAAkN,CACnN,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,IAAI,CACV,sCAAsC,MAAM,+KAA+K,CAC5N,CAAC;AACJ,CAAC;AAID,mGAAmG;AACnG,mGAAmG;AACnG,+BAA+B;AAC/B,KAAK,UAAU,QAAQ,CAAC,KAAa,EAAE,YAAoB,EAAE,MAA8C,EAAE,SAAiB;IAC5H,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,gCAAgC,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,KAAK,CAAC;YAChC,MAAM;YACN,OAAO,EAAE;gBACP,KAAK;gBACL,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,EAAE;gBACT,cAAc,EAAE,mBAAmB;gBACnC,YAAY;gBACZ,eAAe,EAAE,UAAU;gBAC3B,uFAAuF;gBACvF,yFAAyF;gBACzF,2FAA2F;gBAC3F,4FAA4F;gBAC5F,2FAA2F;gBAC3F,uFAAuF;gBACvF,4FAA4F;gBAC5F,yFAAyF;gBACzF,oEAAoE;gBACpE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAC9B,MAAM,EAAE,KAAK;aACd;SACF,CAAC,EAAE,CAAC;YACH,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,OAAO,CAAC,MAAM;oBACpB,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY;oBACxC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa;iBAC3C,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,8FAA8F;AAC9F,iGAAiG;AACjG,iGAAiG;AACjG,yEAAyE;AACzE,KAAK,SAAS,CAAC,CAAC,kBAAkB,CAAC,WAAmB,EAAE,IAAY;IAClE,MAAM;QACJ,IAAI,EAAE,MAAM;QACZ,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;gBACzF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;aACvB;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,MAAmB;IAClC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAC7C,IAAI,WAAW,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,GAAG,YAAY,EAAE,CAAC;AAChF,CAAC;AAED,iGAAiG;AACjG,6FAA6F;AAC7F,oGAAoG;AACpG,+FAA+F;AAC/F,iDAAiD;AACjD;IACE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,CAAC;IAC/D,MAAM,cAAc,GAAG,IAAA,oCAAoB,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEhE,OAAO;QACL,IAAI,EAAE,uBAAuB,KAAK,EAAE;QACpC,cAAc;QACd,KAAK,CAAC,eAAe,CAAC,KAA2B;YAC/C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,sBAAa,EAAE,IAAA,wBAAe,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC;gBACnH,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,UAAU,GAAG,IAAA,wBAAe,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,wBAAwB,CAAC,KAAmC;YAChE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,KAAK,EACL,6BAAoB,EACpB,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,IAAA,8BAAqB,EAAC,KAAK,CAAC,CAAC,EACnE,KAAK,CAAC,SAAS,IAAI,kBAAkB,CACtC,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,KAAK,GAAG,IAAA,8BAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,KAA+B;YACvD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,KAAK,EACL,sCAA6B,EAC7B,IAAA,sCAA6B,EAAC,KAAK,CAAC,EACpC,KAAK,CAAC,SAAS,IAAI,kBAAkB,CACtC,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,MAAM,GAAG,IAAA,oCAA2B,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AiSuggestion, ActionTactic, 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 AI-optimized 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. Every element in the snapshot has its own [ref=eN] id, and where available its on-screen position as [box=x,y,width,height] in CSS pixels. The snapshot preserves the real parent/child/sibling structure of the page \u2014 read it as a tree, not a flat list.\nPick the single best-matching element and respond with strict JSON only (no markdown, no prose):\n{\"strategy\":\"ref\",\"ref\":\"<the [ref=...] id of the target element itself>\"}\nPrefer \"ref\" whenever you can identify the target element anywhere in the snapshot tree, even if it has no accessible name of its own (a plain, unlabelled \"textbox\" or \"generic\" node is a perfectly good ref to pick \u2014 a separate step on our side reads the tree structure around it to build a resilient permanent selector, the same way a sighted user would read a nearby label before writing one by hand).\nOnly if NOTHING in the snapshot plausibly matches the description, fall back to 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\"}\nNever invent a ref, element, or attribute that isn't literally in the snapshot.";
|
|
2
|
+
export declare const SYSTEM_PROMPT = "You are a Playwright self-healing assistant.\nYou will be given an AI-optimized 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. Every element in the snapshot has its own [ref=eN] id, and where available its on-screen position as [box=x,y,width,height] in CSS pixels. The snapshot preserves the real parent/child/sibling structure of the page \u2014 read it as a tree, not a flat list.\nPick the single best-matching element and respond with strict JSON only (no markdown, no prose):\n{\"strategy\":\"ref\",\"ref\":\"<the [ref=...] id of the target element itself>\",\"nearbyRef\":\"<optional: the [ref=...] id of a nearby label/heading/element that told you what this is, if it has one>\",\"nearbyText\":\"<optional: the literal nearby text that told you what this is, if it's plain text with no ref of its own>\",\"nearbyRole\":\"<optional: that nearby text/element's own role in the snapshot, e.g. \"text\", \"legend\", \"heading\">\"}\nPrefer \"ref\" whenever you can identify the target element anywhere in the snapshot tree, even if it has no accessible name of its own (a plain, unlabelled \"textbox\" or \"generic\" node is a perfectly good ref to pick \u2014 a separate step on our side reads the tree structure around it to build a resilient permanent selector, the same way a sighted user would read a nearby label before writing one by hand). When the target has no accessible name of its own, also report whatever nearby label/heading/text actually told you what it is \u2014 include nearbyRef if that nearby thing has its own [ref=...], or nearbyText (plus its nearbyRole) if it's plain text with none. Include whichever apply; omit any you don't have.\nOnly if NOTHING in the snapshot plausibly matches the description, fall back to 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\"}\nNever invent a ref, element, or attribute that isn't literally in the snapshot.";
|
|
3
3
|
export declare function buildUserPrompt(input: SuggestSelectorInput): string;
|
|
4
4
|
export declare function parseSuggestion(content: string): AiSuggestion | 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,EAAsB,YAAY,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAUrL,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAsB,YAAY,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAUrL,eAAO,MAAM,aAAa,2vFAgBsD,CAAC;AAEjF,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAWnE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkEpE;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"}
|
|
@@ -18,8 +18,8 @@ const MAX_SNAPSHOT_CHARS = 16000;
|
|
|
18
18
|
exports.SYSTEM_PROMPT = `You are a Playwright self-healing assistant.
|
|
19
19
|
You will be given an AI-optimized 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. Every element in the snapshot has its own [ref=eN] id, and where available its on-screen position as [box=x,y,width,height] in CSS pixels. The snapshot preserves the real parent/child/sibling structure of the page — read it as a tree, not a flat list.
|
|
20
20
|
Pick the single best-matching element and respond with strict JSON only (no markdown, no prose):
|
|
21
|
-
{"strategy":"ref","ref":"<the [ref=...] id of the target element itself>"}
|
|
22
|
-
Prefer "ref" whenever you can identify the target element anywhere in the snapshot tree, even if it has no accessible name of its own (a plain, unlabelled "textbox" or "generic" node is a perfectly good ref to pick — a separate step on our side reads the tree structure around it to build a resilient permanent selector, the same way a sighted user would read a nearby label before writing one by hand).
|
|
21
|
+
{"strategy":"ref","ref":"<the [ref=...] id of the target element itself>","nearbyRef":"<optional: the [ref=...] id of a nearby label/heading/element that told you what this is, if it has one>","nearbyText":"<optional: the literal nearby text that told you what this is, if it's plain text with no ref of its own>","nearbyRole":"<optional: that nearby text/element's own role in the snapshot, e.g. \"text\", \"legend\", \"heading\">"}
|
|
22
|
+
Prefer "ref" whenever you can identify the target element anywhere in the snapshot tree, even if it has no accessible name of its own (a plain, unlabelled "textbox" or "generic" node is a perfectly good ref to pick — a separate step on our side reads the tree structure around it to build a resilient permanent selector, the same way a sighted user would read a nearby label before writing one by hand). When the target has no accessible name of its own, also report whatever nearby label/heading/text actually told you what it is — include nearbyRef if that nearby thing has its own [ref=...], or nearbyText (plus its nearbyRole) if it's plain text with none. Include whichever apply; omit any you don't have.
|
|
23
23
|
Only if NOTHING in the snapshot plausibly matches the description, fall back to one of:
|
|
24
24
|
{"strategy":"role","role":"<aria role>","name":"<accessible name>"}
|
|
25
25
|
{"strategy":"text","text":"<visible text>"}
|
|
@@ -65,7 +65,17 @@ function parseSuggestion(content) {
|
|
|
65
65
|
}
|
|
66
66
|
const suggestion = parsed;
|
|
67
67
|
if (suggestion.strategy === 'ref' && typeof suggestion.ref === 'string') {
|
|
68
|
-
|
|
68
|
+
const result = { strategy: 'ref', ref: suggestion.ref };
|
|
69
|
+
if (typeof suggestion.nearbyRef === 'string') {
|
|
70
|
+
result.nearbyRef = suggestion.nearbyRef;
|
|
71
|
+
}
|
|
72
|
+
if (typeof suggestion.nearbyText === 'string') {
|
|
73
|
+
result.nearbyText = suggestion.nearbyText;
|
|
74
|
+
}
|
|
75
|
+
if (typeof suggestion.nearbyRole === 'string') {
|
|
76
|
+
result.nearbyRole = suggestion.nearbyRole;
|
|
77
|
+
}
|
|
78
|
+
return result;
|
|
69
79
|
}
|
|
70
80
|
if (suggestion.strategy === 'none') {
|
|
71
81
|
return suggestion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/healer/providers/prompt.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,4FAA4F;AAC5F,+FAA+F;AAC/F,gGAAgG;AAChG,iGAAiG;AACjG,6FAA6F;AAC7F,2FAA2F;AAC3F,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEpB,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;gFAgBmD,CAAC;AAEjF,yBAAgC,KAA2B;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,kBAAkB;QAC7D,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,mBAAmB;QACvE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IAEvB,OAAO;QACL,kBAAkB,KAAK,CAAC,MAAM,EAAE;QAChC,wBAAwB,KAAK,CAAC,WAAW,IAAI,iBAAiB,EAAE;QAChE,gBAAgB;QAChB,QAAQ;KACT,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,yBAAgC,OAAe;IAC7C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,MAAsB,CAAC;IAC1C,IAAI,UAAU,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACxE,OAAO,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/healer/providers/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,11 @@ export type SelectorSuggestion = {
|
|
|
30
30
|
anchorText: string;
|
|
31
31
|
role: string;
|
|
32
32
|
parentLevels?: 1 | 2;
|
|
33
|
+
} | {
|
|
34
|
+
strategy: 'adjacent';
|
|
35
|
+
anchorText: string;
|
|
36
|
+
role: string;
|
|
37
|
+
anchorClimbLevels?: number;
|
|
33
38
|
} | {
|
|
34
39
|
strategy: 'scoped';
|
|
35
40
|
containerRole: string;
|
|
@@ -47,6 +52,9 @@ export type SelectorSuggestion = {
|
|
|
47
52
|
export type AiSuggestion = SelectorSuggestion | {
|
|
48
53
|
strategy: 'ref';
|
|
49
54
|
ref: string;
|
|
55
|
+
nearbyRef?: string;
|
|
56
|
+
nearbyText?: string;
|
|
57
|
+
nearbyRole?: string;
|
|
50
58
|
};
|
|
51
59
|
export type SuggestSelectorInput = {
|
|
52
60
|
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,GAKhD;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAYhC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,
|
|
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.
|
|
3
|
+
"version": "0.10.0-beta.2",
|
|
4
4
|
"description": "Plug and Play Self-healing for Playwright and automatically recovers broken selectors using an AI model (Ollama, OpenAI, Anthropic, Gemini, or a Claude/GitHub Copilot subscription).",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|