@jevitate/cli 0.22.0 → 0.23.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/dist/bin.js +246 -86
- package/dist/build-info.generated.js +3 -3
- package/dist/log-correlation.js +10 -2
- package/dist/log-correlation.js.map +1 -1
- package/package.json +10 -10
package/dist/bin.js
CHANGED
|
@@ -35260,9 +35260,9 @@ async function confineFixture(raw, root2) {
|
|
|
35260
35260
|
}
|
|
35261
35261
|
if (!isFile)
|
|
35262
35262
|
throw fixtureNotFound(candidate, root2);
|
|
35263
|
-
const
|
|
35264
|
-
if (
|
|
35265
|
-
throw fixtureSensitive(candidate, root2,
|
|
35263
|
+
const sensitive2 = fixtureSensitiveReason(real, realRoot) ?? (isInsideRoot(candidate, resolve3(root2)) ? fixtureSensitiveReason(candidate, resolve3(root2)) : null);
|
|
35264
|
+
if (sensitive2 !== null)
|
|
35265
|
+
throw fixtureSensitive(candidate, root2, sensitive2);
|
|
35266
35266
|
return real;
|
|
35267
35267
|
}
|
|
35268
35268
|
function fixtureEscapesRoot(raw, root2) {
|
|
@@ -39592,6 +39592,59 @@ async function clockBounded(work, ms, onTimeout) {
|
|
|
39592
39592
|
}
|
|
39593
39593
|
}
|
|
39594
39594
|
|
|
39595
|
+
// ../explore/dist/request-body-values.js
|
|
39596
|
+
var MIN_VALUE_CHARS = 3;
|
|
39597
|
+
var MAX_VALUES = 50;
|
|
39598
|
+
var MAX_BODY_CHARS = 64e3;
|
|
39599
|
+
var SENSITIVE_WORDS = /* @__PURE__ */ new Set(["pass", "password", "passwd", "pwd", "secret", "token", "auth", "authorization", "apikey", "key", "otp", "pin", "cvv", "cvc", "card", "ssn", "session", "cookie", "signature", "credential", "credentials"]);
|
|
39600
|
+
function sensitive(key2) {
|
|
39601
|
+
return key2.split(/[^A-Za-z0-9]+|(?<=[a-z0-9])(?=[A-Z])/).some((w) => SENSITIVE_WORDS.has(w.toLowerCase()));
|
|
39602
|
+
}
|
|
39603
|
+
function keep(out, key2, value) {
|
|
39604
|
+
if (out.length >= MAX_VALUES)
|
|
39605
|
+
return;
|
|
39606
|
+
if (key2 !== null && sensitive(key2))
|
|
39607
|
+
return;
|
|
39608
|
+
const v = value.replace(/\s+/g, " ").trim();
|
|
39609
|
+
if (v.length >= MIN_VALUE_CHARS)
|
|
39610
|
+
out.push(v);
|
|
39611
|
+
}
|
|
39612
|
+
function walk(out, key2, node2) {
|
|
39613
|
+
if (out.length >= MAX_VALUES)
|
|
39614
|
+
return;
|
|
39615
|
+
if (typeof node2 === "string")
|
|
39616
|
+
keep(out, key2, node2);
|
|
39617
|
+
else if (Array.isArray(node2))
|
|
39618
|
+
for (const item of node2)
|
|
39619
|
+
walk(out, key2, item);
|
|
39620
|
+
else if (node2 !== null && typeof node2 === "object") {
|
|
39621
|
+
for (const [k, v] of Object.entries(node2)) {
|
|
39622
|
+
if (sensitive(k))
|
|
39623
|
+
continue;
|
|
39624
|
+
walk(out, k, v);
|
|
39625
|
+
}
|
|
39626
|
+
}
|
|
39627
|
+
}
|
|
39628
|
+
function bodyValues(body, contentType) {
|
|
39629
|
+
if (body === null || body === "" || body.length > MAX_BODY_CHARS)
|
|
39630
|
+
return [];
|
|
39631
|
+
const type = (contentType ?? "").toLowerCase();
|
|
39632
|
+
const out = [];
|
|
39633
|
+
if (type.includes("application/x-www-form-urlencoded")) {
|
|
39634
|
+
for (const [k, v] of new URLSearchParams(body))
|
|
39635
|
+
keep(out, k, v);
|
|
39636
|
+
return out;
|
|
39637
|
+
}
|
|
39638
|
+
if (type === "" || type.includes("json")) {
|
|
39639
|
+
try {
|
|
39640
|
+
walk(out, null, JSON.parse(body));
|
|
39641
|
+
} catch {
|
|
39642
|
+
return [];
|
|
39643
|
+
}
|
|
39644
|
+
}
|
|
39645
|
+
return out;
|
|
39646
|
+
}
|
|
39647
|
+
|
|
39595
39648
|
// ../explore/dist/page-monitor.js
|
|
39596
39649
|
var RPC_TRAILER_READ_MS = 2e3;
|
|
39597
39650
|
var INTERACTIVE_SELECTOR2 = "a[href],button,input:not([type=hidden]),select,textarea,[role=button],[role=link],[role=textbox],[role=checkbox],[role=combobox],[contenteditable=true]";
|
|
@@ -39797,6 +39850,8 @@ function pathOf3(url2) {
|
|
|
39797
39850
|
return url2.split(/[?#]/)[0] ?? url2;
|
|
39798
39851
|
}
|
|
39799
39852
|
}
|
|
39853
|
+
var BODY_METHODS = /* @__PURE__ */ new Set(["POST", "PUT", "PATCH"]);
|
|
39854
|
+
var MAX_WRITE_BODIES = 200;
|
|
39800
39855
|
function requestContentTypeOf(r) {
|
|
39801
39856
|
try {
|
|
39802
39857
|
const v = r.headers()["content-type"];
|
|
@@ -39809,6 +39864,8 @@ var RECENT_REQUESTS_MS = 6e4;
|
|
|
39809
39864
|
var PageMonitor = class {
|
|
39810
39865
|
#page;
|
|
39811
39866
|
#inflight = /* @__PURE__ */ new Map();
|
|
39867
|
+
/** #649: the string values recent writes sent in their bodies (memory only; never persisted). */
|
|
39868
|
+
#writeBodies = [];
|
|
39812
39869
|
#completed = [];
|
|
39813
39870
|
#wakers = /* @__PURE__ */ new Set();
|
|
39814
39871
|
#statuses = /* @__PURE__ */ new WeakMap();
|
|
@@ -39846,6 +39903,18 @@ var PageMonitor = class {
|
|
|
39846
39903
|
startedAt,
|
|
39847
39904
|
...requestContentType2 === void 0 ? {} : { requestContentType: requestContentType2 }
|
|
39848
39905
|
});
|
|
39906
|
+
if (BODY_METHODS.has(r.method().toUpperCase())) {
|
|
39907
|
+
let values2 = [];
|
|
39908
|
+
try {
|
|
39909
|
+
values2 = bodyValues(r.postData(), requestContentType2);
|
|
39910
|
+
} catch {
|
|
39911
|
+
}
|
|
39912
|
+
if (values2.length > 0) {
|
|
39913
|
+
this.#writeBodies.push({ startedAt, url: r.url(), values: values2 });
|
|
39914
|
+
if (this.#writeBodies.length > MAX_WRITE_BODIES)
|
|
39915
|
+
this.#writeBodies.shift();
|
|
39916
|
+
}
|
|
39917
|
+
}
|
|
39849
39918
|
for (const c of this.#captures) {
|
|
39850
39919
|
c.began(r, {
|
|
39851
39920
|
method: r.method().toUpperCase(),
|
|
@@ -40097,6 +40166,10 @@ var PageMonitor = class {
|
|
|
40097
40166
|
clock.clearTimeout(timer);
|
|
40098
40167
|
}
|
|
40099
40168
|
}
|
|
40169
|
+
/** #649: the string values the writes started since `sinceMs` sent, from URLs `keep` accepts. */
|
|
40170
|
+
writeBodyValuesSince(sinceMs, keep2) {
|
|
40171
|
+
return this.#writeBodies.filter((w) => w.startedAt >= sinceMs && keep2(w.url)).flatMap((w) => w.values);
|
|
40172
|
+
}
|
|
40100
40173
|
/** Requests that ended since `sinceMs` (wall clock). */
|
|
40101
40174
|
completedSince(sinceMs) {
|
|
40102
40175
|
return this.#completed.filter((r) => r.endedAt >= sinceMs);
|
|
@@ -41129,8 +41202,8 @@ function boundCandidates(candidates, opts) {
|
|
|
41129
41202
|
return s3;
|
|
41130
41203
|
};
|
|
41131
41204
|
const ranked = candidates.map((c, i) => ({ c, i, s: score2(c, i) })).sort((a, b2) => b2.s - a.s || a.i - b2.i).slice(0, Math.max(0, opts.limit));
|
|
41132
|
-
const
|
|
41133
|
-
return { kept: candidates.filter((_, i) =>
|
|
41205
|
+
const keep2 = new Set(ranked.map((r) => r.i));
|
|
41206
|
+
return { kept: candidates.filter((_, i) => keep2.has(i)), omitted: candidates.length - keep2.size };
|
|
41134
41207
|
}
|
|
41135
41208
|
|
|
41136
41209
|
// ../explore/dist/stuck-actions.js
|
|
@@ -41415,7 +41488,8 @@ var SideEffectGuard = class {
|
|
|
41415
41488
|
const own2 = requests.filter((r) => this.#ours(r));
|
|
41416
41489
|
const settled = !inflightAny && own2.every((r) => r.status !== null && r.status >= 200 && r.status < 300);
|
|
41417
41490
|
const completedOk = own2.length > 0 && settled;
|
|
41418
|
-
|
|
41491
|
+
const sentValues = this.#monitor.writeBodyValuesSince(o.at, (url2) => this.#ours({ url: url2 }));
|
|
41492
|
+
this.#lastClick = { requestSent: requests.length > 0 || inflightAny, writes: [...done, ...pending], completedOk, settled, sentValues };
|
|
41419
41493
|
if (done.length + pending.length === 0)
|
|
41420
41494
|
return;
|
|
41421
41495
|
this.#fired.set(o.key, {
|
|
@@ -41921,6 +41995,7 @@ var UnsubmittedTypeTracker = class {
|
|
|
41921
41995
|
var GOAL_MET_THRESHOLD = 0.75;
|
|
41922
41996
|
var GOAL_CHECK_TRIGGER = 0.5;
|
|
41923
41997
|
var WRITES_DONE_NOTE = "the job's writes succeeded; the page shows no change (repeat data?)";
|
|
41998
|
+
var READ_BACK_DONE_NOTE = "the job's writes succeeded and a page loaded from the server shows what they sent";
|
|
41924
41999
|
function groundDone(e) {
|
|
41925
42000
|
if (e.unsubmitted.length > 0) {
|
|
41926
42001
|
return { accept: false, reason: `typed text in ${e.unsubmitted.map((l2) => `"${l2}"`).join(", ")} was never submitted` };
|
|
@@ -41946,6 +42021,9 @@ function groundDone(e) {
|
|
|
41946
42021
|
if (w !== void 0 && writesAllSucceeded(w) && w.goalIsWrites !== null && w.goalIsWrites >= GOAL_MET_THRESHOLD) {
|
|
41947
42022
|
return { accept: true, outcome: { status: "completed", verifiedBy: "succeeded-writes", note: WRITES_DONE_NOTE } };
|
|
41948
42023
|
}
|
|
42024
|
+
if (w !== void 0 && writesAllSucceeded(w) && e.readBack === true && p >= GOAL_CHECK_TRIGGER) {
|
|
42025
|
+
return { accept: true, outcome: { status: "completed", verifiedBy: "succeeded-writes", note: READ_BACK_DONE_NOTE } };
|
|
42026
|
+
}
|
|
41949
42027
|
const notMet = `the goal is not observably achieved on this page (p=${p.toFixed(2)})`;
|
|
41950
42028
|
if (w !== void 0 && writesAllSucceeded(w) && w.goalIsWrites !== null) {
|
|
41951
42029
|
return { accept: false, reason: `${notMet}; the job's writes succeeded, but they are not judged to be the whole goal (p=${w.goalIsWrites.toFixed(2)})` };
|
|
@@ -45583,6 +45661,41 @@ var ObservedPages = class {
|
|
|
45583
45661
|
if (document2 !== void 0)
|
|
45584
45662
|
this.#writeDocument = document2;
|
|
45585
45663
|
}
|
|
45664
|
+
/**
|
|
45665
|
+
* #649: a sent value the run did not type (a write's request body: a prefilled import's rows) that
|
|
45666
|
+
* a page on the write's own route already showed before the write — its source, not a copy the app
|
|
45667
|
+
* kept. Only a page on another route reads it back: reloading the source shows it either way.
|
|
45668
|
+
*/
|
|
45669
|
+
#sourceRoute = /* @__PURE__ */ new Map();
|
|
45670
|
+
/** #649: a write's body values the run did not type, decided on the next page seen (see `add`). */
|
|
45671
|
+
#pendingSent = null;
|
|
45672
|
+
/**
|
|
45673
|
+
* #649: a successful write the run fired sent `values` in its body, from a page on `url`. One the run
|
|
45674
|
+
* did not type awaits read-back like a typed one only when the next page shows it as NEW text — text
|
|
45675
|
+
* no earlier page on that route showed (an import's rows listed from its CSV; never a form's
|
|
45676
|
+
* untouched prefilled fields, still only in their fields). Decided when that page is added.
|
|
45677
|
+
*/
|
|
45678
|
+
noteSentValues(values2, url2) {
|
|
45679
|
+
const own2 = /* @__PURE__ */ new Set([...this.#ownInputs, ...this.#unread]);
|
|
45680
|
+
const fresh = values2.map((value) => fold(redactContext(value, this.secrets).slice(0, OBSERVED_FIELD_CHARS))).filter((v) => v !== "" && !own2.has(v));
|
|
45681
|
+
this.#pendingSent = fresh.length === 0 ? null : { route: routeOf(url2), values: fresh };
|
|
45682
|
+
}
|
|
45683
|
+
/** #649: the pending body values `text` (the page after the write) newly shows await read-back. */
|
|
45684
|
+
#settleSent(text2) {
|
|
45685
|
+
const pending = this.#pendingSent;
|
|
45686
|
+
if (pending === null)
|
|
45687
|
+
return;
|
|
45688
|
+
this.#pendingSent = null;
|
|
45689
|
+
const now2 = fold(text2);
|
|
45690
|
+
const before = this.#pages.filter((p) => routeOf(p.url) === pending.route);
|
|
45691
|
+
for (const v of pending.values) {
|
|
45692
|
+
if (!now2.includes(v) || before.some((p) => fold(p.text).includes(v)))
|
|
45693
|
+
continue;
|
|
45694
|
+
this.#unread.add(v);
|
|
45695
|
+
if (before.some((p) => (p.fields ?? []).some((f2) => fold(f2.value).includes(v))))
|
|
45696
|
+
this.#sourceRoute.set(v, pending.route);
|
|
45697
|
+
}
|
|
45698
|
+
}
|
|
45586
45699
|
/** #647: the run's sent values (folded) that no page loaded from the server since has shown. */
|
|
45587
45700
|
unreadWrites() {
|
|
45588
45701
|
return this.#unread;
|
|
@@ -45596,15 +45709,28 @@ var ObservedPages = class {
|
|
|
45596
45709
|
* #647: a page from a later document load than the write shows `shown` (its visible text, or field
|
|
45597
45710
|
* values): the sent values it contains are read back from the app. Returns those values.
|
|
45598
45711
|
*/
|
|
45599
|
-
readBack(document2, shown2) {
|
|
45712
|
+
readBack(document2, shown2, url2) {
|
|
45600
45713
|
if (this.#unread.size === 0 || document2 === void 0 || document2 === this.#writeDocument)
|
|
45601
45714
|
return [];
|
|
45602
45715
|
const text2 = fold(shown2);
|
|
45603
|
-
const
|
|
45604
|
-
|
|
45716
|
+
const route = url2 === void 0 ? void 0 : routeOf(url2);
|
|
45717
|
+
const back = [...this.#unread].filter((v) => text2.includes(v) && (route === void 0 || this.#sourceRoute.get(v) !== route));
|
|
45718
|
+
for (const v of back) {
|
|
45605
45719
|
this.#unread.delete(v);
|
|
45720
|
+
this.#sourceRoute.delete(v);
|
|
45721
|
+
}
|
|
45722
|
+
this.#readBackCount += back.length;
|
|
45606
45723
|
return back;
|
|
45607
45724
|
}
|
|
45725
|
+
/** #645: how many sent values a page loaded from the server has shown again. */
|
|
45726
|
+
#readBackCount = 0;
|
|
45727
|
+
/**
|
|
45728
|
+
* #645: the app was seen to keep what the run's writes sent — at least one value was read back and
|
|
45729
|
+
* none is still unread. Code evidence the page judgment lacks (see `groundDone`).
|
|
45730
|
+
*/
|
|
45731
|
+
readBackConfirmed() {
|
|
45732
|
+
return this.#readBackCount > 0 && this.#unread.size === 0;
|
|
45733
|
+
}
|
|
45608
45734
|
/** #239: the run's own typed, not-yet-saved values (folded). */
|
|
45609
45735
|
ownInputs() {
|
|
45610
45736
|
return this.#ownInputs;
|
|
@@ -45617,9 +45743,9 @@ var ObservedPages = class {
|
|
|
45617
45743
|
const clip5 = (h) => redactContext((h ?? "").replace(/\s+/g, " ").trim(), this.secrets).slice(0, HEADING_CHARS);
|
|
45618
45744
|
const heading = clip5(headings2.heading);
|
|
45619
45745
|
const title = clip5(headings2.title);
|
|
45620
|
-
const
|
|
45621
|
-
const names =
|
|
45622
|
-
const links =
|
|
45746
|
+
const keep2 = (xs) => (xs ?? []).slice(0, MAX_OBSERVED_CONTROLS).map((n3) => redactContext(n3.replace(/\s+/g, " ").trim(), this.secrets).slice(0, OBSERVED_FIELD_CHARS)).filter((n3) => n3 !== "");
|
|
45747
|
+
const names = keep2(headings2.controlNames);
|
|
45748
|
+
const links = keep2(headings2.contentLinks);
|
|
45623
45749
|
const capped = (headings2.controlNames ?? []).length > MAX_OBSERVED_CONTROLS || (headings2.contentLinks ?? []).length > MAX_OBSERVED_CONTROLS;
|
|
45624
45750
|
const incomplete = [headings2.inventoryIncomplete ?? "", capped ? `more than ${MAX_OBSERVED_CONTROLS} controls were kept` : ""].filter((x) => x !== "").join("; ");
|
|
45625
45751
|
const status = headings2.status;
|
|
@@ -45639,7 +45765,8 @@ var ObservedPages = class {
|
|
|
45639
45765
|
if (nav.length > 0)
|
|
45640
45766
|
this.#topNav = nav;
|
|
45641
45767
|
}
|
|
45642
|
-
this
|
|
45768
|
+
this.#settleSent(page.text);
|
|
45769
|
+
this.readBack(headings2.document, [page.text, ...kept.map((f2) => f2.value)].join("\n"), url2);
|
|
45643
45770
|
if (page.text.trim() === "" && kept.length === 0)
|
|
45644
45771
|
return;
|
|
45645
45772
|
const same = (p) => JSON.stringify(p.fields ?? []) === JSON.stringify(page.fields ?? []) && p.heading === page.heading && p.title === page.title && p.status === page.status && JSON.stringify(p.controls ?? []) === JSON.stringify(page.controls ?? []) && JSON.stringify(p.contentLinks ?? []) === JSON.stringify(page.contentLinks ?? []) && p.inventoryIncomplete === page.inventoryIncomplete;
|
|
@@ -45655,6 +45782,13 @@ var ObservedPages = class {
|
|
|
45655
45782
|
return [...this.#pages].reverse();
|
|
45656
45783
|
}
|
|
45657
45784
|
};
|
|
45785
|
+
function routeOf(url2) {
|
|
45786
|
+
try {
|
|
45787
|
+
return new URL(url2).pathname;
|
|
45788
|
+
} catch {
|
|
45789
|
+
return url2.split(/[?#]/)[0] ?? url2;
|
|
45790
|
+
}
|
|
45791
|
+
}
|
|
45658
45792
|
function pathOf6(url2) {
|
|
45659
45793
|
try {
|
|
45660
45794
|
const u = new URL(url2);
|
|
@@ -48165,7 +48299,8 @@ function newStep(ctx, input2) {
|
|
|
48165
48299
|
...goalMet === void 0 ? {} : { goalMetProbability: goalMet },
|
|
48166
48300
|
...signIn === null || goalMet === void 0 ? {} : { signIn: { completed: signIn.completed, goalIsSignIn } },
|
|
48167
48301
|
...saved === null || goalMet === void 0 ? {} : { save: { completed: saved.completed, goalIsSave } },
|
|
48168
|
-
...writes === void 0 || goalMet === void 0 ? {} : { writes: { ...writes, goalIsWrites } }
|
|
48302
|
+
...writes === void 0 || goalMet === void 0 ? {} : { writes: { ...writes, goalIsWrites } },
|
|
48303
|
+
...writes === void 0 ? {} : { readBack: ctx.observed.readBackConfirmed() }
|
|
48169
48304
|
});
|
|
48170
48305
|
const judgments = {};
|
|
48171
48306
|
if (goalMet !== void 0 && goalMet !== null)
|
|
@@ -48218,7 +48353,7 @@ async function readBackProbe(ctx, step) {
|
|
|
48218
48353
|
return [];
|
|
48219
48354
|
const text2 = await readPageText(ctx.page, ctx.secrets).catch(() => "");
|
|
48220
48355
|
const values2 = await ctx.page.evaluate(() => Array.from(document.querySelectorAll("input, textarea, select")).filter((e) => e.type !== "password").map((e) => e.value ?? "")).catch(() => []);
|
|
48221
|
-
const back = ctx.observed.readBack(await documentOf(ctx.page), redactPageText([text2, ...values2].join("\n"), ctx.secrets));
|
|
48356
|
+
const back = ctx.observed.readBack(await documentOf(ctx.page), redactPageText([text2, ...values2].join("\n"), ctx.secrets), ctx.page.url());
|
|
48222
48357
|
const listed2 = (vs) => vs.map((v) => `"${v}"`).join(", ");
|
|
48223
48358
|
const missing = unread.filter((v) => !back.includes(v));
|
|
48224
48359
|
ctx.history.push(missing.length === 0 ? `read back after a reload: the page loaded from the server shows what the run sent (${listed2(back)})` : `after a reload, the page loaded from the server no longer shows what the run sent (${listed2(missing)})`);
|
|
@@ -49396,6 +49531,7 @@ async function perceiveStep(ctx) {
|
|
|
49396
49531
|
if (lc !== null && lc !== ctx.settledClick) {
|
|
49397
49532
|
ctx.settledClick = lc;
|
|
49398
49533
|
if (lc.writes.length > 0 && lc.writes.every((w) => w.status !== null && w.status >= 200 && w.status < 300)) {
|
|
49534
|
+
ctx.observed.noteSentValues(lc.sentValues, ctx.page.url());
|
|
49399
49535
|
ctx.observed.confirmOwnInputs(await documentOf(ctx.page));
|
|
49400
49536
|
ctx.wroteOk = true;
|
|
49401
49537
|
}
|
|
@@ -49947,6 +50083,7 @@ async function viewPage(ctx, step) {
|
|
|
49947
50083
|
} catch {
|
|
49948
50084
|
}
|
|
49949
50085
|
const document2 = await documentOf(ctx.page);
|
|
50086
|
+
const unreadBefore = [...ctx.observed.unreadWrites()];
|
|
49950
50087
|
ctx.observed.add(snap.url, visibleText, [...controlFields(snap.controls), ...richFields], {
|
|
49951
50088
|
...await readPageHeadings(ctx.page, ctx.secrets),
|
|
49952
50089
|
// #647: which document load this is — a later one that shows a sent value reads it back.
|
|
@@ -49963,6 +50100,13 @@ async function viewPage(ctx, step) {
|
|
|
49963
50100
|
navLinks: snap.controls.filter((c) => c.role === "link" && (c.landmark === "navigation" || c.landmark === "banner")).flatMap((c) => typeof c.href === "string" && c.href !== "" ? [c.href] : []),
|
|
49964
50101
|
...ctx.documentStatus.has(ctx.docKey(ctx.page.url())) ? { status: ctx.documentStatus.get(ctx.docKey(ctx.page.url())) } : {}
|
|
49965
50102
|
});
|
|
50103
|
+
{
|
|
50104
|
+
const now2 = ctx.observed.unreadWrites();
|
|
50105
|
+
const back = unreadBefore.filter((v) => !now2.has(v));
|
|
50106
|
+
if (back.length > 0) {
|
|
50107
|
+
ctx.history.push(`read back: this page, loaded from the server, shows what the run sent (${back.map((v) => `"${v}"`).join(", ")}) \u2014 the app kept it`);
|
|
50108
|
+
}
|
|
50109
|
+
}
|
|
49966
50110
|
ctx.noteReplyText(snap.url, visibleText);
|
|
49967
50111
|
ctx.depth.noteState(snap.signature, snap.url);
|
|
49968
50112
|
{
|
|
@@ -53257,13 +53401,13 @@ function lintUploadFixtures(journey, baseDir) {
|
|
|
53257
53401
|
});
|
|
53258
53402
|
continue;
|
|
53259
53403
|
}
|
|
53260
|
-
const
|
|
53261
|
-
if (
|
|
53404
|
+
const sensitive2 = fixtureSensitiveReason(real, realRootOf(baseDir)) ?? fixtureSensitiveReason(candidate, resolve5(baseDir));
|
|
53405
|
+
if (sensitive2 !== null) {
|
|
53262
53406
|
findings.push({
|
|
53263
53407
|
rule: "upload-sensitive-file",
|
|
53264
53408
|
level: "error",
|
|
53265
53409
|
step: i + 1,
|
|
53266
|
-
message: `step ${i + 1}: upload fixture ${candidate} looks sensitive (${
|
|
53410
|
+
message: `step ${i + 1}: upload fixture ${candidate} looks sensitive (${sensitive2})`,
|
|
53267
53411
|
fix: "use a dedicated test fixture file"
|
|
53268
53412
|
});
|
|
53269
53413
|
continue;
|
|
@@ -53388,7 +53532,7 @@ function lintJourney(journey, opts = {}) {
|
|
|
53388
53532
|
const refsBound = (a) => assertionRefsBound(journey, a);
|
|
53389
53533
|
const effects = sites.filter((site) => isEffectSite(site, site.where === "step" ? stepOf(site.step) : void 0, refsBound));
|
|
53390
53534
|
const endEffects = effects.filter((site) => site.where === "end-state");
|
|
53391
|
-
const effectAt = (n3) => effects.some((site) => (site.where === "step" || site.where === "step-request") && site.step === n3);
|
|
53535
|
+
const effectAt = (n3) => recorded[n3 - 1]?.step.kind === "waitFor" || effects.some((site) => (site.where === "step" || site.where === "step-request") && site.step === n3);
|
|
53392
53536
|
const writeRequests = recorded.map((r) => writeRequestsOf(r, classify2));
|
|
53393
53537
|
const isWrite2 = recorded.map((r, i) => isWriteStep(r, classify2, writeRequests[i]));
|
|
53394
53538
|
const lastWrite = isWrite2.lastIndexOf(true) + 1;
|
|
@@ -53591,9 +53735,9 @@ function splitBudget(total, stops) {
|
|
|
53591
53735
|
var CLAIM_KEYS = /* @__PURE__ */ new Set(["expect", "check", "resume", "waitFor"]);
|
|
53592
53736
|
function actionRefs(step) {
|
|
53593
53737
|
const out = /* @__PURE__ */ new Set();
|
|
53594
|
-
const
|
|
53738
|
+
const walk2 = (v) => {
|
|
53595
53739
|
if (Array.isArray(v)) {
|
|
53596
|
-
v.forEach(
|
|
53740
|
+
v.forEach(walk2);
|
|
53597
53741
|
return;
|
|
53598
53742
|
}
|
|
53599
53743
|
if (v === null || typeof v !== "object")
|
|
@@ -53608,9 +53752,9 @@ function actionRefs(step) {
|
|
|
53608
53752
|
out.add(n3);
|
|
53609
53753
|
for (const [k, x] of Object.entries(o))
|
|
53610
53754
|
if (!CLAIM_KEYS.has(k))
|
|
53611
|
-
|
|
53755
|
+
walk2(x);
|
|
53612
53756
|
};
|
|
53613
|
-
|
|
53757
|
+
walk2(step);
|
|
53614
53758
|
return [...out];
|
|
53615
53759
|
}
|
|
53616
53760
|
function sitePageAssertion(site) {
|
|
@@ -57407,7 +57551,7 @@ function seedPath(seedUrl) {
|
|
|
57407
57551
|
}
|
|
57408
57552
|
|
|
57409
57553
|
// ../explore/dist/adversarial/scope.js
|
|
57410
|
-
function
|
|
57554
|
+
function routeOf2(url2) {
|
|
57411
57555
|
const path2 = new URL(url2).pathname;
|
|
57412
57556
|
return path2.length > 1 && path2.endsWith("/") ? path2.slice(0, -1) : path2;
|
|
57413
57557
|
}
|
|
@@ -57427,7 +57571,7 @@ function startRouteGlobs(startUrl) {
|
|
|
57427
57571
|
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
57428
57572
|
throw new ScopeUnderivableError(`a ${parsed.protocol} URL has no route`);
|
|
57429
57573
|
}
|
|
57430
|
-
const route =
|
|
57574
|
+
const route = routeOf2(startUrl);
|
|
57431
57575
|
return route === "/" ? ["/", "/**"] : [route, `${route}/`, `${route}/**`];
|
|
57432
57576
|
}
|
|
57433
57577
|
function scopeGlobs(startUrl, extra = []) {
|
|
@@ -59559,7 +59703,7 @@ var CoverageTracker = class {
|
|
|
59559
59703
|
if (this.#counts(c))
|
|
59560
59704
|
this.#controls.add(key2);
|
|
59561
59705
|
}
|
|
59562
|
-
const route =
|
|
59706
|
+
const route = routeOf2(snapshot2.url);
|
|
59563
59707
|
const formControls = this.#region === void 0 ? snapshot2.controls : snapshot2.controls.filter((c) => c.inRegion === true);
|
|
59564
59708
|
for (const f2 of detectForms(formControls, this.#inScope))
|
|
59565
59709
|
this.#forms.add(`${route}|${f2.key}`);
|
|
@@ -59592,7 +59736,7 @@ var CoverageTracker = class {
|
|
|
59592
59736
|
submitted(url2, formKey) {
|
|
59593
59737
|
if (!this.#inScope(url2))
|
|
59594
59738
|
return;
|
|
59595
|
-
this.#submitted.add(`${
|
|
59739
|
+
this.#submitted.add(`${routeOf2(url2)}|${formKey}`);
|
|
59596
59740
|
}
|
|
59597
59741
|
/**
|
|
59598
59742
|
* A submit of `formKey` (on page `url`) never reached the server, so it never counts toward
|
|
@@ -59603,7 +59747,7 @@ var CoverageTracker = class {
|
|
|
59603
59747
|
blocked(url2, formKey, message2, why = "validation") {
|
|
59604
59748
|
if (!this.#inScope(url2))
|
|
59605
59749
|
return;
|
|
59606
|
-
const form = `${
|
|
59750
|
+
const form = `${routeOf2(url2)}|${formKey}`;
|
|
59607
59751
|
const key2 = `${form}|${why}`;
|
|
59608
59752
|
const cur = this.#blocked.get(key2);
|
|
59609
59753
|
this.#blocked.set(key2, { form, why, count: (cur?.count ?? 0) + 1, message: cur?.message ?? message2 });
|
|
@@ -60407,6 +60551,16 @@ function submitRequestSent(monitor, sinceMs) {
|
|
|
60407
60551
|
return true;
|
|
60408
60552
|
return false;
|
|
60409
60553
|
}
|
|
60554
|
+
var SUBMIT_REQUEST_POLL_MS = 50;
|
|
60555
|
+
async function submitRequestSentWithin(monitor, sinceMs, boundMs) {
|
|
60556
|
+
const deadline = clock.now() + boundMs;
|
|
60557
|
+
while (!submitRequestSent(monitor, sinceMs)) {
|
|
60558
|
+
if (clock.now() >= deadline)
|
|
60559
|
+
return false;
|
|
60560
|
+
await clock.sleep(SUBMIT_REQUEST_POLL_MS);
|
|
60561
|
+
}
|
|
60562
|
+
return true;
|
|
60563
|
+
}
|
|
60410
60564
|
async function nativeValidationMessage(page) {
|
|
60411
60565
|
return page.evaluate(() => {
|
|
60412
60566
|
const fields = Array.from(document.querySelectorAll("input,select,textarea"));
|
|
@@ -61626,6 +61780,7 @@ async function refuseMisuseStep(ctx, ep, turn, s3) {
|
|
|
61626
61780
|
}
|
|
61627
61781
|
|
|
61628
61782
|
// ../explore/dist/missions/adversarial-hunt/episode.js
|
|
61783
|
+
var SUBMIT_REQUEST_GRACE_MS = 1e3;
|
|
61629
61784
|
async function runEpisode(ctx, overlay, turn) {
|
|
61630
61785
|
const ep = {};
|
|
61631
61786
|
const { ran, planning, episode } = turn;
|
|
@@ -61708,10 +61863,12 @@ async function runEpisode(ctx, overlay, turn) {
|
|
|
61708
61863
|
if (result.ok)
|
|
61709
61864
|
ctx.cov.acted(ep.stepSnap.url, s3.control);
|
|
61710
61865
|
if (result.ok && s3.submitsForm !== void 0) {
|
|
61711
|
-
|
|
61866
|
+
const monitor = monitorFor(ctx.sessions.page);
|
|
61867
|
+
const invalid = submitRequestSent(monitor, at3) ? void 0 : await nativeValidationMessage(ctx.sessions.page);
|
|
61868
|
+
if (invalid === void 0 && await submitRequestSentWithin(monitor, at3, SUBMIT_REQUEST_GRACE_MS)) {
|
|
61712
61869
|
ctx.cov.submitted(ep.stepSnap.url, s3.submitsForm);
|
|
61713
61870
|
} else {
|
|
61714
|
-
ctx.cov.blocked(ep.stepSnap.url, s3.submitsForm,
|
|
61871
|
+
ctx.cov.blocked(ep.stepSnap.url, s3.submitsForm, invalid);
|
|
61715
61872
|
}
|
|
61716
61873
|
}
|
|
61717
61874
|
if (ran === "visit-route" && s3.control !== null)
|
|
@@ -62902,9 +63059,9 @@ function hostStarvedFailure(failure3, health) {
|
|
|
62902
63059
|
}
|
|
62903
63060
|
|
|
62904
63061
|
// src/build-info.generated.ts
|
|
62905
|
-
var GENERATED_COMMIT = "
|
|
62906
|
-
var GENERATED_TREE = "
|
|
62907
|
-
var GENERATED_BUILT_AT = "2026-10-
|
|
63062
|
+
var GENERATED_COMMIT = "ad72163";
|
|
63063
|
+
var GENERATED_TREE = "379caf5";
|
|
63064
|
+
var GENERATED_BUILT_AT = "2026-10-23T21:02:56.700Z";
|
|
62908
63065
|
|
|
62909
63066
|
// src/version.ts
|
|
62910
63067
|
import { readFileSync as readFileSync5 } from "node:fs";
|
|
@@ -62926,13 +63083,13 @@ function readCliVersion() {
|
|
|
62926
63083
|
|
|
62927
63084
|
// src/engine.ts
|
|
62928
63085
|
function bundledCommit() {
|
|
62929
|
-
return true ? "
|
|
63086
|
+
return true ? "ad72163" : void 0;
|
|
62930
63087
|
}
|
|
62931
63088
|
function bundledBuiltAt() {
|
|
62932
|
-
return true ? "2026-10-
|
|
63089
|
+
return true ? "2026-10-23T21:02:56.700Z" : void 0;
|
|
62933
63090
|
}
|
|
62934
63091
|
function bundledTree() {
|
|
62935
|
-
return true ? "
|
|
63092
|
+
return true ? "379caf5" : void 0;
|
|
62936
63093
|
}
|
|
62937
63094
|
function currentBuildTree() {
|
|
62938
63095
|
return bundledTree() ?? GENERATED_TREE;
|
|
@@ -86065,7 +86222,7 @@ var FINGERPRINT_MS = 1e4;
|
|
|
86065
86222
|
function oneLine2(s3) {
|
|
86066
86223
|
return s3.replace(/\s+/g, " ").trim();
|
|
86067
86224
|
}
|
|
86068
|
-
function
|
|
86225
|
+
function routeOf3(url2) {
|
|
86069
86226
|
try {
|
|
86070
86227
|
const u = new URL(url2);
|
|
86071
86228
|
return u.pathname + (u.search === "" ? "" : u.search);
|
|
@@ -86142,7 +86299,7 @@ var RunScreenshots = class {
|
|
|
86142
86299
|
this.#entries.push({
|
|
86143
86300
|
n: n3,
|
|
86144
86301
|
step: at3.step,
|
|
86145
|
-
route: this.#redact(redactUrl(
|
|
86302
|
+
route: this.#redact(redactUrl(routeOf3(url2))),
|
|
86146
86303
|
what: this.#redact(oneLine2(at3.what)).slice(0, 300),
|
|
86147
86304
|
path: path2
|
|
86148
86305
|
});
|
|
@@ -86466,7 +86623,7 @@ function invariantSetupTexts(spec) {
|
|
|
86466
86623
|
return Object.fromEntries(specStrings(spec, "", []).filter(([, s3]) => s3.includes("${setup.")).map(([p, s3]) => [`--invariants ${p}`, s3]));
|
|
86467
86624
|
}
|
|
86468
86625
|
function substituteSpecSetupRefs(spec, b2, baseUrl) {
|
|
86469
|
-
const
|
|
86626
|
+
const walk2 = (v, path2) => {
|
|
86470
86627
|
if (typeof v === "string") {
|
|
86471
86628
|
if (!v.includes("${setup.")) return v;
|
|
86472
86629
|
const where = `--invariants ${path2}`;
|
|
@@ -86481,11 +86638,11 @@ function substituteSpecSetupRefs(spec, b2, baseUrl) {
|
|
|
86481
86638
|
if (before !== after) throw new UnboundSetupRefError(`${where}: a \${setup.*} value may fill the path or query, never the origin`);
|
|
86482
86639
|
return out;
|
|
86483
86640
|
}
|
|
86484
|
-
if (Array.isArray(v)) return v.map((x, i) =>
|
|
86485
|
-
if (v !== null && typeof v === "object") return Object.fromEntries(Object.entries(v).map(([k, x]) => [k,
|
|
86641
|
+
if (Array.isArray(v)) return v.map((x, i) => walk2(x, `${path2}[${i}]`));
|
|
86642
|
+
if (v !== null && typeof v === "object") return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, walk2(x, path2 === "" ? k : `${path2}.${k}`)]));
|
|
86486
86643
|
return v;
|
|
86487
86644
|
};
|
|
86488
|
-
return
|
|
86645
|
+
return walk2(spec, "");
|
|
86489
86646
|
}
|
|
86490
86647
|
function fixtureSetupFailedResult(err, fx) {
|
|
86491
86648
|
const reason = err instanceof FixtureSetupError ? err.message : `fixture setup failed: ${err.message}`;
|
|
@@ -87785,6 +87942,7 @@ var ServerLogRuntime = class {
|
|
|
87785
87942
|
};
|
|
87786
87943
|
}
|
|
87787
87944
|
};
|
|
87945
|
+
var NON_ACTING_OPS = /* @__PURE__ */ new Set(["done", "blocked", null]);
|
|
87788
87946
|
function stepWindows(transcript, stepEpoch, missionStartEpochMs, drainMs) {
|
|
87789
87947
|
const windows = [];
|
|
87790
87948
|
let prevEnd = missionStartEpochMs;
|
|
@@ -87793,7 +87951,9 @@ function stepWindows(transcript, stepEpoch, missionStartEpochMs, drainMs) {
|
|
|
87793
87951
|
const settle2 = stepEpoch.get(entry.step) ?? prevEnd;
|
|
87794
87952
|
const isLast = i === transcript.length - 1;
|
|
87795
87953
|
const endMs = isLast ? settle2 + drainMs : settle2;
|
|
87796
|
-
|
|
87954
|
+
const acting = windows[windows.length - 1];
|
|
87955
|
+
if (NON_ACTING_OPS.has(entry.op) && acting !== void 0) acting.endMs = endMs;
|
|
87956
|
+
else windows.push({ step: entry.step, startMs: prevEnd, endMs });
|
|
87797
87957
|
prevEnd = settle2;
|
|
87798
87958
|
}
|
|
87799
87959
|
return windows;
|
|
@@ -88690,7 +88850,7 @@ function findingIdentity(f2) {
|
|
|
88690
88850
|
function str2(v, fallback = "") {
|
|
88691
88851
|
return typeof v === "string" ? v : fallback;
|
|
88692
88852
|
}
|
|
88693
|
-
function
|
|
88853
|
+
function routeOf4(item) {
|
|
88694
88854
|
if (typeof item.route === "string") return item.route;
|
|
88695
88855
|
if (typeof item.url === "string") return normalizeRoute(item.url);
|
|
88696
88856
|
return "/";
|
|
@@ -88702,7 +88862,7 @@ function extractRunFindings(data) {
|
|
|
88702
88862
|
if (!Array.isArray(list2)) return;
|
|
88703
88863
|
for (const item of list2) {
|
|
88704
88864
|
if (!isRecord(item) || typeof item.fingerprint !== "string") continue;
|
|
88705
|
-
out.push({ kind: kindOf(item), fingerprint: item.fingerprint, route:
|
|
88865
|
+
out.push({ kind: kindOf(item), fingerprint: item.fingerprint, route: routeOf4(item), title: str2(item.title, item.fingerprint) });
|
|
88706
88866
|
}
|
|
88707
88867
|
};
|
|
88708
88868
|
fingerprinted(data.defects, (d) => d.kind === "invariant" ? "invariant" : `defect/${str2(d.kind, "unknown")}`);
|
|
@@ -88711,14 +88871,14 @@ function extractRunFindings(data) {
|
|
|
88711
88871
|
if (isRecord(data.coverage) && Array.isArray(data.coverage.defects)) {
|
|
88712
88872
|
for (const d of data.coverage.defects) {
|
|
88713
88873
|
if (!isRecord(d) || typeof d.stateFingerprint !== "string") continue;
|
|
88714
|
-
out.push({ kind: "coverage-defect", fingerprint: d.stateFingerprint, route:
|
|
88874
|
+
out.push({ kind: "coverage-defect", fingerprint: d.stateFingerprint, route: routeOf4(d), title: str2(d.reason, "looks broken") });
|
|
88715
88875
|
}
|
|
88716
88876
|
}
|
|
88717
88877
|
if (isRecord(data.report) && Array.isArray(data.report.findings)) {
|
|
88718
88878
|
for (const f2 of data.report.findings) {
|
|
88719
88879
|
if (!isRecord(f2) || typeof f2.rubricItemId !== "string") continue;
|
|
88720
88880
|
const controls = Array.isArray(f2.controls) ? f2.controls.filter((c) => typeof c === "string") : [];
|
|
88721
|
-
out.push({ kind: "ux", route:
|
|
88881
|
+
out.push({ kind: "ux", route: routeOf4(f2), title: str2(f2.observation, f2.rubricItemId), rubricItemId: f2.rubricItemId, controls });
|
|
88722
88882
|
}
|
|
88723
88883
|
}
|
|
88724
88884
|
return out;
|
|
@@ -91803,18 +91963,18 @@ function rebaseRecording(recording, env) {
|
|
|
91803
91963
|
if (mustBeAllowed && !env.allowedOrigins.includes(u.origin)) refusals.push(`${where} is on ${u.origin}`);
|
|
91804
91964
|
return raw;
|
|
91805
91965
|
};
|
|
91806
|
-
const
|
|
91807
|
-
if (Array.isArray(v)) return v.map((x, i) =>
|
|
91966
|
+
const walk2 = (v, where) => {
|
|
91967
|
+
if (Array.isArray(v)) return v.map((x, i) => walk2(x, `${where}[${i}]`));
|
|
91808
91968
|
if (v === null || typeof v !== "object") return v;
|
|
91809
91969
|
const o = v;
|
|
91810
91970
|
const out = {};
|
|
91811
|
-
for (const [k, x] of Object.entries(o)) out[k] =
|
|
91971
|
+
for (const [k, x] of Object.entries(o)) out[k] = walk2(x, `${where}.${k}`);
|
|
91812
91972
|
if (o.kind === "navigate" && typeof o.url === "string") out.url = move(o.url, `${where} (navigate ${o.url})`, true);
|
|
91813
91973
|
if (o.kind === "urlIncludes" && typeof o.text === "string") out.text = move(o.text, `${where}.text`, false);
|
|
91814
91974
|
return out;
|
|
91815
91975
|
};
|
|
91816
91976
|
const pages = recording.pages.map((p, i) => ({
|
|
91817
|
-
...
|
|
91977
|
+
...walk2(p, `pages[${i}]`),
|
|
91818
91978
|
url: move(p.url, `pages[${i}] (${p.url})`, true)
|
|
91819
91979
|
}));
|
|
91820
91980
|
if (refusals.length > 0) {
|
|
@@ -94586,7 +94746,7 @@ function classifyTarget(d, testIdAttributes, via) {
|
|
|
94586
94746
|
function kebabCase(s3) {
|
|
94587
94747
|
return s3.normalize("NFKD").replace(/[̀-ͯ]/g, "").replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40).replace(/-+$/g, "");
|
|
94588
94748
|
}
|
|
94589
|
-
function
|
|
94749
|
+
function routeOf5(url2) {
|
|
94590
94750
|
if (url2 === void 0 || url2 === "") return void 0;
|
|
94591
94751
|
try {
|
|
94592
94752
|
return new URL(url2).pathname;
|
|
@@ -94684,7 +94844,7 @@ function dedupeSuggestions(lists) {
|
|
|
94684
94844
|
return [...byKey.values()].sort((a, b2) => b2.occurrences.length - a.occurrences.length || a.key.localeCompare(b2.key));
|
|
94685
94845
|
}
|
|
94686
94846
|
function flatWithRoute(rec) {
|
|
94687
|
-
return rec.pages.flatMap((p) => p.steps.map((recorded) => ({ recorded, route:
|
|
94847
|
+
return rec.pages.flatMap((p) => p.steps.map((recorded) => ({ recorded, route: routeOf5(p.url) })));
|
|
94688
94848
|
}
|
|
94689
94849
|
function healthLine(h) {
|
|
94690
94850
|
const total = h.stable + h.brittle;
|
|
@@ -97454,7 +97614,7 @@ function controlKey2(c) {
|
|
|
97454
97614
|
}
|
|
97455
97615
|
|
|
97456
97616
|
// ../ux/dist/route.js
|
|
97457
|
-
function
|
|
97617
|
+
function routeOf6(url2) {
|
|
97458
97618
|
try {
|
|
97459
97619
|
return urlTemplate(new URL(url2).pathname || "/");
|
|
97460
97620
|
} catch {
|
|
@@ -97603,7 +97763,7 @@ function a11yChecks(evidence, rubric) {
|
|
|
97603
97763
|
const q = rubric.get(id)?.questions[0];
|
|
97604
97764
|
return q?.severity ?? "minor";
|
|
97605
97765
|
};
|
|
97606
|
-
const route =
|
|
97766
|
+
const route = routeOf6(evidence.url);
|
|
97607
97767
|
const controlByRef = new Map(evidence.controls.map((c) => [`control:${c.index}`, c]));
|
|
97608
97768
|
const labelOf2 = (refId) => {
|
|
97609
97769
|
const c = controlByRef.get(refId);
|
|
@@ -97946,7 +98106,7 @@ function makeSignalFinding(input2) {
|
|
|
97946
98106
|
recommendation: input2.recommendation.trim(),
|
|
97947
98107
|
tier: "signal",
|
|
97948
98108
|
screenId: input2.screenId,
|
|
97949
|
-
route:
|
|
98109
|
+
route: routeOf6(input2.url),
|
|
97950
98110
|
controls: [...input2.controls ?? []],
|
|
97951
98111
|
quotes: [...input2.quotes ?? []],
|
|
97952
98112
|
occurrences: input2.occurrences ?? 1,
|
|
@@ -98183,7 +98343,7 @@ function detectInternalIds(capture2) {
|
|
|
98183
98343
|
if (typed.includes(id))
|
|
98184
98344
|
continue;
|
|
98185
98345
|
const line2 = quoteLine(screen.visibleText, id);
|
|
98186
|
-
const key2 = `${
|
|
98346
|
+
const key2 = `${routeOf6(screen.url)}|${pattern.name}`;
|
|
98187
98347
|
const g = groups.get(key2) ?? { pattern, ids: /* @__PURE__ */ new Set(), lines: /* @__PURE__ */ new Set(), screens: [], intentional: true };
|
|
98188
98348
|
g.ids.add(id);
|
|
98189
98349
|
g.lines.add(line2);
|
|
@@ -98292,7 +98452,7 @@ var PASSIVE_OPS = /* @__PURE__ */ new Set(["wait", "scroll_down", "scroll_up"]);
|
|
|
98292
98452
|
function advanced(capture2, s3) {
|
|
98293
98453
|
const before = capture2.screens.filter((x) => x.step === s3.step).pop();
|
|
98294
98454
|
const after = capture2.screens.find((x) => x.step > s3.step);
|
|
98295
|
-
if (before === void 0 || after === void 0 ||
|
|
98455
|
+
if (before === void 0 || after === void 0 || routeOf6(after.url) !== routeOf6(before.url))
|
|
98296
98456
|
return void 0;
|
|
98297
98457
|
return after.visibleText !== before.visibleText ? after : void 0;
|
|
98298
98458
|
}
|
|
@@ -98315,7 +98475,7 @@ function detectRepeatedAdvances(capture2) {
|
|
|
98315
98475
|
close();
|
|
98316
98476
|
continue;
|
|
98317
98477
|
}
|
|
98318
|
-
const k = `${
|
|
98478
|
+
const k = `${routeOf6(s3.url)}|${label2.toLowerCase()}`;
|
|
98319
98479
|
if (key2 !== null && k !== key2)
|
|
98320
98480
|
close();
|
|
98321
98481
|
key2 = k;
|
|
@@ -98343,7 +98503,7 @@ function detectRepeatedAdvances(capture2) {
|
|
|
98343
98503
|
steps,
|
|
98344
98504
|
requests: [],
|
|
98345
98505
|
...last.after.screenshot === void 0 ? {} : { screenshot: last.after.screenshot },
|
|
98346
|
-
detail: `${n3} consecutive successful "${label2}" clicks on ${
|
|
98506
|
+
detail: `${n3} consecutive successful "${label2}" clicks on ${routeOf6(last.after.url)} with no input between them, each changing the page text`
|
|
98347
98507
|
}
|
|
98348
98508
|
});
|
|
98349
98509
|
});
|
|
@@ -98395,7 +98555,7 @@ function detectStuckJobs(capture2, opts = {}) {
|
|
|
98395
98555
|
const label2 = labelOf(start);
|
|
98396
98556
|
if (label2 === null)
|
|
98397
98557
|
continue;
|
|
98398
|
-
const route =
|
|
98558
|
+
const route = routeOf6(start.url);
|
|
98399
98559
|
const key2 = `${route}|${normLine(label2)}`;
|
|
98400
98560
|
if (reported.has(key2))
|
|
98401
98561
|
continue;
|
|
@@ -98404,7 +98564,7 @@ function detectStuckJobs(capture2, opts = {}) {
|
|
|
98404
98564
|
continue;
|
|
98405
98565
|
const window2 = [];
|
|
98406
98566
|
for (const s3 of capture2.steps.filter((x) => x.step > start.step)) {
|
|
98407
|
-
if (
|
|
98567
|
+
if (routeOf6(s3.url) !== route)
|
|
98408
98568
|
break;
|
|
98409
98569
|
const other = s3.op !== null && START_OPS.has(s3.op) && controlKey3(s3) !== controlKey3(start);
|
|
98410
98570
|
if (other && capture2.requests.some((r) => r.step === s3.step && isWrite(r) && okStatus(r)))
|
|
@@ -98412,7 +98572,7 @@ function detectStuckJobs(capture2, opts = {}) {
|
|
|
98412
98572
|
window2.push(s3);
|
|
98413
98573
|
}
|
|
98414
98574
|
const lastStep = window2.length > 0 ? window2[window2.length - 1].step : start.step;
|
|
98415
|
-
const screens = capture2.screens.filter((s3) => s3.step > start.step && s3.step <= lastStep + 1 &&
|
|
98575
|
+
const screens = capture2.screens.filter((s3) => s3.step > start.step && s3.step <= lastStep + 1 && routeOf6(s3.url) === route);
|
|
98416
98576
|
if (screens.length === 0)
|
|
98417
98577
|
continue;
|
|
98418
98578
|
const reclicks = window2.filter((s3) => s3.op === start.op && s3.actOk && controlKey3(s3) === controlKey3(start));
|
|
@@ -98613,7 +98773,7 @@ function detectFailedSubmits(capture2) {
|
|
|
98613
98773
|
const after = screenAfter(capture2, s3.step);
|
|
98614
98774
|
if (after === void 0)
|
|
98615
98775
|
continue;
|
|
98616
|
-
if (before !== void 0 &&
|
|
98776
|
+
if (before !== void 0 && routeOf6(after.url) !== routeOf6(before.url))
|
|
98617
98777
|
continue;
|
|
98618
98778
|
const lines = linesOf(`${after.visibleText}
|
|
98619
98779
|
${s3.reply ?? ""}`);
|
|
@@ -98682,15 +98842,15 @@ function headingOf(s3) {
|
|
|
98682
98842
|
function detectUrlMismatches(capture2) {
|
|
98683
98843
|
const hits = /* @__PURE__ */ new Map();
|
|
98684
98844
|
capture2.screens.forEach((b2, i) => {
|
|
98685
|
-
const route =
|
|
98845
|
+
const route = routeOf6(b2.url);
|
|
98686
98846
|
const heading = headingOf(b2);
|
|
98687
98847
|
if (heading.length < 3)
|
|
98688
98848
|
return;
|
|
98689
98849
|
const { words: words3, known } = routeWords2(route);
|
|
98690
98850
|
if (words3.length === 0 || relates(heading, words3))
|
|
98691
98851
|
return;
|
|
98692
|
-
const other = capture2.screens.find((s3) =>
|
|
98693
|
-
const prior = capture2.screens.slice(0, i).reverse().find((s3) =>
|
|
98852
|
+
const other = capture2.screens.find((s3) => routeOf6(s3.url) !== route && normLine(headingOf(s3)) === normLine(heading) && relates(heading, routeWords2(routeOf6(s3.url)).words));
|
|
98853
|
+
const prior = capture2.screens.slice(0, i).reverse().find((s3) => routeOf6(s3.url) === route && normLine(headingOf(s3)) !== normLine(heading));
|
|
98694
98854
|
const transitioned = known && prior !== void 0 && relates(headingOf(prior), words3);
|
|
98695
98855
|
if (other === void 0 && !transitioned)
|
|
98696
98856
|
return;
|
|
@@ -98701,7 +98861,7 @@ function detectUrlMismatches(capture2) {
|
|
|
98701
98861
|
route,
|
|
98702
98862
|
known,
|
|
98703
98863
|
...transitioned ? { was: headingOf(prior) } : {},
|
|
98704
|
-
...other === void 0 ? {} : { elsewhere:
|
|
98864
|
+
...other === void 0 ? {} : { elsewhere: routeOf6(other.url) }
|
|
98705
98865
|
};
|
|
98706
98866
|
g.screens.push(b2);
|
|
98707
98867
|
hits.set(k, g);
|
|
@@ -98806,7 +98966,7 @@ function detectFriction(capture2, outcome) {
|
|
|
98806
98966
|
};
|
|
98807
98967
|
const routesAt = (nums) => {
|
|
98808
98968
|
const set2 = new Set(nums);
|
|
98809
|
-
return [.../* @__PURE__ */ new Set([...steps.filter((s3) => set2.has(s3.step)).map((s3) =>
|
|
98969
|
+
return [.../* @__PURE__ */ new Set([...steps.filter((s3) => set2.has(s3.step)).map((s3) => routeOf6(s3.url)), ...capture2.screens.filter((s3) => set2.has(s3.step)).map((s3) => routeOf6(s3.url))])];
|
|
98810
98970
|
};
|
|
98811
98971
|
const add = (kind, impact, nums, detail) => {
|
|
98812
98972
|
const sorted2 = [...new Set(nums)].filter((n3) => n3 > 0).sort((a, b2) => a - b2);
|
|
@@ -98897,7 +99057,7 @@ function detectFriction(capture2, outcome) {
|
|
|
98897
99057
|
const blocking = reqs.some((r) => WRITE_METHODS3.has(r.method.toUpperCase()) && (r.failed === true || (r.status ?? 0) >= 500));
|
|
98898
99058
|
add("error", blocking ? "blocked" : "slowed", [step], `${reqs.map((r) => `${r.endpoint} \u2192 ${r.failed === true ? "failed" : r.status}`).join(", ")} after step ${step}`);
|
|
98899
99059
|
}
|
|
98900
|
-
const seq = capture2.screens.map((s3) => ({ route:
|
|
99060
|
+
const seq = capture2.screens.map((s3) => ({ route: routeOf6(s3.url), step: s3.step }));
|
|
98901
99061
|
for (let x = 2; x < seq.length; x++) {
|
|
98902
99062
|
const here = seq[x];
|
|
98903
99063
|
if (seq[x - 1].route === here.route)
|
|
@@ -98924,7 +99084,7 @@ function detectFriction(capture2, outcome) {
|
|
|
98924
99084
|
continue;
|
|
98925
99085
|
if (between.some((r) => r.actOk && (r.op === "click" || r.op === "send" || r.op === "select")))
|
|
98926
99086
|
continue;
|
|
98927
|
-
add("abandoned", "confused", [s3.step, rest[leftAt].step], `a value typed at step ${s3.step} was left unsubmitted when the run moved to ${
|
|
99087
|
+
add("abandoned", "confused", [s3.step, rest[leftAt].step], `a value typed at step ${s3.step} was left unsubmitted when the run moved to ${routeOf6(rest[leftAt].url)}`);
|
|
98928
99088
|
}
|
|
98929
99089
|
if (outcome?.status === "incomplete" && steps.length > 0) {
|
|
98930
99090
|
const tail = steps.slice(-3).map((s3) => s3.step);
|
|
@@ -99502,8 +99662,8 @@ function boundTargetOptions(controls, point, steps, limit = MAX_CHOICE_OPTIONS -
|
|
|
99502
99662
|
const acted = steps.filter((s3) => point.steps.includes(s3.step));
|
|
99503
99663
|
const words3 = new Set(normalizeText(point.detail).split(" ").filter((w) => w.length >= 3));
|
|
99504
99664
|
const score2 = (c) => (acted.some((s3) => stepNames(s3, c)) ? 400 : 0) + (normalizeText(c.name).split(" ").some((w) => words3.has(w)) ? 60 : 0) + (c.enabled ? 10 : 0);
|
|
99505
|
-
const
|
|
99506
|
-
return controls.filter((c) =>
|
|
99665
|
+
const keep2 = new Set(controls.map((c, i) => ({ c, i, s: score2(c) })).sort((a, b2) => b2.s - a.s || a.i - b2.i).slice(0, limit).map((x) => x.c.index));
|
|
99666
|
+
return controls.filter((c) => keep2.has(c.index));
|
|
99507
99667
|
}
|
|
99508
99668
|
function frictionText(p) {
|
|
99509
99669
|
return `${p.kind} (steps ${p.steps.join(", ")}): ${p.detail}`.slice(0, 600);
|
|
@@ -99532,7 +99692,7 @@ async function analyzeClaims(request, deps) {
|
|
|
99532
99692
|
for (const raw of request.screens) {
|
|
99533
99693
|
try {
|
|
99534
99694
|
const red = redactEvidence(raw, secrets, deps.redactor);
|
|
99535
|
-
screens.push({ raw, red, route:
|
|
99695
|
+
screens.push({ raw, red, route: routeOf6(red.url) });
|
|
99536
99696
|
} catch (cause) {
|
|
99537
99697
|
return { kind: "failed", reason: `redaction failed: ${message(cause)}`, screenId: raw.screenId };
|
|
99538
99698
|
}
|
|
@@ -100022,7 +100182,7 @@ ${f2.route}
|
|
|
100022
100182
|
${element}`, "utf8").digest("hex").slice(0, 16);
|
|
100023
100183
|
}
|
|
100024
100184
|
function contractRouteTemplate(urlOrRoute) {
|
|
100025
|
-
return
|
|
100185
|
+
return routeOf6(urlOrRoute).split("/").map((seg) => /^:[A-Za-z][A-Za-z0-9_]{0,63}$/.test(seg) ? `{${seg.slice(1)}}` : seg).join("/");
|
|
100026
100186
|
}
|
|
100027
100187
|
|
|
100028
100188
|
// ../ux/dist/rubric/schema.js
|
|
@@ -101364,7 +101524,7 @@ function planGuardProbes(screens, secrets, safety) {
|
|
|
101364
101524
|
const refused = [];
|
|
101365
101525
|
for (const screen of screens) {
|
|
101366
101526
|
const red = redactEvidence(screen, secrets);
|
|
101367
|
-
const route =
|
|
101527
|
+
const route = routeOf6(red.url);
|
|
101368
101528
|
screen.controls.forEach((c, i) => {
|
|
101369
101529
|
if (controlRisk(c.name, c.role)?.risk !== "destructive") return;
|
|
101370
101530
|
const rc = red.controls[i];
|
|
@@ -102123,11 +102283,11 @@ var MAX_SCAN_DEPTH = 8;
|
|
|
102123
102283
|
function scanRuns(dirs) {
|
|
102124
102284
|
const seen = /* @__PURE__ */ new Set();
|
|
102125
102285
|
const runs = [];
|
|
102126
|
-
const
|
|
102286
|
+
const walk2 = (dir, depth) => {
|
|
102127
102287
|
for (const entry of readdirSync8(dir, { withFileTypes: true }).sort((a, b2) => a.name.localeCompare(b2.name))) {
|
|
102128
102288
|
const path2 = resolve13(dir, entry.name);
|
|
102129
102289
|
if (entry.isDirectory()) {
|
|
102130
|
-
if (depth < MAX_SCAN_DEPTH && !entry.name.startsWith(".") && entry.name !== "node_modules")
|
|
102290
|
+
if (depth < MAX_SCAN_DEPTH && !entry.name.startsWith(".") && entry.name !== "node_modules") walk2(path2, depth + 1);
|
|
102131
102291
|
continue;
|
|
102132
102292
|
}
|
|
102133
102293
|
if (!entry.isFile() || !isResultName(entry.name) || seen.has(path2)) continue;
|
|
@@ -102139,7 +102299,7 @@ function scanRuns(dirs) {
|
|
|
102139
102299
|
};
|
|
102140
102300
|
for (const dir of dirs) {
|
|
102141
102301
|
if (!existsSync23(dir) || !statSync9(dir).isDirectory()) continue;
|
|
102142
|
-
|
|
102302
|
+
walk2(dir, 0);
|
|
102143
102303
|
}
|
|
102144
102304
|
return runs.sort((a, b2) => (a.startedAt ?? "").localeCompare(b2.startedAt ?? "") || a.runId.localeCompare(b2.runId));
|
|
102145
102305
|
}
|
|
@@ -104618,8 +104778,8 @@ function bundleDemos(input2, journeys, warn) {
|
|
|
104618
104778
|
if (demos.length > LIMITS.demos) {
|
|
104619
104779
|
warn.push(`${demos.length} demos: only the first ${LIMITS.demos} are exported`);
|
|
104620
104780
|
const kept = new Set(demos.slice(0, LIMITS.demos).map((d) => `media/${d.journey}/`));
|
|
104621
|
-
const
|
|
104622
|
-
return { demos: demos.slice(0, LIMITS.demos), files: files.filter((f2) =>
|
|
104781
|
+
const keep2 = (p) => [...kept].some((k) => p.startsWith(k));
|
|
104782
|
+
return { demos: demos.slice(0, LIMITS.demos), files: files.filter((f2) => keep2(f2.path)), media: media.filter((m) => keep2(m.path)) };
|
|
104623
104783
|
}
|
|
104624
104784
|
return { demos, files, media };
|
|
104625
104785
|
}
|
|
@@ -105315,7 +105475,7 @@ function findingDropWarning(fingerprint2, kind, issues) {
|
|
|
105315
105475
|
function bundleFindings(src) {
|
|
105316
105476
|
const warnings = [];
|
|
105317
105477
|
const latest = /* @__PURE__ */ new Map();
|
|
105318
|
-
const
|
|
105478
|
+
const keep2 = (m) => {
|
|
105319
105479
|
if (m === null) return;
|
|
105320
105480
|
if ("drop" in m) {
|
|
105321
105481
|
warnings.push(`${m.drop} \u2014 left out of the bundle`);
|
|
@@ -105330,10 +105490,10 @@ function bundleFindings(src) {
|
|
|
105330
105490
|
if (prev === void 0 || prev.at <= m.finding.at) latest.set(m.finding.fingerprint, m.finding);
|
|
105331
105491
|
};
|
|
105332
105492
|
const byPath = new Map(src.runs.map((r) => [r.path, r]));
|
|
105333
|
-
for (const d of consolidate(src.runs))
|
|
105493
|
+
for (const d of consolidate(src.runs)) keep2(defectFinding(d, byPath));
|
|
105334
105494
|
for (const { report: report2, run } of src.uxReports) {
|
|
105335
105495
|
if (!isRecord(report2) || !Array.isArray(report2.findings)) continue;
|
|
105336
|
-
for (const f2 of report2.findings) if (isRecord(f2))
|
|
105496
|
+
for (const f2 of report2.findings) if (isRecord(f2)) keep2(uxFinding(f2, run));
|
|
105337
105497
|
}
|
|
105338
105498
|
let findings = [...latest.values()].sort((a, b2) => a.at.localeCompare(b2.at) || a.fingerprint.localeCompare(b2.fingerprint));
|
|
105339
105499
|
if (findings.length > MAX_FINDINGS) {
|
|
@@ -116748,8 +116908,8 @@ function confineSweepFixture(raw, root2) {
|
|
|
116748
116908
|
realRoot = realpathSync5(root2);
|
|
116749
116909
|
} catch {
|
|
116750
116910
|
}
|
|
116751
|
-
const
|
|
116752
|
-
if (
|
|
116911
|
+
const sensitive2 = fixtureSensitiveReason(real, realRoot) ?? fixtureSensitiveReason(absolute, resolve23(root2));
|
|
116912
|
+
if (sensitive2 !== null) throw fixtureSensitive(absolute, root2, sensitive2);
|
|
116753
116913
|
return absolute;
|
|
116754
116914
|
}
|
|
116755
116915
|
function tsvTags(cell2, where, problems) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// this plain `tsc --build` dist (no bundler substitution), so it needs real committed values
|
|
6
6
|
// here instead. See ./engine.ts, which prefers the esbuild-injected value when present and
|
|
7
7
|
// falls back to these.
|
|
8
|
-
export const GENERATED_COMMIT = "
|
|
9
|
-
export const GENERATED_TREE = "
|
|
10
|
-
export const GENERATED_BUILT_AT = "2026-10-
|
|
8
|
+
export const GENERATED_COMMIT = "ad72163";
|
|
9
|
+
export const GENERATED_TREE = "379caf5";
|
|
10
|
+
export const GENERATED_BUILT_AT = "2026-10-23T21:02:48.517Z";
|
|
11
11
|
//# sourceMappingURL=build-info.generated.js.map
|
package/dist/log-correlation.js
CHANGED
|
@@ -384,8 +384,12 @@ export class ServerLogRuntime {
|
|
|
384
384
|
};
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
|
+
/** #653: a step that performs no browser action (`done`, `blocked`, none found) causes no backend work. */
|
|
388
|
+
const NON_ACTING_OPS = new Set(["done", "blocked", null]);
|
|
387
389
|
/** Contiguous per-step correlation windows: `[previous settle, this settle]`, the LAST one extended
|
|
388
|
-
* by `drainMs` so async backend work that lands after the mission's own bounds still attaches.
|
|
390
|
+
* by `drainMs` so async backend work that lands after the mission's own bounds still attaches.
|
|
391
|
+
* #653: a step that performs no browser action owns no window: its span extends the acting step
|
|
392
|
+
* before it, so that step's backend line, logged a few ms after it settled, still attaches to it. */
|
|
389
393
|
function stepWindows(transcript, stepEpoch, missionStartEpochMs, drainMs) {
|
|
390
394
|
const windows = [];
|
|
391
395
|
let prevEnd = missionStartEpochMs;
|
|
@@ -394,7 +398,11 @@ function stepWindows(transcript, stepEpoch, missionStartEpochMs, drainMs) {
|
|
|
394
398
|
const settle = stepEpoch.get(entry.step) ?? prevEnd;
|
|
395
399
|
const isLast = i === transcript.length - 1;
|
|
396
400
|
const endMs = isLast ? settle + drainMs : settle;
|
|
397
|
-
|
|
401
|
+
const acting = windows[windows.length - 1];
|
|
402
|
+
if (NON_ACTING_OPS.has(entry.op) && acting !== undefined)
|
|
403
|
+
acting.endMs = endMs;
|
|
404
|
+
else
|
|
405
|
+
windows.push({ step: entry.step, startMs: prevEnd, endMs });
|
|
398
406
|
prevEnd = settle;
|
|
399
407
|
}
|
|
400
408
|
return windows;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-correlation.js","sourceRoot":"","sources":["../src/log-correlation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"log-correlation.js","sourceRoot":"","sources":["../src/log-correlation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jevitate/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Autonomous browser testing that turns discovered bugs into deterministic regression tests: explore a web app in a real browser, confirm findings with evidence, and replay them as regressions in CI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -64,25 +64,25 @@
|
|
|
64
64
|
"@jevitate/ai-core": "0.1.0",
|
|
65
65
|
"@jevitate/daemon": "0.1.0",
|
|
66
66
|
"@jevitate/domain": "0.1.0",
|
|
67
|
-
"@jevitate/example-site": "0.1.0",
|
|
68
67
|
"@jevitate/explore": "0.1.0",
|
|
68
|
+
"@jevitate/example-site": "0.1.0",
|
|
69
69
|
"@jevitate/findings": "0.1.0",
|
|
70
70
|
"@jevitate/inbox": "0.1.0",
|
|
71
|
-
"@jevitate/interpreter": "0.1.0",
|
|
72
71
|
"@jevitate/journey": "0.1.0",
|
|
73
|
-
"@jevitate/load": "0.1.0",
|
|
74
|
-
"@jevitate/mcp-facade": "0.1.0",
|
|
75
72
|
"@jevitate/missions": "0.1.0",
|
|
73
|
+
"@jevitate/load": "0.1.0",
|
|
76
74
|
"@jevitate/playwright": "0.1.0",
|
|
77
|
-
"@jevitate/recording": "0.1.0",
|
|
78
75
|
"@jevitate/recorder": "0.1.0",
|
|
79
|
-
"@jevitate/
|
|
80
|
-
"@jevitate/skills": "0.1.0",
|
|
76
|
+
"@jevitate/interpreter": "0.1.0",
|
|
81
77
|
"@jevitate/regression": "0.1.0",
|
|
78
|
+
"@jevitate/recording": "0.1.0",
|
|
79
|
+
"@jevitate/mcp-facade": "0.1.0",
|
|
80
|
+
"@jevitate/runtime": "0.1.0",
|
|
82
81
|
"@jevitate/screenplay": "0.1.0",
|
|
83
|
-
"@jevitate/storage-sqlite": "0.1.0",
|
|
84
82
|
"@jevitate/sources": "0.1.0",
|
|
85
|
-
"@jevitate/
|
|
83
|
+
"@jevitate/skills": "0.1.0",
|
|
84
|
+
"@jevitate/ux": "0.1.0",
|
|
85
|
+
"@jevitate/storage-sqlite": "0.1.0"
|
|
86
86
|
},
|
|
87
87
|
"scripts": {
|
|
88
88
|
"build": "node scripts/generate-build-info.mjs && tsc --build",
|