@jevitate/cli 0.2.0 → 0.4.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.
Files changed (217) hide show
  1. package/dist/ai-cli.d.ts +31 -11
  2. package/dist/ai-cli.js +100 -67
  3. package/dist/ai-cli.js.map +1 -1
  4. package/dist/author-journey-cli.js +3 -1
  5. package/dist/author-journey-cli.js.map +1 -1
  6. package/dist/bin.js +48715 -40027
  7. package/dist/browser-run-options.d.ts +32 -1
  8. package/dist/browser-run-options.js +69 -0
  9. package/dist/browser-run-options.js.map +1 -1
  10. package/dist/build-info.generated.js +2 -2
  11. package/dist/campaign-api.d.ts +153 -0
  12. package/dist/campaign-api.js +447 -0
  13. package/dist/campaign-api.js.map +1 -0
  14. package/dist/campaign-cli.d.ts +8 -0
  15. package/dist/campaign-cli.js +109 -0
  16. package/dist/campaign-cli.js.map +1 -0
  17. package/dist/check-api.js +3 -2
  18. package/dist/check-api.js.map +1 -1
  19. package/dist/check-budget.js +2 -1
  20. package/dist/check-budget.js.map +1 -1
  21. package/dist/check-execute.d.ts +4 -0
  22. package/dist/check-execute.js +46 -10
  23. package/dist/check-execute.js.map +1 -1
  24. package/dist/check-plan.d.ts +5 -0
  25. package/dist/check-plan.js +77 -4
  26. package/dist/check-plan.js.map +1 -1
  27. package/dist/check-suite.d.ts +14 -1
  28. package/dist/check-suite.js +26 -1
  29. package/dist/check-suite.js.map +1 -1
  30. package/dist/cli-output.d.ts +4 -0
  31. package/dist/cli-output.js +52 -5
  32. package/dist/cli-output.js.map +1 -1
  33. package/dist/cli-shared.d.ts +13 -3
  34. package/dist/cli-shared.js +52 -7
  35. package/dist/cli-shared.js.map +1 -1
  36. package/dist/defect-evidence.d.ts +3 -2
  37. package/dist/defect-evidence.js +12 -8
  38. package/dist/defect-evidence.js.map +1 -1
  39. package/dist/demo-aspect-api.js +2 -1
  40. package/dist/demo-aspect-api.js.map +1 -1
  41. package/dist/demo-aspect-cli.js +3 -1
  42. package/dist/demo-aspect-cli.js.map +1 -1
  43. package/dist/demo-capture.d.ts +37 -3
  44. package/dist/demo-capture.js +119 -20
  45. package/dist/demo-capture.js.map +1 -1
  46. package/dist/explore-adversarial.d.ts +11 -4
  47. package/dist/explore-adversarial.js +22 -13
  48. package/dist/explore-adversarial.js.map +1 -1
  49. package/dist/explore-cli.js +282 -31
  50. package/dist/explore-cli.js.map +1 -1
  51. package/dist/explore-coverage.d.ts +17 -2
  52. package/dist/explore-coverage.js +20 -14
  53. package/dist/explore-coverage.js.map +1 -1
  54. package/dist/explore-feature.d.ts +0 -2
  55. package/dist/explore-feature.js +7 -9
  56. package/dist/explore-feature.js.map +1 -1
  57. package/dist/explore-goal.d.ts +25 -7
  58. package/dist/explore-goal.js +62 -19
  59. package/dist/explore-goal.js.map +1 -1
  60. package/dist/explore-shared.d.ts +53 -3
  61. package/dist/explore-shared.js +48 -1
  62. package/dist/explore-shared.js.map +1 -1
  63. package/dist/fixture-auth.d.ts +13 -2
  64. package/dist/fixture-auth.js +19 -6
  65. package/dist/fixture-auth.js.map +1 -1
  66. package/dist/fixture-cli.d.ts +29 -0
  67. package/dist/fixture-cli.js +121 -7
  68. package/dist/fixture-cli.js.map +1 -1
  69. package/dist/github-issue-filer.js +2 -1
  70. package/dist/github-issue-filer.js.map +1 -1
  71. package/dist/host-health-run.d.ts +2 -1
  72. package/dist/host-health-run.js +8 -2
  73. package/dist/host-health-run.js.map +1 -1
  74. package/dist/init-cli.js +34 -5
  75. package/dist/init-cli.js.map +1 -1
  76. package/dist/init-keys.d.ts +11 -0
  77. package/dist/init-keys.js +5 -2
  78. package/dist/init-keys.js.map +1 -1
  79. package/dist/journey-annotate-api.js +17 -4
  80. package/dist/journey-annotate-api.js.map +1 -1
  81. package/dist/journey-annotate-cli.js +3 -1
  82. package/dist/journey-annotate-cli.js.map +1 -1
  83. package/dist/journey-api.d.ts +26 -1
  84. package/dist/journey-api.js +51 -25
  85. package/dist/journey-api.js.map +1 -1
  86. package/dist/journey-cli.d.ts +1 -1
  87. package/dist/journey-cli.js +44 -3
  88. package/dist/journey-cli.js.map +1 -1
  89. package/dist/journey-demo-api.d.ts +2 -0
  90. package/dist/journey-demo-api.js +23 -10
  91. package/dist/journey-demo-api.js.map +1 -1
  92. package/dist/journey-demo-cli.js +5 -2
  93. package/dist/journey-demo-cli.js.map +1 -1
  94. package/dist/journey-prefix.d.ts +194 -0
  95. package/dist/journey-prefix.js +279 -0
  96. package/dist/journey-prefix.js.map +1 -0
  97. package/dist/key-report.d.ts +49 -0
  98. package/dist/key-report.js +101 -0
  99. package/dist/key-report.js.map +1 -0
  100. package/dist/kill-signal.js +0 -1
  101. package/dist/kill-signal.js.map +1 -1
  102. package/dist/ledger-api.js +3 -1
  103. package/dist/ledger-api.js.map +1 -1
  104. package/dist/log-correlation.d.ts +63 -1
  105. package/dist/log-correlation.js +125 -16
  106. package/dist/log-correlation.js.map +1 -1
  107. package/dist/log-sources.js +6 -5
  108. package/dist/log-sources.js.map +1 -1
  109. package/dist/log-trace.d.ts +80 -0
  110. package/dist/log-trace.js +210 -0
  111. package/dist/log-trace.js.map +1 -0
  112. package/dist/logs-cli.js +60 -1
  113. package/dist/logs-cli.js.map +1 -1
  114. package/dist/logs-retention.js +2 -1
  115. package/dist/logs-retention.js.map +1 -1
  116. package/dist/masked-input.d.ts +22 -0
  117. package/dist/masked-input.js +99 -0
  118. package/dist/masked-input.js.map +1 -0
  119. package/dist/mcp-api.d.ts +3 -1
  120. package/dist/mcp-api.js +49 -7
  121. package/dist/mcp-api.js.map +1 -1
  122. package/dist/mcp-args.d.ts +12 -0
  123. package/dist/mcp-args.js +33 -0
  124. package/dist/mcp-args.js.map +1 -1
  125. package/dist/mcp-cli-tools.d.ts +6 -1
  126. package/dist/mcp-cli-tools.js +103 -16
  127. package/dist/mcp-cli-tools.js.map +1 -1
  128. package/dist/mission-api.js +2 -1
  129. package/dist/mission-api.js.map +1 -1
  130. package/dist/mission-cli.js +3 -1
  131. package/dist/mission-cli.js.map +1 -1
  132. package/dist/mission-fixtures.d.ts +10 -1
  133. package/dist/mission-fixtures.js +49 -15
  134. package/dist/mission-fixtures.js.map +1 -1
  135. package/dist/mission-queue-runner.d.ts +2 -0
  136. package/dist/mission-queue-runner.js +18 -5
  137. package/dist/mission-queue-runner.js.map +1 -1
  138. package/dist/multi-run-cli.js +7 -1
  139. package/dist/multi-run-cli.js.map +1 -1
  140. package/dist/openrouter-call.js +3 -2
  141. package/dist/openrouter-call.js.map +1 -1
  142. package/dist/program.js +4 -0
  143. package/dist/program.js.map +1 -1
  144. package/dist/project-dir.js +3 -2
  145. package/dist/project-dir.js.map +1 -1
  146. package/dist/record-api.d.ts +3 -1
  147. package/dist/record-api.js +5 -2
  148. package/dist/record-api.js.map +1 -1
  149. package/dist/record-cli.js +14 -2
  150. package/dist/record-cli.js.map +1 -1
  151. package/dist/regression-api.d.ts +6 -0
  152. package/dist/regression-api.js +4 -2
  153. package/dist/regression-api.js.map +1 -1
  154. package/dist/regression-cli.js +56 -4
  155. package/dist/regression-cli.js.map +1 -1
  156. package/dist/report-api.js +2 -1
  157. package/dist/report-api.js.map +1 -1
  158. package/dist/resource-preflight.d.ts +87 -0
  159. package/dist/resource-preflight.js +160 -0
  160. package/dist/resource-preflight.js.map +1 -0
  161. package/dist/result-schema.d.ts +1 -1
  162. package/dist/result-schema.js +1 -1
  163. package/dist/run-key-preflight.d.ts +42 -0
  164. package/dist/run-key-preflight.js +82 -0
  165. package/dist/run-key-preflight.js.map +1 -0
  166. package/dist/run-screenshots.js +11 -5
  167. package/dist/run-screenshots.js.map +1 -1
  168. package/dist/runtime-env.js +3 -2
  169. package/dist/runtime-env.js.map +1 -1
  170. package/dist/server-log-verify.d.ts +2 -0
  171. package/dist/server-log-verify.js +8 -3
  172. package/dist/server-log-verify.js.map +1 -1
  173. package/dist/signal-triage.d.ts +147 -0
  174. package/dist/signal-triage.js +281 -0
  175. package/dist/signal-triage.js.map +1 -0
  176. package/dist/site-gate-cli.js +2 -1
  177. package/dist/site-gate-cli.js.map +1 -1
  178. package/dist/source-api.js +2 -1
  179. package/dist/source-api.js.map +1 -1
  180. package/dist/suite-explore-options.d.ts +36 -0
  181. package/dist/suite-explore-options.js +23 -0
  182. package/dist/suite-explore-options.js.map +1 -1
  183. package/dist/target-config.d.ts +12 -0
  184. package/dist/target-config.js +15 -0
  185. package/dist/target-config.js.map +1 -1
  186. package/dist/type-fixture-file.d.ts +9 -0
  187. package/dist/type-fixture-file.js +48 -0
  188. package/dist/type-fixture-file.js.map +1 -0
  189. package/dist/ui-api.js +4 -3
  190. package/dist/ui-api.js.map +1 -1
  191. package/dist/usability-capture.js +4 -3
  192. package/dist/usability-capture.js.map +1 -1
  193. package/dist/usage-config.d.ts +1 -1
  194. package/dist/usage-config.js +1 -1
  195. package/dist/ux-claim-probe.d.ts +45 -0
  196. package/dist/ux-claim-probe.js +386 -0
  197. package/dist/ux-claim-probe.js.map +1 -0
  198. package/dist/ux-cli.js +8 -1
  199. package/dist/ux-cli.js.map +1 -1
  200. package/dist/ux-product.d.ts +14 -0
  201. package/dist/ux-product.js +39 -0
  202. package/dist/ux-product.js.map +1 -0
  203. package/dist/ux-review.d.ts +4 -0
  204. package/dist/ux-review.js +27 -7
  205. package/dist/ux-review.js.map +1 -1
  206. package/dist/ux-usability.d.ts +34 -9
  207. package/dist/ux-usability.js +102 -16
  208. package/dist/ux-usability.js.map +1 -1
  209. package/dist/verify-fix-api.d.ts +21 -0
  210. package/dist/verify-fix-api.js +85 -33
  211. package/dist/verify-fix-api.js.map +1 -1
  212. package/dist/verify-fix-cli.js +7 -2
  213. package/dist/verify-fix-cli.js.map +1 -1
  214. package/package.json +11 -11
  215. package/skills/jevitate-explore/SKILL.md +13 -0
  216. package/skills/jevitate-getting-started/SKILL.md +2 -1
  217. package/skills/jevitate-test-campaign/SKILL.md +206 -0
