@jevitate/cli 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-cli.d.ts +31 -11
- package/dist/ai-cli.js +100 -67
- package/dist/ai-cli.js.map +1 -1
- package/dist/author-journey-cli.js +3 -1
- package/dist/author-journey-cli.js.map +1 -1
- package/dist/bin.js +48218 -39969
- package/dist/browser-run-options.d.ts +32 -1
- package/dist/browser-run-options.js +69 -0
- package/dist/browser-run-options.js.map +1 -1
- package/dist/build-info.generated.js +2 -2
- package/dist/campaign-api.d.ts +151 -0
- package/dist/campaign-api.js +446 -0
- package/dist/campaign-api.js.map +1 -0
- package/dist/campaign-cli.d.ts +6 -0
- package/dist/campaign-cli.js +66 -0
- package/dist/campaign-cli.js.map +1 -0
- package/dist/check-api.js +3 -2
- package/dist/check-api.js.map +1 -1
- package/dist/check-budget.js +2 -1
- package/dist/check-budget.js.map +1 -1
- package/dist/check-execute.d.ts +4 -0
- package/dist/check-execute.js +41 -6
- package/dist/check-execute.js.map +1 -1
- package/dist/check-plan.d.ts +5 -0
- package/dist/check-plan.js +72 -4
- package/dist/check-plan.js.map +1 -1
- package/dist/check-suite.d.ts +14 -1
- package/dist/check-suite.js +26 -1
- package/dist/check-suite.js.map +1 -1
- package/dist/cli-output.d.ts +4 -0
- package/dist/cli-output.js +52 -5
- package/dist/cli-output.js.map +1 -1
- package/dist/cli-shared.d.ts +13 -3
- package/dist/cli-shared.js +52 -7
- package/dist/cli-shared.js.map +1 -1
- package/dist/defect-evidence.js +6 -3
- package/dist/defect-evidence.js.map +1 -1
- package/dist/demo-aspect-api.js +2 -1
- package/dist/demo-aspect-api.js.map +1 -1
- package/dist/demo-aspect-cli.js +3 -1
- package/dist/demo-aspect-cli.js.map +1 -1
- package/dist/demo-capture.d.ts +37 -3
- package/dist/demo-capture.js +119 -20
- package/dist/demo-capture.js.map +1 -1
- package/dist/explore-adversarial.d.ts +11 -4
- package/dist/explore-adversarial.js +21 -12
- package/dist/explore-adversarial.js.map +1 -1
- package/dist/explore-cli.js +262 -26
- package/dist/explore-cli.js.map +1 -1
- package/dist/explore-coverage.d.ts +17 -2
- package/dist/explore-coverage.js +19 -13
- package/dist/explore-coverage.js.map +1 -1
- package/dist/explore-feature.d.ts +0 -2
- package/dist/explore-feature.js +6 -8
- package/dist/explore-feature.js.map +1 -1
- package/dist/explore-goal.d.ts +25 -7
- package/dist/explore-goal.js +61 -18
- package/dist/explore-goal.js.map +1 -1
- package/dist/explore-shared.d.ts +27 -2
- package/dist/explore-shared.js +21 -1
- package/dist/explore-shared.js.map +1 -1
- package/dist/fixture-auth.d.ts +13 -2
- package/dist/fixture-auth.js +19 -6
- package/dist/fixture-auth.js.map +1 -1
- package/dist/fixture-cli.d.ts +29 -0
- package/dist/fixture-cli.js +121 -7
- package/dist/fixture-cli.js.map +1 -1
- package/dist/github-issue-filer.js +2 -1
- package/dist/github-issue-filer.js.map +1 -1
- package/dist/host-health-run.d.ts +2 -1
- package/dist/host-health-run.js +8 -2
- package/dist/host-health-run.js.map +1 -1
- package/dist/init-cli.js +34 -5
- package/dist/init-cli.js.map +1 -1
- package/dist/init-keys.d.ts +11 -0
- package/dist/init-keys.js +5 -2
- package/dist/init-keys.js.map +1 -1
- package/dist/journey-annotate-api.js +17 -4
- package/dist/journey-annotate-api.js.map +1 -1
- package/dist/journey-annotate-cli.js +3 -1
- package/dist/journey-annotate-cli.js.map +1 -1
- package/dist/journey-api.d.ts +26 -1
- package/dist/journey-api.js +51 -25
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.d.ts +1 -1
- package/dist/journey-cli.js +44 -3
- package/dist/journey-cli.js.map +1 -1
- package/dist/journey-demo-api.d.ts +2 -0
- package/dist/journey-demo-api.js +23 -10
- package/dist/journey-demo-api.js.map +1 -1
- package/dist/journey-demo-cli.js +5 -2
- package/dist/journey-demo-cli.js.map +1 -1
- package/dist/journey-prefix.d.ts +194 -0
- package/dist/journey-prefix.js +279 -0
- package/dist/journey-prefix.js.map +1 -0
- package/dist/key-report.d.ts +49 -0
- package/dist/key-report.js +101 -0
- package/dist/key-report.js.map +1 -0
- package/dist/kill-signal.js +0 -1
- package/dist/kill-signal.js.map +1 -1
- package/dist/ledger-api.js +3 -1
- package/dist/ledger-api.js.map +1 -1
- package/dist/log-correlation.d.ts +54 -1
- package/dist/log-correlation.js +83 -14
- package/dist/log-correlation.js.map +1 -1
- package/dist/log-sources.js +6 -5
- package/dist/log-sources.js.map +1 -1
- package/dist/log-trace.d.ts +80 -0
- package/dist/log-trace.js +210 -0
- package/dist/log-trace.js.map +1 -0
- package/dist/logs-retention.js +2 -1
- package/dist/logs-retention.js.map +1 -1
- package/dist/masked-input.d.ts +22 -0
- package/dist/masked-input.js +99 -0
- package/dist/masked-input.js.map +1 -0
- package/dist/mcp-api.d.ts +3 -1
- package/dist/mcp-api.js +49 -7
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-args.d.ts +12 -0
- package/dist/mcp-args.js +33 -0
- package/dist/mcp-args.js.map +1 -1
- package/dist/mcp-cli-tools.d.ts +5 -1
- package/dist/mcp-cli-tools.js +73 -16
- package/dist/mcp-cli-tools.js.map +1 -1
- package/dist/mission-api.js +2 -1
- package/dist/mission-api.js.map +1 -1
- package/dist/mission-cli.js +2 -1
- package/dist/mission-cli.js.map +1 -1
- package/dist/mission-fixtures.d.ts +10 -1
- package/dist/mission-fixtures.js +49 -15
- package/dist/mission-fixtures.js.map +1 -1
- package/dist/mission-queue-runner.js +11 -2
- package/dist/mission-queue-runner.js.map +1 -1
- package/dist/multi-run-cli.js +7 -1
- package/dist/multi-run-cli.js.map +1 -1
- package/dist/openrouter-call.js +3 -2
- package/dist/openrouter-call.js.map +1 -1
- package/dist/program.js +4 -0
- package/dist/program.js.map +1 -1
- package/dist/project-dir.js +3 -2
- package/dist/project-dir.js.map +1 -1
- package/dist/record-api.d.ts +3 -1
- package/dist/record-api.js +5 -2
- package/dist/record-api.js.map +1 -1
- package/dist/record-cli.js +14 -2
- package/dist/record-cli.js.map +1 -1
- package/dist/regression-api.d.ts +6 -0
- package/dist/regression-api.js +4 -2
- package/dist/regression-api.js.map +1 -1
- package/dist/regression-cli.js +56 -4
- package/dist/regression-cli.js.map +1 -1
- package/dist/report-api.js +2 -1
- package/dist/report-api.js.map +1 -1
- package/dist/resource-preflight.d.ts +87 -0
- package/dist/resource-preflight.js +160 -0
- package/dist/resource-preflight.js.map +1 -0
- package/dist/result-schema.d.ts +1 -1
- package/dist/result-schema.js +1 -1
- package/dist/run-key-preflight.d.ts +42 -0
- package/dist/run-key-preflight.js +82 -0
- package/dist/run-key-preflight.js.map +1 -0
- package/dist/run-screenshots.js +11 -5
- package/dist/run-screenshots.js.map +1 -1
- package/dist/runtime-env.js +3 -2
- package/dist/runtime-env.js.map +1 -1
- package/dist/server-log-verify.d.ts +2 -0
- package/dist/server-log-verify.js +8 -3
- package/dist/server-log-verify.js.map +1 -1
- package/dist/site-gate-cli.js +2 -1
- package/dist/site-gate-cli.js.map +1 -1
- package/dist/source-api.js +2 -1
- package/dist/source-api.js.map +1 -1
- package/dist/suite-explore-options.d.ts +32 -0
- package/dist/suite-explore-options.js +22 -0
- package/dist/suite-explore-options.js.map +1 -1
- package/dist/target-config.d.ts +6 -0
- package/dist/target-config.js +9 -0
- package/dist/target-config.js.map +1 -1
- package/dist/type-fixture-file.d.ts +9 -0
- package/dist/type-fixture-file.js +48 -0
- package/dist/type-fixture-file.js.map +1 -0
- package/dist/ui-api.js +4 -3
- package/dist/ui-api.js.map +1 -1
- package/dist/usability-capture.js +4 -3
- package/dist/usability-capture.js.map +1 -1
- package/dist/usage-config.d.ts +1 -1
- package/dist/usage-config.js +1 -1
- package/dist/ux-claim-probe.d.ts +45 -0
- package/dist/ux-claim-probe.js +386 -0
- package/dist/ux-claim-probe.js.map +1 -0
- package/dist/ux-cli.js +8 -1
- package/dist/ux-cli.js.map +1 -1
- package/dist/ux-product.d.ts +14 -0
- package/dist/ux-product.js +39 -0
- package/dist/ux-product.js.map +1 -0
- package/dist/ux-review.d.ts +4 -0
- package/dist/ux-review.js +27 -7
- package/dist/ux-review.js.map +1 -1
- package/dist/ux-usability.d.ts +34 -9
- package/dist/ux-usability.js +100 -14
- package/dist/ux-usability.js.map +1 -1
- package/dist/verify-fix-api.d.ts +21 -0
- package/dist/verify-fix-api.js +85 -33
- package/dist/verify-fix-api.js.map +1 -1
- package/dist/verify-fix-cli.js +7 -2
- package/dist/verify-fix-cli.js.map +1 -1
- package/package.json +9 -9
- package/skills/jevitate-explore/SKILL.md +8 -0
- package/skills/jevitate-getting-started/SKILL.md +2 -1
- package/skills/jevitate-test-campaign/SKILL.md +203 -0
package/dist/explore-goal.d.ts
CHANGED
|
@@ -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>\""
|
|
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.
|
package/dist/explore-goal.js
CHANGED
|
@@ -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 { 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
|
-
|
|
68
|
-
|
|
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 || (
|
|
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
|
-
|
|
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>\""
|
|
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
|
-
|
|
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 ?? (() =>
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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
|
package/dist/explore-goal.js.map
CHANGED
|
@@ -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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"}
|
package/dist/explore-shared.d.ts
CHANGED
|
@@ -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";
|
|
@@ -26,13 +26,36 @@ export interface ServerLogOptions {
|
|
|
26
26
|
/** Already-parsed `--log-ignore` matchers (#169 item 3): known-noise lines excluded from
|
|
27
27
|
* correlation and the defect oracle. */
|
|
28
28
|
readonly logIgnore?: readonly LogIgnoreMatcher[];
|
|
29
|
+
/** #282: already-parsed `--log-scope` matchers: only matching lines are attributed to the run. */
|
|
30
|
+
readonly logScope?: readonly LogIgnoreMatcher[];
|
|
31
|
+
/** #204: extra correlation-id headers (`--log-correlation-header`, lower-case). */
|
|
32
|
+
readonly correlationHeaders?: readonly string[];
|
|
33
|
+
/** #204: compiled `--log-id-pattern`s (how an id is written in the operator's log format). */
|
|
34
|
+
readonly idPatterns?: readonly RegExp[];
|
|
29
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* The `openServerLogRuntime` options every strategy shares, from its `ServerLogOptions` (#142,
|
|
38
|
+
* #169, #204, #282) — the caller adds its own `secrets` and transcript listener.
|
|
39
|
+
*/
|
|
40
|
+
export declare function serverLogRuntimeOptions(o: ServerLogOptions | undefined): {
|
|
41
|
+
sources: readonly LogSourceSpec[];
|
|
42
|
+
logDefect: readonly LogDefectMatcher[];
|
|
43
|
+
quietOk: readonly string[];
|
|
44
|
+
logIgnore: readonly LogIgnoreMatcher[];
|
|
45
|
+
logScope: readonly LogIgnoreMatcher[];
|
|
46
|
+
correlationHeaders: readonly string[];
|
|
47
|
+
idPatterns: readonly RegExp[];
|
|
48
|
+
drainMs?: number;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* The result's `serverLogs` summary. Server-log defects go into the result's `defects` (#195); the
|
|
52
|
+
* deprecated `serverLogDefects` alias was removed in 0.3.0.
|
|
53
|
+
*/
|
|
30
54
|
export declare function serverLogResult(runtimeResult: {
|
|
31
55
|
summary: ServerLogsSummary;
|
|
32
56
|
defects: ServerLogDefect[];
|
|
33
57
|
} | undefined): {
|
|
34
58
|
serverLogs?: ServerLogsSummary;
|
|
35
|
-
serverLogDefects?: ServerLogDefect[];
|
|
36
59
|
};
|
|
37
60
|
/**
|
|
38
61
|
* Overflow/emulation CLI flags shared by every strategy (#149): `emulation` is validated and
|
|
@@ -149,4 +172,6 @@ export interface ExploreCliDeps {
|
|
|
149
172
|
browserPortFactory?: () => BrowserPort;
|
|
150
173
|
env?: Record<string, string | undefined>;
|
|
151
174
|
localConfig?: Partial<Record<CredentialKey, string>>;
|
|
175
|
+
/** #291: the startup key check's verifier (tests; default the live HTTPS check). */
|
|
176
|
+
verifyFetch?: VerifyFetch;
|
|
152
177
|
}
|
package/dist/explore-shared.js
CHANGED
|
@@ -4,10 +4,30 @@ 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
|
+
/**
|
|
8
|
+
* The `openServerLogRuntime` options every strategy shares, from its `ServerLogOptions` (#142,
|
|
9
|
+
* #169, #204, #282) — the caller adds its own `secrets` and transcript listener.
|
|
10
|
+
*/
|
|
11
|
+
export function serverLogRuntimeOptions(o) {
|
|
12
|
+
return {
|
|
13
|
+
sources: o?.sources ?? [],
|
|
14
|
+
logDefect: o?.logDefect ?? [],
|
|
15
|
+
quietOk: o?.quietOk ?? [],
|
|
16
|
+
logIgnore: o?.logIgnore ?? [],
|
|
17
|
+
logScope: o?.logScope ?? [],
|
|
18
|
+
correlationHeaders: o?.correlationHeaders ?? [],
|
|
19
|
+
idPatterns: o?.idPatterns ?? [],
|
|
20
|
+
...(o?.drainMs === undefined ? {} : { drainMs: o.drainMs }),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The result's `serverLogs` summary. Server-log defects go into the result's `defects` (#195); the
|
|
25
|
+
* deprecated `serverLogDefects` alias was removed in 0.3.0.
|
|
26
|
+
*/
|
|
7
27
|
export function serverLogResult(runtimeResult) {
|
|
8
28
|
if (runtimeResult === undefined)
|
|
9
29
|
return {};
|
|
10
|
-
return { serverLogs: runtimeResult.summary
|
|
30
|
+
return { serverLogs: runtimeResult.summary };
|
|
11
31
|
}
|
|
12
32
|
/** The viewport/device emulation actually applied to a session — recorded on the Recording (#149). */
|
|
13
33
|
export function recordingEmulation(resolved) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explore-shared.js","sourceRoot":"","sources":["../src/explore-shared.ts"],"names":[],"mappings":"AAAA,+LAA+L;AAC/L,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EACL,kBAAkB,EAClB,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"explore-shared.js","sourceRoot":"","sources":["../src/explore-shared.ts"],"names":[],"mappings":"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"}
|
package/dist/fixture-auth.d.ts
CHANGED
|
@@ -12,16 +12,21 @@
|
|
|
12
12
|
* own helper, fold one into the other.
|
|
13
13
|
*/
|
|
14
14
|
export type RequestAuth =
|
|
15
|
-
/**
|
|
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);
|
package/dist/fixture-auth.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
|
+
import { clock } from "@jevitate/domain";
|
|
2
3
|
export class FixtureAuthError extends Error {
|
|
3
4
|
constructor(message) {
|
|
4
5
|
super(message);
|
|
@@ -36,6 +37,9 @@ function cookieMatches(c, url, nowSec) {
|
|
|
36
37
|
return false;
|
|
37
38
|
return true;
|
|
38
39
|
}
|
|
40
|
+
function whose(auth) {
|
|
41
|
+
return auth.identity === undefined ? "the storage state" : `fixture identity ${auth.identity}'s storage state`;
|
|
42
|
+
}
|
|
39
43
|
function withScheme(scheme, value, fallback) {
|
|
40
44
|
const s = scheme ?? fallback;
|
|
41
45
|
return s === "" ? value : `${s} ${value}`;
|
|
@@ -62,20 +66,29 @@ export function authHeaders(auth, url, sources) {
|
|
|
62
66
|
}
|
|
63
67
|
return { [auth.header ?? "authorization"]: withScheme(auth.scheme, value, "Bearer") };
|
|
64
68
|
}
|
|
65
|
-
|
|
66
|
-
|
|
69
|
+
let statePath;
|
|
70
|
+
if (auth.identity !== undefined) {
|
|
71
|
+
statePath = sources.identities?.[auth.identity];
|
|
72
|
+
if (statePath === undefined) {
|
|
73
|
+
throw new FixtureAuthError(`auth.identity ${auth.identity} is not bound: pass --fixture-identity ${auth.identity}=<storageState> or declare personas.${auth.identity}.storageState for this origin in targets.json`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
statePath = sources.storageStatePath;
|
|
78
|
+
if (statePath === undefined)
|
|
79
|
+
throw new FixtureAuthError(`auth from ${auth.from} needs --storage-state (or an auth.identity)`);
|
|
67
80
|
}
|
|
68
|
-
const state = readStorageState(
|
|
81
|
+
const state = readStorageState(statePath);
|
|
69
82
|
if (auth.from === "cookies") {
|
|
70
|
-
const nowSec =
|
|
83
|
+
const nowSec = clock.now() / 1000;
|
|
71
84
|
const jar = state.cookies.filter((c) => cookieMatches(c, target, nowSec));
|
|
72
85
|
if (jar.length === 0)
|
|
73
|
-
throw new FixtureAuthError(
|
|
86
|
+
throw new FixtureAuthError(`${whose(auth)} has no cookie for ${target.origin}`);
|
|
74
87
|
return { cookie: jar.map((c) => `${c.name}=${c.value}`).join("; ") };
|
|
75
88
|
}
|
|
76
89
|
const entry = state.origins.find((o) => o.origin === target.origin)?.localStorage.find((i) => i.name === auth.key);
|
|
77
90
|
if (entry === undefined || entry.value === "") {
|
|
78
|
-
throw new FixtureAuthError(
|
|
91
|
+
throw new FixtureAuthError(`${whose(auth)} has no localStorage "${auth.key}" for ${target.origin}`);
|
|
79
92
|
}
|
|
80
93
|
return { [auth.header ?? "authorization"]: withScheme(auth.scheme, entry.value, "Bearer") };
|
|
81
94
|
}
|
package/dist/fixture-auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture-auth.js","sourceRoot":"","sources":["../src/fixture-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"fixture-auth.js","sourceRoot":"","sources":["../src/fixture-auth.ts"],"names":[],"mappings":"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"}
|