@jevitate/cli 0.16.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.md +55 -5
  2. package/dist/author-journey-cli.js +11 -8
  3. package/dist/author-journey-cli.js.map +1 -1
  4. package/dist/bin.js +3126 -1078
  5. package/dist/build-info.generated.js +3 -3
  6. package/dist/catalog-api.d.ts +22 -0
  7. package/dist/catalog-api.js +49 -0
  8. package/dist/catalog-api.js.map +1 -1
  9. package/dist/catalog-cli.js +59 -37
  10. package/dist/catalog-cli.js.map +1 -1
  11. package/dist/cli-shared.d.ts +6 -1
  12. package/dist/cli-shared.js +11 -2
  13. package/dist/cli-shared.js.map +1 -1
  14. package/dist/exit-codes.js +9 -0
  15. package/dist/exit-codes.js.map +1 -1
  16. package/dist/journey-anchor-cli.js +16 -8
  17. package/dist/journey-anchor-cli.js.map +1 -1
  18. package/dist/journey-annotate-cli.js +10 -5
  19. package/dist/journey-annotate-cli.js.map +1 -1
  20. package/dist/journey-api.d.ts +10 -0
  21. package/dist/journey-api.js +23 -2
  22. package/dist/journey-api.js.map +1 -1
  23. package/dist/journey-bundle.d.ts +83 -0
  24. package/dist/journey-bundle.js +252 -0
  25. package/dist/journey-bundle.js.map +1 -0
  26. package/dist/journey-chain.d.ts +105 -0
  27. package/dist/journey-chain.js +331 -0
  28. package/dist/journey-chain.js.map +1 -0
  29. package/dist/journey-cli/anchors.js +11 -6
  30. package/dist/journey-cli/anchors.js.map +1 -1
  31. package/dist/journey-cli/chain.d.ts +8 -0
  32. package/dist/journey-cli/chain.js +113 -0
  33. package/dist/journey-cli/chain.js.map +1 -0
  34. package/dist/journey-cli/find.js +10 -5
  35. package/dist/journey-cli/find.js.map +1 -1
  36. package/dist/journey-cli/lint.js +13 -9
  37. package/dist/journey-cli/lint.js.map +1 -1
  38. package/dist/journey-cli/list.js +10 -5
  39. package/dist/journey-cli/list.js.map +1 -1
  40. package/dist/journey-cli/migrate.js +13 -6
  41. package/dist/journey-cli/migrate.js.map +1 -1
  42. package/dist/journey-cli/promote.js +11 -6
  43. package/dist/journey-cli/promote.js.map +1 -1
  44. package/dist/journey-cli/publish.js +12 -6
  45. package/dist/journey-cli/publish.js.map +1 -1
  46. package/dist/journey-cli/review.js +14 -8
  47. package/dist/journey-cli/review.js.map +1 -1
  48. package/dist/journey-cli/run.js +25 -10
  49. package/dist/journey-cli/run.js.map +1 -1
  50. package/dist/journey-cli/shared.d.ts +19 -1
  51. package/dist/journey-cli/shared.js +28 -0
  52. package/dist/journey-cli/shared.js.map +1 -1
  53. package/dist/journey-cli/verify.js +13 -6
  54. package/dist/journey-cli/verify.js.map +1 -1
  55. package/dist/journey-cli-bundle.d.ts +4 -0
  56. package/dist/journey-cli-bundle.js +70 -0
  57. package/dist/journey-cli-bundle.js.map +1 -0
  58. package/dist/journey-cli-readiness.d.ts +4 -0
  59. package/dist/journey-cli-readiness.js +163 -0
  60. package/dist/journey-cli-readiness.js.map +1 -0
  61. package/dist/journey-cli.d.ts +1 -1
  62. package/dist/journey-cli.js +9 -1
  63. package/dist/journey-cli.js.map +1 -1
  64. package/dist/journey-demo-cli.js +10 -5
  65. package/dist/journey-demo-cli.js.map +1 -1
  66. package/dist/journey-handback.d.ts +62 -0
  67. package/dist/journey-handback.js +150 -0
  68. package/dist/journey-handback.js.map +1 -0
  69. package/dist/journey-link-api.js +1 -1
  70. package/dist/journey-link-api.js.map +1 -1
  71. package/dist/journey-link-cli.js +13 -8
  72. package/dist/journey-link-cli.js.map +1 -1
  73. package/dist/journey-readiness.d.ts +104 -0
  74. package/dist/journey-readiness.js +369 -0
  75. package/dist/journey-readiness.js.map +1 -0
  76. package/dist/journey-verify.d.ts +2 -0
  77. package/dist/journey-verify.js +14 -1
  78. package/dist/journey-verify.js.map +1 -1
  79. package/dist/mcp-cli-tools.js +79 -20
  80. package/dist/mcp-cli-tools.js.map +1 -1
  81. package/dist/program.js +3 -0
  82. package/dist/program.js.map +1 -1
  83. package/dist/project-layout.d.ts +57 -0
  84. package/dist/project-layout.js +144 -0
  85. package/dist/project-layout.js.map +1 -0
  86. package/dist/project-where.d.ts +4 -0
  87. package/dist/project-where.js +48 -0
  88. package/dist/project-where.js.map +1 -0
  89. package/package.json +9 -9