package/dist/ux-review.js CHANGED
@@ -3,11 +3,14 @@ import { logsDirFor } from "./project-dir.js";
3
3
  import { existsSync, statSync } from "node:fs";
4
4
  import { mkdir, readFile, writeFile } from "node:fs/promises";
5
5
  import { join } from "node:path";
6
- import { UxAnalyzer, a11yChecks, buildReport, calibrationCaveat, detectFriction, detectRepeatedReplies, detectSignals, evidenceFromFile, groundFindings, loadV1Rubric, parseUxEvidenceFile, resolveMinConfidence, resolveMaxFindingsPerRoute, resolveQualityPolicy, withSignalFindings } from "@jevitate/ux";
6
+ import { a11yChecks, analyzeClaims, buildReport, calibrationCaveat, claimsCaveat, detectFriction, detectRepeatedReplies, detectSignals, evidenceFromFile, groundFindings, loadV1Rubric, parseUxEvidenceFile, resolveMinConfidence, resolveMaxFindingsPerRoute, resolveQualityPolicy, withSignalFindings } from "@jevitate/ux";
7
+ import { NO_PRODUCT_FACTS_CAVEAT, loadProductFacts } from "./ux-product.js";
7
8
  import { loadUxMaxFindingsPerPage, loadUxMinConfidence, loadUxMinConfidenceByAppClass, loadUxShow } from "./ux-config.js";
