@jevitate/cli 0.6.0 → 0.8.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 +3 -1
- package/dist/ai-cli.js +60 -16
- package/dist/ai-cli.js.map +1 -1
- package/dist/approval-provenance.d.ts +120 -0
- package/dist/approval-provenance.js +300 -0
- package/dist/approval-provenance.js.map +1 -0
- package/dist/author-journey-cli.js +11 -18
- package/dist/author-journey-cli.js.map +1 -1
- package/dist/bin.js +29012 -20685
- package/dist/build-info.generated.js +2 -2
- package/dist/builtin-analyzers.d.ts +7 -0
- package/dist/builtin-analyzers.js +19 -0
- package/dist/builtin-analyzers.js.map +1 -0
- package/dist/campaign-cli.d.ts +6 -0
- package/dist/campaign-cli.js +9 -4
- package/dist/campaign-cli.js.map +1 -1
- package/dist/catalog-analysis.d.ts +70 -0
- package/dist/catalog-analysis.js +507 -0
- package/dist/catalog-analysis.js.map +1 -0
- package/dist/catalog-api.d.ts +73 -0
- package/dist/catalog-api.js +97 -0
- package/dist/catalog-api.js.map +1 -0
- package/dist/catalog-cli.d.ts +12 -0
- package/dist/catalog-cli.js +224 -0
- package/dist/catalog-cli.js.map +1 -0
- package/dist/catalog-review.d.ts +29 -0
- package/dist/catalog-review.js +290 -0
- package/dist/catalog-review.js.map +1 -0
- package/dist/catalog.d.ts +133 -0
- package/dist/catalog.js +352 -0
- package/dist/catalog.js.map +1 -0
- package/dist/check-api.js +24 -2
- package/dist/check-api.js.map +1 -1
- package/dist/check-cli.d.ts +3 -0
- package/dist/check-cli.js +18 -4
- package/dist/check-cli.js.map +1 -1
- package/dist/check-execute.js +25 -9
- package/dist/check-execute.js.map +1 -1
- package/dist/check-plan.js +4 -1
- package/dist/check-plan.js.map +1 -1
- package/dist/check-suite.js +6 -3
- package/dist/check-suite.js.map +1 -1
- package/dist/check-types.d.ts +12 -1
- package/dist/check-types.js.map +1 -1
- package/dist/cli-output.js +86 -4
- package/dist/cli-output.js.map +1 -1
- package/dist/cli-shared.d.ts +22 -2
- package/dist/cli-shared.js +34 -5
- package/dist/cli-shared.js.map +1 -1
- package/dist/demo-aspect-api.d.ts +21 -5
- package/dist/demo-aspect-api.js +30 -1
- package/dist/demo-aspect-api.js.map +1 -1
- package/dist/demo-aspect-cli.js +64 -5
- package/dist/demo-aspect-cli.js.map +1 -1
- package/dist/environments.js +6 -1
- package/dist/environments.js.map +1 -1
- package/dist/exit-codes.js +4 -0
- package/dist/exit-codes.js.map +1 -1
- package/dist/explore-adversarial.d.ts +3 -1
- package/dist/explore-adversarial.js +3 -3
- package/dist/explore-adversarial.js.map +1 -1
- package/dist/explore-author.js +5 -2
- package/dist/explore-author.js.map +1 -1
- package/dist/explore-cli.js +162 -13
- package/dist/explore-cli.js.map +1 -1
- package/dist/explore-coverage.d.ts +6 -2
- package/dist/explore-coverage.js +5 -4
- package/dist/explore-coverage.js.map +1 -1
- package/dist/explore-feature.d.ts +3 -1
- package/dist/explore-feature.js +2 -2
- package/dist/explore-feature.js.map +1 -1
- package/dist/explore-goal.d.ts +37 -6
- package/dist/explore-goal.js +70 -52
- package/dist/explore-goal.js.map +1 -1
- package/dist/explore-shared.d.ts +12 -7
- package/dist/explore-shared.js +9 -1
- package/dist/explore-shared.js.map +1 -1
- package/dist/goal-run-flags.d.ts +2 -0
- package/dist/goal-run-flags.js +8 -1
- package/dist/goal-run-flags.js.map +1 -1
- package/dist/http-5xx-outcome.d.ts +8 -3
- package/dist/http-5xx-outcome.js +5 -15
- package/dist/http-5xx-outcome.js.map +1 -1
- package/dist/init-cli.d.ts +7 -0
- package/dist/init-cli.js +79 -9
- package/dist/init-cli.js.map +1 -1
- package/dist/init-codeowners.d.ts +39 -0
- package/dist/init-codeowners.js +91 -0
- package/dist/init-codeowners.js.map +1 -0
- package/dist/init-keys.d.ts +3 -1
- package/dist/init-keys.js +20 -8
- package/dist/init-keys.js.map +1 -1
- package/dist/init-skills.d.ts +85 -7
- package/dist/init-skills.js +303 -36
- package/dist/init-skills.js.map +1 -1
- package/dist/jev-advisor.d.ts +72 -0
- package/dist/jev-advisor.js +172 -0
- package/dist/jev-advisor.js.map +1 -0
- package/dist/journey-api.d.ts +104 -5
- package/dist/journey-api.js +165 -23
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.d.ts +1 -1
- package/dist/journey-cli.js +320 -13
- package/dist/journey-cli.js.map +1 -1
- package/dist/journey-demo-api.d.ts +7 -1
- package/dist/journey-demo-api.js +8 -3
- package/dist/journey-demo-api.js.map +1 -1
- package/dist/journey-demo-cli.js +3 -0
- package/dist/journey-demo-cli.js.map +1 -1
- package/dist/journey-lint-sarif.d.ts +19 -0
- package/dist/journey-lint-sarif.js +48 -0
- package/dist/journey-lint-sarif.js.map +1 -0
- package/dist/journey-network-checks.d.ts +45 -9
- package/dist/journey-network-checks.js +117 -30
- package/dist/journey-network-checks.js.map +1 -1
- package/dist/journey-prefix.d.ts +24 -15
- package/dist/journey-prefix.js +53 -7
- package/dist/journey-prefix.js.map +1 -1
- package/dist/journey-review-api.d.ts +19 -0
- package/dist/journey-review-api.js +46 -0
- package/dist/journey-review-api.js.map +1 -0
- package/dist/journey-review-store.d.ts +16 -0
- package/dist/journey-review-store.js +95 -0
- package/dist/journey-review-store.js.map +1 -0
- package/dist/journey-review.d.ts +47 -0
- package/dist/journey-review.js +499 -0
- package/dist/journey-review.js.map +1 -0
- package/dist/journey-verify.d.ts +61 -0
- package/dist/journey-verify.js +144 -0
- package/dist/journey-verify.js.map +1 -0
- package/dist/key-report.d.ts +20 -5
- package/dist/key-report.js +32 -9
- package/dist/key-report.js.map +1 -1
- package/dist/kill-signal.js +10 -2
- package/dist/kill-signal.js.map +1 -1
- package/dist/load-api.js +9 -3
- package/dist/load-api.js.map +1 -1
- package/dist/load-cli.js +4 -2
- package/dist/load-cli.js.map +1 -1
- package/dist/log-classes.d.ts +73 -0
- package/dist/log-classes.js +167 -0
- package/dist/log-classes.js.map +1 -0
- package/dist/log-correlation.d.ts +29 -10
- package/dist/log-correlation.js +44 -21
- package/dist/log-correlation.js.map +1 -1
- package/dist/login-cli.d.ts +15 -0
- package/dist/login-cli.js +116 -0
- package/dist/login-cli.js.map +1 -0
- package/dist/logs-cli.js +3 -1
- package/dist/logs-cli.js.map +1 -1
- package/dist/mcp-api.d.ts +1 -0
- package/dist/mcp-api.js +61 -12
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-cli-runner.d.ts +2 -0
- package/dist/mcp-cli-runner.js +3 -1
- package/dist/mcp-cli-runner.js.map +1 -1
- package/dist/mcp-cli-tools.d.ts +6 -0
- package/dist/mcp-cli-tools.js +182 -23
- package/dist/mcp-cli-tools.js.map +1 -1
- package/dist/mission-cli.js +8 -4
- package/dist/mission-cli.js.map +1 -1
- package/dist/mission-journal.d.ts +4 -1
- package/dist/mission-journal.js +9 -3
- package/dist/mission-journal.js.map +1 -1
- package/dist/mission-queue-cli.js +21 -2
- package/dist/mission-queue-cli.js.map +1 -1
- package/dist/mission-queue-runner.d.ts +6 -0
- package/dist/mission-queue-runner.js +33 -3
- package/dist/mission-queue-runner.js.map +1 -1
- package/dist/multi-run-cli.d.ts +7 -1
- package/dist/multi-run-cli.js +10 -3
- package/dist/multi-run-cli.js.map +1 -1
- package/dist/multi-run.d.ts +38 -3
- package/dist/multi-run.js +115 -23
- package/dist/multi-run.js.map +1 -1
- package/dist/persona-login.d.ts +199 -0
- package/dist/persona-login.js +574 -0
- package/dist/persona-login.js.map +1 -0
- package/dist/pre-approval.d.ts +98 -0
- package/dist/pre-approval.js +175 -0
- package/dist/pre-approval.js.map +1 -0
- package/dist/program.js +10 -0
- package/dist/program.js.map +1 -1
- package/dist/project-dir.d.ts +2 -1
- package/dist/project-dir.js +3 -1
- package/dist/project-dir.js.map +1 -1
- package/dist/promotions.d.ts +15 -0
- package/dist/promotions.js +52 -0
- package/dist/promotions.js.map +1 -0
- package/dist/readiness.d.ts +29 -0
- package/dist/readiness.js +291 -0
- package/dist/readiness.js.map +1 -0
- package/dist/regression-cli.js +4 -2
- package/dist/regression-cli.js.map +1 -1
- package/dist/report-api.d.ts +24 -2
- package/dist/report-api.js +33 -5
- package/dist/report-api.js.map +1 -1
- package/dist/report-cli.js +8 -1
- package/dist/report-cli.js.map +1 -1
- package/dist/result-schema.d.ts +12 -0
- package/dist/result-schema.js +8 -0
- package/dist/result-schema.js.map +1 -1
- package/dist/run-index.d.ts +4 -2
- package/dist/run-index.js +3 -1
- package/dist/run-index.js.map +1 -1
- package/dist/run-key-preflight.d.ts +2 -1
- package/dist/run-key-preflight.js +3 -2
- package/dist/run-key-preflight.js.map +1 -1
- package/dist/run-metadata.d.ts +26 -0
- package/dist/run-metadata.js +41 -0
- package/dist/run-metadata.js.map +1 -0
- package/dist/run-tags-cli.d.ts +12 -0
- package/dist/run-tags-cli.js +35 -0
- package/dist/run-tags-cli.js.map +1 -0
- package/dist/self-heal-adapter.js +3 -1
- package/dist/self-heal-adapter.js.map +1 -1
- package/dist/site-cli.d.ts +1 -1
- package/dist/site-cli.js +24 -1
- package/dist/site-cli.js.map +1 -1
- package/dist/source-cli.js +4 -2
- package/dist/source-cli.js.map +1 -1
- package/dist/source-run-api.js +17 -7
- package/dist/source-run-api.js.map +1 -1
- package/dist/suite-explore-options.d.ts +14 -0
- package/dist/suite-explore-options.js +7 -0
- package/dist/suite-explore-options.js.map +1 -1
- package/dist/sweep-api.d.ts +266 -0
- package/dist/sweep-api.js +828 -0
- package/dist/sweep-api.js.map +1 -0
- package/dist/sweep-cli.d.ts +9 -0
- package/dist/sweep-cli.js +115 -0
- package/dist/sweep-cli.js.map +1 -0
- package/dist/target-config.d.ts +5 -2
- package/dist/target-config.js +15 -0
- package/dist/target-config.js.map +1 -1
- package/dist/usability-capture.js +6 -0
- package/dist/usability-capture.js.map +1 -1
- package/dist/ux-cli.js +3 -1
- package/dist/ux-cli.js.map +1 -1
- package/dist/ux-usability.d.ts +9 -3
- package/dist/ux-usability.js +6 -4
- package/dist/ux-usability.js.map +1 -1
- package/dist/verify-fix-cli.js +4 -2
- package/dist/verify-fix-cli.js.map +1 -1
- package/package.json +13 -13
- package/skills/jevitate-demo/SKILL.md +5 -2
- package/skills/jevitate-explore/SKILL.md +6 -2
- package/skills/jevitate-getting-started/SKILL.md +12 -0
- package/skills/jevitate-run-journey/SKILL.md +17 -4
- package/skills/jevitate-test-campaign/SKILL.md +26 -5
package/dist/journey-prefix.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { redactCredentialShapes, redactText, redactUrl } from "@jevitate/ai-core";
|
|
2
|
+
import { clock } from "@jevitate/domain";
|
|
1
3
|
import { FsJourneyStore, JourneyRegistry, JourneyStepError, deriveParamSchema, journeyBranchPoint, journeyPrefix, prefixLandingPath, resolveJourneyStep, secretParamNames, secretParamValues, validateParams, } from "@jevitate/journey";
|
|
2
4
|
import { resolve as resolvePath } from "node:path";
|
|
3
5
|
import { UnauthorizedExploreTargetError, assertAuthorizedExploreTarget } from "@jevitate/explore";
|
|
@@ -20,6 +22,44 @@ import { withSiteGate } from "./site-gate-cli.js";
|
|
|
20
22
|
* unknown or unpromoted Journey, a step or anchor it does not have, params that do not fit, a
|
|
21
23
|
* Journey that needs a session the run was not given.
|
|
22
24
|
*/
|
|
25
|
+
/** #398: how long reading a page's stale evidence may take before it is skipped (the page may be hung). */
|
|
26
|
+
const PAGE_EVIDENCE_TIMEOUT_MS = 2_000;
|
|
27
|
+
/** #398: visible text kept in the stale evidence (redacted first, then cut, so a cut never splits a secret). */
|
|
28
|
+
const PAGE_EVIDENCE_TEXT_MAX = 600;
|
|
29
|
+
/** A promise's value, or `undefined` when `ms` (on the clock) passes first — never throws, never uses a global timer. */
|
|
30
|
+
async function bounded(p, ms) {
|
|
31
|
+
let timer;
|
|
32
|
+
try {
|
|
33
|
+
return await Promise.race([p, new Promise((r) => (timer = clock.setTimeout(() => r(undefined), Math.max(1, ms))))]);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
if (timer !== undefined)
|
|
40
|
+
clock.clearTimeout(timer);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* #398: what the page showed when the prefix went stale — URL, title and a short visible-text
|
|
45
|
+
* excerpt, all redacted. Best effort by contract: any failure (a closed page, a navigation, a hung
|
|
46
|
+
* evaluate) yields no evidence, so it can never mask the stale error with a different one.
|
|
47
|
+
*/
|
|
48
|
+
async function stalePageEvidence(page, secrets) {
|
|
49
|
+
try {
|
|
50
|
+
const url = page.url();
|
|
51
|
+
const title = await bounded(page.title(), PAGE_EVIDENCE_TIMEOUT_MS);
|
|
52
|
+
const raw = await bounded(page.evaluate(() => document.body?.innerText ?? ""), PAGE_EVIDENCE_TIMEOUT_MS);
|
|
53
|
+
if (title === undefined || raw === undefined)
|
|
54
|
+
return undefined;
|
|
55
|
+
// Persisted in the result: the run's secrets AND any credential-shaped string the page shows (#298).
|
|
56
|
+
const text = redactCredentialShapes(redactText(raw.replace(/\s+/g, " ").trim(), secrets)).slice(0, PAGE_EVIDENCE_TEXT_MAX);
|
|
57
|
+
return { url: redactText(redactUrl(url), secrets), title: redactText(title, secrets), text };
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
23
63
|
/** The strategies a mission can branch off a Journey with (`--feature` and multi-runs are refused). */
|
|
24
64
|
export { ANCHORED_STRATEGIES } from "@jevitate/journey";
|
|
25
65
|
/** `--from-journey`/`--at-step` cannot be used as given (exit 64, nothing ran). */
|
|
@@ -37,13 +77,17 @@ export class JourneyPrefixArgsError extends Error {
|
|
|
37
77
|
export class JourneyPrefixStaleError extends Error {
|
|
38
78
|
branch;
|
|
39
79
|
failedStep;
|
|
80
|
+
page;
|
|
40
81
|
code = "E_JOURNEY_STALE";
|
|
41
82
|
constructor(message, branch,
|
|
42
83
|
/** The 1-based Journey step that failed, when the replay names it. */
|
|
43
|
-
failedStep
|
|
84
|
+
failedStep,
|
|
85
|
+
/** #398: what the page showed when the prefix went stale (redacted); absent when it could not be read. */
|
|
86
|
+
page) {
|
|
44
87
|
super(message);
|
|
45
88
|
this.branch = branch;
|
|
46
89
|
this.failedStep = failedStep;
|
|
90
|
+
this.page = page;
|
|
47
91
|
this.name = "JourneyPrefixStaleError";
|
|
48
92
|
}
|
|
49
93
|
}
|
|
@@ -88,11 +132,12 @@ export async function resolveJourneyPrefix(opts) {
|
|
|
88
132
|
const allowedOrigins = opts.environment === undefined ? [new URL(site).origin] : [...opts.environment.allowedOrigins];
|
|
89
133
|
const where = `step ${branch.step}${branch.anchor === undefined ? "" : ` (anchor ${branch.anchor})`}`;
|
|
90
134
|
const secretNames = secretParamNames(full, used).filter((n) => n in used);
|
|
135
|
+
const secretValues = secretParamValues(full, used);
|
|
91
136
|
return {
|
|
92
137
|
branch,
|
|
93
138
|
startUrl,
|
|
94
139
|
allowedOrigins,
|
|
95
|
-
secrets:
|
|
140
|
+
secrets: secretValues,
|
|
96
141
|
steps: resolved.step,
|
|
97
142
|
replayInfo: {
|
|
98
143
|
journeysDir: resolvePath(opts.dir),
|
|
@@ -122,12 +167,13 @@ export async function resolveJourneyPrefix(opts) {
|
|
|
122
167
|
if (err instanceof SiteGateRefusedError)
|
|
123
168
|
throw err;
|
|
124
169
|
const message = err instanceof Error ? (err.message.split("\n")[0] ?? err.message) : String(err);
|
|
125
|
-
throw new JourneyPrefixStaleError(`journey '${opts.id}' did not replay to ${where}: ${message}`, branch);
|
|
170
|
+
throw new JourneyPrefixStaleError(`journey '${opts.id}' did not replay to ${where}: ${message}`, branch, undefined, await stalePageEvidence(session.page, secretValues));
|
|
126
171
|
}
|
|
127
172
|
if (run.outcome !== "ok") {
|
|
128
173
|
const failed = run.outcome === "quarantined" && run.at !== undefined ? run.at + 1 : undefined;
|
|
174
|
+
// #398: the runner's reason names the failed step 1-based, like `--at-step` and `failedStep`.
|
|
129
175
|
const reason = run.outcome === "quarantined" ? run.reason : "the replay healed a step (a self-healed prefix is never a branch point)";
|
|
130
|
-
throw new JourneyPrefixStaleError(`journey '${opts.id}' is stale: it no longer reaches ${where} — ${reason}`, branch, failed);
|
|
176
|
+
throw new JourneyPrefixStaleError(`journey '${opts.id}' is stale: it no longer reaches ${where} — ${reason}`, branch, failed, await stalePageEvidence(session.page, secretValues));
|
|
131
177
|
}
|
|
132
178
|
return session.page.url();
|
|
133
179
|
},
|
|
@@ -158,11 +204,11 @@ export function prefixRestart(prefix, allowlist, browser) {
|
|
|
158
204
|
*/
|
|
159
205
|
export async function startFromJourney(prefix, session, url, allowlist, browser) {
|
|
160
206
|
if (prefix === undefined)
|
|
161
|
-
return { url };
|
|
207
|
+
return { url, persistUrl: url };
|
|
162
208
|
const live = await prefix.replay(session, browser);
|
|
163
209
|
assertAuthorizedExploreTarget(live, allowlist);
|
|
164
210
|
const restart = { restartAtStart: prefixRestart(prefix, allowlist, browser), restartCost: prefix.steps };
|
|
165
|
-
return { url: live, branch: { ...prefix.branch, replay: prefix.replayInfo }, restart };
|
|
211
|
+
return { url: live, persistUrl: redactText(redactUrl(live), prefix.secrets), branch: { ...prefix.branch, replay: prefix.replayInfo }, restart };
|
|
166
212
|
}
|
|
167
213
|
/** The result fields an anchored run adds (#293, additive): its branch point (and how to replay it). */
|
|
168
214
|
export function branchFields(start) {
|
|
@@ -174,7 +220,7 @@ export function journeyStaleResult(err, strategy) {
|
|
|
174
220
|
outcome: "inconclusive",
|
|
175
221
|
missionOutcome: "inconclusive",
|
|
176
222
|
reason: err.message,
|
|
177
|
-
failure: { kind: "journey-stale", message: err.message },
|
|
223
|
+
failure: { kind: "journey-stale", message: err.message, ...(err.page === undefined ? {} : { page: err.page }) },
|
|
178
224
|
branch: err.branch,
|
|
179
225
|
...(err.failedStep === undefined ? {} : { failedStep: err.failedStep }),
|
|
180
226
|
exitCode: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-prefix.js","sourceRoot":"","sources":["../src/journey-prefix.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"journey-prefix.js","sourceRoot":"","sources":["../src/journey-prefix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Journey, type JourneyReview } from "@jevitate/journey";
|
|
2
|
+
import { type ApprovalAction } from "./pre-approval.js";
|
|
3
|
+
import { type JevSetup } from "./jev-advisor.js";
|
|
4
|
+
/**
|
|
5
|
+
* #432: loads one Journey and everything its review sheet needs — the targets.json safety config of
|
|
6
|
+
* its site's origin, its approved snapshot, its last mutation-proof verdict — and builds the sheet.
|
|
7
|
+
* An unknown id is `UnknownJourneyError`, exactly as `journey promote` refuses one. #433: also its
|
|
8
|
+
* catalog links and the pre-approval findings (`catalogDir`: default the project's `.jevitate/`).
|
|
9
|
+
*/
|
|
10
|
+
export declare function reviewJourneyById(journeysDir: string, id: string, opts?: {
|
|
11
|
+
readonly targetsFile?: string;
|
|
12
|
+
readonly catalogDir?: string | null;
|
|
13
|
+
readonly readiness?: boolean;
|
|
14
|
+
readonly jev?: JevSetup;
|
|
15
|
+
readonly action?: ApprovalAction;
|
|
16
|
+
}): Promise<{
|
|
17
|
+
journey: Journey;
|
|
18
|
+
review: JourneyReview;
|
|
19
|
+
}>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { FsJourneyStore, JourneyReviewSchema } from "@jevitate/journey";
|
|
2
|
+
import { buildJourneyReview } from "./journey-review.js";
|
|
3
|
+
import { readApprovedSnapshot, readVerifyRecord } from "./journey-review-store.js";
|
|
4
|
+
import { UnknownJourneyError } from "./journey-api.js";
|
|
5
|
+
import { loadCatalog, resolveCatalogDir } from "./catalog-api.js";
|
|
6
|
+
import { catalogJourney, journeyLinks } from "./catalog.js";
|
|
7
|
+
import { preApprovalFindings } from "./pre-approval.js";
|
|
8
|
+
import { jevLayerOf } from "./jev-advisor.js";
|
|
9
|
+
import { loadTargetsFile, resolveTargetConfig } from "./target-config.js";
|
|
10
|
+
/**
|
|
11
|
+
* #432: loads one Journey and everything its review sheet needs — the targets.json safety config of
|
|
12
|
+
* its site's origin, its approved snapshot, its last mutation-proof verdict — and builds the sheet.
|
|
13
|
+
* An unknown id is `UnknownJourneyError`, exactly as `journey promote` refuses one. #433: also its
|
|
14
|
+
* catalog links and the pre-approval findings (`catalogDir`: default the project's `.jevitate/`).
|
|
15
|
+
*/
|
|
16
|
+
export async function reviewJourneyById(journeysDir, id, opts = {}) {
|
|
17
|
+
const journey = await new FsJourneyStore(journeysDir).get(id);
|
|
18
|
+
if (journey === null)
|
|
19
|
+
throw new UnknownJourneyError(`unknown journey '${id}'`);
|
|
20
|
+
let origin = null;
|
|
21
|
+
try {
|
|
22
|
+
origin = new URL(journey.recording.site).origin;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
origin = null;
|
|
26
|
+
}
|
|
27
|
+
const safety = origin === null ? undefined : resolveTargetConfig(loadTargetsFile(opts.targetsFile), origin).safety;
|
|
28
|
+
// #433: the catalog links and the shared pre-approval findings, as `journey promote` gates on them.
|
|
29
|
+
const catalog = await loadCatalog(opts.catalogDir === undefined ? resolveCatalogDir(undefined) : opts.catalogDir, journeysDir);
|
|
30
|
+
const links = journeyLinks(catalog, catalogJourney(journey));
|
|
31
|
+
const findings = await preApprovalFindings({ kind: "journey", id: journey.metadata.id }, catalog, {
|
|
32
|
+
action: opts.action ?? "review",
|
|
33
|
+
journey,
|
|
34
|
+
...(opts.readiness === true ? { readiness: true } : {}),
|
|
35
|
+
...(opts.jev === undefined ? {} : { jev: opts.jev }),
|
|
36
|
+
});
|
|
37
|
+
const review = buildJourneyReview(journey, {
|
|
38
|
+
...(safety === undefined ? {} : { safety }),
|
|
39
|
+
catalog: { links, findings },
|
|
40
|
+
approvedSnapshot: await readApprovedSnapshot(journeysDir, id),
|
|
41
|
+
lastVerify: await readVerifyRecord(journeysDir, id),
|
|
42
|
+
});
|
|
43
|
+
// Fail closed: what is emitted always matches the published schema.
|
|
44
|
+
return { journey, review: JourneyReviewSchema.parse(opts.jev === undefined ? review : { ...review, jev: jevLayerOf(opts.jev) }) };
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=journey-review-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey-review-api.js","sourceRoot":"","sources":["../src/journey-review-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Journey } from "@jevitate/journey";
|
|
2
|
+
import type { JourneyVerifyRecord } from "./journey-review.js";
|
|
3
|
+
export declare function approvedSnapshotPath(journeysDir: string, id: string): string;
|
|
4
|
+
export declare function verifyRecordPath(journeysDir: string, id: string): string;
|
|
5
|
+
/** A sidecar that exists but cannot be read as what it should be — refused, never silently ignored. */
|
|
6
|
+
export declare class ReviewSidecarError extends Error {
|
|
7
|
+
readonly code = "E_JOURNEY_REVIEW";
|
|
8
|
+
}
|
|
9
|
+
/** #432: keeps the Journey as approved — the next review's "change since last approval" diffs against it. */
|
|
10
|
+
export declare function writeApprovedSnapshot(journeysDir: string, journey: Journey): Promise<void>;
|
|
11
|
+
/** #432: the Journey as last approved, or null when none was kept. */
|
|
12
|
+
export declare function readApprovedSnapshot(journeysDir: string, id: string): Promise<Journey | null>;
|
|
13
|
+
/** #432: records the last mutation-proof verdict beside the Journey. */
|
|
14
|
+
export declare function writeVerifyRecord(journeysDir: string, record: JourneyVerifyRecord): Promise<void>;
|
|
15
|
+
/** #432: the last recorded mutation-proof verdict, or null when `journey verify --mutate` never ran. */
|
|
16
|
+
export declare function readVerifyRecord(journeysDir: string, id: string): Promise<JourneyVerifyRecord | null>;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { JourneySchema } from "@jevitate/journey";
|
|
4
|
+
/**
|
|
5
|
+
* #432 — the review sheet's sidecars beside a journeys directory (dot-folders: never listed as a
|
|
6
|
+
* Journey, never discovered as a namespace):
|
|
7
|
+
* - `.approved/<id>.json` — the Journey exactly as last approved (`journey promote`, `demo approve`),
|
|
8
|
+
* what "change since last approval" diffs against;
|
|
9
|
+
* - `.verify/<id>.json` — the last `journey verify --mutate` verdict, bound to the review hash.
|
|
10
|
+
* `<ns>/<id>` for a shared Journey. Neither ever holds a secret value: a Journey never carries one.
|
|
11
|
+
*/
|
|
12
|
+
function sidecarPath(journeysDir, folder, id) {
|
|
13
|
+
const parts = id.split("/");
|
|
14
|
+
return join(journeysDir, folder, ...parts.slice(0, -1), `${parts[parts.length - 1] ?? id}.json`);
|
|
15
|
+
}
|
|
16
|
+
export function approvedSnapshotPath(journeysDir, id) {
|
|
17
|
+
return sidecarPath(journeysDir, ".approved", id);
|
|
18
|
+
}
|
|
19
|
+
export function verifyRecordPath(journeysDir, id) {
|
|
20
|
+
return sidecarPath(journeysDir, ".verify", id);
|
|
21
|
+
}
|
|
22
|
+
/** A sidecar that exists but cannot be read as what it should be — refused, never silently ignored. */
|
|
23
|
+
export class ReviewSidecarError extends Error {
|
|
24
|
+
code = "E_JOURNEY_REVIEW";
|
|
25
|
+
}
|
|
26
|
+
async function readJson(path) {
|
|
27
|
+
let raw;
|
|
28
|
+
try {
|
|
29
|
+
raw = await readFile(path, "utf8");
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
if (typeof err === "object" && err !== null && "code" in err && err.code === "ENOENT")
|
|
33
|
+
return null;
|
|
34
|
+
throw err;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
return JSON.parse(raw);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
throw new ReviewSidecarError(`${path} is not valid JSON`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function writeJson(path, value) {
|
|
44
|
+
await mkdir(dirname(path), { recursive: true, mode: 0o700 });
|
|
45
|
+
await writeFile(path, `${JSON.stringify(value, null, 2)}\n`, { mode: 0o600 });
|
|
46
|
+
}
|
|
47
|
+
/** The file's own (plain) id, as `FsJourneyStore` writes a namespaced Journey. */
|
|
48
|
+
function baseId(id) {
|
|
49
|
+
const parts = id.split("/");
|
|
50
|
+
return parts[parts.length - 1] ?? id;
|
|
51
|
+
}
|
|
52
|
+
/** #432: keeps the Journey as approved — the next review's "change since last approval" diffs against it. */
|
|
53
|
+
export async function writeApprovedSnapshot(journeysDir, journey) {
|
|
54
|
+
const id = journey.metadata.id;
|
|
55
|
+
await writeJson(approvedSnapshotPath(journeysDir, id), JourneySchema.parse({ ...journey, metadata: { ...journey.metadata, id: baseId(id) } }));
|
|
56
|
+
}
|
|
57
|
+
/** #432: the Journey as last approved, or null when none was kept. */
|
|
58
|
+
export async function readApprovedSnapshot(journeysDir, id) {
|
|
59
|
+
const path = approvedSnapshotPath(journeysDir, id);
|
|
60
|
+
const raw = await readJson(path);
|
|
61
|
+
if (raw === null)
|
|
62
|
+
return null;
|
|
63
|
+
const parsed = JourneySchema.safeParse(raw);
|
|
64
|
+
if (!parsed.success)
|
|
65
|
+
throw new ReviewSidecarError(`${path} is not a valid Journey snapshot`);
|
|
66
|
+
return { ...parsed.data, metadata: { ...parsed.data.metadata, id } };
|
|
67
|
+
}
|
|
68
|
+
/** #432: records the last mutation-proof verdict beside the Journey. */
|
|
69
|
+
export async function writeVerifyRecord(journeysDir, record) {
|
|
70
|
+
await writeJson(verifyRecordPath(journeysDir, record.journeyId), record);
|
|
71
|
+
}
|
|
72
|
+
function isVerifyRecord(v) {
|
|
73
|
+
if (v === null || typeof v !== "object")
|
|
74
|
+
return false;
|
|
75
|
+
const o = v;
|
|
76
|
+
return (typeof o.journeyId === "string" &&
|
|
77
|
+
typeof o.contentHash === "string" &&
|
|
78
|
+
typeof o.verdict === "string" &&
|
|
79
|
+
typeof o.at === "string" &&
|
|
80
|
+
(o.reason === undefined || typeof o.reason === "string") &&
|
|
81
|
+
o.summary !== null &&
|
|
82
|
+
typeof o.summary === "object" &&
|
|
83
|
+
Object.values(o.summary).every((n) => typeof n === "number"));
|
|
84
|
+
}
|
|
85
|
+
/** #432: the last recorded mutation-proof verdict, or null when `journey verify --mutate` never ran. */
|
|
86
|
+
export async function readVerifyRecord(journeysDir, id) {
|
|
87
|
+
const path = verifyRecordPath(journeysDir, id);
|
|
88
|
+
const raw = await readJson(path);
|
|
89
|
+
if (raw === null)
|
|
90
|
+
return null;
|
|
91
|
+
if (!isVerifyRecord(raw))
|
|
92
|
+
throw new ReviewSidecarError(`${path} is not a valid verify record`);
|
|
93
|
+
return raw;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=journey-review-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey-review-store.js","sourceRoot":"","sources":["../src/journey-review-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Journey, type JourneyReview, type JourneyCatalogLinks, type Finding } from "@jevitate/journey";
|
|
2
|
+
import { type SafetyConfig } from "@jevitate/explore";
|
|
3
|
+
/**
|
|
4
|
+
* #432: the content hash a review sheet shows and an approval binds to — `contentHash` (the same
|
|
5
|
+
* function annotation drafts are bound with) of the Journey WITHOUT its approval bookkeeping
|
|
6
|
+
* (`promoted`, `approval`, `acceptedWeak`), so promoting does not itself change what was approved.
|
|
7
|
+
*/
|
|
8
|
+
export declare function journeyReviewHash(journey: Journey): string;
|
|
9
|
+
/** #432: the last `journey verify --mutate` verdict, as recorded beside the Journey. */
|
|
10
|
+
export interface JourneyVerifyRecord {
|
|
11
|
+
readonly journeyId: string;
|
|
12
|
+
/** `journeyReviewHash` of the Journey the proof ran on. */
|
|
13
|
+
readonly contentHash: string;
|
|
14
|
+
readonly verdict: string;
|
|
15
|
+
readonly reason?: string;
|
|
16
|
+
readonly summary: Readonly<Record<string, number>>;
|
|
17
|
+
readonly at: string;
|
|
18
|
+
}
|
|
19
|
+
export interface JourneyReviewContext {
|
|
20
|
+
/** The site's safety config (targets.json `safety` for the Journey's origin): `deny` / `paid` / `allowControl`. */
|
|
21
|
+
readonly safety?: Pick<SafetyConfig, "deny" | "paid" | "allowControl">;
|
|
22
|
+
/** The Journey as last approved (`.approved/<id>.json`), or null when there is none. */
|
|
23
|
+
readonly approvedSnapshot?: Journey | null;
|
|
24
|
+
/** The last recorded mutation-proof verdict, or null when there is none. */
|
|
25
|
+
readonly lastVerify?: JourneyVerifyRecord | null;
|
|
26
|
+
/** #433: the Journey's catalog links and its pre-approval findings (the CLI loads the catalog). */
|
|
27
|
+
readonly catalog?: {
|
|
28
|
+
readonly links: JourneyCatalogLinks;
|
|
29
|
+
readonly findings: readonly Finding[];
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** #432: the review sheet of one Journey — pure. */
|
|
33
|
+
export declare function buildJourneyReview(journey: Journey, ctx?: JourneyReviewContext): JourneyReview;
|
|
34
|
+
/** #432: the review sheet as Markdown (`journey review --markdown`). */
|
|
35
|
+
export declare function renderReviewMarkdown(review: JourneyReview): string;
|
|
36
|
+
/** #432: the review sheet as plain text (`journey review`, and `journey promote` in human mode). */
|
|
37
|
+
export declare function renderReviewText(review: JourneyReview): string;
|
|
38
|
+
/** #432: a review sheet file's content hash refused (none, or two different ones). */
|
|
39
|
+
export declare class ReviewSheetError extends Error {
|
|
40
|
+
readonly code = "E_JOURNEY_REVIEW_ARGS";
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* #432: the content hash a review sheet file names — the `contentHash` of a JSON sheet
|
|
44
|
+
* (`journey review --json --out`, its envelope or the bare sheet), or the `Content hash:` line of a
|
|
45
|
+
* Markdown / text one. A sheet naming no hash, or two different ones, is refused.
|
|
46
|
+
*/
|
|
47
|
+
export declare function reviewSheetHash(text: string): string;
|