@@ -0,0 +1,369 @@
1
+ import { relative, sep } from "node:path";
2
+ import { checkCompatibility, journeyParamSchema, lintJourney, } from "@jevitate/journey";
3
+ import { currentBuildTree, currentEngineInfo } from "./engine.js";
4
+ import { environmentFromFlags } from "./environments.js";
5
+ import { runJourneyChain, chainSucceeded } from "./journey-chain.js";
6
+ import { journeyContentHash } from "./journey-annotate-api.js";
7
+ import { reviewJourneyById } from "./journey-review-api.js";
8
+ import { verifyRecordPath } from "./journey-review-store.js";
9
+ import { verifyJourneyMutations } from "./journey-verify.js";
10
+ import { runJourneyProgrammatically } from "./journey-api.js";
11
+ export class ReadinessError extends Error {
12
+ code;
13
+ constructor(code, message) {
14
+ super(message);
15
+ this.name = "ReadinessError";
16
+ this.code = code;
17
+ }
18
+ }
19
+ const REQUIRED_PROOF_CHECK = "proof";
20
+ /** #581 §1: the target shared by `replay` and `prove`, refused in this order before any runner call. */
21
+ function resolveTarget(opts, deps, required) {
22
+ let environment;
23
+ if (opts.env !== undefined || opts.baseUrl !== undefined) {
24
+ environment = environmentFromFlags({ ...(opts.env === undefined ? {} : { env: opts.env }), ...(opts.baseUrl === undefined ? {} : { baseUrl: opts.baseUrl }) }, { ...(deps.environmentsFile === undefined ? {} : { environmentsFile: deps.environmentsFile }), ...(opts.targetsFile === undefined ? {} : { targetsFile: opts.targetsFile }) });
25
+ }
26
+ if (environment === undefined) {
27
+ throw new ReadinessError("E_READINESS_TARGET", "replay and prove need a target: pass --env <name> or --base-url <origin>");
28
+ }
29
+ if (environment.production === true) {
30
+ throw new ReadinessError("E_READINESS_PRODUCTION", `environment '${environment.name ?? environment.baseUrl}' is flagged production: readiness never replays or proves against it`);
31
+ }
32
+ const missing = required.filter((name) => !(name in (opts.params ?? {})));
33
+ if (missing.length > 0) {
34
+ throw new ReadinessError("E_READINESS_PARAMS", `missing required param(s): ${missing.join(", ")}`);
35
+ }
36
+ return environment;
37
+ }
38
+ /** The required params of the Journey the run/`--param` flags drive (a pair's consumer is bound by the chain). */
39
+ function requiredParams(journey, pair, hasRequests) {
40
+ const names = journeyParamSchema(journey).required;
41
+ return pair && !hasRequests ? [...names, "requests"] : names;
42
+ }
43
+ function lintFindings(journey, projectDir) {
44
+ // `lintJourney` runs the upload-fixture rules itself when it is given a project root (#488).
45
+ return lintJourney(journey, projectDir === undefined ? {} : { baseDir: projectDir });
46
+ }
47
+ function lintCheck(ctx, projectDir) {
48
+ const findings = lintFindings(ctx.journey, projectDir);
49
+ const errors = findings.filter((f) => f.level === "error").length;
50
+ const warnings = findings.filter((f) => f.level === "warning").length;
51
+ if (errors > 0) {
52
+ return {
53
+ check: { check: "lint", journey: ctx.id, state: "fail", detail: `${errors} error(s)${warnings === 0 ? "" : `, ${warnings} warning(s)`}` },
54
+ blocker: { check: "lint", journey: ctx.id, why: `${errors} lint error(s)`, next: `jevitate journey lint ${ctx.id}` },
55
+ };
56
+ }
57
+ return { check: { check: "lint", journey: ctx.id, state: "pass", detail: warnings === 0 ? "no findings" : `${warnings} warning(s)` } };
58
+ }
59
+ function schemaCheck(ctx) {
60
+ return { check: "schema", journey: ctx.id, state: "pass", detail: "the Journey loads" };
61
+ }
62
+ /** #582: the producing/consuming contract of a pair; absent contracts are nothing to check. */
63
+ function handoffCheck(producer, consumer) {
64
+ const declared = producer.journey.metadata.outputs !== undefined || consumer.journey.metadata.inputs !== undefined;
65
+ if (!declared) {
66
+ return { check: { check: "handoff", journey: producer.id, state: "not-run", detail: "neither Journey declares a handoff contract" } };
67
+ }
68
+ const issues = checkCompatibility(producer.journey, consumer.journey);
69
+ if (issues.length > 0) {
70
+ return {
71
+ check: { check: "handoff", journey: producer.id, state: "fail", detail: issues.map((i) => i.message).join("; ") },
72
+ blocker: { check: "handoff", journey: producer.id, why: issues.map((i) => i.message).join("; "), next: `jevitate journey chain --from ${producer.id} --to ${consumer.id} --requests <file>` },
73
+ };
74
+ }
75
+ return { check: { check: "handoff", journey: producer.id, state: "pass", detail: "contracts are compatible" } };
76
+ }
77
+ /** #583: a declared prepare-only boundary is what stops a Journey before the irreversible action. */
78
+ function boundaryCheck(ctx) {
79
+ return ctx.journey.metadata.boundary === undefined
80
+ ? { check: "boundary", journey: ctx.id, state: "not-run", detail: "no prepare-only boundary declared" }
81
+ : { check: "boundary", journey: ctx.id, state: "pass", detail: "a prepare-only boundary is declared" };
82
+ }
83
+ /** `journey review --strict`: every `warn` attention item is a blocker (an `info` item is advice, not a gate). */
84
+ function reviewStrictCheck(ctx) {
85
+ const warns = (ctx.review.attention ?? []).filter((a) => a.severity === "warn");
86
+ if (warns.length > 0) {
87
+ return {
88
+ check: { check: "review-strict", journey: ctx.id, state: "fail", detail: warns.map((a) => a.text).join("; ") },
89
+ blocker: { check: "review-strict", journey: ctx.id, why: warns.map((a) => a.text).join("; "), next: `jevitate journey review ${ctx.id} --strict` },
90
+ };
91
+ }
92
+ return { check: { check: "review-strict", journey: ctx.id, state: "pass", detail: "no strict attention items" } };
93
+ }
94
+ /** Every step objective written; a missing one is a person's annotation to draft. */
95
+ function annotationsCheck(ctx) {
96
+ const missing = ctx.review.summary.missingIntent;
97
+ if (missing.length === 0)
98
+ return { check: { check: "annotations", journey: ctx.id, state: "pass", detail: "every step has an objective" }, awaiting: [] };
99
+ return {
100
+ check: { check: "annotations", journey: ctx.id, state: "awaiting-human", detail: `${missing.length} intent gap(s)` },
101
+ awaiting: missing.map((item) => ({ check: "annotations", journey: ctx.id, item, next: `jevitate journey annotate ${ctx.id}` })),
102
+ };
103
+ }
104
+ /** #433: the job/persona links resolve; a draft/stale approval is a person's call. */
105
+ function catalogCheck(ctx) {
106
+ const links = ctx.review.catalog;
107
+ if (links === undefined)
108
+ return { check: { check: "catalog", journey: ctx.id, state: "not-run", detail: "the catalog was not loaded" }, awaiting: [] };
109
+ const dangling = [];
110
+ for (const [kind, link] of [["job", links.job], ["persona", links.persona]]) {
111
+ if (link !== undefined && link.status === "unknown")
112
+ dangling.push(`${kind}:${link.id}`);
113
+ }
114
+ if (dangling.length > 0) {
115
+ return {
116
+ check: { check: "catalog", journey: ctx.id, state: "fail", detail: `dangling link(s): ${dangling.join(", ")}` },
117
+ blocker: { check: "catalog", journey: ctx.id, why: `dangling link(s): ${dangling.join(", ")}`, next: `jevitate journey link ${ctx.id} --job <job-id> --persona <persona-id>` },
118
+ awaiting: [],
119
+ };
120
+ }
121
+ if (!links.linked) {
122
+ return {
123
+ check: { check: "catalog", journey: ctx.id, state: "fail", detail: "no job/persona link declared" },
124
+ blocker: { check: "catalog", journey: ctx.id, why: "no job/persona link declared", next: `jevitate journey link ${ctx.id} --job <job-id> --persona <persona-id>` },
125
+ awaiting: [],
126
+ };
127
+ }
128
+ if (links.unvetted.length > 0) {
129
+ return {
130
+ check: { check: "catalog", journey: ctx.id, state: "awaiting-human", detail: links.unvetted.join(", ") },
131
+ awaiting: links.unvetted.map((item) => ({
132
+ check: "catalog",
133
+ journey: ctx.id,
134
+ item,
135
+ next: item.startsWith("job:") ? `jevitate job review ${item.slice("job:".length)}` : `jevitate persona review ${item.slice("persona:".length)}`,
136
+ })),
137
+ };
138
+ }
139
+ return { check: { check: "catalog", journey: ctx.id, state: "pass", detail: "links resolve and are approved" }, awaiting: [] };
140
+ }
141
+ /** The `.verify/<id>.json` proof record, and the freshness rule shared with the review sheet. */
142
+ function proofCheck(ctx, journeysDir, cwd) {
143
+ const verify = ctx.review.proof.verify;
144
+ const evidence = relativeEvidence(cwd, verifyRecordPath(journeysDir, ctx.id));
145
+ if (verify.status === "not-verified") {
146
+ return {
147
+ check: { check: "proof", journey: ctx.id, state: "not-run", detail: verify.hint },
148
+ blocker: { check: "proof", journey: ctx.id, why: "no mutation proof recorded", next: `jevitate journey verify ${ctx.id} --mutate` },
149
+ };
150
+ }
151
+ if (verify.stale) {
152
+ return {
153
+ check: { check: "proof", journey: ctx.id, state: "stale", detail: `the ${verify.verdict} proof at ${verify.at} is bound to older content`, evidence },
154
+ blocker: { check: "proof", journey: ctx.id, why: "the recorded proof is stale", next: `jevitate journey verify ${ctx.id} --mutate` },
155
+ };
156
+ }
157
+ if (verify.verdict === "proven") {
158
+ const passed = Object.values(verify.summary).reduce((a, b) => a + b, 0);
159
+ return { check: { check: "proof", journey: ctx.id, state: "pass", detail: `proven ${passed}/${passed}`, evidence } };
160
+ }
161
+ if (verify.verdict === "insensitive") {
162
+ return {
163
+ check: { check: "proof", journey: ctx.id, state: "fail", detail: verify.reason ?? "some checks cannot fail", evidence },
164
+ blocker: { check: "proof", journey: ctx.id, why: verify.reason ?? "some checks cannot fail", next: `jevitate journey verify ${ctx.id} --mutate` },
165
+ };
166
+ }
167
+ return { check: { check: "proof", journey: ctx.id, state: "inconclusive", detail: verify.reason ?? `proof verdict ${verify.verdict}`, evidence } };
168
+ }
169
+ function relativeEvidence(cwd, path) {
170
+ const r = relative(cwd, path);
171
+ return r === "" || r.startsWith("..") ? path : r.split(sep).join("/");
172
+ }
173
+ /** `review` promoted with an approval that still binds the current review hash. */
174
+ function promotionCheck(ctx) {
175
+ const change = ctx.review.changeSinceApproval;
176
+ const stale = (change.kind === "diff" || change.kind === "snapshot-missing") && change.changed;
177
+ const current = ctx.journey.metadata.promoted && ctx.journey.metadata.approval !== undefined && !stale;
178
+ if (current)
179
+ return { check: { check: "promotion", journey: ctx.id, state: "pass", detail: "promoted with a current approval" }, awaiting: [] };
180
+ const why = !ctx.journey.metadata.promoted ? "not promoted" : stale ? "approval is stale (the Journey changed since it was approved)" : "no recorded approval";
181
+ return {
182
+ check: { check: "promotion", journey: ctx.id, state: "awaiting-human", detail: why },
183
+ awaiting: [{ check: "promotion", journey: ctx.id, item: why, next: `jevitate journey promote ${ctx.id}` }],
184
+ };
185
+ }
186
+ function replayCheck(ctx, outcome) {
187
+ const next = `jevitate journey run ${ctx.id}`;
188
+ const check = { check: "replay", journey: ctx.id, state: outcome.state, detail: outcome.detail };
189
+ return outcome.state === "pass" ? { check } : { check, blocker: { check: "replay", journey: ctx.id, why: outcome.detail, next } };
190
+ }
191
+ /** The #583 handback state, as `journey run` reports it. */
192
+ function handbackOutcome(state) {
193
+ switch (state) {
194
+ case "prepared":
195
+ return { state: "pass", detail: "the run stopped at its prepare-only boundary" };
196
+ case "submitted":
197
+ return { state: "fail", detail: "the run submitted the irreversible action (a prepare-only boundary must stop before it)" };
198
+ case "inconclusive":
199
+ return { state: "inconclusive", detail: "the handback state is inconclusive" };
200
+ default:
201
+ return { state: "fail", detail: `the handback state is ${state}` };
202
+ }
203
+ }
204
+ function oneJourneyReplay(result) {
205
+ if (result.outcome === "ok") {
206
+ return result.handback === undefined ? { state: "pass", detail: "the recorded replay held" } : handbackOutcome(result.handback.state);
207
+ }
208
+ if (result.outcome === "quarantined")
209
+ return { state: "fail", detail: result.reason ?? "the replay diverged" };
210
+ if (result.outcome === "inconclusive")
211
+ return { state: "inconclusive", detail: result.reason ?? "the replay had no verdict" };
212
+ return { state: "fail", detail: `the replay ended ${result.outcome}` };
213
+ }
214
+ function pairReplay(result) {
215
+ if (chainSucceeded(result))
216
+ return { state: "pass", detail: "the chain held for every request" };
217
+ if (result.runs.some((r) => r.outcome === "inconclusive"))
218
+ return { state: "inconclusive", detail: "a chained run had no verdict" };
219
+ return { state: "fail", detail: `${result.unmatched.length} unmatched request(s), ${result.runs.filter((r) => r.outcome !== "ok").length} failed run(s)` };
220
+ }
221
+ function verdictOf(checks, mode) {
222
+ if (checks.some((c) => c.state === "fail"))
223
+ return "blocked";
224
+ if (checks.some((c) => c.state === "inconclusive"))
225
+ return "inconclusive";
226
+ const requiredReplay = mode !== "report";
227
+ const required = checks.filter((c) => c.check === REQUIRED_PROOF_CHECK || (requiredReplay && c.check === "replay"));
228
+ if (required.some((c) => c.state === "stale" || c.state === "not-run"))
229
+ return "incomplete";
230
+ return "technically-ready";
231
+ }
232
+ function commandsFor(verdict, mode, id, blockers, awaiting) {
233
+ const next = [];
234
+ const add = (command) => void (command !== "" && !next.includes(command) && next.push(command));
235
+ if (verdict === "blocked") {
236
+ for (const b of blockers)
237
+ add(b.next);
238
+ return next;
239
+ }
240
+ if (mode !== "prove")
241
+ add(`jevitate journey readiness ${id} --mode prove`);
242
+ if (verdict === "technically-ready")
243
+ add(`jevitate journey promote ${id}`);
244
+ for (const a of awaiting)
245
+ add(a.next);
246
+ return next;
247
+ }
248
+ /**
249
+ * #581: one Journey's (or a linked pair's) readiness receipt. Static checks only in `report`; the
250
+ * baseline replay in `replay`/`prove`; fresh mutation proofs in `prove`. Experience reuse is the
251
+ * existing rule: a proof is fresh only while it binds the current review hash.
252
+ */
253
+ export async function runJourneyReadiness(opts, deps = {}) {
254
+ const mode = opts.mode ?? "report";
255
+ const cwd = (deps.cwd ?? (() => process.cwd()))();
256
+ const review = deps.review ?? reviewJourneyById;
257
+ const run = deps.run ?? runJourneyProgrammatically;
258
+ const chain = deps.chain ?? runJourneyChain;
259
+ const verify = deps.verify ?? verifyJourneyMutations;
260
+ const reviewOpts = { strict: true, ...(opts.catalogDir === undefined ? {} : { catalogDir: opts.catalogDir }), ...(opts.targetsFile === undefined ? {} : { targetsFile: opts.targetsFile }) };
261
+ const contexts = [];
262
+ const loaded = await review(opts.journeysDir, opts.id, reviewOpts);
263
+ contexts.push({ id: opts.id, journey: loaded.journey, review: loaded.review });
264
+ if (opts.with !== undefined) {
265
+ const consumer = await review(opts.journeysDir, opts.with, reviewOpts);
266
+ contexts.push({ id: opts.with, journey: consumer.journey, review: consumer.review });
267
+ }
268
+ const pair = opts.with !== undefined;
269
+ let environment;
270
+ let replay;
271
+ if (mode !== "report") {
272
+ environment = resolveTarget(opts, deps, requiredParams(contexts[0].journey, pair, opts.requests !== undefined));
273
+ const params = { ...(opts.params ?? {}) };
274
+ try {
275
+ if (pair) {
276
+ const chained = await chain({
277
+ from: opts.id,
278
+ to: opts.with,
279
+ requests: opts.requests ?? "",
280
+ dir: opts.journeysDir,
281
+ environment,
282
+ ...(opts.storageState === undefined ? {} : { storageState: opts.storageState }),
283
+ ...(opts.browser === undefined ? {} : { browser: opts.browser }),
284
+ ...(opts.browserPortFactory === undefined ? {} : { browserPortFactory: opts.browserPortFactory }),
285
+ });
286
+ replay = pairReplay(chained);
287
+ }
288
+ else {
289
+ const result = await run({
290
+ dir: opts.journeysDir,
291
+ id: opts.id,
292
+ params,
293
+ environment,
294
+ ...(opts.storageState === undefined ? {} : { storageState: opts.storageState }),
295
+ ...(opts.browser === undefined ? {} : { browser: opts.browser }),
296
+ ...(opts.browserPortFactory === undefined ? {} : { browserPortFactory: opts.browserPortFactory }),
297
+ ...(opts.fixtures === undefined ? {} : { fixtures: opts.fixtures(opts.id, environment) }),
298
+ });
299
+ replay = oneJourneyReplay(result);
300
+ }
301
+ }
302
+ catch (err) {
303
+ replay = { state: "inconclusive", detail: err instanceof Error ? err.message : String(err) };
304
+ }
305
+ if (mode === "prove") {
306
+ for (const ctx of contexts) {
307
+ try {
308
+ await verify({
309
+ dir: opts.journeysDir,
310
+ id: ctx.id,
311
+ params,
312
+ environment,
313
+ ...(opts.storageState === undefined ? {} : { storageState: opts.storageState }),
314
+ ...(opts.browser === undefined ? {} : { browser: opts.browser }),
315
+ ...(opts.browserPortFactory === undefined ? {} : { browserPortFactory: opts.browserPortFactory }),
316
+ ...(opts.fixtures === undefined ? {} : { fixtures: opts.fixtures(ctx.id, environment) }),
317
+ });
318
+ }
319
+ catch (err) {
320
+ // A proof the host could not run leaves the existing evidence in place (never a crash).
321
+ ctx.review = { ...ctx.review, proof: { ...ctx.review.proof, verify: { status: "not-verified", hint: err instanceof Error ? err.message : String(err) } } };
322
+ continue;
323
+ }
324
+ // Re-read the freshly recorded proof through the same sheet the verdict is computed from.
325
+ const refreshed = await review(opts.journeysDir, ctx.id, reviewOpts);
326
+ ctx.review = refreshed.review;
327
+ }
328
+ }
329
+ }
330
+ const checks = [];
331
+ const blockers = [];
332
+ const awaiting = [];
333
+ const push = (r) => {
334
+ checks.push(r.check);
335
+ if (r.blocker !== undefined)
336
+ blockers.push(r.blocker);
337
+ if (r.awaiting !== undefined)
338
+ awaiting.push(...r.awaiting);
339
+ };
340
+ for (const ctx of contexts) {
341
+ push({ check: schemaCheck(ctx) });
342
+ push(lintCheck(ctx, opts.projectDir));
343
+ if (pair && ctx.id === opts.id)
344
+ push(handoffCheck(contexts[0], contexts[1]));
345
+ push({ check: boundaryCheck(ctx) });
346
+ push(reviewStrictCheck(ctx));
347
+ push(annotationsCheck(ctx));
348
+ push(catalogCheck(ctx));
349
+ push(proofCheck(ctx, opts.journeysDir, cwd));
350
+ if (mode !== "report")
351
+ push(replayCheck(ctx, replay ?? { state: "not-run", detail: "the replay did not run" }));
352
+ push(promotionCheck(ctx));
353
+ }
354
+ const verdict = verdictOf(checks, mode);
355
+ const engineInfo = currentEngineInfo();
356
+ const target = environment === undefined ? null : { origin: environment.baseUrl, ...(environment.name === undefined ? {} : { env: environment.name }) };
357
+ return {
358
+ engine: { version: engineInfo.version, commit: engineInfo.commit, tree: currentBuildTree() },
359
+ mode,
360
+ target,
361
+ journeys: contexts.map((ctx) => ({ id: ctx.id, contentHash: journeyContentHash(ctx.journey), reviewHash: ctx.review.contentHash, promoted: ctx.journey.metadata.promoted })),
362
+ checks,
363
+ verdict,
364
+ blockers,
365
+ awaitingHuman: awaiting,
366
+ next: commandsFor(verdict, mode, opts.id, blockers, awaiting),
367
+ };
368
+ }
369
+ //# sourceMappingURL=journey-readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journey-readiness.js","sourceRoot":"","sources":["../src/journey-readiness.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface JourneyVerifyMutation {
22
22
  readonly id: string;
