@jevitate/cli 0.21.0 → 0.22.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 CHANGED
@@ -37855,6 +37855,7 @@ var MESSAGE_FIELD = /\b(reply|message|ask|chat|inquiry|prompt|say|talk|conversat
37855
37855
  var MESSAGE_INPUT_TYPES = /* @__PURE__ */ new Set(["", "text", "search"]);
37856
37856
  var SUBMIT_NAME = /\b(send|submit|reply|ask|post)\b|[→➤➔↑]|^\s*(go|ok)\s*$/i;
37857
37857
  var PAIRED_SUBMIT_DISTANCE = 6;
37858
+ var RECIPIENT_NAME = /^\s*(to|cc|bcc)\b|\b(recipients?|contacts?|addressee|send to)\b/i;
37858
37859
  function composerEvidence(node2, args) {
37859
37860
  const el = node2;
37860
37861
  const norm6 = (s3) => s3 === null ? "" : s3.replace(/\s+/g, " ").trim();
@@ -37886,6 +37887,29 @@ function composerEvidence(node2, args) {
37886
37887
  parents.set(item.parentElement, n3);
37887
37888
  }
37888
37889
  const submit2 = new RegExp(args.submit, "i");
37890
+ const recipient = new RegExp(args.recipient, "i");
37891
+ const labelOf2 = (a) => {
37892
+ const aria = norm6(a.getAttribute("aria-label"));
37893
+ if (aria !== "")
37894
+ return aria;
37895
+ const by = norm6(a.getAttribute("aria-labelledby"));
37896
+ if (by !== "") {
37897
+ const text2 = by.split(" ").map((id2) => norm6(document.getElementById(id2)?.textContent ?? null)).join(" ").trim();
37898
+ if (text2 !== "")
37899
+ return text2;
37900
+ }
37901
+ const id = a.getAttribute("id");
37902
+ if (id !== null && id !== "") {
37903
+ const forLabel = Array.from(document.querySelectorAll("label")).find((l2) => l2.htmlFor === id);
37904
+ if (forLabel !== void 0)
37905
+ return norm6(forLabel.textContent);
37906
+ }
37907
+ const wrap = a.closest("label");
37908
+ if (wrap !== null)
37909
+ return norm6(wrap.textContent);
37910
+ return norm6(a.getAttribute("placeholder")) || norm6(a.getAttribute("name"));
37911
+ };
37912
+ const addressed = (container) => Array.from(container.querySelectorAll('select, input:not([type="hidden"]):not([type="submit"]):not([type="button"]), [role="combobox"], [role="listbox"]')).some((f2) => f2 !== el && !f2.contains(el) && rendered(f2) && recipient.test(labelOf2(f2)));
37889
37913
  const up4 = (a) => {
37890
37914
  const out = [];
37891
37915
  for (let cur = a; cur !== null; cur = parentOf(cur))
@@ -37903,7 +37927,7 @@ function composerEvidence(node2, args) {
37903
37927
  for (let i = 0; i < fieldPath.length && i <= args.distance; i++) {
37904
37928
  const j = bp.indexOf(fieldPath[i]);
37905
37929
  if (j >= 0) {
37906
- if (i + j <= args.distance)
37930
+ if (i + j <= args.distance && !addressed(fieldPath[i]))
37907
37931
  return true;
37908
37932
  break;
37909
37933
  }
@@ -38535,7 +38559,7 @@ async function readSnapshot(page, opts) {
38535
38559
  const value = raw.valueBearing && !isSecretField(raw.inputType, raw.autocomplete, [raw.name]) ? await handle.evaluate(readControlValue) : null;
38536
38560
  const facts = { ...raw, value };
38537
38561
  const textEntry = raw.tag === "textarea" || raw.tag === "input" && MESSAGE_INPUT_TYPES.has(raw.inputType ?? "") || raw.role === "textbox";
38538
- const conversational = textEntry && MESSAGE_FIELD.test(raw.name) ? await handle.evaluate(composerEvidence, { submit: SUBMIT_NAME.source, distance: PAIRED_SUBMIT_DISTANCE }).catch(() => false) : null;
38562
+ const conversational = textEntry && MESSAGE_FIELD.test(raw.name) ? await handle.evaluate(composerEvidence, { submit: SUBMIT_NAME.source, distance: PAIRED_SUBMIT_DISTANCE, recipient: RECIPIENT_NAME.source }).catch(() => false) : null;
38539
38563
  const computed = await computeDescriptor(page, handle, { primaryOnly: true });
38540
38564
  const control = {
38541
38565
  index: controls.length,
@@ -45461,6 +45485,19 @@ function pageStatusOf(ctx) {
45461
45485
  const parts2 = [...isEmptyStatus(ctx.status) ? [] : [describeStatus(ctx.status)], ...[formMessageStatus(ctx)].filter((x) => x !== null)];
45462
45486
  return parts2.length === 0 ? {} : { pageStatus: parts2.join("; ") };
45463
45487
  }
45488
+ var DOCUMENT_LOADS = /* @__PURE__ */ new WeakMap();
45489
+ async function documentOf(page) {
45490
+ let loads = DOCUMENT_LOADS.get(page);
45491
+ if (loads === void 0) {
45492
+ const counter = { count: 0 };
45493
+ page.on("domcontentloaded", () => {
45494
+ counter.count += 1;
45495
+ });
45496
+ DOCUMENT_LOADS.set(page, counter);
45497
+ loads = counter;
45498
+ }
45499
+ return loads.count;
45500
+ }
45464
45501
 
45465
45502
  // ../explore/dist/goal-loop/context/conversation.js
45466
45503
  function initConversation(ctx, cfg) {
@@ -45485,6 +45522,7 @@ function initConversation(ctx, cfg) {
45485
45522
  }
45486
45523
 
45487
45524
  // ../explore/dist/answer.js
45525
+ var UNCONFIRMED_WRITE = "the quote shows what the run itself sent";
45488
45526
  var ANSWER_PAGES_CHARS = 8e3;
45489
45527
  var MAX_OBSERVED_PAGES = 30;
45490
45528
  var OBSERVED_PAGE_CHARS = 2e4;
@@ -45526,9 +45564,46 @@ var ObservedPages = class {
45526
45564
  if (v !== "")
45527
45565
  this.#ownInputs.add(v);
45528
45566
  }
45529
- /** #239: a submit the run clicked fired writes that all succeeded (2xx): what it typed was sent and saved. */
45530
- confirmOwnInputs() {
45567
+ /**
45568
+ * #647: values a 2xx write sent that no page loaded from the server has shown since. A 2xx says the
45569
+ * request was accepted, not that the app kept it: until a later document shows the value, a page
45570
+ * showing it may only be the client's own rendering of what the run sent.
45571
+ */
45572
+ #unread = /* @__PURE__ */ new Set();
45573
+ /** #647: the document the last such write was sent from. */
45574
+ #writeDocument = null;
45575
+ /**
45576
+ * #239: a submit the run clicked fired writes that all succeeded (2xx): what it typed was sent. #647:
45577
+ * it is read back only when a page from a later document load (`document`) shows it.
45578
+ */
45579
+ confirmOwnInputs(document2) {
45580
+ for (const v of this.#ownInputs)
45581
+ this.#unread.add(v);
45531
45582
  this.#ownInputs.clear();
45583
+ if (document2 !== void 0)
45584
+ this.#writeDocument = document2;
45585
+ }
45586
+ /** #647: the run's sent values (folded) that no page loaded from the server since has shown. */
45587
+ unreadWrites() {
45588
+ return this.#unread;
45589
+ }
45590
+ /** #647: the unread sent values (folded) that `shown` (a page's text, or field values) displays. */
45591
+ unreadShownIn(shown2) {
45592
+ const text2 = fold(shown2);
45593
+ return [...this.#unread].filter((v) => text2.includes(v));
45594
+ }
45595
+ /**
45596
+ * #647: a page from a later document load than the write shows `shown` (its visible text, or field
45597
+ * values): the sent values it contains are read back from the app. Returns those values.
45598
+ */
45599
+ readBack(document2, shown2) {
45600
+ if (this.#unread.size === 0 || document2 === void 0 || document2 === this.#writeDocument)
45601
+ return [];
45602
+ const text2 = fold(shown2);
45603
+ const back = [...this.#unread].filter((v) => text2.includes(v));
45604
+ for (const v of back)
45605
+ this.#unread.delete(v);
45606
+ return back;
45532
45607
  }
45533
45608
  /** #239: the run's own typed, not-yet-saved values (folded). */
45534
45609
  ownInputs() {
@@ -45564,6 +45639,7 @@ var ObservedPages = class {
45564
45639
  if (nav.length > 0)
45565
45640
  this.#topNav = nav;
45566
45641
  }
45642
+ this.readBack(headings2.document, [page.text, ...kept.map((f2) => f2.value)].join("\n"));
45567
45643
  if (page.text.trim() === "" && kept.length === 0)
45568
45644
  return;
45569
45645
  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;
@@ -45918,14 +45994,14 @@ function errorPageReason(page) {
45918
45994
  return `the page it is on is an error page (title "${page.title}")`;
45919
45995
  return null;
45920
45996
  }
45921
- function groundClaim(claim2, quote6, pages, given, goal, answer, own2, absent) {
45997
+ function groundClaim(claim2, quote6, pages, given, goal, answer, own2, unread, absent) {
45922
45998
  const name = (absent ?? "").replace(/\s+/g, " ").trim();
45923
45999
  if (name !== "")
45924
46000
  return { evidence: groundAbsence(claim2, name, pages, goal), notAnswer: false };
45925
- const r = groundClaimOn(claim2, quote6, pages, given, goal, answer, own2);
46001
+ const r = groundClaimOn(claim2, quote6, pages, given, goal, answer, own2, unread);
45926
46002
  return "evidence" in r ? r : { evidence: r, notAnswer: false };
45927
46003
  }
45928
- function groundClaimOn(claim2, quote6, pages, given, goal, answer, own2) {
46004
+ function groundClaimOn(claim2, quote6, pages, given, goal, answer, own2, unread) {
45929
46005
  const q = bareQuote(quote6);
45930
46006
  const base = { claim: claim2, quote: quote6 };
45931
46007
  if (q.replace(/\s/g, "").length < MIN_QUOTE_CHARS)
@@ -45943,6 +46019,11 @@ function groundClaimOn(claim2, quote6, pages, given, goal, answer, own2) {
45943
46019
  const why = `the quote is the run's own typed input in "${found.control ?? "a form field"}", never saved \u2014 it shows what the run entered, not what the app recorded (submit it, then report what the app shows)`;
45944
46020
  return { ...base, url: page.url, grounded: false, ...where, why };
45945
46021
  }
46022
+ const sent = [...unread].find((v) => v.length >= MIN_QUOTE_CHARS && q.includes(v));
46023
+ if (sent !== void 0) {
46024
+ const why = `${UNCONFIRMED_WRITE} ("${sent}"), and no page loaded since the write has shown it \u2014 the app may not have kept it (reload, or open the page where the app lists it, and report what that shows)`;
46025
+ return { ...base, url: page.url, grounded: false, ...where, why };
46026
+ }
45946
46027
  if (found.source === "page-text" && !CONTROL_GOAL.test(goal) && quoteIsOnlyControlNames(quote6, found.page)) {
45947
46028
  const why = "the quote is only a control's label (a button, a field label or a navigation link), not page content that answers the question";
45948
46029
  return { evidence: { ...base, url: page.url, grounded: false, ...where, why }, notAnswer: true };
@@ -45970,7 +46051,8 @@ function groundAnswer(proposed, pages, opts = {}) {
45970
46051
  return { accept: false, reason: NO_ANSWER_REASON, answer: null };
45971
46052
  const given = new Set(numbersIn(opts.goal ?? ""));
45972
46053
  const own2 = opts.ownInputs ?? /* @__PURE__ */ new Set();
45973
- const grounded_ = proposed.claims.map((c) => groundClaim(c.claim, c.quote, pages, given, opts.goal ?? "", text2, own2, c.absent));
46054
+ const unread = opts.unreadWrites ?? /* @__PURE__ */ new Set();
46055
+ const grounded_ = proposed.claims.map((c) => groundClaim(c.claim, c.quote, pages, given, opts.goal ?? "", text2, own2, unread, c.absent));
45974
46056
  const evidence = grounded_.map((g) => g.evidence);
45975
46057
  const answer = { text: text2, evidence };
45976
46058
  if (evidence.length === 0)
@@ -45979,6 +46061,8 @@ function groundAnswer(proposed, pages, opts = {}) {
45979
46061
  if (badAt >= 0) {
45980
46062
  const bad = evidence[badAt];
45981
46063
  const reason = `the answer is not grounded: "${bad.claim}" \u2014 ${bad.why ?? "ungrounded"}`;
46064
+ if (bad.why?.startsWith(UNCONFIRMED_WRITE) === true)
46065
+ return { accept: false, reason, answer, unconfirmedWrite: true };
45982
46066
  return grounded_[badAt].notAnswer ? { accept: false, reason, answer, notAnswer: true } : { accept: false, reason, answer };
45983
46067
  }
45984
46068
  const grounded = new Set(evidence.flatMap((e) => numbersIn(e.quote)));
@@ -46157,7 +46241,11 @@ async function reportAnswer(gen, input2) {
46157
46241
  answer: out.answer === null ? null : r(out.answer),
46158
46242
  claims: out.claims.map((c) => ({ claim: r(c.claim), quote: r(c.quote), ...c.absent == null ? {} : { absent: r(c.absent) } }))
46159
46243
  });
46160
- const grounding = { goal: input2.goal, ...input2.ownInputs === void 0 ? {} : { ownInputs: input2.ownInputs } };
46244
+ const grounding = {
46245
+ goal: input2.goal,
46246
+ ...input2.ownInputs === void 0 ? {} : { ownInputs: input2.ownInputs },
46247
+ ...input2.unreadWrites === void 0 ? {} : { unreadWrites: input2.unreadWrites }
46248
+ };
46161
46249
  const res = await gen.generate("goal.answer", ask);
46162
46250
  const verdict = await vetoed(groundAnswer(scrub3(res.output), input2.pages, grounding), input2.judge, vet, vetoes);
46163
46251
  if (verdict.accept)
@@ -46267,6 +46355,7 @@ function initAnswers(ctx, cfg) {
46267
46355
  ctx.settledClick = null;
46268
46356
  ctx.clickedRegion = null;
46269
46357
  ctx.wroteOk = false;
46358
+ ctx.readBackAsked = false;
46270
46359
  ctx.writeGoal = goalAsksToWrite(cfg.goal);
46271
46360
  ctx.vetoes = new VetoedAnswers();
46272
46361
  ctx.replies = new ObservedPages(ctx.secrets);
@@ -48116,6 +48205,29 @@ function deferEnding(ctx, step, ending) {
48116
48205
  return note;
48117
48206
  }
48118
48207
 
48208
+ // ../explore/dist/goal-loop/read-back.js
48209
+ function shownOn(step) {
48210
+ return [step.visibleText, ...step.snap.controls.map((c) => c.value ?? "")].join("\n");
48211
+ }
48212
+ async function readBackProbe(ctx, step) {
48213
+ const unread = ctx.observed.unreadShownIn(shownOn(step));
48214
+ if (unread.length === 0 || ctx.sideEffects.inflight().length > 0)
48215
+ return [];
48216
+ const r = await act(ctx.cfg.actor, { op: "reload", control: null });
48217
+ if (!r.ok)
48218
+ return [];
48219
+ const text2 = await readPageText(ctx.page, ctx.secrets).catch(() => "");
48220
+ 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));
48222
+ const listed2 = (vs) => vs.map((v) => `"${v}"`).join(", ");
48223
+ const missing = unread.filter((v) => !back.includes(v));
48224
+ 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)})`);
48225
+ return back;
48226
+ }
48227
+ function unreadShown(ctx, step) {
48228
+ return ctx.observed.unreadShownIn(shownOn(step));
48229
+ }
48230
+
48119
48231
  // ../explore/dist/goal-loop/handle-report.js
48120
48232
  async function handleReport(ctx, step) {
48121
48233
  const { cfg } = ctx;
@@ -48137,6 +48249,8 @@ async function handleReport(ctx, step) {
48137
48249
  ctx.noteReplyText(snap.url, await readPageText(ctx.page, ctx.secrets));
48138
48250
  }
48139
48251
  const replyPages = ctx.replyGoal ? ctx.replies.pages() : null;
48252
+ if (replyPages === null)
48253
+ await readBackProbe(ctx, step);
48140
48254
  const verdict = replyPages !== null && replyPages.length === 0 ? {
48141
48255
  accept: false,
48142
48256
  reason: ctx.preSend === null ? "no reply observed: no message was sent yet \u2014 text on the page before the conversation is not a reply" : `no reply observed: no new message appeared after the send within the reply wait (${Math.round(ctx.replyWaitMs / 1e3)}s)`,
@@ -48150,7 +48264,7 @@ async function handleReport(ctx, step) {
48150
48264
  judge: cfg.judge,
48151
48265
  vetoes: ctx.vetoes,
48152
48266
  // #238: "none exists" is an answer only on observed pages that cover the app enough.
48153
- ...replyPages === null ? { topNav: ctx.observed.topNavigation(), ownInputs: ctx.observed.ownInputs() } : {}
48267
+ ...replyPages === null ? { topNav: ctx.observed.topNavigation(), ownInputs: ctx.observed.ownInputs(), unreadWrites: ctx.observed.unreadWrites() } : {}
48154
48268
  }).then((v) => v.accept && ctx.writeGoal && !ctx.wroteOk && v.answer.absent !== true ? { accept: false, reason: UNSAVED_WRITE_REASON, answer: v.answer } : v).catch((e) => ({ accept: false, reason: `no answer could be generated: ${firstLine(e)}`, answer: null }));
48155
48269
  if (verdict.accept) {
48156
48270
  const deferred = deferEnding(ctx, step, "report");
@@ -48170,6 +48284,12 @@ async function handleReport(ctx, step) {
48170
48284
  ctx.stop = "done";
48171
48285
  return "stop";
48172
48286
  }
48287
+ if (verdict.unconfirmedWrite === true && !ctx.readBackAsked) {
48288
+ ctx.readBackAsked = true;
48289
+ ctx.history.push(`report deferred: ${verdict.reason}`);
48290
+ record2(false, `report deferred: ${verdict.reason}`, { answer: verdict.answer, origin: "engine" });
48291
+ return "continue";
48292
+ }
48173
48293
  ctx.reportRejections += 1;
48174
48294
  for (const e of verdict.answer?.evidence ?? [])
48175
48295
  if (e.grounded)
@@ -48189,6 +48309,15 @@ async function handleReport(ctx, step) {
48189
48309
  }
48190
48310
 
48191
48311
  // ../explore/dist/goal-loop/handle-done.js
48312
+ async function unreadWriteHold(ctx, step, outcome) {
48313
+ if (outcome.status === "completed" && outcome.verifiedBy === "success-condition")
48314
+ return null;
48315
+ await readBackProbe(ctx, step);
48316
+ const unread = unreadShown(ctx, step);
48317
+ if (unread.length === 0)
48318
+ return null;
48319
+ return `what the run sent (${unread.map((v) => `"${v}"`).join(", ")}) has not shown on a page loaded since the write \u2014 the app may not have kept it (open the page where the app lists it)`;
48320
+ }
48192
48321
  async function handleDone(ctx, step) {
48193
48322
  const { cfg } = ctx;
48194
48323
  const { snap, decision, record: record2, signIn, pendingNote, acceptedBy, groundGoal } = step;
@@ -48200,7 +48329,7 @@ async function handleDone(ctx, step) {
48200
48329
  !(cfg.successCheck === void 0 && ctx.minEffort !== null && ctx.depth.report(ctx.tracker.actions, ctx.tracker.decisions, ctx.minEffort).minimum?.met === false)) {
48201
48330
  ctx.goalChecked.add(snap.signature);
48202
48331
  const { verdict, judgments } = await groundGoal();
48203
- if (verdict.accept) {
48332
+ if (verdict.accept && await unreadWriteHold(ctx, step, verdict.outcome) === null) {
48204
48333
  record2(true, `goal already met \u2014 stopped instead of "${decision.op}": ${acceptedBy(verdict.outcome)}`, {
48205
48334
  op: "done",
48206
48335
  control: null,
@@ -48236,7 +48365,19 @@ async function handleDone(ctx, step) {
48236
48365
  }
48237
48366
  }
48238
48367
  if (decision.op === "done") {
48239
- const { verdict, judgments } = await groundGoal(false, true);
48368
+ const grounded = await groundGoal(false, true);
48369
+ const { judgments } = grounded;
48370
+ let verdict = grounded.verdict;
48371
+ const hold = verdict.accept ? await unreadWriteHold(ctx, step, verdict.outcome) : null;
48372
+ if (hold !== null) {
48373
+ if (!ctx.readBackAsked) {
48374
+ ctx.readBackAsked = true;
48375
+ ctx.history.push(`done deferred: ${hold}`);
48376
+ record2(false, `done deferred: ${hold}`, { origin: "engine" });
48377
+ return "continue";
48378
+ }
48379
+ verdict = { accept: false, reason: hold };
48380
+ }
48240
48381
  if (verdict.accept) {
48241
48382
  record2(true, `done accepted${pendingNote(verdict.outcome) === null ? "" : " provisionally"}: ${acceptedBy(verdict.outcome)}`, {
48242
48383
  ...judgments === void 0 ? {} : { judgments }
@@ -48943,10 +49084,20 @@ async function handleSelectOption(ctx, step, op) {
48943
49084
  return "continue";
48944
49085
  }
48945
49086
  const named = text2 === null ? null : matchOption(text2, options);
49087
+ const field3 = control.name || control.summary;
49088
+ const noop2 = `${quote(named ?? "", 60)} is already selected in ${field3} \u2014 nothing to change`;
49089
+ const setByRun = () => ctx.transcript.entries().some((e) => e.op === "select" && e.actOk && e.value === named && (e.target ?? "").includes(`"${control.name}"`));
49090
+ if (named !== null && named === current2 && !isPlaceholderOption(named) && !ctx.history.includes(noop2) && !setByRun()) {
49091
+ ctx.fillHelper.commit();
49092
+ ctx.history.push(noop2);
49093
+ record2(true, noop2, { value: named });
49094
+ ctx.lastActedOp = op;
49095
+ return "continue";
49096
+ }
48946
49097
  if (named !== null && !choices.includes(named)) {
48947
49098
  ctx.fillHelper.commit();
48948
49099
  const why = named === current2 ? `${quote(named, 60)} is already selected` : `${quote(named, 60)} is a placeholder, not a choice`;
48949
- const reason = `select refused: ${why} in ${control.name || control.summary} \u2014 options not tried: ${untried()}`;
49100
+ const reason = `select refused: ${why} in ${field3} \u2014 options not tried: ${untried()}`;
48950
49101
  ctx.history.push(reason);
48951
49102
  record2(false, reason, { origin: "engine", value: named });
48952
49103
  ctx.lastActedOp = op;
@@ -49245,7 +49396,7 @@ async function perceiveStep(ctx) {
49245
49396
  if (lc !== null && lc !== ctx.settledClick) {
49246
49397
  ctx.settledClick = lc;
49247
49398
  if (lc.writes.length > 0 && lc.writes.every((w) => w.status !== null && w.status >= 200 && w.status < 300)) {
49248
- ctx.observed.confirmOwnInputs();
49399
+ ctx.observed.confirmOwnInputs(await documentOf(ctx.page));
49249
49400
  ctx.wroteOk = true;
49250
49401
  }
49251
49402
  }
@@ -49696,6 +49847,7 @@ var APPEARED_CHARS = 400;
49696
49847
  function clipLine(s3) {
49697
49848
  return s3.length <= APPEARED_CHARS ? s3 : `${s3.slice(0, APPEARED_CHARS - 1)}\u2026`;
49698
49849
  }
49850
+ var PROGRESS_LINE = /\b\d+\s*(?:of|\/)\s*\d+\b|\b(?:step|question|page|part|stage|section|confirmation)\s+\d+\b/i;
49699
49851
  function appearedLines(before, after) {
49700
49852
  const lines = (t) => t.split("\n").map((l2) => l2.replace(/\s+/g, " ").trim()).filter((l2) => l2 !== "");
49701
49853
  const shape3 = (l2) => l2.replace(/\d+/g, "#");
@@ -49710,7 +49862,10 @@ function appearedLines(before, after) {
49710
49862
  else
49711
49863
  out.push(l2);
49712
49864
  }
49713
- return out;
49865
+ if (out.length > 0)
49866
+ return out;
49867
+ const was = new Set(lines(before));
49868
+ return lines(after).filter((l2) => PROGRESS_LINE.test(l2) && !was.has(l2));
49714
49869
  }
49715
49870
 
49716
49871
  // ../explore/dist/goal-loop/page-view.js
@@ -49791,8 +49946,11 @@ async function viewPage(ctx, step) {
49791
49946
  ctx.chrome.observe(new URL(snap.url).pathname, snap.controls);
49792
49947
  } catch {
49793
49948
  }
49949
+ const document2 = await documentOf(ctx.page);
49794
49950
  ctx.observed.add(snap.url, visibleText, [...controlFields(snap.controls), ...richFields], {
49795
49951
  ...await readPageHeadings(ctx.page, ctx.secrets),
49952
+ // #647: which document load this is — a later one that shows a sent value reads it back.
49953
+ ...document2 === void 0 ? {} : { document: document2 },
49796
49954
  // #223: the action / label names (a quote made only of them is a label, not an answer) and
49797
49955
  // the document's status (an answer on a 404 page is no answer). A link that is page content
49798
49956
  // (in the main content, a list, a table, a card) is NOT one: its text may be the answer.
@@ -62744,9 +62902,9 @@ function hostStarvedFailure(failure3, health) {
62744
62902
  }
62745
62903
 
62746
62904
  // src/build-info.generated.ts
62747
- var GENERATED_COMMIT = "f37c33b";
62748
- var GENERATED_TREE = "cd26ad0";
62749
- var GENERATED_BUILT_AT = "2026-10-22T22:17:55.712Z";
62905
+ var GENERATED_COMMIT = "58694b9";
62906
+ var GENERATED_TREE = "3e51f17";
62907
+ var GENERATED_BUILT_AT = "2026-10-23T15:47:25.272Z";
62750
62908
 
62751
62909
  // src/version.ts
62752
62910
  import { readFileSync as readFileSync5 } from "node:fs";
@@ -62768,13 +62926,13 @@ function readCliVersion() {
62768
62926
 
62769
62927
  // src/engine.ts
62770
62928
  function bundledCommit() {
62771
- return true ? "f37c33b" : void 0;
62929
+ return true ? "58694b9" : void 0;
62772
62930
  }
62773
62931
  function bundledBuiltAt() {
62774
- return true ? "2026-10-22T22:17:55.712Z" : void 0;
62932
+ return true ? "2026-10-23T15:47:25.272Z" : void 0;
62775
62933
  }
62776
62934
  function bundledTree() {
62777
- return true ? "cd26ad0" : void 0;
62935
+ return true ? "3e51f17" : void 0;
62778
62936
  }
62779
62937
  function currentBuildTree() {
62780
62938
  return bundledTree() ?? GENERATED_TREE;
@@ -96830,6 +96988,43 @@ function reportSlowness(replays) {
96830
96988
  import { mkdir as mkdir22, writeFile as writeFile25 } from "node:fs/promises";
96831
96989
  import { join as join52, resolve as resolve16 } from "node:path";
96832
96990
 
96991
+ // src/outcome-targets.ts
96992
+ function evaluateOutcomeTargets(outcomes, baseline) {
96993
+ return outcomes.map((o) => evaluateOne(o, baseline));
96994
+ }
96995
+ function evaluateOne(o, baseline) {
96996
+ const metric = o.metric;
96997
+ const target = o.target;
96998
+ if (metric === void 0 || target === void 0) {
96999
+ return { outcomeId: o.id, status: "not-decidable-by-replay", reason: "no metric or no target" };
97000
+ }
97001
+ const written2 = `${target.op} ${target.value} ${target.unit}`;
97002
+ if (metric.kind !== "duration") {
97003
+ return { outcomeId: o.id, status: "not-decidable-by-replay", target: written2, reason: `a ${metric.kind} metric needs real users, not a replay` };
97004
+ }
97005
+ const at3 = (name) => baseline.anchors.find((a) => a.name === name)?.atMs;
97006
+ const from = at3(metric.from);
97007
+ const to = at3(metric.to);
97008
+ const missing = from === void 0 ? metric.from : to === void 0 ? metric.to : null;
97009
+ if (missing !== null || from === void 0 || to === void 0) {
97010
+ return { outcomeId: o.id, status: "unmeasured", target: written2, reason: `anchor '${missing}' is not in the replay's baseline` };
97011
+ }
97012
+ const floorSeconds = Math.max(0, to - from) / 1e3;
97013
+ const floor = `the replay took ${floorSeconds}s from '${metric.from}' to '${metric.to}'`;
97014
+ if (metric.stat === "share_under") {
97015
+ const wantsShare = (target.op === ">" || target.op === ">=") && target.unit === "percent" && target.value > 0;
97016
+ if (!wantsShare || metric.threshold === void 0) {
97017
+ return { outcomeId: o.id, status: "not-decidable-by-replay", floorSeconds, target: written2, reason: "only a lower bound on the share under a threshold is decidable" };
97018
+ }
97019
+ return metric.threshold < floorSeconds ? { outcomeId: o.id, status: "miss", floorSeconds, target: written2, reason: `${floor}, over the ${metric.threshold}s threshold: no one finishes under it` } : { outcomeId: o.id, status: "not-decidable", floorSeconds, target: written2, reason: `${floor}, within the ${metric.threshold}s threshold` };
97020
+ }
97021
+ if (target.unit !== "s" || target.op !== "<" && target.op !== "<=") {
97022
+ return { outcomeId: o.id, status: "not-decidable-by-replay", floorSeconds, target: written2, reason: "only an upper bound in seconds is decidable" };
97023
+ }
97024
+ const breaks = target.op === "<" ? floorSeconds >= target.value : floorSeconds > target.value;
97025
+ return breaks ? { outcomeId: o.id, status: "miss", floorSeconds, target: written2, reason: `${floor}: the fastest path already breaks ${written2}` } : { outcomeId: o.id, status: "not-decidable", floorSeconds, target: written2, reason: `${floor}, within ${written2}` };
97026
+ }
97027
+
96833
97028
  // src/ux-usability/setup.ts
96834
97029
  import { join as join46, resolve as resolvePath11 } from "node:path";
96835
97030
 
@@ -97709,6 +97904,7 @@ var SIGNAL_RULES = {
97709
97904
  "duplicate-create": { id: "signal-duplicate-create", principle: "Error prevention", citation: NNG, severity: "major" },
97710
97905
  "failed-submit": { id: "signal-failed-submit", principle: "Help users recognize, diagnose, and recover from errors", citation: NNG, severity: "major" },
97711
97906
  "url-mismatch": { id: "signal-url-mismatch", principle: "Consistency and standards", citation: NNG, severity: "minor" },
97907
+ "repeated-advance": { id: "signal-repeated-advance", principle: "Flexibility and efficiency of use", citation: NNG, severity: "minor" },
97712
97908
  "horizontal-overflow": { id: "signal-horizontal-overflow", principle: "Flexibility and efficiency of use", citation: NNG, severity: "major" },
97713
97909
  "vertical-clipping": { id: "signal-vertical-clipping", principle: "Visibility of system status", citation: NNG, severity: "major" }
97714
97910
  };
@@ -97791,6 +97987,14 @@ function quoteLine(text2, needle) {
97791
97987
  const t = line2.replace(/\s+/g, " ").trim();
97792
97988
  return t.length <= 160 ? t : `${t.slice(0, 157)}...`;
97793
97989
  }
97990
+ function labelOf(s3) {
97991
+ const quoted = /"([^"]{2,160})"/.exec(s3.target ?? "")?.[1];
97992
+ const raw = quoted ?? s3.descriptor?.name ?? s3.descriptor?.text ?? null;
97993
+ if (raw === null || raw === void 0)
97994
+ return null;
97995
+ const t = raw.replace(/[→←↗›»…]+/g, " ").replace(/\s+/g, " ").trim();
97996
+ return t.length >= 2 ? t : null;
97997
+ }
97794
97998
 
97795
97999
  // ../ux/dist/signals/basic.js
97796
98000
  function detectHungRequests(capture2, opts = {}) {
@@ -98080,6 +98284,71 @@ function detectInertControls(capture2) {
98080
98284
  return out;
98081
98285
  }
98082
98286
 
98287
+ // ../ux/dist/signals/effort.js
98288
+ var REPEATED_ADVANCE_MIN = 3;
98289
+ var ADVANCE_NAME = /^(continue|next|next step|confirm|ok|okay|proceed|yes|go on)$/i;
98290
+ var INPUT_OPS = /* @__PURE__ */ new Set(["type", "select", "send", "upload", "fill", "edit_text", "check", "uncheck"]);
98291
+ var PASSIVE_OPS = /* @__PURE__ */ new Set(["wait", "scroll_down", "scroll_up"]);
98292
+ function advanced(capture2, s3) {
98293
+ const before = capture2.screens.filter((x) => x.step === s3.step).pop();
98294
+ const after = capture2.screens.find((x) => x.step > s3.step);
98295
+ if (before === void 0 || after === void 0 || routeOf5(after.url) !== routeOf5(before.url))
98296
+ return void 0;
98297
+ return after.visibleText !== before.visibleText ? after : void 0;
98298
+ }
98299
+ function detectRepeatedAdvances(capture2) {
98300
+ const streaks = [];
98301
+ let current2 = [];
98302
+ let key2 = null;
98303
+ const close = () => {
98304
+ if (current2.length >= REPEATED_ADVANCE_MIN)
98305
+ streaks.push(current2);
98306
+ current2 = [];
98307
+ key2 = null;
98308
+ };
98309
+ for (const s3 of capture2.steps) {
98310
+ if (s3.op !== null && PASSIVE_OPS.has(s3.op))
98311
+ continue;
98312
+ const label2 = s3.op === "click" && s3.actOk ? labelOf(s3) : null;
98313
+ const after = label2 !== null && ADVANCE_NAME.test(label2) ? advanced(capture2, s3) : void 0;
98314
+ if (label2 === null || after === void 0 || s3.op !== null && INPUT_OPS.has(s3.op)) {
98315
+ close();
98316
+ continue;
98317
+ }
98318
+ const k = `${routeOf5(s3.url)}|${label2.toLowerCase()}`;
98319
+ if (key2 !== null && k !== key2)
98320
+ close();
98321
+ key2 = k;
98322
+ current2.push({ step: s3, after });
98323
+ }
98324
+ close();
98325
+ return streaks.map((hits) => {
98326
+ const label2 = labelOf(hits[0].step) ?? "the advance control";
98327
+ const n3 = hits.length;
98328
+ const steps = hits.map((h) => h.step.step);
98329
+ const last = hits[n3 - 1];
98330
+ return makeSignalFinding({
98331
+ kind: "repeated-advance",
98332
+ confidence: n3 >= 5 ? 0.8 : n3 === 4 ? 0.7 : 0.6,
98333
+ url: last.after.url,
98334
+ screenId: last.after.signature,
98335
+ observation: `The flow needed "${label2}" ${n3} times in a row (steps ${steps.join(", ")}) with nothing entered between them, each only moving to the next screen.`,
98336
+ userImpact: "Every extra confirmation costs the user time and attention without adding a decision; repeated identical steps also read as the page not responding.",
98337
+ recommendation: `Fold the repeated "${label2}" screens into one step, or let the user confirm once.`,
98338
+ controls: [label2],
98339
+ occurrences: n3,
98340
+ screenIds: [...new Set(hits.map((h) => h.after.signature))],
98341
+ evidence: {
98342
+ kind: "repeated-advance",
98343
+ steps,
98344
+ requests: [],
98345
+ ...last.after.screenshot === void 0 ? {} : { screenshot: last.after.screenshot },
98346
+ detail: `${n3} consecutive successful "${label2}" clicks on ${routeOf5(last.after.url)} with no input between them, each changing the page text`
98347
+ }
98348
+ });
98349
+ });
98350
+ }
98351
+
98083
98352
  // ../ux/dist/signals/journey.js
98084
98353
  var ERROR_TEXT = /\b(error|errors|failed|failure|went wrong|unavailable|couldn['’]?t|could not|can['’]?t|cannot|unable|try again|invalid|problem|denied|forbidden|expired|not (?:be )?(?:saved|sent|found|recorded))\b/i;
98085
98354
  var GENERIC_ERROR = /\b(something went wrong|an? (?:unexpected |unknown )?error (?:has )?occurred|unexpected error|oops|try again later)\b/i;
@@ -98088,14 +98357,6 @@ var FIELD_OPS = /* @__PURE__ */ new Set(["type", "select"]);
98088
98357
  function normLine(s3) {
98089
98358
  return s3.replace(/\s+/g, " ").trim().toLowerCase();
98090
98359
  }
98091
- function labelOf(s3) {
98092
- const quoted = /"([^"]{2,160})"/.exec(s3.target ?? "")?.[1];
98093
- const raw = quoted ?? s3.descriptor?.name ?? s3.descriptor?.text ?? null;
98094
- if (raw === null || raw === void 0)
98095
- return null;
98096
- const t = raw.replace(/[→←↗›»…]+/g, " ").replace(/\s+/g, " ").trim();
98097
- return t.length >= 2 ? t : null;
98098
- }
98099
98360
  function screenBefore(capture2, step) {
98100
98361
  return capture2.screens.filter((s3) => s3.step <= step).pop();
98101
98362
  }
@@ -98163,7 +98424,17 @@ function detectStuckJobs(capture2, opts = {}) {
98163
98424
  }
98164
98425
  const polls = [...polled.values()].sort((a, b2) => b2.length - a.length)[0] ?? [];
98165
98426
  const inProgress = reclicks.length > 0 || waits.length > 0 || busy.length > 0 || polls.length >= 3;
98427
+ const before = screenBefore(capture2, start.step);
98428
+ const was = new Set(before === void 0 ? [] : linesOf(before.visibleText).map(normLine));
98429
+ const labelLine = normLine(label2);
98430
+ const own2 = new Set([start.value, start.message, ...capture2.typedValues ?? []].filter((v) => v !== void 0 && v.trim().length > 0).map(normLine));
98166
98431
  const last = screens[screens.length - 1];
98432
+ const completed = before !== void 0 && !last.busy && !BUSY_TEXT2.test(last.visibleText) && screens.some((s3) => linesOf(s3.visibleText).some((line2) => {
98433
+ const n3 = normLine(line2);
98434
+ return n3.length >= 2 && n3 !== labelLine && !was.has(n3) && !own2.has(n3) && !BUSY_TEXT2.test(line2);
98435
+ }));
98436
+ if (completed)
98437
+ continue;
98167
98438
  const offered = reclicks.length > 0 || normLine(last.visibleText).includes(normLine(label2));
98168
98439
  const endedHere = !capture2.screens.some((s3) => s3.step > last.step);
98169
98440
  const startedAt = Math.min(...writes.map((w) => w.startedAt));
@@ -98475,6 +98746,7 @@ function detectSignals(capture2, opts = {}) {
98475
98746
  ...withoutSubsumedDuplicateWrites(detectDuplicateWrites(capture2, opts), journey),
98476
98747
  ...detectInternalIds(capture2),
98477
98748
  ...detectInertControls(capture2),
98749
+ ...detectRepeatedAdvances(capture2),
98478
98750
  ...journey
98479
98751
  ];
98480
98752
  }
@@ -98506,6 +98778,7 @@ var SIGNAL_IMPACT = {
98506
98778
  "internal-id": "confused",
98507
98779
  "inert-control": "confused",
98508
98780
  "url-mismatch": "confused",
98781
+ "repeated-advance": "slowed",
98509
98782
  "horizontal-overflow": "confused",
98510
98783
  "vertical-clipping": "confused"
98511
98784
  };
@@ -103328,6 +103601,29 @@ var REAL_RUNNERS = {
103328
103601
  usability: runUsabilityMission,
103329
103602
  verifyFix: runVerifyFix
103330
103603
  };
103604
+ async function addOutcomeTargets(items, executed, opts) {
103605
+ const catalogDir = opts.projectDir === void 0 ? findProjectDir() : opts.projectDir;
103606
+ if (catalogDir === null) return;
103607
+ const catalogs = /* @__PURE__ */ new Map();
103608
+ const catalogFor = (journeysDir) => {
103609
+ const dir = resolve16(journeysDir);
103610
+ let c = catalogs.get(dir);
103611
+ if (c === void 0) {
103612
+ c = loadCatalog(catalogDir, dir).catch(() => null);
103613
+ catalogs.set(dir, c);
103614
+ }
103615
+ return c;
103616
+ };
103617
+ for (const [idx, { item }] of executed.entries()) {
103618
+ const report2 = items[idx];
103619
+ if (report2 === void 0 || item.kind !== "journey" || report2.baseline === void 0) continue;
103620
+ const catalog = await catalogFor(item.t.target.journeysDir ?? opts.journeysDir);
103621
+ const jobId = catalog?.journeys.find((j) => j.id === item.name)?.job;
103622
+ const outcomes = catalog === null || jobId === void 0 ? void 0 : findJob(catalog, jobId)?.job.desiredOutcomes;
103623
+ if (outcomes === void 0 || outcomes.length === 0) continue;
103624
+ items[idx] = { ...report2, outcomeTargets: evaluateOutcomeTargets(outcomes, report2.baseline) };
103625
+ }
103626
+ }
103331
103627
  async function approvalDefects(opts, req) {
103332
103628
  const dirs = [...new Set([opts.journeysDir, ...opts.suite.targets.flatMap((t) => t.journeysDir === void 0 ? [] : [t.journeysDir])].map((d) => resolve16(d)))];
103333
103629
  const catalogs = [];
@@ -103553,6 +103849,7 @@ async function runCheck(opts) {
103553
103849
  ...ex.locatorHealth === void 0 ? {} : { locatorHealth: ex.locatorHealth }
103554
103850
  };
103555
103851
  });
103852
+ await addOutcomeTargets(itemReports, executed, opts);
103556
103853
  const details = executed.flatMap(
103557
103854
  ({ item, ex }) => item.kind === "journey" && ex?.locatorDetail !== void 0 ? [{ name: item.name, detail: ex.locatorDetail }] : []
103558
103855
  );
@@ -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 = "f37c33b";
9
- export const GENERATED_TREE = "cd26ad0";
10
- export const GENERATED_BUILT_AT = "2026-10-22T22:17:48.310Z";
8
+ export const GENERATED_COMMIT = "58694b9";
9
+ export const GENERATED_TREE = "3e51f17";
10
+ export const GENERATED_BUILT_AT = "2026-10-23T15:47:14.035Z";
11
11
  //# sourceMappingURL=build-info.generated.js.map
package/dist/check-api.js CHANGED
@@ -6,6 +6,8 @@ import { aggregateOf, formatUsageLine } from "@jevitate/ai-core";
6
6
  import { consolidate, diffRuns, findingKey, renderJUnit, renderReportMarkdown, renderSarif } from "@jevitate/findings";
7
7
  import { approvalsReportVerified } from "./approval-provenance.js";
8
8
  import { loadCatalog } from "./catalog-api.js";
9
+ import { findJob } from "./catalog.js";
10
+ import { evaluateOutcomeTargets } from "./outcome-targets.js";
9
11
  import { runAdversarialCliMission, runCoverageMission, runExploration, runFeatureCliMission } from "./explore-api.js";
10
12
  import { runJourneyProgrammatically } from "./journey-api.js";
11
13
  import { runUsabilityMission } from "./ux-api.js";
@@ -33,6 +35,37 @@ const REAL_RUNNERS = {
33
35
  usability: runUsabilityMission,
34
36
  verifyFix: runVerifyFix,
35
37
  };
38
+ /**
39
+ * #643: for each Journey item with a baseline (a clean replay) whose catalog job declares desired
40
+ * outcomes, the outcome-target results (`evaluateOutcomeTargets`). Catalogs are read once per
41
+ * Journeys dir; a catalog that cannot be read adds nothing (the targets are advisory).
42
+ */
43
+ async function addOutcomeTargets(items, executed, opts) {
44
+ const catalogDir = opts.projectDir === undefined ? findProjectDir() : opts.projectDir;
45
+ if (catalogDir === null)
46
+ return;
47
+ const catalogs = new Map();
48
+ const catalogFor = (journeysDir) => {
49
+ const dir = resolve(journeysDir);
50
+ let c = catalogs.get(dir);
51
+ if (c === undefined) {
52
+ c = loadCatalog(catalogDir, dir).catch(() => null);
53
+ catalogs.set(dir, c);
54
+ }
55
+ return c;
56
+ };
57
+ for (const [idx, { item }] of executed.entries()) {
58
+ const report = items[idx];
59
+ if (report === undefined || item.kind !== "journey" || report.baseline === undefined)
60
+ continue;
61
+ const catalog = await catalogFor(item.t.target.journeysDir ?? opts.journeysDir);
62
+ const jobId = catalog?.journeys.find((j) => j.id === item.name)?.job;
63
+ const outcomes = catalog === null || jobId === undefined ? undefined : findJob(catalog, jobId)?.job.desiredOutcomes;
64
+ if (outcomes === undefined || outcomes.length === 0)
65
+ continue;
66
+ items[idx] = { ...report, outcomeTargets: evaluateOutcomeTargets(outcomes, report.baseline) };
67
+ }
68
+ }
36
69
  /** #437: the `--require-approvals` violations as hard `approval` defects (one per item and problem). */
37
70
  async function approvalDefects(opts, req) {
38
71
  const dirs = [...new Set([opts.journeysDir, ...opts.suite.targets.flatMap((t) => (t.journeysDir === undefined ? [] : [t.journeysDir]))].map((d) => resolve(d)))];
@@ -309,6 +342,8 @@ export async function runCheck(opts) {
309
342
  ...(ex.locatorHealth === undefined ? {} : { locatorHealth: ex.locatorHealth }),
310
343
  };
311
344
  });
345
+ // #643: each passed Journey item's job outcome targets against its machine baseline (advisory, never gating).
346
+ await addOutcomeTargets(itemReports, executed, opts);
312
347
  // #470: locator health over the Journey items (advisory unless the gate is set), and its trend against --baseline.
313
348
  const details = executed.flatMap(({ item, ex }) => item.kind === "journey" && ex?.locatorDetail !== undefined ? [{ name: item.name, detail: ex.locatorDetail }] : []);
314
349
  const combined = combineHealth(details.map((d) => d.detail));
@@ -1 +1 @@
1
- {"version":3,"file":"check-api.js","sourceRoot":"","sources":["../src/check-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-api.js","sourceRoot":"","sources":["../src/check-api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ApprovalChannel } from "@jevitate/journey";
2
2
  import type { SlownessReport } from "./cold-start-report.js";
3
+ import type { OutcomeTargetResult } from "./outcome-targets.js";
3
4
  import { type GenerationPort, type JudgmentPort, type UsageAggregate, type UsageTracker } from "@jevitate/ai-core";
4
5
  import type { BrowserPort } from "@jevitate/playwright";
5
6
  import type { BrowserRunOptions } from "./browser-run-options.js";
@@ -177,6 +178,8 @@ export interface CheckItemReport {
177
178
  readonly journeyHash?: string;
178
179
  /** #469: the machine baseline of a Journey item — present only when its run was clean. */
179
180
  readonly baseline?: CheckBaseline;
181
+ /** #643: the item's job outcome targets against `baseline` (advisory; present when the job declares desired outcomes). */
182
+ readonly outcomeTargets?: readonly OutcomeTargetResult[];
180
183
  /** #470: how stable a Journey item's locators are (advisory; gates only past `maxBrittleSteps`). */
181
184
  readonly locatorHealth?: LocatorHealth;
182
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-types.js","sourceRoot":"","sources":["../src/check-types.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,eAAwB,CAAC;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,uIAAuI;AACvI,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,GAAG,cAAuB,CAAC;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,iGAAiG;AACjG,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,GAAG,qBAA8B,CAAC;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"check-types.js","sourceRoot":"","sources":["../src/check-types.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,eAAwB,CAAC;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,uIAAuI;AACvI,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,GAAG,cAAuB,CAAC;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,iGAAiG;AACjG,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,GAAG,qBAA8B,CAAC;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import type { DesiredOutcome } from "@jevitate/journey";
2
+ import type { CheckBaseline } from "./check-types.js";
3
+ /**
4
+ * #643 (owner decision, jtbd-data-model §8.2: "Jevitate reports target misses by default"): a job's
5
+ * desired-outcome targets against ONE clean replay's machine baseline (#469). Pure — no I/O, no clock.
6
+ *
7
+ * A clean replay is the fastest path the app allows, so its time between a duration metric's anchors
8
+ * is a floor no person goes below. The test is one-sided:
9
+ * - `miss`: the floor already breaks the target — no user can meet it (a p50/p75 upper bound in
10
+ * seconds the floor exceeds, or a `share_under` threshold the floor exceeds while the target wants
11
+ * some share under it);
12
+ * - `not-decidable`: the floor meets the target — whether people do is Journeeze's to measure;
13
+ * - `unmeasured`: an anchor the metric names is not in the baseline;
14
+ * - `not-decidable-by-replay`: no duration metric, no target, or a lower-bound target.
15
+ * Advisory: it never gates a run.
16
+ */
17
+ export type OutcomeTargetStatus = "miss" | "not-decidable" | "unmeasured" | "not-decidable-by-replay";
18
+ export interface OutcomeTargetResult {
19
+ readonly outcomeId: string;
20
+ readonly status: OutcomeTargetStatus;
21
+ /** Seconds between the metric's anchors on the replay, when both resolved. */
22
+ readonly floorSeconds?: number;
23
+ /** The target as written: `op value unit`. */
24
+ readonly target?: string;
25
+ readonly reason: string;
26
+ }
27
+ export declare function evaluateOutcomeTargets(outcomes: readonly DesiredOutcome[], baseline: CheckBaseline): OutcomeTargetResult[];
@@ -0,0 +1,41 @@
1
+ export function evaluateOutcomeTargets(outcomes, baseline) {
2
+ return outcomes.map((o) => evaluateOne(o, baseline));
3
+ }
4
+ function evaluateOne(o, baseline) {
5
+ const metric = o.metric;
6
+ const target = o.target;
7
+ if (metric === undefined || target === undefined) {
8
+ return { outcomeId: o.id, status: "not-decidable-by-replay", reason: "no metric or no target" };
9
+ }
10
+ const written = `${target.op} ${target.value} ${target.unit}`;
11
+ if (metric.kind !== "duration") {
12
+ return { outcomeId: o.id, status: "not-decidable-by-replay", target: written, reason: `a ${metric.kind} metric needs real users, not a replay` };
13
+ }
14
+ const at = (name) => baseline.anchors.find((a) => a.name === name)?.atMs;
15
+ const from = at(metric.from);
16
+ const to = at(metric.to);
17
+ const missing = from === undefined ? metric.from : to === undefined ? metric.to : null;
18
+ if (missing !== null || from === undefined || to === undefined) {
19
+ return { outcomeId: o.id, status: "unmeasured", target: written, reason: `anchor '${missing}' is not in the replay's baseline` };
20
+ }
21
+ const floorSeconds = Math.max(0, to - from) / 1000;
22
+ const floor = `the replay took ${floorSeconds}s from '${metric.from}' to '${metric.to}'`;
23
+ if (metric.stat === "share_under") {
24
+ // A share of people finishing under `threshold` seconds: none can when the floor is over it.
25
+ const wantsShare = (target.op === ">" || target.op === ">=") && target.unit === "percent" && target.value > 0;
26
+ if (!wantsShare || metric.threshold === undefined) {
27
+ return { outcomeId: o.id, status: "not-decidable-by-replay", floorSeconds, target: written, reason: "only a lower bound on the share under a threshold is decidable" };
28
+ }
29
+ return metric.threshold < floorSeconds
30
+ ? { outcomeId: o.id, status: "miss", floorSeconds, target: written, reason: `${floor}, over the ${metric.threshold}s threshold: no one finishes under it` }
31
+ : { outcomeId: o.id, status: "not-decidable", floorSeconds, target: written, reason: `${floor}, within the ${metric.threshold}s threshold` };
32
+ }
33
+ if (target.unit !== "s" || (target.op !== "<" && target.op !== "<=")) {
34
+ return { outcomeId: o.id, status: "not-decidable-by-replay", floorSeconds, target: written, reason: "only an upper bound in seconds is decidable" };
35
+ }
36
+ const breaks = target.op === "<" ? floorSeconds >= target.value : floorSeconds > target.value;
37
+ return breaks
38
+ ? { outcomeId: o.id, status: "miss", floorSeconds, target: written, reason: `${floor}: the fastest path already breaks ${written}` }
39
+ : { outcomeId: o.id, status: "not-decidable", floorSeconds, target: written, reason: `${floor}, within ${written}` };
40
+ }
41
+ //# sourceMappingURL=outcome-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outcome-targets.js","sourceRoot":"","sources":["../src/outcome-targets.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.21.0",
3
+ "version": "0.22.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",
@@ -62,26 +62,26 @@
62
62
  "ajv": "^8.20.0",
63
63
  "esbuild": "^0.28.2",
64
64
  "@jevitate/ai-core": "0.1.0",
65
- "@jevitate/domain": "0.1.0",
66
65
  "@jevitate/daemon": "0.1.0",
66
+ "@jevitate/domain": "0.1.0",
67
67
  "@jevitate/example-site": "0.1.0",
68
- "@jevitate/findings": "0.1.0",
69
68
  "@jevitate/explore": "0.1.0",
69
+ "@jevitate/findings": "0.1.0",
70
70
  "@jevitate/inbox": "0.1.0",
71
71
  "@jevitate/interpreter": "0.1.0",
72
- "@jevitate/load": "0.1.0",
73
72
  "@jevitate/journey": "0.1.0",
73
+ "@jevitate/load": "0.1.0",
74
74
  "@jevitate/mcp-facade": "0.1.0",
75
- "@jevitate/playwright": "0.1.0",
76
75
  "@jevitate/missions": "0.1.0",
77
- "@jevitate/recorder": "0.1.0",
78
- "@jevitate/regression": "0.1.0",
76
+ "@jevitate/playwright": "0.1.0",
79
77
  "@jevitate/recording": "0.1.0",
80
- "@jevitate/screenplay": "0.1.0",
78
+ "@jevitate/recorder": "0.1.0",
81
79
  "@jevitate/runtime": "0.1.0",
82
80
  "@jevitate/skills": "0.1.0",
83
- "@jevitate/sources": "0.1.0",
81
+ "@jevitate/regression": "0.1.0",
82
+ "@jevitate/screenplay": "0.1.0",
84
83
  "@jevitate/storage-sqlite": "0.1.0",
84
+ "@jevitate/sources": "0.1.0",
85
85
  "@jevitate/ux": "0.1.0"
86
86
  },
87
87
  "scripts": {