@ia-qa/self-healing 1.6.16 → 1.6.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -95,13 +95,15 @@ Usage:
95
95
  (Playwright, .js/.ts) — immune to positional drift
96
96
  --dir directory mode: diff all mappings, apply all rewrites
97
97
  at once. Layouts in _layouts/ diffed first.
98
- ia-qa-heal ingest [paths…] Inventory the locators your tests/POMs actually use — CSS
98
+ ia-qa-heal ingest [paths…] [--json] Inventory the locators your tests/POMs actually use — CSS
99
99
  selectors AND names (get/find/queryBy* — Playwright, Testing
100
100
  Library, @testing-library/cypress — plus cy.contains and
101
101
  By.LINK_TEXT) → .ia-qa/usage.json. diff then gates on renames
102
102
  your tests locate by name; fix rewrites the role-stating calls
103
103
  (getByRole/getByLabel/By.linkText) and only reports the
104
104
  text-anchored ones. No arguments: config.testPaths
105
+ --json the inventory as one document, including the FULL
106
+ positional-selector list (the hardening backlog)
105
107
  ia-qa-heal audit [paths…] Day one, no baseline: does your suite still name things that
106
108
  exist? Cross-references usage.json against the current
107
109
  mapping/ and flags locators that match no element.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,17 @@
1
1
  import { usagePath } from '../ingest';
2
2
  /**
3
- * `ia-qa-heal ingest [paths…]` — inventory the selectors your suite actually uses.
3
+ * `ia-qa-heal ingest [paths…] [--json]` — inventory the selectors your suite actually uses.
4
4
  *
5
5
  * No arguments: reads `testPaths` from `.ia-qa/config.json`. Writes
6
6
  * `.ia-qa/usage.json`, which `diff` reads to say which drift touches your tests
7
7
  * and `fix` reads as its default file list.
8
8
  *
9
+ * `--json` emits the inventory as one parseable document instead of the report —
10
+ * including the full positional-selector list the terminal truncates to five.
11
+ * That list is the hardening backlog (`data-testid` here, and this selector stops
12
+ * being drift waiting for a release), and it was computed but unreachable by
13
+ * anything that is not a human reading a terminal.
14
+ *
9
15
  * Exit codes: 0 on success (even with 0 selectors — an honest empty inventory);
10
16
  * 2 = nowhere to scan.
11
17
  */
@@ -39,19 +39,25 @@ const path = __importStar(require("path"));
39
39
  const config_1 = require("../config");
40
40
  const ingest_1 = require("../ingest");
41
41
  Object.defineProperty(exports, "usagePath", { enumerable: true, get: function () { return ingest_1.usagePath; } });
42
- const match_1 = require("../browser/match");
43
42
  const summary_1 = require("./summary");
44
43
  /**
45
- * `ia-qa-heal ingest [paths…]` — inventory the selectors your suite actually uses.
44
+ * `ia-qa-heal ingest [paths…] [--json]` — inventory the selectors your suite actually uses.
46
45
  *
47
46
  * No arguments: reads `testPaths` from `.ia-qa/config.json`. Writes
48
47
  * `.ia-qa/usage.json`, which `diff` reads to say which drift touches your tests
49
48
  * and `fix` reads as its default file list.
50
49
  *
50
+ * `--json` emits the inventory as one parseable document instead of the report —
51
+ * including the full positional-selector list the terminal truncates to five.
52
+ * That list is the hardening backlog (`data-testid` here, and this selector stops
53
+ * being drift waiting for a release), and it was computed but unreachable by
54
+ * anything that is not a human reading a terminal.
55
+ *
51
56
  * Exit codes: 0 on success (even with 0 selectors — an honest empty inventory);
52
57
  * 2 = nowhere to scan.
53
58
  */
