@jevitate/cli 0.1.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/README.md +23 -0
- package/dist/ai-cli.d.ts +31 -11
- package/dist/ai-cli.js +131 -88
- package/dist/ai-cli.js.map +1 -1
- package/dist/author-journey-cli.d.ts +4 -0
- package/dist/author-journey-cli.js +111 -0
- package/dist/author-journey-cli.js.map +1 -0
- package/dist/bin.js +60349 -16477
- package/dist/bin.js.map +1 -1
- package/dist/browser-run-options.d.ts +89 -0
- package/dist/browser-run-options.js +175 -0
- package/dist/browser-run-options.js.map +1 -0
- package/dist/build-info.generated.d.ts +2 -0
- package/dist/build-info.generated.js +10 -0
- package/dist/build-info.generated.js.map +1 -0
- 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.d.ts +5 -0
- package/dist/check-api.js +234 -0
- package/dist/check-api.js.map +1 -0
- package/dist/check-budget.d.ts +26 -0
- package/dist/check-budget.js +90 -0
- package/dist/check-budget.js.map +1 -0
- package/dist/check-cli.d.ts +31 -0
- package/dist/check-cli.js +109 -0
- package/dist/check-cli.js.map +1 -0
- package/dist/check-execute.d.ts +29 -0
- package/dist/check-execute.js +420 -0
- package/dist/check-execute.js.map +1 -0
- package/dist/check-plan.d.ts +118 -0
- package/dist/check-plan.js +516 -0
- package/dist/check-plan.js.map +1 -0
- package/dist/check-suite.d.ts +184 -0
- package/dist/check-suite.js +540 -0
- package/dist/check-suite.js.map +1 -0
- package/dist/check-types.d.ts +181 -0
- package/dist/check-types.js +35 -0
- package/dist/check-types.js.map +1 -0
- package/dist/cli-args.d.ts +26 -0
- package/dist/cli-args.js +50 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli-output.d.ts +106 -0
- package/dist/cli-output.js +563 -0
- package/dist/cli-output.js.map +1 -0
- package/dist/cli-reference.d.ts +3 -0
- package/dist/cli-reference.js +81 -0
- package/dist/cli-reference.js.map +1 -0
- package/dist/cli-refusal.d.ts +12 -0
- package/dist/cli-refusal.js +52 -0
- package/dist/cli-refusal.js.map +1 -0
- package/dist/cli-shared.d.ts +340 -0
- package/dist/cli-shared.js +537 -0
- package/dist/cli-shared.js.map +1 -0
- package/dist/cli-surface.d.ts +33 -0
- package/dist/cli-surface.js +48 -0
- package/dist/cli-surface.js.map +1 -0
- package/dist/conversation-options.d.ts +15 -0
- package/dist/conversation-options.js +10 -0
- package/dist/conversation-options.js.map +1 -0
- package/dist/credentials-file.d.ts +15 -0
- package/dist/credentials-file.js +56 -0
- package/dist/credentials-file.js.map +1 -0
- package/dist/data-dir.d.ts +1 -1
- package/dist/data-dir.js +1 -1
- package/dist/defect-evidence.d.ts +141 -0
- package/dist/defect-evidence.js +505 -0
- package/dist/defect-evidence.js.map +1 -0
- package/dist/demo-aspect-api.d.ts +209 -0
- package/dist/demo-aspect-api.js +398 -0
- package/dist/demo-aspect-api.js.map +1 -0
- package/dist/demo-aspect-cli.d.ts +3 -0
- package/dist/demo-aspect-cli.js +243 -0
- package/dist/demo-aspect-cli.js.map +1 -0
- package/dist/demo-capture.d.ts +142 -0
- package/dist/demo-capture.js +537 -0
- package/dist/demo-capture.js.map +1 -0
- package/dist/engine.d.ts +35 -0
- package/dist/engine.js +25 -0
- package/dist/engine.js.map +1 -0
- package/dist/environments.d.ts +155 -0
- package/dist/environments.js +364 -0
- package/dist/environments.js.map +1 -0
- package/dist/exit-codes.d.ts +46 -0
- package/dist/exit-codes.js +91 -0
- package/dist/exit-codes.js.map +1 -0
- package/dist/explore-adversarial.d.ts +144 -0
- package/dist/explore-adversarial.js +227 -0
- package/dist/explore-adversarial.js.map +1 -0
- package/dist/explore-api.d.ts +7 -187
- package/dist/explore-api.js +7 -301
- package/dist/explore-api.js.map +1 -1
- package/dist/explore-author.d.ts +79 -0
- package/dist/explore-author.js +86 -0
- package/dist/explore-author.js.map +1 -0
- package/dist/explore-cli.d.ts +7 -0
- package/dist/explore-cli.js +1199 -0
- package/dist/explore-cli.js.map +1 -0
- package/dist/explore-coverage.d.ts +173 -0
- package/dist/explore-coverage.js +246 -0
- package/dist/explore-coverage.js.map +1 -0
- package/dist/explore-feature.d.ts +125 -0
- package/dist/explore-feature.js +218 -0
- package/dist/explore-feature.js.map +1 -0
- package/dist/explore-goal.d.ts +271 -0
- package/dist/explore-goal.js +417 -0
- package/dist/explore-goal.js.map +1 -0
- package/dist/explore-shared.d.ts +177 -0
- package/dist/explore-shared.js +149 -0
- package/dist/explore-shared.js.map +1 -0
- package/dist/explore-specs.d.ts +53 -0
- package/dist/explore-specs.js +333 -0
- package/dist/explore-specs.js.map +1 -0
- package/dist/findings-filing.d.ts +64 -0
- package/dist/findings-filing.js +108 -0
- package/dist/findings-filing.js.map +1 -0
- package/dist/fixture-auth.d.ts +63 -0
- package/dist/fixture-auth.js +95 -0
- package/dist/fixture-auth.js.map +1 -0
- package/dist/fixture-cli.d.ts +99 -0
- package/dist/fixture-cli.js +292 -0
- package/dist/fixture-cli.js.map +1 -0
- package/dist/github-issue-filer.d.ts +62 -0
- package/dist/github-issue-filer.js +189 -0
- package/dist/github-issue-filer.js.map +1 -0
- package/dist/host-health-run.d.ts +25 -0
- package/dist/host-health-run.js +33 -0
- package/dist/host-health-run.js.map +1 -0
- package/dist/http-5xx-outcome.d.ts +6 -0
- package/dist/http-5xx-outcome.js +39 -0
- package/dist/http-5xx-outcome.js.map +1 -0
- package/dist/inbox-cli.d.ts +7 -0
- package/dist/inbox-cli.js +197 -0
- package/dist/inbox-cli.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/init-cli.d.ts +4 -0
- package/dist/init-cli.js +156 -0
- package/dist/init-cli.js.map +1 -0
- package/dist/init-keys.d.ts +30 -2
- package/dist/init-keys.js +19 -5
- package/dist/init-keys.js.map +1 -1
- package/dist/init-next-steps.d.ts +35 -0
- package/dist/init-next-steps.js +79 -0
- package/dist/init-next-steps.js.map +1 -0
- package/dist/invariants-file.d.ts +34 -0
- package/dist/invariants-file.js +68 -0
- package/dist/invariants-file.js.map +1 -0
- package/dist/invariants-validate.d.ts +30 -0
- package/dist/invariants-validate.js +105 -0
- package/dist/invariants-validate.js.map +1 -0
- package/dist/journey-annotate-api.d.ts +76 -0
- package/dist/journey-annotate-api.js +269 -0
- package/dist/journey-annotate-api.js.map +1 -0
- package/dist/journey-annotate-cli.d.ts +9 -0
- package/dist/journey-annotate-cli.js +181 -0
- package/dist/journey-annotate-cli.js.map +1 -0
- package/dist/journey-api.d.ts +104 -2
- package/dist/journey-api.js +163 -20
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.d.ts +4 -0
- package/dist/journey-cli.js +411 -0
- package/dist/journey-cli.js.map +1 -0
- package/dist/journey-demo-api.d.ts +114 -0
- package/dist/journey-demo-api.js +405 -0
- package/dist/journey-demo-api.js.map +1 -0
- package/dist/journey-demo-cli.d.ts +10 -0
- package/dist/journey-demo-cli.js +158 -0
- package/dist/journey-demo-cli.js.map +1 -0
- 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.d.ts +193 -0
- package/dist/kill-signal.js +283 -0
- package/dist/kill-signal.js.map +1 -0
- package/dist/launch-armed.d.ts +37 -0
- package/dist/launch-armed.js +31 -0
- package/dist/launch-armed.js.map +1 -0
- package/dist/ledger-api.d.ts +106 -0
- package/dist/ledger-api.js +239 -0
- package/dist/ledger-api.js.map +1 -0
- package/dist/ledger-cli.d.ts +18 -0
- package/dist/ledger-cli.js +107 -0
- package/dist/ledger-cli.js.map +1 -0
- package/dist/load-api.d.ts +29 -11
- package/dist/load-api.js +23 -15
- package/dist/load-api.js.map +1 -1
- package/dist/load-cli.d.ts +4 -0
- package/dist/load-cli.js +97 -0
- package/dist/load-cli.js.map +1 -0
- package/dist/log-correlation.d.ts +200 -0
- package/dist/log-correlation.js +394 -0
- package/dist/log-correlation.js.map +1 -0
- package/dist/log-lines.d.ts +131 -0
- package/dist/log-lines.js +389 -0
- package/dist/log-lines.js.map +1 -0
- package/dist/log-sources.d.ts +71 -0
- package/dist/log-sources.js +236 -0
- package/dist/log-sources.js.map +1 -0
- 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-cli.d.ts +3 -0
- package/dist/logs-cli.js +51 -0
- package/dist/logs-cli.js.map +1 -0
- package/dist/logs-retention.d.ts +28 -0
- package/dist/logs-retention.js +85 -0
- package/dist/logs-retention.js.map +1 -0
- 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 +91 -1
- package/dist/mcp-api.js +514 -18
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-args.d.ts +50 -0
- package/dist/mcp-args.js +164 -0
- package/dist/mcp-args.js.map +1 -0
- package/dist/mcp-cli-bridge.d.ts +34 -0
- package/dist/mcp-cli-bridge.js +62 -0
- package/dist/mcp-cli-bridge.js.map +1 -0
- package/dist/mcp-cli-runner.d.ts +29 -0
- package/dist/mcp-cli-runner.js +44 -0
- package/dist/mcp-cli-runner.js.map +1 -0
- package/dist/mcp-cli-tools.d.ts +129 -0
- package/dist/mcp-cli-tools.js +737 -0
- package/dist/mcp-cli-tools.js.map +1 -0
- package/dist/mcp-paths.d.ts +28 -0
- package/dist/mcp-paths.js +76 -0
- package/dist/mcp-paths.js.map +1 -0
- package/dist/mission-actors.d.ts +40 -0
- package/dist/mission-actors.js +72 -0
- package/dist/mission-actors.js.map +1 -0
- package/dist/mission-api.d.ts +35 -0
- package/dist/mission-api.js +60 -3
- package/dist/mission-api.js.map +1 -1
- package/dist/mission-cli.d.ts +4 -0
- package/dist/mission-cli.js +248 -0
- package/dist/mission-cli.js.map +1 -0
- package/dist/mission-exit.d.ts +22 -0
- package/dist/mission-exit.js +26 -0
- package/dist/mission-exit.js.map +1 -0
- package/dist/mission-fixtures.d.ts +234 -0
- package/dist/mission-fixtures.js +862 -0
- package/dist/mission-fixtures.js.map +1 -0
- package/dist/mission-journal.d.ts +60 -0
- package/dist/mission-journal.js +115 -0
- package/dist/mission-journal.js.map +1 -0
- package/dist/mission-queue-cli.d.ts +10 -0
- package/dist/mission-queue-cli.js +198 -0
- package/dist/mission-queue-cli.js.map +1 -0
- package/dist/mission-queue-runner.d.ts +126 -0
- package/dist/mission-queue-runner.js +406 -0
- package/dist/mission-queue-runner.js.map +1 -0
- package/dist/multi-run-cli.d.ts +37 -0
- package/dist/multi-run-cli.js +116 -0
- package/dist/multi-run-cli.js.map +1 -0
- package/dist/multi-run.d.ts +339 -0
- package/dist/multi-run.js +619 -0
- package/dist/multi-run.js.map +1 -0
- package/dist/openrouter-call.d.ts +22 -0
- package/dist/openrouter-call.js +64 -0
- package/dist/openrouter-call.js.map +1 -0
- package/dist/profile-cli.d.ts +4 -0
- package/dist/profile-cli.js +57 -0
- package/dist/profile-cli.js.map +1 -0
- package/dist/program.d.ts +3 -75
- package/dist/program.js +123 -1921
- package/dist/program.js.map +1 -1
- package/dist/project-dir.d.ts +96 -0
- package/dist/project-dir.js +221 -0
- package/dist/project-dir.js.map +1 -0
- package/dist/record-api.d.ts +13 -7
- package/dist/record-api.js +44 -30
- package/dist/record-api.js.map +1 -1
- package/dist/record-cli.d.ts +4 -0
- package/dist/record-cli.js +76 -0
- package/dist/record-cli.js.map +1 -0
- package/dist/recording-cli.d.ts +4 -0
- package/dist/recording-cli.js +248 -0
- package/dist/recording-cli.js.map +1 -0
- package/dist/regression-api.d.ts +107 -0
- package/dist/regression-api.js +387 -6
- package/dist/regression-api.js.map +1 -1
- package/dist/regression-cli.d.ts +4 -0
- package/dist/regression-cli.js +284 -0
- package/dist/regression-cli.js.map +1 -0
- package/dist/report-api.d.ts +146 -0
- package/dist/report-api.js +431 -0
- package/dist/report-api.js.map +1 -0
- package/dist/report-cli.d.ts +12 -0
- package/dist/report-cli.js +147 -0
- package/dist/report-cli.js.map +1 -0
- 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 +22 -0
- package/dist/result-schema.js +28 -0
- package/dist/result-schema.js.map +1 -0
- package/dist/run-index.d.ts +29 -0
- package/dist/run-index.js +70 -0
- package/dist/run-index.js.map +1 -0
- 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.d.ts +123 -0
- package/dist/run-screenshots.js +235 -0
- package/dist/run-screenshots.js.map +1 -0
- package/dist/runtime-env.d.ts +8 -0
- package/dist/runtime-env.js +23 -0
- package/dist/runtime-env.js.map +1 -0
- package/dist/secret-args.d.ts +23 -0
- package/dist/secret-args.js +45 -0
- package/dist/secret-args.js.map +1 -0
- package/dist/serve-cli.d.ts +4 -0
- package/dist/serve-cli.js +95 -0
- package/dist/serve-cli.js.map +1 -0
- package/dist/server-log-verify.d.ts +36 -0
- package/dist/server-log-verify.js +120 -0
- package/dist/server-log-verify.js.map +1 -0
- package/dist/session-check.d.ts +14 -0
- package/dist/session-check.js +44 -0
- package/dist/session-check.js.map +1 -0
- package/dist/site-cli.d.ts +4 -0
- package/dist/site-cli.js +127 -0
- package/dist/site-cli.js.map +1 -0
- package/dist/site-gate-cli.d.ts +28 -0
- package/dist/site-gate-cli.js +59 -0
- package/dist/site-gate-cli.js.map +1 -0
- package/dist/source-api.js +20 -4
- package/dist/source-api.js.map +1 -1
- package/dist/source-cli.d.ts +4 -0
- package/dist/source-cli.js +284 -0
- package/dist/source-cli.js.map +1 -0
- package/dist/source-run-api.d.ts +27 -1
- package/dist/source-run-api.js +22 -11
- package/dist/source-run-api.js.map +1 -1
- package/dist/storage-state-snapshot.d.ts +50 -0
- package/dist/storage-state-snapshot.js +87 -0
- package/dist/storage-state-snapshot.js.map +1 -0
- package/dist/suite-explore-options.d.ts +321 -0
- package/dist/suite-explore-options.js +162 -0
- package/dist/suite-explore-options.js.map +1 -0
- package/dist/target-config.d.ts +115 -0
- package/dist/target-config.js +225 -0
- package/dist/target-config.js.map +1 -0
- package/dist/transcript-file.d.ts +12 -0
- package/dist/transcript-file.js +23 -0
- package/dist/transcript-file.js.map +1 -0
- 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.d.ts +3 -0
- package/dist/ui-api.js +11 -4
- package/dist/ui-api.js.map +1 -1
- package/dist/usability-capture.d.ts +43 -0
- package/dist/usability-capture.js +327 -0
- package/dist/usability-capture.js.map +1 -0
- package/dist/usage-config.d.ts +36 -0
- package/dist/usage-config.js +114 -0
- package/dist/usage-config.js.map +1 -0
- package/dist/ux-api.d.ts +3 -75
- package/dist/ux-api.js +3 -220
- package/dist/ux-api.js.map +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.d.ts +4 -0
- package/dist/ux-cli.js +109 -0
- package/dist/ux-cli.js.map +1 -0
- package/dist/ux-config.d.ts +29 -0
- package/dist/ux-config.js +103 -0
- package/dist/ux-config.js.map +1 -0
- package/dist/ux-evidence.d.ts +54 -0
- package/dist/ux-evidence.js +197 -0
- package/dist/ux-evidence.js.map +1 -0
- 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 +116 -0
- package/dist/ux-review.js +171 -0
- package/dist/ux-review.js.map +1 -0
- package/dist/ux-usability.d.ts +263 -0
- package/dist/ux-usability.js +580 -0
- package/dist/ux-usability.js.map +1 -0
- package/dist/verify-fix-api.d.ts +194 -0
- package/dist/verify-fix-api.js +506 -0
- package/dist/verify-fix-api.js.map +1 -0
- package/dist/verify-fix-cli.d.ts +4 -0
- package/dist/verify-fix-cli.js +115 -0
- package/dist/verify-fix-cli.js.map +1 -0
- package/package.json +23 -18
- package/skills/jevitate-ci-check/SKILL.md +77 -0
- package/skills/jevitate-demo/SKILL.md +61 -0
- package/skills/jevitate-explore/SKILL.md +96 -87
- package/skills/jevitate-getting-started/SKILL.md +89 -0
- package/skills/jevitate-load-test/SKILL.md +11 -2
- package/skills/jevitate-mission-scope/SKILL.md +19 -11
- package/skills/jevitate-record/SKILL.md +23 -5
- package/skills/jevitate-run-journey/SKILL.md +61 -17
- package/skills/jevitate-sources/SKILL.md +57 -14
- package/skills/jevitate-test-campaign/SKILL.md +203 -0
- package/skills/jevitate-ux-review/SKILL.md +106 -16
- package/skills/jevitate-verify-fix/SKILL.md +76 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { type PrefixFromBranchOptions, type RecordedBranch } from "./journey-prefix.js";
|
|
2
|
+
import { type TargetConfig } from "./target-config.js";
|
|
3
|
+
import { type InvariantSpec, type Recording } from "@jevitate/recording";
|
|
4
|
+
import { type FixtureFlags } from "./fixture-cli.js";
|
|
5
|
+
import { type FixtureRecord } from "./mission-fixtures.js";
|
|
6
|
+
import { type BrowserPort, type EmulationSpec } from "@jevitate/playwright";
|
|
7
|
+
import { type BrowserRunOptions } from "./browser-run-options.js";
|
|
8
|
+
import { type HangSignal, type VerifyFixResult, type VerifyFixVerdict } from "@jevitate/explore";
|
|
9
|
+
import { type DefectEvidence } from "./defect-evidence.js";
|
|
10
|
+
import { type ScreenshotsResult, type ScreenshotsSpec } from "./run-screenshots.js";
|
|
11
|
+
/**
|
|
12
|
+
* The programmatic surface behind `jevitate verify-fix` and the MCP `verify_fix` tool: loads a
|
|
13
|
+
* finished mission's persisted typed result (`<stem>.result.json`), finds the defect by
|
|
14
|
+
* fingerprint, and replays its reproduction in a FRESH browser session (`@jevitate/explore`'s
|
|
15
|
+
* `verifyFix`, which reuses the Recording interpreter). The replay is authorized against the
|
|
16
|
+
* mission's own allowlist before any browser opens.
|
|
17
|
+
*
|
|
18
|
+
* Exit codes: 0 fixed · 1 still reproduces · 2 inconclusive (the replay could not reach the
|
|
19
|
+
* defect's step, or the input was unusable) · 4 intermittent (the signal fired on some but not
|
|
20
|
+
* all fresh-context replays — #74; mirrors the mission `intermittent` hang outcome) — a broken or
|
|
21
|
+
* flaky check never reads as "fixed".
|
|
22
|
+
*/
|
|
23
|
+
export declare const VERIFY_FIX_EXIT_CODES: Readonly<Record<VerifyFixVerdict, number>>;
|
|
24
|
+
export interface RunVerifyFixOptions {
|
|
25
|
+
/** Path of the mission's `<stem>.result.json`. */
|
|
26
|
+
readonly resultPath: string;
|
|
27
|
+
/**
|
|
28
|
+
* #293: a finding a journey-anchored run found (its result's `branch`) is replayed THROUGH the same
|
|
29
|
+
* Journey prefix — every replay session replays it first, and the finding's Recording starts on
|
|
30
|
+
* the live anchor page (its leading navigate becomes an assertion). These are the prefix's secret
|
|
31
|
+
* `--param`s (never persisted) and the site-policy database / environment seams it runs under.
|
|
32
|
+
*/
|
|
33
|
+
readonly journeyPrefix?: PrefixFromBranchOptions;
|
|
34
|
+
/** The defect (or hang) fingerprint to verify. */
|
|
35
|
+
readonly fingerprint: string;
|
|
36
|
+
/** Overrides the storageState recorded with the mission (CLI `--storage-state`). */
|
|
37
|
+
readonly storageState?: string;
|
|
38
|
+
readonly browserPortFactory?: () => BrowserPort;
|
|
39
|
+
/** How Chromium is launched and shown (#245: `--headed`/`--slow-mo`/`--record-video`). Default: headless. */
|
|
40
|
+
readonly browser?: BrowserRunOptions;
|
|
41
|
+
/** Settle ceiling after the replay (ms). */
|
|
42
|
+
readonly settleCeilingMs?: number;
|
|
43
|
+
/** Per-target settle/hang configuration, keyed by origin (`~/.jevitate/targets.json`). */
|
|
44
|
+
readonly targets?: Readonly<Record<string, TargetConfig>>;
|
|
45
|
+
/** Fresh-context replays for a non-hang defect signal (#74, CLI `--replays`). Default 3. */
|
|
46
|
+
readonly replays?: number;
|
|
47
|
+
/** #303 `--action-deltas`: compare the replayed defect step's delta with the recorded one (evidence). */
|
|
48
|
+
readonly actionDeltas?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Invariant files (CLI `--invariants`, #86) to re-check a declared-invariant defect with, instead of
|
|
51
|
+
* the spec persisted with the mission. Validated against the MISSION's allowlist before any replay.
|
|
52
|
+
*/
|
|
53
|
+
readonly invariantFiles?: readonly string[];
|
|
54
|
+
/** Re-checking a `server-log` defect whose sources include a `cmd:` one needs this too (#142). */
|
|
55
|
+
readonly allowLogCmd?: boolean;
|
|
56
|
+
/** `--hang-replay-writes` (#153): a hang's replay may re-send a paid/destructive write. */
|
|
57
|
+
readonly hangReplayWrites?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Mission fixtures (#140/#144): every replay restores + re-runs the mission's own fixture (saved
|
|
60
|
+
* with its result) so it starts from the same state. `fixtures` overrides the saved spec; the
|
|
61
|
+
* mission's shell hooks are never replayed from the file — the operator re-supplies the SAME
|
|
62
|
+
* `before`/`after` (checked by hash) with `allowShellHooks`.
|
|
63
|
+
*/
|
|
64
|
+
readonly fixtureFlags?: FixtureFlags;
|
|
65
|
+
/** Values redacted from everything the fixture logs (CLI `--secret`). */
|
|
66
|
+
readonly secrets?: readonly string[];
|
|
67
|
+
/**
|
|
68
|
+
* Explicit `--viewport` / `--device` override (#149). Defaults to the finding's OWN recorded
|
|
69
|
+
* emulation (`recording.emulation`) — a 375px defect replays at 375px, not the caller's desktop
|
|
70
|
+
* default. An override that DIFFERS from the recorded emulation is refused (fails closed) unless
|
|
71
|
+
* `allowEmulationOverride` is set: replaying at the wrong device could report a false "fixed".
|
|
72
|
+
*/
|
|
73
|
+
readonly emulation?: EmulationSpec;
|
|
74
|
+
/** Replay at `emulation` even though it differs from the finding's recorded emulation. */
|
|
75
|
+
readonly allowEmulationOverride?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* #251 `--screenshots`: masked screenshots of the captioned "after" replay (one per distinct
|
|
78
|
+
* screen, or per step) + `index.md`.
|
|
79
|
+
*/
|
|
80
|
+
readonly screenshots?: ScreenshotsSpec;
|
|
81
|
+
/** #250: caption time per step in the "after" clip (ms). Default `EVIDENCE_PACE_MS`. */
|
|
82
|
+
readonly evidencePaceMs?: number;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* #250 — `verify-fix --record-video`: a before/after pair for the PR. `before` is the run's own
|
|
86
|
+
* evidence clip of the defect (`--evidence-video` on the original run), `after` a captioned replay
|
|
87
|
+
* of the same steps now (still reproducing, or passing), its final card the verdict.
|
|
88
|
+
*/
|
|
89
|
+
export interface VerifyFixEvidence {
|
|
90
|
+
readonly before?: {
|
|
91
|
+
readonly videoPath?: string;
|
|
92
|
+
readonly screenshots: string[];
|
|
93
|
+
};
|
|
94
|
+
/** Why there is no `before` (the run recorded no evidence clip for this defect). */
|
|
95
|
+
readonly beforeMissing?: string;
|
|
96
|
+
readonly after: DefectEvidence;
|
|
97
|
+
}
|
|
98
|
+
export interface VerifyFixReport extends VerifyFixResult {
|
|
99
|
+
readonly exitCode: number;
|
|
100
|
+
/** #293: the Journey step the finding branched from, when its replays went through that prefix. */
|
|
101
|
+
readonly branch?: RecordedBranch;
|
|
102
|
+
/** #293: why the replays proved nothing — `journey-stale` when the prefix no longer replays. */
|
|
103
|
+
readonly failure?: {
|
|
104
|
+
readonly kind: "journey-stale";
|
|
105
|
+
readonly message: string;
|
|
106
|
+
};
|
|
107
|
+
readonly title?: string;
|
|
108
|
+
/** The fixture every replay started from (#140/#144): the mission's identity and this run's setup/restore log. */
|
|
109
|
+
readonly fixtures?: FixtureRecord & {
|
|
110
|
+
readonly missionIdentity: string;
|
|
111
|
+
};
|
|
112
|
+
/** #245: `--record-video` files of every replay session (each closed, so finalized). */
|
|
113
|
+
readonly videoPaths?: string[];
|
|
114
|
+
/** #250: with `--record-video` (or `--screenshots`), the before/after evidence pair. */
|
|
115
|
+
readonly evidence?: VerifyFixEvidence;
|
|
116
|
+
/** #251: `--screenshots` of the captioned after-replay. */
|
|
117
|
+
readonly screenshotPaths?: string[];
|
|
118
|
+
readonly screenshotIndex?: string;
|
|
119
|
+
readonly screenshotsSkipped?: ScreenshotsResult["screenshotsSkipped"];
|
|
120
|
+
}
|
|
121
|
+
export declare class VerifyFixInputError extends Error {
|
|
122
|
+
readonly code: "E_VERIFY_FIX_INPUT";
|
|
123
|
+
constructor(message: string);
|
|
124
|
+
}
|
|
125
|
+
export interface PersistedFinding {
|
|
126
|
+
readonly fingerprint: string;
|
|
127
|
+
readonly related?: readonly string[];
|
|
128
|
+
readonly kind: string;
|
|
129
|
+
readonly title?: string;
|
|
130
|
+
readonly repro: {
|
|
131
|
+
readonly recordingStepIndex: number;
|
|
132
|
+
};
|
|
133
|
+
/** For a hang finding: its signal (what the replay must no longer show). */
|
|
134
|
+
readonly hang?: HangSignal;
|
|
135
|
+
/** The finding's own Recording (found after a reset / on a coverage path), when it has one. */
|
|
136
|
+
readonly recording?: Recording;
|
|
137
|
+
/** How many times the mission's OWN run hit this same finding (its `occurrences`), when recorded. */
|
|
138
|
+
readonly occurrences?: number;
|
|
139
|
+
/** For a declared-invariant defect (#86): the invariant id to re-check. */
|
|
140
|
+
readonly invariantId?: string;
|
|
141
|
+
/** For a `server-log` defect (#142): what to re-tail and match, from the defect's own `serverLog`. */
|
|
142
|
+
readonly serverLog?: {
|
|
143
|
+
readonly sources: readonly string[];
|
|
144
|
+
readonly matcher: string;
|
|
145
|
+
readonly normalizedMessage: string;
|
|
146
|
+
readonly drainMs: number;
|
|
147
|
+
/** #282: the run's `--log-scope`. */
|
|
148
|
+
readonly scope?: readonly string[];
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/** #147: a persisted actor — its name, role and storageState PATH (never its contents). */
|
|
152
|
+
export interface PersistedActor {
|
|
153
|
+
readonly name: string;
|
|
154
|
+
readonly storageStatePath: string;
|
|
155
|
+
readonly role: "primary" | "observer";
|
|
156
|
+
}
|
|
157
|
+
export interface PersistedMission {
|
|
158
|
+
readonly recording: Recording | null;
|
|
159
|
+
readonly target: {
|
|
160
|
+
readonly seedUrl: string;
|
|
161
|
+
readonly allowlist: string[];
|
|
162
|
+
readonly storageStatePath?: string;
|
|
163
|
+
/** #147: the mission's actors (`--actor`), when it had any. */
|
|
164
|
+
readonly actors?: readonly PersistedActor[];
|
|
165
|
+
};
|
|
166
|
+
readonly findings: PersistedFinding[];
|
|
167
|
+
/** The declared-invariant spec the mission evaluated (#86), when it had one and it still validates. */
|
|
168
|
+
readonly invariantSpec?: InvariantSpec;
|
|
169
|
+
/** The mission's fixture (#140/#144): spec (re-validated before use), hook hashes and recorded outputs. */
|
|
170
|
+
readonly fixtures?: PersistedMissionFixtures;
|
|
171
|
+
}
|
|
172
|
+
interface PersistedMissionFixtures {
|
|
173
|
+
readonly identity: string;
|
|
174
|
+
readonly spec?: unknown;
|
|
175
|
+
readonly hooks: {
|
|
176
|
+
readonly before?: string;
|
|
177
|
+
readonly after?: string;
|
|
178
|
+
};
|
|
179
|
+
readonly outputs: Readonly<Record<string, string>>;
|
|
180
|
+
/** #243: the fixture identities the mission's steps authenticated as → storageState paths. */
|
|
181
|
+
readonly identities?: Readonly<Record<string, string>>;
|
|
182
|
+
}
|
|
183
|
+
/** Parses a persisted mission result, failing closed on anything it cannot trust. */
|
|
184
|
+
export declare function parsePersistedMission(raw: unknown): PersistedMission;
|
|
185
|
+
/**
|
|
186
|
+
* The one place a mission's findings (declared-invariant defects, hangs, adversarial defects) are
|
|
187
|
+
* looked up by fingerprint — a fingerprint the CALLER supplied may equal the finding's own, or one
|
|
188
|
+
* of its `related` fingerprints (the same underlying defect observed at a different point). Shared
|
|
189
|
+
* by `verify-fix` and `regression capture` (#119/#129): the latter reuses this lookup rather than
|
|
190
|
+
* re-implementing "is this fingerprint a defect this mission found" itself.
|
|
191
|
+
*/
|
|
192
|
+
export declare function findFinding(mission: PersistedMission, fingerprint: string): PersistedFinding | undefined;
|
|
193
|
+
export declare function runVerifyFix(opts: RunVerifyFixOptions): Promise<VerifyFixReport>;
|
|
194
|
+
export {};
|