@ia-qa/pal 0.2.0 → 0.3.0
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/README.md +38 -10
- package/TUTORIAL.md +95 -14
- package/dist/cli/index.js +71 -18
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +89 -0
- package/dist/mcp/server.js +250 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/plan.d.ts +2 -0
- package/dist/plan.js +2 -0
- package/dist/plan.js.map +1 -1
- package/dist/report.js +70 -20
- package/dist/report.js.map +1 -1
- package/dist/run.d.ts +65 -0
- package/dist/run.js +171 -0
- package/dist/run.js.map +1 -0
- package/dist/setup.d.ts +11 -0
- package/dist/setup.js +52 -4
- package/dist/setup.js.map +1 -1
- package/dist/state.d.ts +3 -0
- package/dist/state.js.map +1 -1
- package/dist/suite.d.ts +63 -0
- package/dist/suite.js +145 -0
- package/dist/suite.js.map +1 -0
- package/dist/tour.d.ts +39 -5
- package/dist/tour.js +92 -26
- package/dist/tour.js.map +1 -1
- package/package.json +4 -3
package/dist/tour.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { DirReport } from '@ia-qa/self-healing';
|
|
2
2
|
import type { Estimate, CheckSplit } from './plan';
|
|
3
|
+
import { CAPTURE_IMPORT } from './suite';
|
|
4
|
+
import type { SuiteInventory, RepairPlan, SuiteRun } from './suite';
|
|
3
5
|
export interface TourOptions {
|
|
4
6
|
/** Project directory holding `.ia-qa/`. Default: the current directory. */
|
|
5
7
|
dir?: string;
|
|
@@ -7,16 +9,26 @@ export interface TourOptions {
|
|
|
7
9
|
batch?: number;
|
|
8
10
|
/** Explore the next batch in depth instead of running a regression tour. */
|
|
9
11
|
more?: boolean;
|
|
12
|
+
/** Run the test suite from config.json with the capture hook, to learn which pages it visits. */
|
|
13
|
+
suite?: boolean;
|
|
10
14
|
session?: string;
|
|
11
15
|
/** Where progress goes. Never stdout: stdout is the report. */
|
|
12
16
|
onProgress?: (line: string) => void;
|
|
17
|
+
/** Machine-readable progress: which phase, how far. */
|
|
18
|
+
onEvent?: (event: TourEvent) => void;
|
|
19
|
+
}
|
|
20
|
+
export interface TourEvent {
|
|
21
|
+
phase: 'surface' | 'depth' | 'recapture' | 'check' | 'suite' | 'repairs' | 'done';
|
|
22
|
+
done?: number;
|
|
23
|
+
total?: number;
|
|
24
|
+
page?: string;
|
|
13
25
|
}
|
|
14
26
|
export interface TourResult {
|
|
15
27
|
schema: 'ia-qa-pal/tour@1';
|
|
16
28
|
mode: 'first' | 'regression' | 'explore';
|
|
17
29
|
baseUrl: string;
|
|
18
|
-
/** 0 = public pages only, 1 = a session or a login is configured. */
|
|
19
|
-
level: 0 | 1;
|
|
30
|
+
/** 0 = public pages only, 1 = a session or a login is configured, 2 = the test suite is declared too. */
|
|
31
|
+
level: 0 | 1 | 2;
|
|
20
32
|
pages: {
|
|
21
33
|
configured: number;
|
|
22
34
|
underContract: number;
|
|
@@ -44,10 +56,31 @@ export interface TourResult {
|
|
|
44
56
|
}>;
|
|
45
57
|
staleExcluded: string[];
|
|
46
58
|
depthMismatch?: string;
|
|
59
|
+
/** Renamed labels the suite locates by name, and selectors of the suite that broke or now reach another element. */
|
|
60
|
+
suiteFindings?: {
|
|
61
|
+
names: number;
|
|
62
|
+
bindings: number;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
check: null | Omit<CheckSplit, 'keys'>;
|
|
66
|
+
suite: null | {
|
|
67
|
+
inventory: SuiteInventory;
|
|
68
|
+
repairs: RepairPlan | null;
|
|
69
|
+
/** Locator names the suite writes that nothing mapped carries, first seen this tour. Advisory. */
|
|
70
|
+
newDeadNames: Array<{
|
|
71
|
+
name: string;
|
|
72
|
+
sites: Array<{
|
|
73
|
+
file: string;
|
|
74
|
+
line: number;
|
|
75
|
+
}>;
|
|
76
|
+
}>;
|
|
77
|
+
knownDeadNames: number;
|
|
78
|
+
/** The latest `--suite` run — this tour's, or an earlier one, with its date. */
|
|
79
|
+
run: SuiteRun | null;
|
|
80
|
+
ranThisTour: boolean;
|
|
81
|
+
/** Configured pages the suite did not visit in that run. Null: not measured. */
|
|
82
|
+
notVisited: string[] | null;
|
|
47
83
|
};
|
|
48
|
-
check: null | (Omit<CheckSplit, 'keys'> & {
|
|
49
|
-
refused?: string;
|
|
50
|
-
});
|
|
51
84
|
estimate: Estimate | null;
|
|
52
85
|
/** Set when the tour declined to run, with the reason. */
|
|
53
86
|
refused?: string;
|
|
@@ -60,3 +93,4 @@ export interface TourResult {
|
|
|
60
93
|
durationMs: number;
|
|
61
94
|
}
|
|
62
95
|
export declare function runTour(opts?: TourOptions): Promise<TourResult>;
|
|
96
|
+
export { CAPTURE_IMPORT };
|
package/dist/tour.js
CHANGED
|
@@ -33,12 +33,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CAPTURE_IMPORT = void 0;
|
|
36
37
|
exports.runTour = runTour;
|
|
37
38
|
const fs = __importStar(require("fs"));
|
|
38
39
|
const path = __importStar(require("path"));
|
|
39
40
|
const self_healing_1 = require("@ia-qa/self-healing");
|
|
40
41
|
const plan_1 = require("./plan");
|
|
41
42
|
const state_1 = require("./state");
|
|
43
|
+
const suite_1 = require("./suite");
|
|
44
|
+
Object.defineProperty(exports, "CAPTURE_IMPORT", { enumerable: true, get: function () { return suite_1.CAPTURE_IMPORT; } });
|
|
42
45
|
const EMPTY_MAP = { mapped: 0, attempted: 0, failed: [], pages: [] };
|
|
43
46
|
/**
|
|
44
47
|
* The verbs print, and a tour's stdout belongs to its report. Everything they say is kept —
|
|
@@ -100,32 +103,37 @@ function recordPages(state, runs) {
|
|
|
100
103
|
}
|
|
101
104
|
state.pace = pace;
|
|
102
105
|
}
|
|
106
|
+
function notSetUp(started) {
|
|
107
|
+
return {
|
|
108
|
+
schema: 'ia-qa-pal/tour@1',
|
|
109
|
+
mode: 'first',
|
|
110
|
+
baseUrl: '',
|
|
111
|
+
level: 0,
|
|
112
|
+
pages: { configured: 0, underContract: 0, explored: 0, notExplored: [], exploredThisTour: [], partlyExplored: [], notMapped: [], notInBaseline: [] },
|
|
113
|
+
drift: null,
|
|
114
|
+
check: null,
|
|
115
|
+
suite: null,
|
|
116
|
+
estimate: null,
|
|
117
|
+
refused: 'This project is not set up yet — there is no .ia-qa/config.json.',
|
|
118
|
+
setupRequired: { missing: ['url', 'login'], command: 'ia-qa-pal setup --url https://your-app.example --login none --yes' },
|
|
119
|
+
exitCode: 2,
|
|
120
|
+
durationMs: Date.now() - started,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
103
123
|
async function runTour(opts = {}) {
|
|
104
124
|
const started = Date.now();
|
|
105
125
|
const progress = opts.onProgress ?? ((line) => console.error(line));
|
|
126
|
+
const emit = opts.onEvent ?? (() => undefined);
|
|
106
127
|
const dir = path.resolve(opts.dir ?? process.cwd());
|
|
107
128
|
(0, self_healing_1.setBaseDir)(dir);
|
|
108
|
-
if (!fs.existsSync(path.join(dir, '.ia-qa', 'config.json')))
|
|
109
|
-
return
|
|
110
|
-
schema: 'ia-qa-pal/tour@1',
|
|
111
|
-
mode: 'first',
|
|
112
|
-
baseUrl: '',
|
|
113
|
-
level: 0,
|
|
114
|
-
pages: { configured: 0, underContract: 0, explored: 0, notExplored: [], exploredThisTour: [], partlyExplored: [], notMapped: [], notInBaseline: [] },
|
|
115
|
-
drift: null,
|
|
116
|
-
check: null,
|
|
117
|
-
estimate: null,
|
|
118
|
-
refused: 'This project is not set up yet — there is no .ia-qa/config.json.',
|
|
119
|
-
setupRequired: { missing: ['url', 'login'], command: 'ia-qa-pal setup --url https://your-app.example --login none --yes' },
|
|
120
|
-
exitCode: 2,
|
|
121
|
-
durationMs: Date.now() - started,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
129
|
+
if (!fs.existsSync(path.join(dir, '.ia-qa', 'config.json')))
|
|
130
|
+
return notSetUp(started);
|
|
124
131
|
const config = (0, self_healing_1.loadConfig)();
|
|
125
132
|
const names = config.pages.map((p) => p.name);
|
|
126
133
|
const state = (0, state_1.loadState)();
|
|
127
134
|
const size = opts.batch ?? plan_1.DEFAULT_BATCH;
|
|
128
135
|
const session = opts.session;
|
|
136
|
+
const hasSuite = (config.testPaths ?? []).length > 0;
|
|
129
137
|
const host = (() => {
|
|
130
138
|
try {
|
|
131
139
|
return new URL(config.baseUrl).host;
|
|
@@ -140,16 +148,18 @@ async function runTour(opts = {}) {
|
|
|
140
148
|
schema: 'ia-qa-pal/tour@1',
|
|
141
149
|
mode,
|
|
142
150
|
baseUrl: config.baseUrl,
|
|
143
|
-
level: hasLogin(config, session, dir) ? 1 : 0,
|
|
151
|
+
level: hasSuite ? 2 : hasLogin(config, session, dir) ? 1 : 0,
|
|
144
152
|
pages: { configured: names.length, underContract: 0, explored: 0, notExplored: [], exploredThisTour: [], partlyExplored: [], notMapped: [], notInBaseline: [] },
|
|
145
153
|
drift: null,
|
|
146
154
|
check: null,
|
|
155
|
+
suite: null,
|
|
147
156
|
estimate: null,
|
|
148
157
|
exitCode: 0,
|
|
149
158
|
durationMs: 0,
|
|
150
159
|
};
|
|
151
160
|
const finish = () => {
|
|
152
161
|
result.durationMs = Date.now() - started;
|
|
162
|
+
emit({ phase: 'done' });
|
|
153
163
|
return result;
|
|
154
164
|
};
|
|
155
165
|
if (mode === 'explore') {
|
|
@@ -166,16 +176,28 @@ async function runTour(opts = {}) {
|
|
|
166
176
|
}
|
|
167
177
|
}
|
|
168
178
|
progress(`🌐 ${host} · ${names.length} configured pages. Only this app is opened (its pages load what they load in any browser); exploration blocks every non-GET request.`);
|
|
179
|
+
// Read before any capture: `map` binds the suite's selectors only when the inventory exists,
|
|
180
|
+
// and `diff` escalates renames the suite locates by name only when it can see them.
|
|
181
|
+
const suiteInventory = hasSuite && mode !== 'explore' ? (0, suite_1.inventory)(dir, config) : null;
|
|
182
|
+
if (suiteInventory) {
|
|
183
|
+
progress(`📇 Your suite: ${suiteInventory.filesScanned} files, ${suiteInventory.selectors} selectors and ${suiteInventory.names} names used as locators.`);
|
|
184
|
+
}
|
|
185
|
+
const mapWith = (phase, pages, extra = {}) => toStderr(() => (0, self_healing_1.runMap)(undefined, {
|
|
186
|
+
pages,
|
|
187
|
+
session,
|
|
188
|
+
...extra,
|
|
189
|
+
onPage: (e) => emit({ phase, done: e.done, total: e.total, page: e.stat?.page ?? e.failure?.page }),
|
|
190
|
+
}));
|
|
169
191
|
let runs = [];
|
|
170
192
|
let measured = 0;
|
|
171
193
|
if (mode === 'first') {
|
|
172
194
|
progress(`🗺 Surface: every page, no clicks…`);
|
|
173
|
-
const surface = await
|
|
195
|
+
const surface = await mapWith('surface', names);
|
|
174
196
|
recordPages(state, [surface]);
|
|
175
197
|
const mapped = surface.pages.map((p) => p.page);
|
|
176
198
|
const batch = (0, plan_1.selectBatch)(mapped, new Set(), state.openables, size);
|
|
177
199
|
progress(`🔍 Depth: ${batch.length} page${batch.length === 1 ? '' : 's'} with closed controls…`);
|
|
178
|
-
const deep = batch.length > 0 ? await
|
|
200
|
+
const deep = batch.length > 0 ? await mapWith('depth', batch, { deep: 1 }) : EMPTY_MAP;
|
|
179
201
|
recordPages(state, [deep]);
|
|
180
202
|
await promote(mapped);
|
|
181
203
|
runs = [surface, deep];
|
|
@@ -188,7 +210,7 @@ async function runTour(opts = {}) {
|
|
|
188
210
|
depths.set(before.get(n), [...(depths.get(before.get(n)) ?? []), n]);
|
|
189
211
|
for (const [depth, pages] of [...depths.entries()].sort((a, b) => a[0] - b[0])) {
|
|
190
212
|
progress(`🗺 Re-capturing ${pages.length} page${pages.length === 1 ? '' : 's'} ${depth > 0 ? `at depth ${depth}` : 'on the surface'}, as in the baseline…`);
|
|
191
|
-
const run = await
|
|
213
|
+
const run = await mapWith('recapture', pages, depth > 0 ? { deep: depth } : {});
|
|
192
214
|
runs.push(run);
|
|
193
215
|
measured += run.mapped;
|
|
194
216
|
}
|
|
@@ -203,6 +225,7 @@ async function runTour(opts = {}) {
|
|
|
203
225
|
.map((p) => ({ page: p.name, lost: p.counts.lost, ambiguous: p.counts.ambiguous, rebound: p.counts.rebound })),
|
|
204
226
|
staleExcluded: aggregate.staleExcluded ?? [],
|
|
205
227
|
...(aggregate.depthMismatch ? { depthMismatch: aggregate.depthMismatch.why } : {}),
|
|
228
|
+
...(suiteInventory ? { suiteFindings: { names: aggregate.nameDrift?.length ?? 0, bindings: aggregate.bindingDrift?.length ?? 0 } } : {}),
|
|
206
229
|
};
|
|
207
230
|
state.lastVerdict = aggregate.verdict;
|
|
208
231
|
}
|
|
@@ -212,7 +235,7 @@ async function runTour(opts = {}) {
|
|
|
212
235
|
const batch = (0, plan_1.selectBatch)(names.filter((n) => before.has(n)), explored, state.openables, size);
|
|
213
236
|
if (batch.length > 0) {
|
|
214
237
|
progress(`🔍 Depth: ${batch.length} more page${batch.length === 1 ? '' : 's'}…`);
|
|
215
|
-
const deep = await
|
|
238
|
+
const deep = await mapWith('depth', batch, { deep: 1 });
|
|
216
239
|
recordPages(state, [deep]);
|
|
217
240
|
await promote(deep.pages.map((p) => p.page));
|
|
218
241
|
runs = [deep];
|
|
@@ -222,17 +245,55 @@ async function runTour(opts = {}) {
|
|
|
222
245
|
measured = before.size;
|
|
223
246
|
}
|
|
224
247
|
}
|
|
248
|
+
const known = new Set(state.knownFindings);
|
|
249
|
+
const nextKnown = [];
|
|
225
250
|
if (mode !== 'explore') {
|
|
251
|
+
emit({ phase: 'check' });
|
|
226
252
|
const outcome = await toStderr(() => (0, self_healing_1.checkProject)({ onNotice: progress }));
|
|
227
253
|
if (outcome.ok) {
|
|
228
|
-
const { keys, ...split } = (0, plan_1.splitFindings)(outcome.report,
|
|
254
|
+
const { keys, ...split } = (0, plan_1.splitFindings)(outcome.report, known);
|
|
229
255
|
result.check = split;
|
|
230
|
-
|
|
256
|
+
nextKnown.push(...keys);
|
|
231
257
|
}
|
|
232
|
-
|
|
233
|
-
|
|
258
|
+
}
|
|
259
|
+
if (suiteInventory) {
|
|
260
|
+
let run = state.suite ?? null;
|
|
261
|
+
let ranThisTour = false;
|
|
262
|
+
if (opts.suite) {
|
|
263
|
+
if (config.testCommand) {
|
|
264
|
+
emit({ phase: 'suite' });
|
|
265
|
+
progress(`▶ Running your test command from .ia-qa/config.json, with the capture hook armed: ${config.testCommand}`);
|
|
266
|
+
run = await (0, suite_1.runSuite)(dir, config, (chunk) => process.stderr.write(chunk));
|
|
267
|
+
ranThisTour = true;
|
|
268
|
+
if (run)
|
|
269
|
+
state.suite = run;
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
progress('⚠ --suite: config.json has no "testCommand" — nothing to run.');
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
let repairs = null;
|
|
276
|
+
const drift = result.drift;
|
|
277
|
+
if (drift && (drift.totals.healable > 0 || drift.totals.renamed > 0 || (drift.suiteFindings?.bindings ?? 0) > 0)) {
|
|
278
|
+
emit({ phase: 'repairs' });
|
|
279
|
+
repairs = await toStderr(() => (0, suite_1.repairPlan)(dir));
|
|
234
280
|
}
|
|
281
|
+
const audit = await toStderr(() => (0, suite_1.auditSuite)(dir, config));
|
|
282
|
+
const dead = audit?.deadNames ?? [];
|
|
283
|
+
const key = (name) => `deadname ${name.trim().toLowerCase()}`;
|
|
284
|
+
nextKnown.push(...dead.map((d) => key(d.name)));
|
|
285
|
+
result.suite = {
|
|
286
|
+
inventory: suiteInventory,
|
|
287
|
+
repairs,
|
|
288
|
+
newDeadNames: dead.filter((d) => !known.has(key(d.name))),
|
|
289
|
+
knownDeadNames: dead.filter((d) => known.has(key(d.name))).length,
|
|
290
|
+
run,
|
|
291
|
+
ranThisTour,
|
|
292
|
+
notVisited: run?.visited ? names.filter((n) => !run.visited.includes(n)) : null,
|
|
293
|
+
};
|
|
235
294
|
}
|
|
295
|
+
if (mode !== 'explore')
|
|
296
|
+
state.knownFindings = nextKnown;
|
|
236
297
|
const after = baselineDepths(names);
|
|
237
298
|
const exploredNow = new Set([...after.entries()].filter(([, d]) => d > 0).map(([n]) => n));
|
|
238
299
|
result.pages.underContract = after.size;
|
|
@@ -243,7 +304,12 @@ async function runTour(opts = {}) {
|
|
|
243
304
|
result.pages.partlyExplored = runs.flatMap((r) => r.pages).filter((p) => p.truncated).map((p) => p.page);
|
|
244
305
|
result.pages.notMapped = runs.flatMap((r) => r.failed).map((f) => ({ page: f.page, url: f.url, reason: f.error }));
|
|
245
306
|
result.estimate = (0, plan_1.estimate)(result.pages.notExplored, state.openables, state.pace);
|
|
246
|
-
result.exitCode = (0, plan_1.exitCodeFor)({
|
|
307
|
+
result.exitCode = (0, plan_1.exitCodeFor)({
|
|
308
|
+
measured,
|
|
309
|
+
drift: result.drift,
|
|
310
|
+
deadLinks: result.check?.deadLinks.length ?? 0,
|
|
311
|
+
suiteFailed: !!(result.suite?.ranThisTour && result.suite.run && result.suite.run.exitCode !== 0),
|
|
312
|
+
});
|
|
247
313
|
(0, state_1.saveState)(state);
|
|
248
314
|
return finish();
|
|
249
315
|
}
|
package/dist/tour.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tour.js","sourceRoot":"","sources":["../src/tour.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tour.js","sourceRoot":"","sources":["../src/tour.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ia-qa/pal",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A QA pal next to your team: one command walks your web app, maps it, checks it and diffs it against yesterday, then reports what broke, what needs a decision and what it could not see. Local, deterministic, no LLM.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"qa",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"./package.json": "./package.json"
|
|
25
25
|
},
|
|
26
26
|
"bin": {
|
|
27
|
-
"ia-qa-pal": "dist/cli/index.js"
|
|
27
|
+
"ia-qa-pal": "dist/cli/index.js",
|
|
28
|
+
"ia-qa-pal-mcp": "dist/mcp/server.js"
|
|
28
29
|
},
|
|
29
30
|
"files": [
|
|
30
31
|
"dist",
|
|
@@ -40,7 +41,7 @@
|
|
|
40
41
|
"node": ">=18.0.0"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
|
-
"@ia-qa/self-healing": "^1.
|
|
44
|
+
"@ia-qa/self-healing": "^1.12.0"
|
|
44
45
|
},
|
|
45
46
|
"peerDependencies": {
|
|
46
47
|
"playwright": ">=1.40.0"
|