@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
@@ -3,9 +3,9 @@ import { type BrowserPort, type EmulationSpec } from "@jevitate/playwright";
3
3
  import { type BrowserRunOptions } from "./browser-run-options.js";
4
4
  import { type ScreenshotsSpec } from "./run-screenshots.js";
5
5
  import { type Assertion, type InvariantSpec, type Recording } from "@jevitate/recording";
6
- import type { HostHealthSampler, InvariantDefect, InvariantReport, SideEffect } from "@jevitate/explore";
6
+ import type { ActionDeltaStats, HostHealthSampler, InvariantDefect, InvariantReport, SideEffect } from "@jevitate/explore";
7
7
  import type { EnvironmentDegraded, HostHealthSummary } from "@jevitate/domain";
8
- import { type Bounds, type GoalBasedOutcome, type StopReason, type TranscriptEntry, type RunAnswer, type RunOutcome, type SuccessCheck, type SuccessCheckResult, type SuccessWhen, type SecretField, type BudgetTrajectory, type CrashReport, type Http5xxDefect } from "@jevitate/explore";
8
+ import { type Bounds, type GoalBasedOutcome, type StopReason, type TranscriptEntry, type RunAnswer, type RunOutcome, type SuccessCheck, type SuccessCheckResult, type SuccessWhen, type SecretField, type TypeFixture, type BudgetTrajectory, type CrashReport, type Http5xxDefect } from "@jevitate/explore";
9
9
  import { type ConversationOptions } from "./conversation-options.js";
10
10
  import { type FilingConfig, type IssueFilerPort, type MissionFailure, type MissionOutcome } from "@jevitate/domain";
11
11
  import { type HangFinding, type TimingSummary } from "@jevitate/explore";
@@ -13,6 +13,8 @@ import { type FindingsIssues } from "./findings-filing.js";
13
13
  import { type EngineInfo } from "./engine.js";
14
14
  import type { TargetConfig } from "./target-config.js";
15
15
  import { MISSION_RESULT_SCHEMA_VERSION } from "./result-schema.js";
16
+ import { type JourneyPrefix } from "./journey-prefix.js";
17
+ import type { JourneyBranchPoint } from "@jevitate/journey";
16
18
  import { type ServerLogDefect, type ServerLogsSummary, type TranscriptEntryWithLogs } from "./log-correlation.js";
17
19
  import { type MissionFixtureResult, type MissionFixtures } from "./mission-fixtures.js";
18
20
  import { type MissionActors } from "./mission-actors.js";