23
23
  /** #565: the parameter a `swap-param`/`truncate-param` altered (its name, never a value). */
24
24
  readonly param?: string;
25
+ /** #579: where a `swap-param`'s wrong value came from (`reviewed`, `option`, `generated`), never the value. */
26
+ readonly source?: JourneyMutation["source"];
25
27
  readonly outcome: MutationRunResult["outcome"];
26
28
  readonly failedSites: readonly MutationFailedSite[];
27
29
  /** block-write: what was aborted (`METHOD path`). */
@@ -74,10 +74,15 @@ export async function verifyJourneyMutations(opts, run = runJourneyProgrammatica
74
74
  structuredFailures: true,
75
75
  ...(how.journey === journey ? {} : { mutateJourney: (j) => describe(j, m, replayOpts).journey }),
76
76
  ...(how.skipIndex === undefined ? {} : { skipStep: (i) => i === how.skipIndex }),
77
+ ...(how.swapSelectAtStep === undefined ? {} : { selectAlternativeAtStep: how.swapSelectAtStep }),
77
78
  ...(how.blockIndex === undefined ? {} : { blockWritesAtStep: how.blockIndex }),
78
79
  });
79
80
  const blocked = r.blockedWrites ?? [];
80
81
  const blockedFields = how.blockIndex === undefined ? {} : { blockedWrites: blocked.map((b) => `${b.method} ${b.path}`) };
