@ia-qa/self-healing 1.7.8 → 1.7.10

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/TUTORIAL.md CHANGED
@@ -12,7 +12,7 @@
12
12
  3. [Before you start](#3-before-you-start)
13
13
  4. [Path A — I use an AI agent (easiest)](#4-path-a--i-use-an-ai-agent-easiest)
14
14
  5. [Path B — I use a terminal](#5-path-b--i-use-a-terminal)
15
- 6. [Your first real workflow](#6-your-first-real-workflow-the-whole-point) — including [the console, if you don't want a terminal](#step-68--no-terminal-open-the-console)
15
+ 6. [Your first real workflow](#6-your-first-real-workflow-the-whole-point) — including [a test just failed, is it drift?](#step-64b--you-didnt-run-diff-you-got-a-red-build--explain) · [the console, if you don't want a terminal](#step-68--no-terminal-open-the-console)
16
16
  7. [Reading the verdict](#7-reading-the-verdict)
17
17
  8. [Putting it in CI](#8-putting-it-in-ci) — [JUnit trends](#82-trend-charts-for-free--junit) · [the run history](#83-the-trend--ia-qa-heal-history)
18
18
  9. [Optional: AI suggestions (BYOK)](#9-optional-ai-suggestions-for-the-lost-ones-byok)
@@ -422,6 +422,48 @@ Now there are two moments, so there is a verdict. Any page you did **not** re-ma
422
422
  carries the baseline's own timestamp; it is listed and left out of the verdict rather than
423
423
  counted as `ok`, because it was never compared either.
424
424
 
425
+ ### Step 6.4b — You didn't run `diff`. You got a red build. — `explain`
426
+
427
+ Everything above assumes you came here *asking* about drift. Most of the time you don't:
428
+ your CI goes red at 2am and you're staring at an error message. That's what `explain` is for.
429
+
430
+ Agent: **"This test failed — is it selector drift?"**
431
+ Terminal:
432
+ ```bash
433
+ npx ia-qa-heal explain --junit results.xml # the report your runner already writes
434
+ npx ia-qa-heal explain --message "Expected to find element: '.btn-primary'"
435
+ npx cypress run 2>&1 | npx ia-qa-heal explain # or just pipe the log
436
+ ```
437
+
438
+ ```
439
+ 🔧 FIX ia-qa-heal explain — is this failure selector drift?
440
+ 1 failure read · 1 locator identified · 1 page compared
441
+
442
+ 🔧 FIX selector ".btn-primary"
443
+ page: checkout
444
+ used at: tests/checkout.spec.js:1
445
+ proposed: .btn-primary → #pay-now
446
+ The string reaches nothing, but its element survived. `ia-qa-heal fix` can rewrite it.
447
+ ```
448
+
449
+ It finds the locator by **intersecting the failure text with the literals your own tests
450
+ write** (that's what `ingest` collected) — it never learns your runner's error format, so
451
+ pytest, Cypress, Playwright, Selenium and WebdriverIO all work the same. As a bonus you get
452
+ the `file:line` the error message never carried.
453
+
454
+ > ✅ **`PASS` is the answer worth the most.** It means the locators in that failure still
455
+ > reach their elements — so the build is red for another reason. Stop reading selectors and
456
+ > go look at timing, test data, or the app itself. It re-runs nothing, so it never claims
457
+ > your test is "flaky"; it only rules drift **out**. That alone can save an afternoon.
458
+
459
+ > ⚠️ It needs a baseline, because drift means *a locator that worked and stopped working*.
460
+ > On day one, `audit` (Step 5.4) is the verb that answers without one. And if it says it
461
+ > **cannot tell which locator the failure is about**, that's not a pass — usually the failing
462
+ > file was never `ingest`ed, or the locator is built at runtime from a variable.
463
+
464
+ Read-only: it opens no browser, re-runs nothing, and edits nothing. Repairs still go through
465
+ `fix`, below.
466
+
425
467
  ### Step 6.5 — Apply the safe fixes
426
468
  Agent: **"Fix my tests in the tests/ folder using that diff"**
427
469
  Terminal:
@@ -824,6 +866,7 @@ npx ia-qa-heal fix .ia-qa/baseline/checkout.json .ia-qa/mapping/checkout.json te
824
866
  npx ia-qa-heal fix .ia-qa/baseline/checkout.json .ia-qa/mapping/checkout.json tests/ # apply (never commits)
825
867
 
826
868
  npx ia-qa-heal ingest tests/ # inventory the selectors your suite uses → .ia-qa/usage.json
869
+ npx ia-qa-heal explain --junit results.xml # a test just failed — is it drift? (also --message "…", or pipe a log)
827
870
  npx ia-qa-heal audit # day one, no baseline: do my locators still name anything? (advisory)
828
871
  npx ia-qa-heal check # is the app sound? dead links · unnamed elements · name collisions · orphan pages
829
872
  npx ia-qa-heal graph --format markdown # the navigation graph, one card per page (RAG chunk / Confluence)
@@ -841,4 +884,5 @@ npx ia-qa-heal skill --install # teach your AI agent the rules (→ .
841
884
  Talking to an agent instead:
842
885
  > "Map my app at http://localhost:3000 to .ia-qa/mapping"
843
886
  > "Diff the baseline against the new contract"
887
+ > "This test failed — is it selector drift?"
844
888
  > "Fix my tests in tests/ — show me the diff, don't commit"
@@ -72,12 +72,26 @@ function explainProject(failures) {
72
72
  ` green run has nothing to explain. Pass the report from the build that failed.`,
73
73
  };
74
74
  }
75
+ // Order of checks, before the inventory one below. Pointed at a directory that is
76
+ // not a project at all — the ordinary `--config` typo — "usage.json does not exist"
77
+ // sends the reader to `ingest`, which will not help: there is nothing here to
78
+ // ingest *into*. Name the missing project, not the first artifact we happened to
79
+ // look for.
80
+ if (!fs.existsSync(path.join((0, config_1.baseDir)(), config_1.CONFIG_DIR))) {
81
+ return {
82
+ ok: false,
83
+ reason: 'no-inventory',
84
+ message: `❌ No ${config_1.CONFIG_DIR}/ directory in ${(0, config_1.baseDir)()}.\n\n` +
85
+ ` That path is not an ia-qa-heal project. Run \`ia-qa-heal init\` there, or point\n` +
86
+ ` \`--config\` at the directory that holds ${config_1.CONFIG_DIR}/.`,
87
+ };
88
+ }
75
89
  const usage = (0, ingest_1.loadUsage)();
76
90
  if (!usage) {
77
91
  return {
78
92
  ok: false,
79
93
  reason: 'no-inventory',
80
- message: `❌ No locator inventory — .ia-qa/usage.json does not exist.\n\n` +
94
+ message: `❌ No locator inventory — ${config_1.CONFIG_DIR}/usage.json does not exist.\n\n` +
81
95
  ` This verb finds the locator inside your failure by intersecting the message\n` +
82
96
  ` with the literals your suite actually writes. Without that inventory there is\n` +
83
97
  ` nothing to intersect, and guessing at the message instead is exactly what this\n` +
@@ -265,7 +279,7 @@ async function runExplain(args) {
265
279
  `\n your test. Look at timing, test data, or an application error.`);
266
280
  }
267
281
  if (r.unmatched.length > 0) {
268
- console.log(`\n ℹ️ ${r.unmatched.length} quoted string${r.unmatched.length === 1 ? '' : 's'} in the failure look like locators but are in no inventory:` +
282
+ console.log(`\n ℹ️ ${r.unmatched.length} quoted string${r.unmatched.length === 1 ? '' : 's'} in the failure look${r.unmatched.length === 1 ? 's' : ''} like a locator but ${r.unmatched.length === 1 ? 'is' : 'are'} in no inventory:` +
269
283
  `\n ${r.unmatched.slice(0, 6).map((u) => `"${u}"`).join(', ')}` +
270
284
  `\n Usually an un-ingested file, or a locator built at runtime. Re-run \`ia-qa-heal ingest\`.`);
271
285
  }
@@ -1 +1 @@
1
- {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/cli/explain.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,wCA6FC;AA6ED,gCA0FC;AA3VD,uCAAyB;AACzB,2CAA6B;AAC7B,sCAA8F;AAC9F,wCAaoB;AACpB,sCAAsC;AACtC,8CAAmD;AACnD,iCAAwC;AACxC,uCAAqD;AA+CrD,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,KAAK,GAAoB,IAAI,GAAG,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,IAAA,+BAAkB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACtD,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,QAAwB;IACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,YAAY;YACpB,OAAO,EACL,2CAA2C;gBAC3C,kFAAkF;gBAClF,kFAAkF;SACrF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,cAAc;YACtB,OAAO,EACL,gEAAgE;gBAChE,kFAAkF;gBAClF,oFAAoF;gBACpF,qFAAqF;gBACrF,0BAA0B;gBAC1B,kFAAkF;SACrF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,yBAAe,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,4FAA4F,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClM,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,YAAY;YACpB,OAAO,EACL,wDAAwD;gBACxD,qFAAqF;gBACrF,qFAAqF;gBACrF,kGAAkG;gBAClG,uFAAuF;gBACvF,0CAA0C;gBAC1C,kFAAkF;gBAClF,IAAI;SACP,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,oBAAW,GAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,aAAa;YACrB,OAAO,EACL,sCAAsC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBAClF,qFAAqF;gBACrF,kFAAkF;gBAClF,uFAAuF;gBACvF,sCAAsC;gBACtC,2BAA2B;gBAC3B,yEAAyE;SAC5E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,YAAY;YACpB,OAAO,EACL,0BAA0B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB;gBACrE,oDAAoD;gBACpD,wEAAwE;SAC3E,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,qBAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAsB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAA+B;QAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAyC;QAC7D,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAA+C;KACvE,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,UAAU,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAA,oBAAW,GAAE,CAAC,CAAC,CAAC;IAEvF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,wBAAc,EAAC,QAAQ,CAAC;YACjC,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,QAAQ;YACR,SAAS;YACT,aAAa,EAAE,KAAK,CAAC,MAAM;YAC3B,UAAU,EAAE,UAAU,CAAC,KAAK;SAC7B;KACF,CAAC;AACJ,CAAC;AAED;;wEAEwE;AAExE,SAAS,SAAS,CAAC,IAAc,EAAE,IAAY;IAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7B,GAAG,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,YAAY,CAAC,IAAc;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,IAAA,4BAAkB,EAAC,IAAA,iBAAQ,EAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,+EAA+E;YAC/E,kFAAkF;YAClF,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC9B,CAAC,CAAC,IAAA,4BAAkB,EAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;wEAEwE;AAExE,MAAM,IAAI,GAA8C,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAE7F,SAAS,aAAa,CAAC,CAAiB;IACtC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACzD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uDAAuD,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;IAClF,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,IAAI,CAAC,CAAC,GAAG;QAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,SAAS,uBAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CACX,sDAAsD;YACpD,wFAAwF;YACxF,8EAA8E;YAC9E,iFAAiF;YACjF,oFAAoF;YACpF,iDAAiD,CACpD,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,qFAAqF;QACrF,mFAAmF;QACnF,+BAA+B;QAC/B,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,OAAO,wDAAwD,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,IAAA,0BAAiB,GAAE,CAAC,CAAC;IACjD,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,CAAC,YAAY,WAAW,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU;QACtE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gBAAgB;QACjF,GAAG,CAAC,CAAC,aAAa,QAAQ,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,CACxE,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAE7C,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CACT,gFAAgF;YAC9E,qFAAqF;YACrF,qEAAqE,CACxE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACT,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,iBAAiB,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,6DAA6D;YAC7I,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpE,mGAAmG,CACtG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,8EAA8E;QAC9E,gFAAgF;QAChF,OAAO,CAAC,GAAG,CACT,YAAY,CAAC,CAAC,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,4DAA4D;YACrI,WAAW,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChD,6EAA6E,CAChF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,kFAAkF;YAChF,yDAAyD;YACzD,gDAAgD,CACnD,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAA,qBAAW,EACT,SAAS,EACT,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EACnE,IAAA,yBAAe,EAAC,CAAC,CAAC,EAClB,IAAA,uBAAa,EAAC,CAAC,CAAC,CACjB,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC"}
1
+ {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/cli/explain.ts"],"names":[],"mappings":"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"}
package/dist/ingest.d.ts CHANGED
@@ -56,6 +56,19 @@ export declare function usagePath(cwd?: string): string;
56
56
  * Shared call shapes (`.type`, `.press`, `.fill`…) take text in one framework and
57
57
  * a selector in another, so a captured literal is only recorded when it *reads*
58
58
  * like a selector. A bare tag (`click('button')`) is the accepted miss.
59
+ *
60
+ * "Reads like a selector" used to mean *contains a structural character* — a `>`,
61
+ * a `[`, a leading `.`. That test cannot tell `div > span` from `age > 18`, and
62
+ * the permissive Page Object shape below offers it every `foo = '…'` in the suite,
63
+ * so a SQL condition typed into a field was inventoried as a selector. The cost
64
+ * was argued as one line in an advisory count; `explain` then made it a red gate
65
+ * (`exit 1`) pointing at a healthy test line. So the test is now *validity*, not
66
+ * presence: `18` is not a type selector, `.5` is not a class, `fix:` is not a
67
+ * pseudo. Seven of the eight parasites in the reference corpus are refused by the
68
+ * grammar alone, and none of them needed a list of known-bad shapes.
69
+ *
70
+ * What the grammar cannot see stays: `a.b.c` is a valid selector whether it names
71
+ * an element or a JWT. That residue is real and is not worth a length heuristic.
59
72
  */
60
73
  export declare function plausibleSelector(value: string): boolean;
61
74
  export declare function scanText(text: string, file: string): Array<{
package/dist/ingest.js CHANGED
@@ -140,6 +140,19 @@ const PATTERNS = [
140
140
  * Shared call shapes (`.type`, `.press`, `.fill`…) take text in one framework and
141
141
  * a selector in another, so a captured literal is only recorded when it *reads*
142
142
  * like a selector. A bare tag (`click('button')`) is the accepted miss.
143
+ *
144
+ * "Reads like a selector" used to mean *contains a structural character* — a `>`,
145
+ * a `[`, a leading `.`. That test cannot tell `div > span` from `age > 18`, and
146
+ * the permissive Page Object shape below offers it every `foo = '…'` in the suite,
147
+ * so a SQL condition typed into a field was inventoried as a selector. The cost
148
+ * was argued as one line in an advisory count; `explain` then made it a red gate
149
+ * (`exit 1`) pointing at a healthy test line. So the test is now *validity*, not
150
+ * presence: `18` is not a type selector, `.5` is not a class, `fix:` is not a
151
+ * pseudo. Seven of the eight parasites in the reference corpus are refused by the
152
+ * grammar alone, and none of them needed a list of known-bad shapes.
153
+ *
154
+ * What the grammar cannot see stays: `a.b.c` is a valid selector whether it names
155
+ * an element or a JWT. That residue is real and is not worth a length heuristic.
143
156
  */
144
157
  function plausibleSelector(value) {
145
158
  const v = value.trim();
@@ -161,17 +174,212 @@ function plausibleSelector(value) {
161
174
  return false;
162
175
  if (/^#[0-9a-f]{3,8}$/i.test(v))
163
176
  return false;
164
- if (/^[#.[]/.test(v))
165
- return true;
166
- if (v.includes('>>'))
177
+ return v
178
+ .split('>>')
179
+ .every((part) => selectorPart(part));
180
+ }
181
+ /** An engine-prefixed locator states its own grammar; we do not know it. */
182
+ const ENGINE_PREFIX = /^(?:text|role|xpath|css|data-testid|id|nth|visible|internal:[\w-]+)=/;
183
+ /** A bare XPath — `//button`, `(//tr)[2]`. Legal in Playwright, not CSS. */
184
+ const XPATH_START = /^\(*\/\//;
185
+ function selectorPart(part) {
186
+ const p = part.trim();
187
+ if (p === '')
188
+ return false;
189
+ if (ENGINE_PREFIX.test(p))
167
190
  return true;
168
- if (/[>[\]]/.test(v))
191
+ if (XPATH_START.test(p))
169
192
  return true;
170
- if (/^[a-z][a-z0-9-]*[#.:]/i.test(v))
193
+ return isSelectorShaped(p);
194
+ }
195
+ // Non-ASCII is a legal CSS identifier character — `.café` and `.日本語` are classes.
196
+ const NON_ASCII = '\u0080';
197
+ const BACKSLASH = '\u005c';
198
+ const isIdentStart = (c) => /[A-Za-z_]/.test(c) || c === BACKSLASH || c >= NON_ASCII;
199
+ const isIdentChar = (c) => /[-A-Za-z0-9_]/.test(c) || c === BACKSLASH || c >= NON_ASCII;
200
+ /**
201
+ * Every element name a browser can be asked for by type, plus the SVG ones a test
202
+ * realistically queries. A closed set, and that is the point: a type selector names
203
+ * an *element*, so anything outside this list has to look like a custom element to
204
+ * be admitted at all.
205
+ */
206
+ const HTML_TAGS = new Set(('a abbr address area article aside audio b base bdi bdo big blockquote body br button canvas caption ' +
207
+ 'cite code col colgroup data datalist dd del details dfn dialog div dl dt em embed fieldset figcaption ' +
208
+ 'figure footer form h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins kbd label ' +
209
+ 'legend li link main map mark menu meta meter nav noscript object ol optgroup option output p param ' +
210
+ 'picture pre progress q rp rt ruby s samp script search section select slot small source span strong ' +
211
+ 'style sub summary sup table tbody td template textarea tfoot th thead time title tr track u ul var ' +
212
+ 'video wbr ' +
213
+ 'svg circle ellipse g line path polygon polyline rect stop text tspan use defs symbol foreignObject')
214
+ .split(' '));
215
+ /**
216
+ * Can this identifier be an element name?
217
+ *
218
+ * The grammar alone cannot tell `div.active` from `demo_tool.input.free` — a JSON
219
+ * schema path is a perfectly well-formed `tag.class.class`, and the reference corpus
220
+ * holds eleven of them. HTML settles it: an element is either a known tag or a custom
221
+ * element, and a custom element must start lowercase, must contain a hyphen, and may
222
+ * never contain an underscore. `demo_tool` fails all three; `app-root`, `mat-button`
223
+ * and `ion-select` pass, which is what this rule exists to protect.
224
+ *
225
+ * A placeholder is unknowable, so `${tag}.foo` is admitted rather than guessed at.
226
+ */
227
+ function plausibleTypeName(name) {
228
+ if (name.indexOf('${') !== -1)
171
229
  return true;
172
- if (/^(?:text|role|xpath|css|data-testid)=/.test(v))
230
+ if (HTML_TAGS.has(name.toLowerCase()))
173
231
  return true;
174
- return false;
232
+ return /^[a-z][a-z0-9.]*-[a-z0-9.-]*$/.test(name);
233
+ }
234
+ /**
235
+ * Is `sel` a well-formed CSS selector that actually *qualifies* something?
236
+ *
237
+ * Three conditions, all load-bearing. Well-formed rejects `age > 18` and `v1.5.1`.
238
+ * Element-named rejects `demo_tool.input.free`. Qualified — at least one `#`, `.`,
239
+ * `[`, `:` or an explicit combinator — rejects `hello world`, which the grammar alone
240
+ * would happily read as two type selectors. A bare tag was already the accepted miss;
241
+ * two bare tags are the same miss, and admitting them would inventory every two-word
242
+ * English string.
243
+ */
244
+ function isSelectorShaped(sel) {
245
+ let i = 0;
246
+ let qualified = false;
247
+ const n = sel.length;
248
+ const skipWs = () => {
249
+ const from = i;
250
+ while (i < n && /\s/.test(sel[i]))
251
+ i++;
252
+ return i > from;
253
+ };
254
+ /** Consume a balanced `[...]` / `(...)`, quotes honoured. Depth, not first close. */
255
+ const skipBalanced = (open, close) => {
256
+ let depth = 0;
257
+ while (i < n) {
258
+ const c = sel[i];
259
+ if (c === '"' || c === "'") {
260
+ const q = c;
261
+ i++;
262
+ while (i < n && sel[i] !== q)
263
+ i += sel[i] === '\\' ? 2 : 1;
264
+ if (i >= n)
265
+ return false;
266
+ i++;
267
+ continue;
268
+ }
269
+ if (c === open)
270
+ depth++;
271
+ else if (c === close) {
272
+ depth--;
273
+ i++;
274
+ if (depth === 0)
275
+ return true;
276
+ continue;
277
+ }
278
+ i++;
279
+ }
280
+ return false;
281
+ };
282
+ /**
283
+ * An identifier, plus the one non-CSS token that belongs here: `${…}`. A
284
+ * template placeholder is opaque to every consumer of this inventory, but
285
+ * `#row-${id}` is an ordinary selector and refusing it would drop a real one.
286
+ */
287
+ const readIdent = () => {
288
+ const from = i;
289
+ if (i < n && sel[i] === '$' && sel[i + 1] === '{') {
290
+ i++;
291
+ if (!skipBalanced('{', '}'))
292
+ return false;
293
+ }
294
+ else {
295
+ if (i >= n || !isIdentStart(sel[i]))
296
+ return false;
297
+ if (sel[i] === '\\')
298
+ i++;
299
+ i++;
300
+ }
301
+ while (i < n) {
302
+ if (sel[i] === '$' && sel[i + 1] === '{') {
303
+ i++;
304
+ if (!skipBalanced('{', '}'))
305
+ return false;
306
+ continue;
307
+ }
308
+ if (!isIdentChar(sel[i]))
309
+ break;
310
+ i += sel[i] === '\\' ? 2 : 1;
311
+ }
312
+ return i > from;
313
+ };
314
+ const readCompound = () => {
315
+ let pieces = 0;
316
+ if (i < n && sel[i] === '*') {
317
+ i++;
318
+ pieces++;
319
+ }
320
+ else if (i < n && (isIdentStart(sel[i]) || (sel[i] === '$' && sel[i + 1] === '{'))) {
321
+ const from = i;
322
+ if (!readIdent())
323
+ return false;
324
+ if (!plausibleTypeName(sel.slice(from, i)))
325
+ return false;
326
+ pieces++;
327
+ }
328
+ for (;;) {
329
+ const c = sel[i];
330
+ if (c === '#' || c === '.') {
331
+ i++;
332
+ if (!readIdent())
333
+ return false;
334
+ }
335
+ else if (c === '[') {
336
+ if (!skipBalanced('[', ']'))
337
+ return false;
338
+ }
339
+ else if (c === ':') {
340
+ i++;
341
+ if (sel[i] === ':')
342
+ i++;
343
+ if (!readIdent())
344
+ return false;
345
+ if (sel[i] === '(' && !skipBalanced('(', ')'))
346
+ return false;
347
+ }
348
+ else
349
+ break;
350
+ pieces++;
351
+ qualified = true;
352
+ }
353
+ return pieces > 0;
354
+ };
355
+ skipWs();
356
+ if (i < n && '>+~'.indexOf(sel[i]) !== -1) {
357
+ i++;
358
+ qualified = true;
359
+ skipWs();
360
+ }
361
+ for (;;) {
362
+ if (!readCompound())
363
+ return false;
364
+ const hadWs = skipWs();
365
+ if (i >= n)
366
+ break;
367
+ const c = sel[i];
368
+ if (c === ',') {
369
+ i++;
370
+ skipWs();
371
+ continue;
372
+ }
373
+ if ('>+~'.indexOf(c) !== -1) {
374
+ i++;
375
+ qualified = true;
376
+ skipWs();
377
+ continue;
378
+ }
379
+ if (!hadWs)
380
+ return false;
381
+ }
382
+ return qualified;
175
383
  }
176
384
  function scanText(text, file) {
177
385
  const out = [];
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../src/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../src/ingest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ia-qa/self-healing",
3
- "version": "1.7.8",
3
+ "version": "1.7.10",
4
4
  "description": "Your Playwright, Cypress or Selenium tests break when a selector moves — this finds the element again and rewrites the test. Deterministic: no LLM decides whether your build passes. Runs entirely on your machine, with a local MCP server for agents.",
5
5
  "keywords": [
6
6
  "self-healing",