@@ -47,6 +49,12 @@ export interface RunExplorationOptions {
47
49
  * of a failure. Default: it fails — a run that proved nothing is never clean.
48
50
  */
49
51
  readonly allowVacuousChecks?: boolean;
52
+ /**
53
+ * #303 `--action-deltas` (opt-in, off by default): record what each action changed on the page
54
+ * (code's verdict per action) — attached to every transcript and Recording step, summarised in the
55
+ * result (`actionDeltas`), told to the model and used by the no-progress check. Off: no capture.
56
+ */
57
+ readonly actionDeltas?: boolean;
50
58
  readonly allowlist: readonly string[];
51
59
  readonly judge: JudgmentPort;
52
60
  readonly gen: GenerationPort;
@@ -63,6 +71,8 @@ export interface RunExplorationOptions {
63
71
  * by code, never by the model; each value/seed is also a run secret (redacted everywhere).
64
72
  */
65
73
  readonly secretFields?: readonly SecretField[];
74
+ /** #281: fields typed with a file's exact text (CLI `--type-fixture`, read by the CLI). */
75
+ readonly typeFixtures?: readonly TypeFixture[];
66
76
  /**
67
77
  * Local file the `upload` op attaches (CLI `--fixture`). Validated before any
68
78
  * browser opens: a missing file throws `FixtureNotFoundError`.
@@ -142,6 +152,12 @@ export interface RunExplorationOptions {
142
152
  * opened only when a declared cross-actor check needs it, never driven by the model.
143
153
  */
144
154
  readonly actors?: MissionActors;
155
+ /**
156
+ * #293 `--from-journey`/`--at-step`: replayed into the session (after fixture setup) before the
157
+ * goal loop, which then starts on the live page it left — never a fresh navigation. `url` is only
158
+ * the expected landing.
159
+ */
160
+ readonly journeyPrefix?: JourneyPrefix;
145
161
  }
146
162
  export interface RunExplorationResult {
147
163
  /** The result schema's version (#195): the common fields below are filled the same way by every strategy. */
@@ -165,6 +181,8 @@ export interface RunExplorationResult {
165
181
  /** The writes the run's actions fired (#116), marked when the control was paid / destructive. */
166
182
  readonly sideEffects: SideEffect[];
167
183
  readonly sideEffectsTruncated?: number;
184
+ /** #303: the run's action deltas (verdict counts, per-action overhead) — only with `--action-deltas`. */
185
+ readonly actionDeltas?: ActionDeltaStats;
168
186
  /**
169
187
  * Did the loop complete its goal (`completed`, verified by the success assertion), or why not
170
188
  * (`incomplete` + reason)? `outcome` above is the mission verdict; this is the run's own account.
@@ -185,8 +203,6 @@ export interface RunExplorationResult {
185
203
  readonly recordingPaths: string[];
186
204
  /** #245: `--record-video` files, finalized before this result was written (absent when not recording). */
187
205
  readonly videoPaths?: string[];
188
- /** @deprecated since 0.2.0 (#195) — use `recordingPaths[0]`; removed in the next minor. */
189
- readonly recordingPath: string;
190
206
  /**
191
207
  * The per-decision trail (op, target, confidence, whether the action succeeded and why
192
208
  * not, URL, page signature) — so a stalled or failed run is explainable. Written next to
@@ -233,18 +249,20 @@ export interface RunExplorationResult {
233
249
  readonly usage?: UsageCounts;
234
250
  /** Backend log correlation summary (#142) — present only when `--log-source` was given. */
235
251
  readonly serverLogs?: ServerLogsSummary;
236
- /** @deprecated since 0.2.0 (#195) — the `server-log` subset of `defects`; removed in the next minor. */
237
- readonly serverLogDefects?: ServerLogDefect[];
238
252
  /** The fixture the mission started from (#140/#144): identity, non-secret outputs, the setup/restore log. */
239
253
  readonly fixtures?: MissionFixtureResult;
240
254
  /** The host's health over the run (#203): peaks, the slowest render, starved steps. */
241
255
  readonly hostHealth: HostHealthSummary;
242
256
  /** Findings met while the host was starved (#203) — advisory, never a defect/hang, never failing the run. */
243
257
  readonly environmentDegraded: EnvironmentDegraded[];
258
+ /** #293: the Journey step a journey-anchored run branched from (absent on a bare-URL run). */
259
+ readonly branch?: JourneyBranchPoint;
244
260
  }
245
261
  /**
246
262
  * Pairs an already-computed UI-side `reason` with the correlated server cause on the step the run
247
- * ended on (#165 "Also"): `"<UI reason>; server: <level> \"<message>\""`. A no-op when there is no
263
+ * ended on (#165 "Also"): `"<UI reason>; server: <level> \"<message>\""` — or, when the line was
264
+ * correlated to its exact request by a trace/correlation id (#204), `"<UI reason>; caused by:
265
+ * <level> \"<message>\" on POST /x (500)"`. A no-op when there is no
248
266
  * `reason` to pair with, the outcome isn't one of blocked/exhausted/inconclusive (a `defects-found`
249
267
  * or an oracle-unhealthy `inconclusive` already gets its own `serverLogOutcomeReason`), or no
250
268
  * server-log evidence attached to that step — including when `--log-source` was never given.
@@ -3,13 +3,13 @@ import { sessionLostReason } from "./session-check.js";
3
3
  import { logsDirFor } from "./project-dir.js";
4
4
  import { join, resolve as resolvePath } from "node:path";
5
5
  import { PlaywrightBrowserPort, resolveEmulation } from "@jevitate/playwright";
6
- import { closeOnce, demoOverlayOf, finalizeVideos, runVideoDir, sessionLaunchOptions } from "./browser-run-options.js";
6
+ import { closeOnce, demoOverlayOf, extensionsStamp, finalizeVideos, runVideoDir, sessionLaunchOptions } from "./browser-run-options.js";
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
10
  import { runGoalBasedMission, assertAuthorizedExploreTarget, resolveMissionFixture, Http5xxOracle, secretFieldSecrets } from "@jevitate/explore";
11
11
  import { conversationConfig } from "./conversation-options.js";
12
- import { foldGoalOutcome } from "@jevitate/domain";
12
+ import { foldGoalOutcome, clock } from "@jevitate/domain";
13
13
  import { draftForCrash, draftForHang } from "@jevitate/explore";
14
14
  import { processIssueDrafts } from "./findings-filing.js";
15
15
  import { currentEngineInfo } from "./engine.js";
@@ -18,11 +18,12 @@ import { MISSION_RESULT_SCHEMA_VERSION, unifiedDefects } from "./result-schema.j
18
18
  import { applyHttp5xxGoalOutcome, describeHttp5xx, http5xxGoalReason } from "./http-5xx-outcome.js";
19
19
  import { goalExitCode } from "./mission-exit.js";
20
20
  import { launchArmed } from "./launch-armed.js";
21
+ import { branchFields, startFromJourney } from "./journey-prefix.js";
21
22
  import { finishHostHealth } from "./host-health-run.js";
22
23
  import { openServerLogRuntime } from "./log-correlation.js";
23
24
  import { fixtureReplayOpener, recordingFixture } from "./mission-fixtures.js";
24
25
  import { observerSessions, persistedActors } from "./mission-actors.js";
25
- import { serverLogResult, recordingEmulation, DRAFTS_ONLY, NO_FILER, draftContext, freshSessionOpener, currentUrlSafe, assertSaveStorageStateOutsideProject, persistStorageState, browserVersionOf, declaredResult } from "./explore-shared.js";
26
+ import { triageOf, serverLogResult, serverLogRuntimeOptions, recordingEmulation, DRAFTS_ONLY, NO_FILER, draftContext, freshSessionOpener, currentUrlSafe, assertSaveStorageStateOutsideProject, persistStorageState, browserVersionOf, declaredResult } from "./explore-shared.js";
26
27
  /** Outcomes that already mean the run itself broke or hung — a server-log finding never downgrades
27
28
  * (or, for the oracle-unreadable case, elevates) one of these; they already prove more, or the same. */
28
29
  const BROKEN_GOAL_OUTCOMES = new Set(["inconclusive", "crashed", "hang", "intermittent"]);
@@ -57,6 +58,8 @@ function serverLogOutcomeReason(newOutcome, run) {
57
58
  /** Outcomes whose `reason` describes a UI-side blocker worth pairing with a correlated server cause. */
58
59
  const BLOCKED_LIKE_OUTCOMES = new Set(["blocked", "exhausted", "failed", "inconclusive"]);
59
60
  const SERVER_CAUSE_MAX_CHARS = 160;
61
+ /** Decisions that end a run without acting on the page (their state is the previous action's). */
62
+ const ENDING_OPS = new Set(["blocked", "done", "report"]);
60
63
  /**
61
64
  * The most informative correlated server-log line attached to the LAST transcript step (#165's
62
65
  * "Also" — the step the run ended on is the one whose UI blocker `mission.reason` already
@@ -64,27 +67,56 @@ const SERVER_CAUSE_MAX_CHARS = 160;
64
67
  * when `--log-source` was not given, or nothing warn/error-level attached to that step.
65
68
  */
66
69
  function lastStepServerCause(transcript) {
67
- const logs = transcript?.[transcript.length - 1]?.serverLogs;
68
- if (logs === undefined || logs.length === 0)
70
+ // The step the run ended on: the last entry — and, when the run ended on a decision that acts on
71
+ // nothing (`blocked`, `done`, `report`), the action just before it too, whose UI state that
72
+ // decision is about (#204: its request's lines are attached to it).
73
+ const logs = [];
74
+ for (let i = (transcript?.length ?? 0) - 1; i >= 0; i--) {
75
+ const e = transcript?.[i];
76
+ if (e === undefined)
77
+ break;
78
+ logs.push(...(e.serverLogs ?? []));
79
+ if (e.op === null || !ENDING_OPS.has(e.op))
80
+ break;
81
+ }
82
+ if (logs.length === 0)
69
83
  return undefined;
84
+ // An error beats a warn; at the same level, a line correlated to its exact request by id (#204)
85
+ // beats one attached by time; ties keep the first (arrival order).
86
+ const rank = (l) => (l.level === "error" ? 2 : 0) + (l.request === undefined ? 0 : 1);
70
87
  let line;
71
88
  for (const l of logs) {
72
89
  if (l.level !== "error" && l.level !== "warn")
73
90
  continue;
74
- if (line === undefined || (line.level !== "error" && l.level === "error"))
91
+ if (line === undefined || rank(l) > rank(line))
75
92
  line = l;
76
93
  }
77
94
  if (line === undefined)
78
95
  return undefined;
79
96
  const body = line.message.length > SERVER_CAUSE_MAX_CHARS ? `${line.message.slice(0, SERVER_CAUSE_MAX_CHARS)}…` : line.message;
80
- return `${line.level}${line.target === undefined ? "" : ` ${line.target}`} ${quote(body)}`;
97
+ const said = `${line.level}${line.target === undefined ? "" : ` ${line.target}`} ${quote(body)}`;
98
+ if (line.request === undefined)
99
+ return { text: said, correlated: false };
100
+ const r = line.request;
101
+ return { text: `${said} on ${r.method} ${pathOf(r.url)}${r.status === null ? "" : ` (${r.status})`}`, correlated: true };
102
+ }
103
+ /** A redacted request URL's path (the reason names the endpoint, never its query). */
104
+ function pathOf(url) {
105
+ try {
106
+ return new URL(url).pathname;
107
+ }
108
+ catch {
109
+ return url.split(/[?#]/)[0] ?? url;
110
+ }
81
111
  }
82
112
  function quote(s) {
83
113
  return `"${s}"`;
84
114
  }
85
115
  /**
86
116
  * Pairs an already-computed UI-side `reason` with the correlated server cause on the step the run
87
- * ended on (#165 "Also"): `"<UI reason>; server: <level> \"<message>\""`. A no-op when there is no
117
+ * ended on (#165 "Also"): `"<UI reason>; server: <level> \"<message>\""` — or, when the line was
118
+ * correlated to its exact request by a trace/correlation id (#204), `"<UI reason>; caused by:
119
+ * <level> \"<message>\" on POST /x (500)"`. A no-op when there is no
88
120
  * `reason` to pair with, the outcome isn't one of blocked/exhausted/inconclusive (a `defects-found`
89
121
  * or an oracle-unhealthy `inconclusive` already gets its own `serverLogOutcomeReason`), or no
90
122
  * server-log evidence attached to that step — including when `--log-source` was never given.
@@ -93,7 +125,9 @@ export function withServerCause(reason, outcome, transcript) {
93
125
  if (reason === undefined || !BLOCKED_LIKE_OUTCOMES.has(outcome))
94
126
  return reason;
95
127
  const cause = lastStepServerCause(transcript);
96
- return cause === undefined ? reason : `${reason}; server: ${cause}`;
128
+ if (cause === undefined)
129
+ return reason;
130
+ return `${reason}; ${cause.correlated ? "caused by" : "server"}: ${cause.text}`;
97
131
  }
98
132
  export async function runExploration(opts) {
99
133
  // Guardrail #1 — authorize BEFORE opening a browser. Throws on refusal.
@@ -128,7 +162,7 @@ export async function runExploration(opts) {
128
162
  const portFactory = capture.wrap(opts.browserPortFactory ?? (() => new PlaywrightBrowserPort()));
129
163
  const port = portFactory();
130
164
  const outDir = opts.outDir ?? logsDirFor();
131
- const iso = (opts.nowIso ?? (() => new Date().toISOString()))();
165
+ const iso = (opts.nowIso ?? (() => clock.nowIso()))();
132
166
  // Crash-safe: the transcript and partial Recording are flushed after every step. `MissionJournal`
133
167
  // itself creates `outDir` synchronously (mkdirSync).
134
168
  const journal = new MissionJournal(join(outDir, `explore-${artifactStamp(iso)}.json`));
@@ -173,14 +207,12 @@ export async function runExploration(opts) {
173
207
  // Backend log correlation (#142): opened BEFORE the mission runs so its window covers the seed
174
208
  // load too; a no-op (`undefined`) when `--log-source` was not given.
175
209
  const serverLog = openServerLogRuntime({
176
- sources: opts.serverLog?.sources ?? [],
177
- logDefect: opts.serverLog?.logDefect ?? [],
178
- quietOk: opts.serverLog?.quietOk ?? [],
179
- logIgnore: opts.serverLog?.logIgnore ?? [],
180
- ...(opts.serverLog?.drainMs === undefined ? {} : { drainMs: opts.serverLog.drainMs }),
210
+ ...serverLogRuntimeOptions(opts.serverLog),
181
211
  secrets: secrets ?? [],
182
212
  onTranscriptEntry: journal.onTranscriptEntry,
183
213
  });
214
+ // #204: every request's correlation ids, from before the first navigation.
215
+ serverLog?.observe(session.page);
184
216
  // #159: every settled step also refreshes the in-memory storageState snapshot (cheap no-op when
185
217
  // `--save-storage-state` was not given — `snapshotter.noteSettledStep` checks `enabled` itself).
186
218
  const onTranscriptEntry = (entry, all) => {
@@ -196,6 +228,8 @@ export async function runExploration(opts) {
196
228
  await closeQuietly(session);
197
229
  });
198
230
  try {
231
+ // #293: a journey-anchored run first replays its Journey's prefix into this very session.
232
+ const start = await startFromJourney(opts.journeyPrefix, session, opts.url, opts.allowlist, opts.browser);
199
233
  const actor = CastActor.named("explorer").whoCan(new BrowseTheWeb(session, [...opts.allowlist]));
200
234
  const mission = await runGoalBasedMission({
201
235
  ...(opts.target?.timing === undefined ? {} : { timingConfig: opts.target.timing }),
@@ -214,7 +248,10 @@ export async function runExploration(opts) {
214
248
  gen: opts.gen,
215
249
  goal: opts.goal,
216
250
  allowlist: opts.allowlist,
217
- startUrl: opts.url,
251
+ startUrl: start.url,
252
+ ...(start.branch === undefined ? {} : { startInPlace: true }),
253
+ // #293: a retried run re-replays the Journey prefix instead of loading the anchor URL.
254
+ ...(start.restart === undefined ? {} : { restartAtStart: start.restart.restartAtStart }),
218
255
  ...(opts.successAssertion === undefined ? {} : { successAssertion: opts.successAssertion }),
219
256
  ...(opts.successChecks === undefined ? {} : { successChecks: opts.successChecks }),
220
257
  ...(opts.successWhen === undefined ? {} : { successWhen: opts.successWhen }),
@@ -222,6 +259,7 @@ export async function runExploration(opts) {
222
259
  bounds: opts.bounds,
223
260
  secrets,
224
261
  ...(opts.secretFields === undefined ? {} : { secretFields: opts.secretFields }),
262
+ ...(opts.typeFixtures === undefined ? {} : { typeFixtures: opts.typeFixtures }),
225
263
  site: origin,
226
264
  fixture,
227
265
  ...conversationConfig(opts.conversation),
@@ -231,6 +269,8 @@ export async function runExploration(opts) {
231
269
  ...(opts.actors === undefined ? {} : { primaryActor: opts.actors.primary.name }),
232
270
  hostHealth: health,
233
271
  demoOverlay: demoOverlayOf(opts.browser),
272
+ // #303 (opt-in): action deltas, with Jev's advisory relevance labels for changes code cannot tie.
273
+ ...(opts.actionDeltas === true ? { actionDeltas: { jev: true } } : {}),
234
274
  });
235
275
  await observers?.close();
236
276
  // The mission (and its hang replays) is done: restore now, so the persisted log includes it. The
@@ -240,6 +280,7 @@ export async function runExploration(opts) {
240
280
  ...mission.recording,
241
281
  ...(missionFixture === undefined ? {} : { fixture: recordingFixture(missionFixture.record) }),
242
282
  ...(resolvedEmulation === undefined ? {} : { emulation: recordingEmulation(resolvedEmulation) }),
283
+ ...extensionsStamp(opts.browser), // #256
243
284
  };
244
285
  // Never blocks the mission itself: the drain wait happens AFTER `runGoalBasedMission` returned.
245
286
  const serverLogRun = serverLog === undefined ? undefined : await serverLog.finish(mission.transcript);
@@ -300,7 +341,6 @@ export async function runExploration(opts) {
300
341
  decisions: mission.run.decisions,
301
342
  actions: mission.run.actions,
302
343
  recordingPaths: [journal.recordingPath],
303
- recordingPath: journal.recordingPath,
304
344
  ...videos,
305
345
  ...shotFields,
306
346
  transcriptPath: journal.transcriptPath,
@@ -308,11 +348,12 @@ export async function runExploration(opts) {
308
348
  exitCode: goalExitCode(goalOutcome),
309
349
  resultPath,
310
350
  target: {
311
- seedUrl: opts.url,
351
+ seedUrl: start.url,
312
352
  allowlist: [...opts.allowlist],
313
353
  ...(primaryState !== undefined ? { storageStatePath: resolvePath(primaryState) } : {}),
314
354
  ...(opts.actors === undefined ? {} : { actors: persistedActors(opts.actors) }),
315
355
  },
356
+ ...branchFields(start),
316
357
  recording,
317
358
  hangs: mission.hang === undefined ? [] : [mission.hang],
318
359
  ...(mission.intermittentHangs === undefined ? {} : { intermittentHangs: mission.intermittentHangs }),
@@ -321,6 +362,7 @@ export async function runExploration(opts) {
321
362
  ...(mission.budget === undefined ? {} : { budget: mission.budget }),
322
363
  sideEffects: mission.run.sideEffects,
323
364
  ...(mission.run.sideEffectsTruncated === undefined ? {} : { sideEffectsTruncated: mission.run.sideEffectsTruncated }),
365
+ ...(mission.run.actionDeltas === undefined ? {} : { actionDeltas: mission.run.actionDeltas }),
324
366
  engine,
325
367
  ...(fx === undefined || missionFixture === undefined
326
368
  ? {}
@@ -331,6 +373,7 @@ export async function runExploration(opts) {
331
373
  log: fx.record().log,
332
374
  ...(missionFixture.persisted.spec === undefined ? {} : { spec: missionFixture.persisted.spec }),
333
375
  ...(missionFixture.persisted.hooks === undefined ? {} : { hooks: missionFixture.persisted.hooks }),
376
+ ...(missionFixture.persisted.identities === undefined ? {} : { identities: missionFixture.persisted.identities }),
334
377
  },
335
378
  }),
336
379
  // #209: a goal-specific miss (`success-check-failed`, `vacuous-check`) is typed too — after an
@@ -359,7 +402,7 @@ export async function runExploration(opts) {
359
402
  };
360
403
  // Persisted so `verify-fix` can replay a hang later (the typed result next to the Recording).
361
404
  writeMissionResult(journal.recordingPath, result.missionOutcome, result.exitCode, result, runUsage);
362
- return await withRunEvidence(result, evidenceOf(opts, secrets ?? []));
405
+ return await withRunEvidence(result, evidenceOf(opts, secrets ?? []), triageOf(opts, serverLogRun, secrets ?? []));
363
406
  }
364
407
  finally {
365
408
  disarmKillSwitch();
@@ -1 +1 @@
1
- {"version":3,"file":"explore-goal.js","sourceRoot":"","sources":["../src/explore-goal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explore-goal.js","sourceRoot":"","sources":["../src/explore-goal.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { JudgmentPort, GenerationPort, CredentialKey, UsageTracker } from "@jevitate/ai-core";
1
+ import type { JudgmentPort, GenerationPort, CredentialKey, UsageTracker, VerifyFetch } from "@jevitate/ai-core";
2
2
  import { type BrowserPort } from "@jevitate/playwright";
3
3
  import { type InvariantSpec, type RecordingEmulation } from "@jevitate/recording";
4
4
  import type { InvariantDefect, InvariantReport } from "@jevitate/explore";
@@ -7,7 +7,8 @@ import { type FilingConfig, type IssueFilerPort } from "@jevitate/domain";
7
7
  import { type EngineInfo } from "./engine.js";
8
8
  import { MissionJournal } from "./mission-journal.js";
9
9
  import { StorageStateSnapshotter } from "./storage-state-snapshot.js";
10
- import { type ServerLogDefect, type ServerLogsSummary } from "./log-correlation.js";
10
+ import { type ServerLogDefect, type ServerLogRuntimeResult, type ServerLogsSummary } from "./log-correlation.js";
11
+ import { type LogTriageOptions } from "./signal-triage.js";
11
12
  import type { LogSourceSpec } from "./log-sources.js";
12
13
  import type { LogDefectMatcher, LogIgnoreMatcher } from "./log-lines.js";
13
14
  /**
@@ -26,13 +27,39 @@ export interface ServerLogOptions {
26
27
  /** Already-parsed `--log-ignore` matchers (#169 item 3): known-noise lines excluded from
27
28
  * correlation and the defect oracle. */
28
29
  readonly logIgnore?: readonly LogIgnoreMatcher[];
30
+ /** #282: already-parsed `--log-scope` matchers: only matching lines are attributed to the run. */
31
+ readonly logScope?: readonly LogIgnoreMatcher[];
32
+ /** #204: extra correlation-id headers (`--log-correlation-header`, lower-case). */
33
+ readonly correlationHeaders?: readonly string[];
34
+ /** #204: compiled `--log-id-pattern`s (how an id is written in the operator's log format). */
35
+ readonly idPatterns?: readonly RegExp[];
36
+ /** #313 `--log-triage`: record the run's whole signal timeline and triage it per defect (Jev when `judge` is live). */
37
+ readonly triage?: LogTriageOptions;
29
38
  }
39
+ /**
40
+ * The `openServerLogRuntime` options every strategy shares, from its `ServerLogOptions` (#142,
41
+ * #169, #204, #282) — the caller adds its own `secrets` and transcript listener.
42
+ */
43
+ export declare function serverLogRuntimeOptions(o: ServerLogOptions | undefined): {
44
+ sources: readonly LogSourceSpec[];
45
+ logDefect: readonly LogDefectMatcher[];
46
+ quietOk: readonly string[];
47
+ logIgnore: readonly LogIgnoreMatcher[];
48
+ logScope: readonly LogIgnoreMatcher[];
49
+ correlationHeaders: readonly string[];
50
+ idPatterns: readonly RegExp[];
51
+ drainMs?: number;
52
+ signals?: boolean;
53
+ };
54
+ /**
55
+ * The result's `serverLogs` summary. Server-log defects go into the result's `defects` (#195); the
56
+ * deprecated `serverLogDefects` alias was removed in 0.3.0.
57
+ */
30
58
  export declare function serverLogResult(runtimeResult: {
31
59
  summary: ServerLogsSummary;
32
60
  defects: ServerLogDefect[];
33
61
  } | undefined): {
34
62
  serverLogs?: ServerLogsSummary;
35
- serverLogDefects?: ServerLogDefect[];
36
63
  };
37
64
  /**
38
65
  * Overflow/emulation CLI flags shared by every strategy (#149): `emulation` is validated and
@@ -149,4 +176,27 @@ export interface ExploreCliDeps {
149
176
  browserPortFactory?: () => BrowserPort;
150
177
  env?: Record<string, string | undefined>;
151
178
  localConfig?: Partial<Record<CredentialKey, string>>;
179
+ /** #291: the startup key check's verifier (tests; default the live HTTPS check). */
180
+ verifyFetch?: VerifyFetch;
152
181
  }
182
+ /** #313: what `withRunEvidence` needs to triage a finished run's signals (`--log-triage`). */
183
+ export interface RunTriage {
184
+ readonly options: LogTriageOptions;
185
+ readonly signals: NonNullable<ServerLogRuntimeResult["signals"]>;
186
+ readonly secrets: readonly string[];
187
+ }
188
+ /**
189
+ * The run's `serverLog` options with the triage gateway set (#313): Jev scores relevance only on a
190
+ * live (`--real`) run — a fake gateway has no answers for it, so a `--fake-ai` run triages by code.
191
+ */
192
+ export declare function triagedServerLog(serverLog: ServerLogOptions | undefined, judge: JudgmentPort, live: boolean): {
193
+ serverLog?: ServerLogOptions;
194
+ };
195
+ /** The run's triage, or `undefined` unless `--log-triage` was given and the runtime recorded signals. */
196
+ export declare function triageOf(o: {
197
+ readonly serverLog?: ServerLogOptions;
198
+ }, run: ServerLogRuntimeResult | undefined, secrets: readonly string[]): RunTriage | undefined;
199
+ /** Writes the run's `<stem>.signals.jsonl` and triages it into the result (#313). */
200
+ export declare function withRunTriage<R extends {
201
+ readonly resultPath: string;
202
+ }>(result: R, t: RunTriage | undefined): Promise<R>;
@@ -4,10 +4,32 @@ import { assertSessionFileOutsideProject } from "./project-dir.js";
4
4
  import { CastActor, BrowseTheWeb } from "@jevitate/screenplay";
5
5
  import { currentEnvironment, isLoginLikeUrl, } from "@jevitate/explore";
6
6
  import { readCliVersion } from "./version.js";
7
+ import { signalsPathFor, triageRunResult, writeSignals } from "./signal-triage.js";
8
+ /**
9
+ * The `openServerLogRuntime` options every strategy shares, from its `ServerLogOptions` (#142,
10
+ * #169, #204, #282) — the caller adds its own `secrets` and transcript listener.
11
+ */
12
+ export function serverLogRuntimeOptions(o) {
13
+ return {
14
+ sources: o?.sources ?? [],
15
+ logDefect: o?.logDefect ?? [],
16
+ quietOk: o?.quietOk ?? [],
17
+ logIgnore: o?.logIgnore ?? [],
18
+ logScope: o?.logScope ?? [],
19
+ correlationHeaders: o?.correlationHeaders ?? [],
20
+ idPatterns: o?.idPatterns ?? [],
21
+ ...(o?.drainMs === undefined ? {} : { drainMs: o.drainMs }),
22
+ ...(o?.triage === undefined ? {} : { signals: true }),
23
+ };
24
+ }
25
+ /**
26
+ * The result's `serverLogs` summary. Server-log defects go into the result's `defects` (#195); the
27
+ * deprecated `serverLogDefects` alias was removed in 0.3.0.
28
+ */
7
29
  export function serverLogResult(runtimeResult) {
8
30
  if (runtimeResult === undefined)
9
31
  return {};
10
- return { serverLogs: runtimeResult.summary, ...(runtimeResult.defects.length > 0 ? { serverLogDefects: runtimeResult.defects } : {}) };
32
+ return { serverLogs: runtimeResult.summary };
11
33
  }
12
34
  /** The viewport/device emulation actually applied to a session — recorded on the Recording (#149). */
13
35
  export function recordingEmulation(resolved) {
@@ -126,4 +148,29 @@ export function declaredResult(spec, defects, report) {
126
148
  return {};
127
149
  return { defects: [...(defects ?? [])], invariants: [...(report ?? [])], invariantSpec: spec };
128
150
  }
151
+ /**
152
+ * The run's `serverLog` options with the triage gateway set (#313): Jev scores relevance only on a
153
+ * live (`--real`) run — a fake gateway has no answers for it, so a `--fake-ai` run triages by code.
154
+ */
155
+ export function triagedServerLog(serverLog, judge, live) {
156
+ if (serverLog === undefined)
157
+ return {};
158
+ if (serverLog.triage === undefined || !live)
159
+ return { serverLog };
160
+ return { serverLog: { ...serverLog, triage: { ...serverLog.triage, judge } } };
161
+ }
162
+ /** The run's triage, or `undefined` unless `--log-triage` was given and the runtime recorded signals. */
163
+ export function triageOf(o, run, secrets) {
164
+ const options = o.serverLog?.triage;
165
+ if (options === undefined || run?.signals === undefined)
166
+ return undefined;
167
+ return { options, signals: run.signals, secrets };
168
+ }
169
+ /** Writes the run's `<stem>.signals.jsonl` and triages it into the result (#313). */
170
+ export async function withRunTriage(result, t) {
171
+ if (t === undefined)
172
+ return result;
173
+ writeSignals(signalsPathFor(result.resultPath), t.signals.entries);
174
+ return triageRunResult(result, result.resultPath, { ...t.options, secrets: t.secrets, truncated: t.signals.truncated });
175
+ }
129
176
  //# sourceMappingURL=explore-shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"explore-shared.js","sourceRoot":"","sources":["../src/explore-shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explore-shared.js","sourceRoot":"","sources":["../src/explore-shared.ts"],"names":[],"mappings":"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"}
@@ -12,16 +12,21 @@
12
12
  * own helper, fold one into the other.
13
13
  */
14
14
  export type RequestAuth =
15
- /** `<header>: <scheme> <localStorage[key]>` for the request's origin (default `Authorization: Bearer`). */
15
+ /**
16
+ * `<header>: <scheme> <localStorage[key]>` for the request's origin (default `Authorization: Bearer`).
17
+ * `identity` (#243): read from that named fixture identity's storageState, not the mission's.
18
+ */
16
19
  {
17
20
  readonly from: "localStorage";
18
21
  readonly key: string;
19
22
  readonly scheme?: string;
20
23
  readonly header?: string;
24
+ readonly identity?: string;
21
25
  }
22
- /** The storageState cookies that match the request URL, as a `Cookie` header. */
26
+ /** The storageState cookies that match the request URL, as a `Cookie` header (`identity`: as above). */
23
27
  | {
24
28
  readonly from: "cookies";
29
+ readonly identity?: string;
25
30
  }
26
31
  /** `<header>: <scheme> <value>` from a `--secret-field` binding, named by its env variable. */
27
32
  | {
@@ -35,6 +40,12 @@ export interface AuthSources {
35
40
  readonly storageStatePath?: string;
36
41
  /** `--secret-field` values by their env-variable name. */
37
42
  readonly secretFields?: Readonly<Record<string, string>>;
43
+ /**
44
+ * #243: named fixture identities → their storageState PATH (`--fixture-identity <name>=<file>` or a
45
+ * targets.json persona). A step with `auth.identity` authenticates from that file only — never from
46
+ * the mission's own `--storage-state`, so the mission can run as someone else (or cold).
47
+ */
48
+ readonly identities?: Readonly<Record<string, string>>;
38
49
  }
39
50
  export declare class FixtureAuthError extends Error {
40
51
  constructor(message: string);