8
9
  import { writeUsageSidecar } from "./mission-journal.js";
9
10
  import { DEFAULT_JUDGMENT_BUDGET, captureFromTranscript, recordingToEvidence } from "./ux-evidence.js";
11
+ import { clock } from "@jevitate/domain";
10
12
  const NO_EVIDENCE_CAVEAT = "no usability evidence sidecar (<stamp>.evidence.json, written next to the Recording by live usability runs, #134): this pass sees only the Recording's touched controls and urls — rubric items needing visible text or a11y facts are Skipped, and the run signals that need the live capture (hung request, stuck job, duplicate write/create, failed submit, inert control, internal id, url mismatch) could not be checked; with a transcript, journey friction and repeated replies still are.";
13
+ const NO_PROBES_CAVEAT = "no guard probes (written by live usability runs into the evidence sidecar, #198): destructive controls could not be checked for a confirmation step offline — such claims are reported as unverifiable coverage, never as findings.";
11
14
  const NO_TRANSCRIPT_CAVEAT = "blocked/disabled-target evidence not available: this offline pass has no mission transcript, so a dead end like a button that never enables cannot be seen (pass --result <mission-result.json>, as written by `jevitate explore`, to include it — the same evidence a live usability run sees).";
12
15
  /**
13
16
  * Offline UX review. FAIL-FAST: an analyzer `failed` outcome throws
@@ -20,18 +23,25 @@ export async function runUxReview(opts) {
20
23
  const minConfidence = resolveMinConfidence(opts.minConfidence, opts.env ?? process.env, loadUxMinConfidence(opts.configPath), loadUxMinConfidenceByAppClass(opts.configPath, opts.appContext.appClass));
21
24
  const quality = resolveQualityPolicy(opts.show, opts.env ?? process.env, loadUxShow(opts.configPath), opts.appContext.appClass);
22
25
  const maxFindingsPerRoute = resolveMaxFindingsPerRoute(opts.maxFindingsPerRoute, opts.env ?? process.env, loadUxMaxFindingsPerPage(opts.configPath));
23
- const analyzer = new UxAnalyzer({ judge: opts.judge, gen: opts.gen, a11yChecker: a11yChecks });
26
+ // #198: product facts are validated before any model call (a bad file is a usage error).
27
+ const product = await loadProductFacts(opts.product);
24
28
  // #134: a live usability run's evidence sidecar gives offline review the SAME screens and run
25
29
  // signals the live analysis had; otherwise the Recording (+ transcript) is all there is.
26
30
  let screens;
27
31
  let appContext = opts.appContext;
28
32
  let signalFindings = [];
29
33
  let friction = [];
34
+ let steps = [];
35
+ let probes;
30
36
  const evidenceCaveats = [];
31
37
  if (opts.evidenceFile !== undefined) {
32
38
  ({ screens, appContext } = evidenceFromFile(opts.evidenceFile, opts.appContext));
33
39
  signalFindings = detectSignals(opts.evidenceFile.signals, opts.signals);
34
40
  friction = detectFriction(opts.evidenceFile.signals, opts.evidenceFile.outcome ?? opts.missionOutcome);
41
+ steps = opts.evidenceFile.signals.steps;
42
+ probes = opts.evidenceFile.probes;
43
+ if (probes === undefined)
44
+ evidenceCaveats.push(NO_PROBES_CAVEAT);
35
45
  }
36
46
  else {
37
47
  screens = recordingToEvidence(opts.recording, opts.appContext, opts.appContext.job, opts.missionTranscript);
@@ -39,23 +49,33 @@ export async function runUxReview(opts) {
39
49
  const partial = captureFromTranscript(opts.missionTranscript);
40
50
  signalFindings = detectRepeatedReplies(partial, opts.signals);
41
51
  friction = detectFriction(partial, opts.missionOutcome);
52
+ steps = partial.steps;
42
53
  }
43
54
  else {
44
55
  evidenceCaveats.push(opts.missionTranscriptUnavailable ?? NO_TRANSCRIPT_CAVEAT);
45
56
  }
46
57
  evidenceCaveats.push(opts.evidenceUnavailable === undefined ? NO_EVIDENCE_CAVEAT : `${opts.evidenceUnavailable} — ${NO_EVIDENCE_CAVEAT}`);
58
+ evidenceCaveats.push(NO_PROBES_CAVEAT);
47
59
  }
48
- const outcome = await analyzer.analyze({
60
+ if (product.facts === undefined)
61
+ evidenceCaveats.push(NO_PRODUCT_FACTS_CAVEAT);
62
+ // #198: the same claim pipeline as the live run (claims.ts), over the same evidence.
63
+ const outcome = await analyzeClaims({
49
64
  screens,
50
65
  rubric: loadV1Rubric(),
51
66
  appContext,
52
- secrets: opts.secrets,
67
+ ...(opts.secrets === undefined ? {} : { secrets: opts.secrets }),
53
68
  judgmentBudget: opts.judgmentBudget ?? DEFAULT_JUDGMENT_BUDGET,
54
- });
69
+ friction,
70
+ steps,
71
+ signalFindings,
72
+ ...(probes === undefined ? {} : { probes }),
73
+ ...(product.facts === undefined ? {} : { facts: product.facts }),
74
+ }, { judge: opts.judge, gen: opts.gen, a11yChecker: a11yChecks, ...(opts.polish === true ? { polish: true } : {}) });
55
75
  if (outcome.kind === "failed") {
56
76
  throw new UxAnalysisFailedError(outcome.reason, outcome.screenId, outcome.rubricItemId);
57
77
  }
58
- const calibrationCaveats = [calibrationCaveat(opts.appContext.appClass)];
78
+ const calibrationCaveats = [calibrationCaveat(opts.appContext.appClass), claimsCaveat()];
59
79
  const report = buildReport(groundFindings(withSignalFindings(outcome, signalFindings), friction), {
60
80
  minConfidence,
61
81
  quality,
@@ -65,7 +85,7 @@ export async function runUxReview(opts) {
65
85
  });
66
86
  const outDir = opts.outDir ?? logsDirFor();
67
87
  await mkdir(outDir, { recursive: true });
68
- const iso = (opts.nowIso ?? (() => new Date().toISOString()))();
88
+ const iso = (opts.nowIso ?? (() => clock.nowIso()))();
69
89
  const reportPath = join(outDir, `ux-${iso.replace(/[:.]/g, "-")}.json`);
70
90
  await writeFile(reportPath, `${JSON.stringify(report, null, 2)}\n`, "utf8");
71
91
  if (runUsage !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"ux-review.js","sourceRoot":"","sources":["../src/ux-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ux-review.js","sourceRoot":"","sources":["../src/ux-review.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,12 @@ import { type AppContext, type SignalOptions, type UxReport } from "@jevitate/ux
8
8
  import { type ConversationOptions } from "./conversation-options.js";
9
9
  import { type GoalOutcome, type MissionFailure, type MissionOutcome } from "@jevitate/domain";
10
10
  import { MISSION_RESULT_SCHEMA_VERSION, type AdvisoryServerLogDefect } from "./result-schema.js";
11
- import { type HostHealthSampler, type Http5xxDefect } from "@jevitate/explore";
11
+ import { type JourneyPrefix } from "./journey-prefix.js";
12
+ import type { JourneyBranchPoint } from "@jevitate/journey";
13
+ import { type ActionDeltaStats, type HostHealthSampler, type Http5xxDefect } from "@jevitate/explore";
12
14
  import type { EnvironmentDegraded, HostHealthSummary } from "@jevitate/domain";
13
15
  import { type EngineInfo } from "./engine.js";
14
- import { type ServerLogDefect, type ServerLogsSummary } from "./log-correlation.js";
16
+ import { type ServerLogsSummary } from "./log-correlation.js";
15
17
  import { type MissionTarget, type ServerLogOptions } from "./explore-api.js";
16
18
  import type { TargetConfig } from "./target-config.js";
17
19
  export interface RunUsabilityMissionOptions {
@@ -124,6 +126,32 @@ export interface RunUsabilityMissionOptions {
124
126
  readonly successWhen?: SuccessWhen;
125
127
  /** #202 `--allow-vacuous-checks`: a check satisfied before the first action warns instead of failing. */