54
59
  async function runIngest(args) {
60
+ const json = args.includes('--json');
55
61
  let paths = args.filter((a) => !a.startsWith('--'));
56
62
  if (paths.length === 0) {
57
63
  // Resolved against the config's own directory, not the shell's cwd: under
@@ -79,6 +85,13 @@ async function runIngest(args) {
79
85
  ...Object.values(usage.names ?? {}).flatMap((sites) => sites.map((s) => s.file)),
80
86
  ]);
81
87
  const file = (0, ingest_1.saveUsage)(usage);
88
+ const inventory = (0, ingest_1.buildInventoryReport)(usage);
89
+ const positionalAll = inventory.positionalSelectors;
90
+ if (json) {
91
+ console.log(JSON.stringify({ usagePath: file, ...inventory }, null, 2));
92
+ process.exitCode = 0;
93
+ return;
94
+ }
82
95
  console.log(`\n📇 ia-qa-heal ingest — locator inventory`);
83
96
  console.log(` ${selectors.length} selector${selectors.length === 1 ? '' : 's'} (${refs} ref${refs === 1 ? '' : 's'}) · ` +
84
97
  `${names.length} name${names.length === 1 ? '' : 's'} (${nameRefs} ref${nameRefs === 1 ? '' : 's'}) · ` +
@@ -96,11 +109,7 @@ async function runIngest(args) {
96
109
  }
97
110
  // The selectors most worth replacing: positional (nothing anchors them to the
98
111
  // element) and referenced the most — each one is drift waiting for a release.
99
- const positional = selectors
100
- .filter((s) => !(0, match_1.isIdentitySelector)(s))
101
- .map((s) => ({ selector: s, count: usage.selectors[s].length }))
102
- .sort((a, b) => b.count - a.count)
103
- .slice(0, 5);
112
+ const positional = positionalAll.slice(0, 5);
104
113
  if (positional.length > 0) {
105
114
  console.log(`\n ⚠ Most-used positional selectors (no identity anchor — first to drift):`);
106
115
  for (const p of positional) {
@@ -113,7 +122,7 @@ async function runIngest(args) {
113
122
  `concatenation, \${…}) are invisible to a static scan — and to \`fix\`.`);
114
123
  }
115
124
  console.log('');
116
- const positionalCount = selectors.filter((s) => !(0, match_1.isIdentitySelector)(s)).length;
125
+ const positionalCount = positionalAll.length;
117
126
  const total = selectors.length + names.length;
118
127
  (0, summary_1.summaryLine)('ingest', 'ok', `${total} ${total === 1 ? 'locator' : 'locators'} inventoried`, [
119
128
  `${selectors.length} selector${selectors.length === 1 ? '' : 's'}`,
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/cli/ingest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,8BA4FC;AA5GD,2CAA6B;AAC7B,sCAA4D;AAC5D,sCAA8D;AA4GrD,0FA5GwB,kBAAS,OA4GxB;AA3GlB,4CAAsD;AACtD,uCAAwC;AAExC;;;;;;;;;GASG;AACI,KAAK,UAAU,SAAS,CAAC,IAAc;IAC5C,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,0EAA0E;QAC1E,gFAAgF;QAChF,+EAA+E;QAC/E,MAAM,UAAU,GAAG,IAAA,4BAAmB,GAAE,CAAC;QACzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CACX,gDAAgD;gBAC9C,uFAAuF;gBACvF,yDAAyD,IAAA,mBAAU,GAAE,GAAG,CAC3E,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,KAAK,GAAG,UAAU,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC;IAEvF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9E,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KACjF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,KAAK,CAAC,CAAC;IAE9B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CACT,MAAM,SAAS,CAAC,MAAM,YAAY,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM;QAC5G,GAAG,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM;QACvG,GAAG,aAAa,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,gBAAgB,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CACjG,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1D,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACvB,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAC7F,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,YAAY,QAAQ,WAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,iCAAiC;YACvF,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC7C,CAAC;QACF,OAAO,CAAC,GAAG,CACT,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,MAAM,UAAU,GAAG,SAAS;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,0BAAkB,EAAC,CAAC,CAAC,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC5F,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CACT,oFAAoF;YAClF,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,0BAAkB,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9C,IAAA,qBAAW,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,cAAc,EAAE;QAC1F,GAAG,SAAS,CAAC,MAAM,YAAY,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;QAClE,GAAG,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;QACtD,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,qBAAqB,CAAC,CAAC,CAAC,SAAS;KAC1E,CAAC,CAAC;IACH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/cli/ingest.ts"],"names":[],"mappings":"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"}
package/dist/ingest.d.ts CHANGED
@@ -67,6 +67,41 @@ export interface IngestResult {
67
67
  skipped: string[];
68
68
  }
69
69
  export declare function ingestPaths(paths: string[], cwd?: string): IngestResult;
70
+ /**
71
+ * The inventory as a document — what `ingest --json` and the MCP tool both emit.
72
+ *
73
+ * One composer, because the terminal's report and an agent's payload describe the
74
+ * same scan: two of them would drift, and the one nobody reads is the one that
75
+ * goes wrong. The terminal keeps its own prose *around* these numbers; it does not
76
+ * compute different ones.
77
+ */
78
+ export interface InventoryReport {
79
+ scanned: number;
80
+ filesMatched: number;
81
+ selectors: {
82
+ distinct: number;
83
+ references: number;
84
+ };
85
+ names: {
86
+ distinct: number;
87
+ references: number;
88
+ shapes: string[];
89
+ frameworks: string[];
90
+ };
91
+ /**
92
+ * Every selector with nothing anchoring it to its element, most-used first.
93
+ *
94
+ * The hardening backlog: the next inserted sibling moves each of these, so a
95
+ * `data-testid` here retires a drift that has not happened yet. Full list — the
96
+ * terminal truncates to five, which is right for a report and wrong for a queue.
97
+ */
98
+ positionalSelectors: Array<{
99
+ selector: string;
100
+ count: number;
101
+ }>;
102
+ note: string;
103
+ }
104
+ export declare function buildInventoryReport(usage: Usage): InventoryReport;
70
105
  export declare function saveUsage(usage: Usage, cwd?: string): string;
71
106
  export declare function loadUsage(cwd?: string): Usage | null;
72
107
  /**
package/dist/ingest.js CHANGED
@@ -38,6 +38,7 @@ exports.usagePath = usagePath;
38
38
  exports.plausibleSelector = plausibleSelector;
39
39
  exports.scanText = scanText;
40
40
  exports.ingestPaths = ingestPaths;
41
+ exports.buildInventoryReport = buildInventoryReport;
41
42
  exports.saveUsage = saveUsage;
42
43
  exports.loadUsage = loadUsage;
43
44
  exports.usageFiles = usageFiles;
@@ -46,6 +47,7 @@ const path = __importStar(require("path"));
46
47
  const config_1 = require("./config");
47
48
  const fixEngine_1 = require("./fixEngine");
48
49
  const nameLocators_1 = require("./nameLocators");
50
+ const match_1 = require("./browser/match");
49
51
  exports.USAGE_FILENAME = 'usage.json';
50
52
  /**
51
53
  * Every root below defaults to `baseDir()`, never `process.cwd()` — the inventory is
@@ -220,6 +222,36 @@ function ingestPaths(paths, cwd = (0, config_1.baseDir)()) {
220
222
  skipped,
221
223
  };
222
224
  }
225
+ function buildInventoryReport(usage) {
226
+ const selectors = Object.keys(usage.selectors);
227
+ const names = Object.keys(usage.names ?? {});
228
+ const shapes = Array.from(new Set(Object.values(usage.names ?? {}).flatMap((s) => s.map((x) => x.shape))));
229
+ const filesWithHits = new Set([
230
+ ...Object.values(usage.selectors).flatMap((sites) => sites.map((s) => s.file)),
231
+ ...Object.values(usage.names ?? {}).flatMap((sites) => sites.map((s) => s.file)),
232
+ ]);
233
+ return {
234
+ scanned: usage.scanned,
235
+ filesMatched: filesWithHits.size,
236
+ selectors: {
237
+ distinct: selectors.length,
238
+ references: Object.values(usage.selectors).reduce((s, sites) => s + sites.length, 0),
239
+ },
240
+ names: {
241
+ distinct: names.length,
242
+ references: Object.values(usage.names ?? {}).reduce((s, sites) => s + sites.length, 0),
243
+ shapes,
244
+ frameworks: Array.from(new Set(shapes.map((s) => (s.startsWith('playwright') ? 'Playwright' : s.startsWith('cypress') ? 'Cypress' : 'Selenium')))),
245
+ },
246
+ positionalSelectors: selectors
247
+ .filter((s) => !(0, match_1.isIdentitySelector)(s))
248
+ .map((s) => ({ selector: s, count: usage.selectors[s].length }))
249
+ .sort((a, b) => b.count - a.count),
250
+ note: 'Locators built dynamically (variables, concatenation, ${…}) are invisible to this static scan — ' +
251
+ 'and to `fix` too, so an empty inventory means "not measurable", never "not used". ' +
252
+ 'positionalSelectors is the hardening backlog: a data-testid on those elements retires the risk.',
253
+ };
254
+ }
223
255
  function saveUsage(usage, cwd = (0, config_1.baseDir)()) {
224
256
  const file = usagePath(cwd);
225
257
  fs.mkdirSync(path.dirname(file), { recursive: true });
@@ -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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"}
@@ -1,2 +1,371 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ declare const TOOLS: ({
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: string;
7
+ properties: {
8
+ url: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ page_name: {
13
+ type: string;
14
+ description: string;
15
+ };
16
+ out_dir: {
17
+ type: string;
18
+ description: string;
19
+ };
20
+ wait_for_selector: {
21
+ type: string;
22
+ description: string;
23
+ };
24
+ wait_until: {
25
+ type: string;
26
+ enum: string[];
27
+ description: string;
28
+ };
29
+ browser_channel: {
30
+ type: string;
31
+ description: string;
32
+ };
33
+ browser_path: {
34
+ type: string;
35
+ description: string;
36
+ };
37
+ locale: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ before_path?: undefined;
42
+ after_path?: undefined;
43
+ before_json?: undefined;
44
+ after_json?: undefined;
45
+ test_paths?: undefined;
46
+ dry_run?: undefined;
47
+ use_locators?: undefined;
48
+ provider?: undefined;
49
+ model?: undefined;
50
+ api_key_env?: undefined;
51
+ min_confidence?: undefined;
52
+ write?: undefined;
53
+ offline?: undefined;
54
+ concurrency?: undefined;
55
+ limit?: undefined;
56
+ };
57
+ required: string[];
58
+ };
59
+ } | {
60
+ name: string;
61
+ description: string;
62
+ inputSchema: {
63
+ type: string;
64
+ properties: {
65
+ before_path: {
66
+ type: string;
67
+ description: string;
68
+ };
69
+ after_path: {
70
+ type: string;
71
+ description: string;
72
+ };
73
+ before_json: {
74
+ type: string;
75
+ description: string;
76
+ };
77
+ after_json: {
78
+ type: string;
79
+ description: string;
80
+ };
81
+ url?: undefined;
82
+ page_name?: undefined;
83
+ out_dir?: undefined;
84
+ wait_for_selector?: undefined;
85
+ wait_until?: undefined;
86
+ browser_channel?: undefined;
87
+ browser_path?: undefined;
88
+ locale?: undefined;
89
+ test_paths?: undefined;
90
+ dry_run?: undefined;
91
+ use_locators?: undefined;
92
+ provider?: undefined;
93
+ model?: undefined;
94
+ api_key_env?: undefined;
95
+ min_confidence?: undefined;
96
+ write?: undefined;
97
+ offline?: undefined;
98
+ concurrency?: undefined;
99
+ limit?: undefined;
100
+ };
101
+ required?: undefined;
102
+ };
103
+ } | {
104
+ name: string;
105
+ description: string;
106
+ inputSchema: {
107
+ type: string;
108
+ properties: {
109
+ before_path: {
110
+ type: string;
111
+ description: string;
112
+ };
113
+ after_path: {
114
+ type: string;
115
+ description: string;
116
+ };
117
+ before_json: {
118
+ type: string;
119
+ description: string;
120
+ };
121
+ after_json: {
122
+ type: string;
123
+ description: string;
124
+ };
125
+ test_paths: {
126
+ type: string;
127
+ items: {
128
+ type: string;
129
+ };
130
+ description: string;
131
+ };
132
+ dry_run: {
133
+ type: string;
134
+ description: string;
135
+ };
136
+ use_locators: {
137
+ type: string;
138
+ description: string;
139
+ };
140
+ url?: undefined;
141
+ page_name?: undefined;
142
+ out_dir?: undefined;
143
+ wait_for_selector?: undefined;
144
+ wait_until?: undefined;
145
+ browser_channel?: undefined;
146
+ browser_path?: undefined;
147
+ locale?: undefined;
148
+ provider?: undefined;
149
+ model?: undefined;
150
+ api_key_env?: undefined;
151
+ min_confidence?: undefined;
152
+ write?: undefined;
153
+ offline?: undefined;
154
+ concurrency?: undefined;
155
+ limit?: undefined;
156
+ };
157
+ required: string[];
158
+ };
159
+ } | {
160
+ name: string;
161
+ description: string;
162
+ inputSchema: {
163
+ type: string;
164
+ properties: {
165
+ before_path: {
166
+ type: string;
167
+ description: string;
168
+ };
169
+ after_path: {
170
+ type: string;
171
+ description: string;
172
+ };
173
+ before_json: {
174
+ type: string;
175
+ description: string;
176
+ };
177
+ after_json: {
178
+ type: string;
179
+ description: string;
180
+ };
181
+ provider: {
182
+ type: string;
183
+ enum: string[];
184
+ description: string;
185
+ };
186
+ model: {
187
+ type: string;
188
+ description: string;
189
+ };
190
+ api_key_env: {
191
+ type: string;
192
+ description: string;
193
+ };
194
+ min_confidence: {
195
+ type: string;
196
+ description: string;
197
+ };
198
+ url?: undefined;
199
+ page_name?: undefined;
200
+ out_dir?: undefined;
201
+ wait_for_selector?: undefined;
202
+ wait_until?: undefined;
203
+ browser_channel?: undefined;
204
+ browser_path?: undefined;
205
+ locale?: undefined;
206
+ test_paths?: undefined;
207
+ dry_run?: undefined;
208
+ use_locators?: undefined;
209
+ write?: undefined;
210
+ offline?: undefined;
211
+ concurrency?: undefined;
212
+ limit?: undefined;
213
+ };
214
+ required: string[];
215
+ };
216
+ } | {
217
+ name: string;
218
+ description: string;
219
+ inputSchema: {
220
+ type: string;
221
+ properties: {
222
+ test_paths: {
223
+ type: string;
224
+ items: {
225
+ type: string;
226
+ };
227
+ description: string;
228
+ };
229
+ write: {
230
+ type: string;
231
+ description: string;
232
+ };
233
+ url?: undefined;
234
+ page_name?: undefined;
235
+ out_dir?: undefined;
236
+ wait_for_selector?: undefined;
237
+ wait_until?: undefined;
238
+ browser_channel?: undefined;
239
+ browser_path?: undefined;
240
+ locale?: undefined;
241
+ before_path?: undefined;
242
+ after_path?: undefined;
243
+ before_json?: undefined;
244
+ after_json?: undefined;
245
+ dry_run?: undefined;
246
+ use_locators?: undefined;
247
+ provider?: undefined;
248
+ model?: undefined;
249
+ api_key_env?: undefined;
250
+ min_confidence?: undefined;
251
+ offline?: undefined;
252
+ concurrency?: undefined;
253
+ limit?: undefined;
254
+ };
255
+ required?: undefined;
256
+ };
257
+ } | {
258
+ name: string;
259
+ description: string;
260
+ inputSchema: {
261
+ type: string;
262
+ properties: {
263
+ test_paths: {
264
+ type: string;
265
+ items: {
266
+ type: string;
267
+ };
268
+ description: string;
269
+ };
270
+ url?: undefined;
271
+ page_name?: undefined;
272
+ out_dir?: undefined;
273
+ wait_for_selector?: undefined;
274
+ wait_until?: undefined;
275
+ browser_channel?: undefined;
276
+ browser_path?: undefined;
277
+ locale?: undefined;
278
+ before_path?: undefined;
279
+ after_path?: undefined;
280
+ before_json?: undefined;
281
+ after_json?: undefined;
282
+ dry_run?: undefined;
283
+ use_locators?: undefined;
284
+ provider?: undefined;
285
+ model?: undefined;
286
+ api_key_env?: undefined;
287
+ min_confidence?: undefined;
288
+ write?: undefined;
289
+ offline?: undefined;
290
+ concurrency?: undefined;
291
+ limit?: undefined;
292
+ };
293
+ required?: undefined;
294
+ };
295
+ } | {
296
+ name: string;
297
+ description: string;
298
+ inputSchema: {
299
+ type: string;
300
+ properties: {
301
+ offline: {
302
+ type: string;
303
+ description: string;
304
+ };
305
+ concurrency: {
306
+ type: string;
307
+ description: string;
308
+ };
309
+ url?: undefined;
310
+ page_name?: undefined;
311
+ out_dir?: undefined;
312
+ wait_for_selector?: undefined;
313
+ wait_until?: undefined;
314
+ browser_channel?: undefined;
315
+ browser_path?: undefined;
316
+ locale?: undefined;
317
+ before_path?: undefined;
318
+ after_path?: undefined;
319
+ before_json?: undefined;
320
+ after_json?: undefined;
321
+ test_paths?: undefined;
322
+ dry_run?: undefined;
323
+ use_locators?: undefined;
324
+ provider?: undefined;
325
+ model?: undefined;
326
+ api_key_env?: undefined;
327
+ min_confidence?: undefined;
328
+ write?: undefined;
329
+ limit?: undefined;
330
+ };
331
+ required?: undefined;
332
+ };
333
+ } | {
334
+ name: string;
335
+ description: string;
336
+ inputSchema: {
337
+ type: string;
338
+ properties: {
339
+ limit: {
340
+ type: string;
341
+ description: string;
342
+ };
343
+ url?: undefined;
344
+ page_name?: undefined;
345
+ out_dir?: undefined;
346
+ wait_for_selector?: undefined;
347
+ wait_until?: undefined;
348
+ browser_channel?: undefined;
349
+ browser_path?: undefined;
350
+ locale?: undefined;
351
+ before_path?: undefined;
352
+ after_path?: undefined;
353
+ before_json?: undefined;
354
+ after_json?: undefined;
355
+ test_paths?: undefined;
356
+ dry_run?: undefined;
357
+ use_locators?: undefined;
358
+ provider?: undefined;
359
+ model?: undefined;
360
+ api_key_env?: undefined;
361
+ min_confidence?: undefined;
362
+ write?: undefined;
363
+ offline?: undefined;
364
+ concurrency?: undefined;
365
+ };
366
+ required?: undefined;
367
+ };
368
+ })[];
369
+ export declare function callTool(name: string, args: any): Promise<string>;
370
+ declare function main(): void;
371
+ export { TOOLS, main };