82
+ // #579: a select mutation found no other enabled live option — not applied, never proof.
83
+ if (r.outcome === "quarantined" && /no-alternative/.test(r.reason)) {
84
+ return { outcome: "not-applied", failedSites: [], ...blockedFields, reason: r.reason };
85
+ }
81
86
  if (how.blockIndex !== undefined && !blockedOwnWrite(how.blockRequests ?? [], blocked)) {
82
87
  return {
83
88
  outcome: "not-applied",
@@ -102,7 +107,15 @@ export async function verifyJourneyMutations(opts, run = runJourneyProgrammatica
102
107
  // #554: a first failure at the mutated step's own postcondition hides the LATER paired sites
103
108
  // behind it; one relaxed replay (same action, the step's own expect/waitFor left out) judges them.
104
109
  const relaxed = needsRelaxedReplay(plan, m, first) ? await replay(m, relaxedMutationReplay) : undefined;
105
- mutations.push({ kind: m.kind, step: m.step, id: m.id, ...(m.param === undefined ? {} : { param: m.param }), ...first, ...(relaxed === undefined ? {} : { relaxed }) });
110
+ mutations.push({
111
+ kind: m.kind,
112
+ step: m.step,
113
+ id: m.id,
114
+ ...(m.param === undefined ? {} : { param: m.param }),
115
+ ...(m.source === undefined ? {} : { source: m.source }),
116
+ ...first,
117
+ ...(relaxed === undefined ? {} : { relaxed }),
118
+ });
106
119
  }
107
120
  }
108
121
  const results = new Map(mutations.map((m) => [m.id, { outcome: m.outcome, failedSites: m.failedSites, ...(m.relaxed === undefined ? {} : { relaxed: m.relaxed }) }]));
@@ -1 +1 @@
1
- {"version":3,"file":"journey-verify.js","sourceRoot":"","sources":["../src/journey-verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journey-verify.js","sourceRoot":"","sources":["../src/journey-verify.ts"],"names":[],"mappings":"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"}