126
128
  readonly allowVacuousChecks?: boolean;
129
+ /**
130
+ * #198 `--product <file>`: the product facts (plans/prices, key journeys, each page's intended next
131
+ * step). Default: `.jevitate/product.json` in the project, when present. Validated before a browser
132
+ * opens (`ProductFactsError`, E_UX_PRODUCT_INPUT).
133
+ */
134
+ readonly product?: string;
135
+ /** #198 `--polish`: polish each verified finding's recommendation with one generation call (opt-in). */
136
+ readonly polish?: boolean;
137
+ /**
138
+ * #198 `--probe-guards` (opt-in): click each destructive control once, fail-safe (every write and
139
+ * destructive-looking request aborted; refused on a page with an open WebSocket/EventSource or a
140
+ * controlling service worker), to verify whether a confirmation guards it. Off: nothing is clicked,
141
+ * and those guard claims are reported unverifiable.
142
+ */
143
+ readonly probeGuards?: boolean;
144
+ /**
145
+ * #293 `--from-journey`/`--at-step`: replayed into the session before the review, which then starts
146
+ * on the live page it left — never a fresh navigation. `url` is only the expected landing.
147
+ */
148
+ readonly journeyPrefix?: JourneyPrefix;
149
+ /**
150
+ * #303 `--action-deltas` (opt-in, off by default): record what each action changed on the page
151
+ * (code's verdict per action) — attached to every transcript and Recording step, summarised in the
152
+ * result (`actionDeltas`), told to the model and used by the no-progress check. Off: no capture.
153
+ */
154
+ readonly actionDeltas?: boolean;
127
155
  }
128
156
  /** Usability reads only a spec's `budget` (#150) — never its `invariants`/`capture` (#86/#147, not supported here). */
129
157
  export declare class UsabilityInvariantsUnsupportedError extends Error {
@@ -135,6 +163,8 @@ export interface RunUsabilityMissionResult {
135
163
  readonly hostHealth: HostHealthSummary;
136
164
  /** Findings met while the host was starved (#203) — advisory, never a defect/hang, never failing the run. */
137
165
  readonly environmentDegraded: EnvironmentDegraded[];
166
+ /** #293: the Journey step a journey-anchored review branched from (absent on a bare-URL run). */
167
+ readonly branch?: JourneyBranchPoint;
138
168
  /** The result schema's version (#195): the common fields are filled the same way by every strategy. */
139
169
  readonly schemaVersion: typeof MISSION_RESULT_SCHEMA_VERSION;
140
170
  readonly strategy: "usability";
@@ -168,11 +198,6 @@ export interface RunUsabilityMissionResult {
168
198
  readonly screensObserved: number;
169
199
  /** The explore loop's decision transcript, written next to the report (each step: its screenshot). */
170
200
  readonly transcriptPath: string;
171
- /**
172
- * The run's Recording, written next to the report (crash-safe: flushed after every step).
173
- * @deprecated since 0.2.0 (#195) — use `recordingPaths[0]`; removed in the next minor.
174
- */
175
- readonly recordingPath: string;
176
201
  /** Where the per-step screenshots are written (secret fields masked). */
177
202
  readonly screenshotDir: string;
178
203
  /**
@@ -186,6 +211,8 @@ export interface RunUsabilityMissionResult {
186
211
  /** The writes the run's actions fired (#116), marked when the control was paid / destructive. */
187
212
  readonly sideEffects: readonly SideEffect[];
188
213
  readonly sideEffectsTruncated?: number;
214
+ /** #303: the run's action deltas (verdict counts, per-action overhead) — only with `--action-deltas`. */
215
+ readonly actionDeltas?: ActionDeltaStats;
189
216
  /**
190
217
  * The typed verdict. UX findings are advisory, so a completed review is `clean`; a run whose
191
218
  * loop broke is `crashed`/`inconclusive`, and so is one whose analysis could not be produced — or
@@ -214,8 +241,6 @@ export interface RunUsabilityMissionResult {
214
241
  readonly resultPath: string;
215
242
  /** Backend log correlation summary (#142) — present only when `--log-source` was given. */
216
243
  readonly serverLogs?: ServerLogsSummary;
217
- /** @deprecated since 0.2.0 (#195) — the `server-log` subset of `defects`; removed in the next minor. */
218
- readonly serverLogDefects?: ServerLogDefect[];
219
244
  /** Declared mission spend budgets (#150): the observed trajectory, present when any were declared. */
220
245
  readonly budget?: BudgetTrajectory[];
221
246
  /**
@@ -7,19 +7,23 @@ import { closeOnce, demoOverlayOf, finalizeVideos, runVideoDir, sessionLaunchOpt
7
7
  import { runCaptureFor } from "./run-screenshots.js";
8
8
  import { evidenceOf, withRunEvidence } from "./defect-evidence.js";
9
9
  import { CastActor, BrowseTheWeb } from "@jevitate/screenplay";
10
- import { explore, runGoalBasedMission, assertAuthorizedExploreTarget, resolveMissionFixture, reproduceHang, hangFinding, hangOutcome, InvariantMonitor, BudgetMonitor, secretFieldSecrets, detectOverflow, shouldCheckOverflow } from "@jevitate/explore";
11
- import { UxAnalyzer, a11yChecks, buildReport, calibrationCaveat, detectFriction, detectSignals, groundFindings, loadV1Rubric, persistableScreen, resolveMinConfidence, resolveMaxFindingsPerRoute, resolveQualityPolicy, withSignalFindings, makeSignalFinding } from "@jevitate/ux";
10
+ import { explore, runGoalBasedMission, assertAuthorizedExploreTarget, resolveMissionFixture, reproduceHang, hangFinding, hangOutcome, InvariantMonitor, BudgetMonitor, secretFieldSecrets, clippingSummary, detectClipping, detectOverflow, shouldCheckOverflow } from "@jevitate/explore";
11
+ import { a11yChecks, analyzeClaims, buildReport, calibrationCaveat, claimsCaveat, detectFriction, detectSignals, groundFindings, loadV1Rubric, persistableScreen, resolveMinConfidence, resolveMaxFindingsPerRoute, resolveQualityPolicy, withSignalFindings, makeSignalFinding } from "@jevitate/ux";
12
+ import { captureFindingShots, planGuardProbes, runGuardProbes, skippedProbes, withProbePage } from "./ux-claim-probe.js";
13
+ import { NO_PRODUCT_FACTS_CAVEAT, loadProductFacts } from "./ux-product.js";
12
14
  import { conversationConfig } from "./conversation-options.js";
13
15
  import { loadUxMaxFindingsPerPage, loadUxMinConfidence, loadUxMinConfidenceByAppClass, loadUxShow } from "./ux-config.js";
14
- import { foldGoalOutcome } from "@jevitate/domain";
16
+ import { foldGoalOutcome, clock } from "@jevitate/domain";
15
17
  import { MissionJournal, artifactStamp, closeQuietly, resultPathFor, writeMissionResult } from "./mission-journal.js";
16
18
  import { MISSION_RESULT_SCHEMA_VERSION, advisoryDefects } from "./result-schema.js";
17
19
  import { missionExitCode } from "./mission-exit.js";
18
20
  import { launchArmed } from "./launch-armed.js";
21
+ import { branchFields, startFromJourney } from "./journey-prefix.js";
19
22
  import { finishHostHealth } from "./host-health-run.js";
20
23
  import { Http5xxOracle } from "@jevitate/explore";
21
24
  import { currentEngineInfo } from "./engine.js";
22
25
  import { openServerLogRuntime } from "./log-correlation.js";
26
+ import { triageOf, serverLogRuntimeOptions } from "./explore-shared.js";
23
27
  import { assertSaveStorageStateOutsideProject, currentUrlSafe, persistStorageState, serverLogResult } from "./explore-api.js";
24
28
  import { transcriptPathFor } from "./transcript-file.js";
25
29
  import { UsabilityCapture } from "./usability-capture.js";
@@ -65,6 +69,8 @@ export async function runUsabilityMission(opts) {
65
69
  const quality = resolveQualityPolicy(opts.show, opts.env ?? process.env, loadUxShow(opts.configPath), opts.appContext.appClass);
66
70
  const maxFindingsPerRoute = resolveMaxFindingsPerRoute(opts.maxFindingsPerRoute, opts.env ?? process.env, loadUxMaxFindingsPerPage(opts.configPath));
67
71
  const fixture = opts.fixture === undefined ? undefined : await resolveMissionFixture(opts.fixture);
72
+ // #198: the product facts are validated before a browser opens (a bad file is a usage error).
73
+ const product = await loadProductFacts(opts.product);
68
74
  // #250/#251: a recorded or screenshotted run's sessions carry the live pixel mask from their first
69
75
  // paint; `--screenshots` captures after each step (the Recording path names their folder).
70
76
  const runCapture = runCaptureFor({
@@ -85,7 +91,7 @@ export async function runUsabilityMission(opts) {
85
91
  const extract = opts.extractText ??
86
92
  (async (s) => s.page.evaluate(() => (typeof document !== "undefined" && document.body ? document.body.innerText : "")));
87
93
  const outDir = opts.outDir ?? logsDirFor();
88
- const iso = (opts.nowIso ?? (() => new Date().toISOString()))();
94
+ const iso = (opts.nowIso ?? (() => clock.nowIso()))();
89
95
  const stamp = artifactStamp(iso);
90
96
  const reportPath = join(outDir, `usability-${stamp}.json`);
91
97
  // #98 — the same artifact shape as goal/adversarial missions, next to the report: the decision
@@ -155,18 +161,20 @@ export async function runUsabilityMission(opts) {
155
161
  snapshotter.noteSettledStep(currentUrlSafe(session));
156
162
  };
157
163
  const serverLog = openServerLogRuntime({
158
- sources: opts.serverLog?.sources ?? [],
159
- logDefect: opts.serverLog?.logDefect ?? [],
160
- ...(opts.serverLog?.drainMs === undefined ? {} : { drainMs: opts.serverLog.drainMs }),
164
+ ...serverLogRuntimeOptions(opts.serverLog),
161
165
  secrets,
162
166
  onTranscriptEntry: journalListener,
163
167
  });
168
+ // #204: every request's correlation ids, from before the first navigation.
169
+ serverLog?.observe(session.page);
164
170
  // #159/#245: persisted and closed once — early (before the result is written) when recording video.
165
171
  const closeSession = closeOnce(async () => {
166
172
  await persistStorageState(session, opts.saveStorageState, snapshotter);
167
173
  await closeQuietly(session);
168
174
  });
169
175
  try {
176
+ // #293: a journey-anchored review first replays its Journey's prefix into this very session.
177
+ const start = await startFromJourney(opts.journeyPrefix, session, opts.url, opts.allowlist, opts.browser);
170
178
  const actor = CastActor.named("usability-mission").whoCan(new BrowseTheWeb(session, [...opts.allowlist]));
171
179
  // #150 — usability's own budget wiring: a plain `InvariantMonitor` reads a budget's declared
172
180
  // observables (the same #86/#135 read/auth/redaction machinery), but this mission folds NO
@@ -190,6 +198,8 @@ export async function runUsabilityMission(opts) {
190
198
  ...(opts.target?.safety === undefined ? {} : { safety: opts.target.safety }),
191
199
  onTranscriptEntry: serverLog?.onTranscriptEntry ?? journalListener,
192
200
  onRecording: journal.onRecording,
201
+ // #303 (opt-in): action deltas, with Jev's advisory relevance labels.
202
+ ...(opts.actionDeltas === true ? { actionDeltas: { jev: true } } : {}),
193
203
  hostHealth: health,
194
204
  demoOverlay: demoOverlayOf(opts.browser),
195
205
  ...(opts.secretFields === undefined ? {} : { secretFields: opts.secretFields }),
@@ -198,7 +208,9 @@ export async function runUsabilityMission(opts) {
198
208
  gen: opts.gen,
199
209
  goal: opts.job,
200
210
  allowlist: opts.allowlist,
201
- startUrl: opts.url,
211
+ startUrl: start.url,
212
+ ...(start.branch === undefined ? {} : { startInPlace: true }),
213
+ ...(start.restart === undefined ? {} : { restartAtStart: start.restart.restartAtStart }),
202
214
  bounds: opts.bounds,
203
215
  secrets: opts.secrets,
204
216
  site: origin,
@@ -248,6 +260,33 @@ export async function runUsabilityMission(opts) {
248
260
  },
249
261
  }));
250
262
  }
263
+ // #302: text cut off vertically (a fixed-height box, or above the page top) — one finding per element.
264
+ const clipped = await detectClipping(session.page, {
265
+ viewport: vp ?? { width: 1280, height: 720 },
266
+ ...(opts.emulation?.device === undefined ? {} : { device: opts.emulation.device }),
267
+ ...(opts.overflow?.ignoreSelectors === undefined ? {} : { ignoreSelectors: opts.overflow.ignoreSelectors }),
268
+ secrets,
269
+ });
270
+ for (const c of clipped) {
271
+ if (seenOverflow.has(c.fingerprint))
272
+ continue;
273
+ seenOverflow.add(c.fingerprint);
274
+ overflowFindings.push(makeSignalFinding({
275
+ kind: "vertical-clipping",
276
+ confidence: 0.9,
277
+ url: ev.url,
278
+ screenId: ev.screenId,
279
+ observation: c.cause === "overflow-hidden"
280
+ ? `${c.element.descriptor} cuts off its text by ${c.clippedPx}px on ${c.route}: the content is taller than the box and overflow is hidden.`
281
+ : `${c.element.descriptor} is cut off ${c.clippedPx}px above the top of the page on ${c.route}.`,
282
+ userImpact: "Part of the text is cut off and no scroll position shows it: a user on this device cannot read it.",
283
+ recommendation: c.cause === "overflow-hidden"
284
+ ? `Let ${c.element.descriptor} grow with its content (min-height instead of height), make it scrollable, or truncate on purpose with line-clamp at ${c.viewport.width}px.`
285
+ : `Give the container of ${c.element.descriptor} room for its wrapped content (no fixed height, or no wrapping) at ${c.viewport.width}px.`,
286
+ controls: [c.element.descriptor],
287
+ evidence: { kind: "vertical-clipping", steps: [history.length], requests: [], detail: clippingSummary(c) },
288
+ }));
289
+ }
251
290
  }
252
291
  }
253
292
  catch {
@@ -310,6 +349,31 @@ export async function runUsabilityMission(opts) {
310
349
  ];
311
350
  // #132: the friction the run walked into — what grounds (or not) each rubric finding.
312
351
  const friction = detectFriction(signalCapture, run.outcome);
352
+ // #198: every destructive control on an analyzed screen is clicked once with its writes blocked
353
+ // (ux-claim-probe.ts) — the code evidence `destructive-unguarded` claims are verified against.
354
+ // On a dedicated page in the run's context, after the loop: the run's oracles never see it.
355
+ // A screen that cannot be redacted means no probes at all (destructive claims: unverifiable).
356
+ let probes;
357
+ try {
358
+ const plan = planGuardProbes(screens, secrets, opts.target?.safety);
359
+ probes = [...plan.refused];
360
+ // Clicking is opt-in (--probe-guards): without it every destructive control is `skipped`, and
361
+ // its guard claim is reported unverifiable — never asserted, never silently dropped.
362
+ if (opts.probeGuards !== true)
363
+ probes.push(...skippedProbes(plan.targets));
364
+ else if (plan.targets.length > 0) {
365
+ try {
366
+ probes.push(...(await runGuardProbes(session.page, plan.targets, { allowlist: opts.allowlist, secrets })));
367
+ }
368
+ catch (err) {
369
+ const why = `the guard probe could not open a page: ${err instanceof Error ? err.message.split("\n")[0] : String(err)}`;
370
+ probes.push(...plan.targets.map((t) => ({ screenId: t.screen.screenId, route: t.route, control: t.label, controlKey: t.key, status: "failed", detail: why })));
371
+ }
372
+ }
373
+ }
374
+ catch {
375
+ probes = undefined;
376
+ }
313
377
  // #134: the evidence sidecar, written through the redaction door BEFORE analysis (so it exists
314
378
  // even when analysis fails). Fail-closed: if any screen cannot be redacted, no file is written.
315
379
  const evidencePath = join(outDir, `usability-${stamp}.evidence.json`);
@@ -322,6 +386,7 @@ export async function runUsabilityMission(opts) {
322
386
  screens: screens.map((ev) => persistableScreen(ev, secrets)),
323
387
  signals: signalCapture,
324
388
  outcome: run.outcome,
389
+ ...(probes === undefined ? {} : { probes }),
325
390
  };
326
391
  await mkdir(outDir, { recursive: true });
327
392
  await writeFile(evidencePath, `${JSON.stringify(file, null, 2)}\n`, "utf8");
@@ -330,14 +395,33 @@ export async function runUsabilityMission(opts) {
330
395
  catch {
331
396
  evidenceWritten = null;
332
397
  }
333
- const analyzer = new UxAnalyzer({ judge: opts.judge, gen: opts.gen, a11yChecker: a11yChecks });
334
- const outcome = await analyzer.analyze({
398
+ // #198: findings are claims verified by code (claims.ts) — guard probes, product facts and the
399
+ // friction the run walked into — categorized and graded by Jev, written from templates.
400
+ const claimed = await analyzeClaims({
335
401
  screens,
336
402
  rubric: loadV1Rubric(),
337
403
  appContext: opts.appContext,
338
404
  secrets,
339
405
  judgmentBudget: opts.judgmentBudget ?? DEFAULT_JUDGMENT_BUDGET,
340
- });
406
+ friction,
407
+ steps: signalCapture.steps,
408
+ signalFindings,
409
+ ...(probes === undefined ? {} : { probes }),
410
+ ...(product.facts === undefined ? {} : { facts: product.facts }),
411
+ }, { judge: opts.judge, gen: opts.gen, a11yChecker: a11yChecks, ...(opts.polish === true ? { polish: true } : {}) });
412
+ // #198: a cropped, masked screenshot with the cited control boxed, per verified claim finding.
413
+ let outcome = claimed;
414
+ if (claimed.kind === "analyzed" && claimed.findings.some((f) => f.claim !== undefined)) {
415
+ const byScreen = new Map(screens.map((ev) => [ev.screenId, ev]));
416
+ const dir = join(outDir, `usability-${stamp}.findings`);
417
+ try {
418
+ const findings = await withProbePage(session.page, (p) => captureFindingShots(p, claimed.findings, byScreen, { dir, allowlist: opts.allowlist, secrets }));
419
+ outcome = { ...claimed, findings };
420
+ }
421
+ catch {
422
+ outcome = claimed; // presentation only: findings without screenshots are still the findings
423
+ }
424
+ }
341
425
  // #126: a run that stops on a hang is never `clean` — it is reproduced in fresh contexts (same
342
426
  // as a goal mission) and mapped through the same hang/intermittent/inconclusive rule.
343
427
  let hang;
@@ -404,10 +488,11 @@ export async function runUsabilityMission(opts) {
404
488
  schemaVersion: MISSION_RESULT_SCHEMA_VERSION,
405
489
  strategy: "usability",
406
490
  target: {
407
- seedUrl: opts.url,
491
+ seedUrl: start.url,
408
492
  allowlist: [...opts.allowlist],
409
493
  ...(opts.storageState !== undefined ? { storageStatePath: resolvePath(opts.storageState) } : {}),
410
494
  },
495
+ ...branchFields(start),
411
496
  recordingPaths: [journal.recordingPath],
412
497
  ...videos,
413
498
  ...shotFields,
@@ -419,12 +504,12 @@ export async function runUsabilityMission(opts) {
419
504
  ...(run.answer === undefined ? {} : { answer: run.answer }),
420
505
  screensObserved: collected.length,
421
506
  transcriptPath: journal.transcriptPath,
422
- recordingPath: journal.recordingPath,
423
507
  screenshotDir,
424
508
  evidencePath: evidenceWritten,
425
509
  screenshots: capture.screenshots(),
426
510
  sideEffects: run.sideEffects,
427
511
  ...(run.sideEffectsTruncated === undefined ? {} : { sideEffectsTruncated: run.sideEffectsTruncated }),
512
+ ...(run.actionDeltas === undefined ? {} : { actionDeltas: run.actionDeltas }),
428
513
  engine: currentEngineInfo(),
429
514
  ...(() => {
430
515
  const f = run.failure ?? host.failure ?? jobFailure;
@@ -468,17 +553,18 @@ export async function runUsabilityMission(opts) {
468
553
  analysisUnavailable: why,
469
554
  };
470
555
  // Persisted like every other mission's typed result, so MCP `get_mission_result` can read it (#117).
471
- return await withRunEvidence({ ...unavailable, resultPath: writeMissionResult(journal.recordingPath, missionOutcome, unavailable.exitCode, unavailable, runUsage) }, evidenceOf(opts, [...(opts.secrets ?? []), ...secretFieldSecrets(opts.secretFields)]));
556
+ return await withRunEvidence({ ...unavailable, resultPath: writeMissionResult(journal.recordingPath, missionOutcome, unavailable.exitCode, unavailable, runUsage) }, evidenceOf(opts, [...(opts.secrets ?? []), ...secretFieldSecrets(opts.secretFields)]), triageOf(opts, serverLogRun, [...(opts.secrets ?? []), ...secretFieldSecrets(opts.secretFields)]));
472
557
  }
473
558
  const report = buildReport(groundFindings(withSignalFindings(outcome, signalFindings), friction), {
474
559
  minConfidence,
475
560
  quality,
476
561
  maxFindingsPerRoute,
477
- calibrationCaveats: [calibrationCaveat(opts.appContext.appClass)],
562
+ ...(product.facts === undefined ? { evidenceCaveats: [NO_PRODUCT_FACTS_CAVEAT] } : {}),
563
+ calibrationCaveats: [calibrationCaveat(opts.appContext.appClass), claimsCaveat()],
478
564
  });
479
565
  await writeFile(reportPath, `${JSON.stringify(report, null, 2)}\n`, "utf8");
480
566
  const reviewed = { ...base, report, reportPath, missionOutcome: runOutcome, exitCode: missionExitCode(runOutcome) };
481
- return await withRunEvidence({ ...reviewed, resultPath: writeMissionResult(journal.recordingPath, runOutcome, reviewed.exitCode, reviewed, runUsage) }, evidenceOf(opts, [...(opts.secrets ?? []), ...secretFieldSecrets(opts.secretFields)]));
567
+ return await withRunEvidence({ ...reviewed, resultPath: writeMissionResult(journal.recordingPath, runOutcome, reviewed.exitCode, reviewed, runUsage) }, evidenceOf(opts, [...(opts.secrets ?? []), ...secretFieldSecrets(opts.secretFields)]), triageOf(opts, serverLogRun, [...(opts.secrets ?? []), ...secretFieldSecrets(opts.secretFields)]));
482
568
  }
483
569
  finally {
484
570
  capture.detach();
@@ -1 +1 @@
1
- {"version":3,"file":"ux-usability.js","sourceRoot":"","sources":["../src/ux-usability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ux-usability.js","sourceRoot":"","sources":["../src/ux-usability.ts"],"names":[],"mappings":"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"}