@jevitate/cli 0.7.0 → 0.9.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 (263) hide show
  1. package/dist/ai-cli.d.ts +3 -1
  2. package/dist/ai-cli.js +60 -16
  3. package/dist/ai-cli.js.map +1 -1
  4. package/dist/approval-provenance.d.ts +136 -0
  5. package/dist/approval-provenance.js +317 -0
  6. package/dist/approval-provenance.js.map +1 -0
  7. package/dist/author-journey-cli.js +4 -2
  8. package/dist/author-journey-cli.js.map +1 -1
  9. package/dist/bin.js +30544 -20851
  10. package/dist/browser-cli.d.ts +10 -0
  11. package/dist/browser-cli.js +50 -0
  12. package/dist/browser-cli.js.map +1 -0
  13. package/dist/build-info.generated.js +2 -2
  14. package/dist/builtin-analyzers.d.ts +7 -0
  15. package/dist/builtin-analyzers.js +19 -0
  16. package/dist/builtin-analyzers.js.map +1 -0
  17. package/dist/campaign-cli.d.ts +6 -0
  18. package/dist/campaign-cli.js +9 -4
  19. package/dist/campaign-cli.js.map +1 -1
  20. package/dist/catalog-analysis.d.ts +70 -0
  21. package/dist/catalog-analysis.js +507 -0
  22. package/dist/catalog-analysis.js.map +1 -0
  23. package/dist/catalog-api.d.ts +73 -0
  24. package/dist/catalog-api.js +97 -0
  25. package/dist/catalog-api.js.map +1 -0
  26. package/dist/catalog-cli.d.ts +12 -0
  27. package/dist/catalog-cli.js +224 -0
  28. package/dist/catalog-cli.js.map +1 -0
  29. package/dist/catalog-review.d.ts +29 -0
  30. package/dist/catalog-review.js +290 -0
  31. package/dist/catalog-review.js.map +1 -0
  32. package/dist/catalog.d.ts +133 -0
  33. package/dist/catalog.js +352 -0
  34. package/dist/catalog.js.map +1 -0
  35. package/dist/change-context.d.ts +44 -0
  36. package/dist/change-context.js +203 -0
  37. package/dist/change-context.js.map +1 -0
  38. package/dist/check-api.d.ts +1 -1
  39. package/dist/check-api.js +68 -9
  40. package/dist/check-api.js.map +1 -1
  41. package/dist/check-cli.d.ts +5 -1
  42. package/dist/check-cli.js +64 -10
  43. package/dist/check-cli.js.map +1 -1
  44. package/dist/check-execute.d.ts +16 -1
  45. package/dist/check-execute.js +78 -31
  46. package/dist/check-execute.js.map +1 -1
  47. package/dist/check-plan.d.ts +14 -0
  48. package/dist/check-plan.js +28 -2
  49. package/dist/check-plan.js.map +1 -1
  50. package/dist/check-suite.js +6 -3
  51. package/dist/check-suite.js.map +1 -1
  52. package/dist/check-types.d.ts +51 -6
  53. package/dist/check-types.js +8 -0
  54. package/dist/check-types.js.map +1 -1
  55. package/dist/cli-output.js +85 -5
  56. package/dist/cli-output.js.map +1 -1
  57. package/dist/cli-shared.d.ts +22 -2
  58. package/dist/cli-shared.js +34 -5
  59. package/dist/cli-shared.js.map +1 -1
  60. package/dist/demo-aspect-api.d.ts +15 -0
  61. package/dist/demo-aspect-api.js +26 -1
  62. package/dist/demo-aspect-api.js.map +1 -1
  63. package/dist/demo-aspect-cli.js +64 -5
  64. package/dist/demo-aspect-cli.js.map +1 -1
  65. package/dist/exit-codes.d.ts +6 -3
  66. package/dist/exit-codes.js +13 -3
  67. package/dist/exit-codes.js.map +1 -1
  68. package/dist/explore-adversarial.d.ts +3 -1
  69. package/dist/explore-adversarial.js +4 -4
  70. package/dist/explore-adversarial.js.map +1 -1
  71. package/dist/explore-author.js +5 -2
  72. package/dist/explore-author.js.map +1 -1
  73. package/dist/explore-cli.js +145 -9
  74. package/dist/explore-cli.js.map +1 -1
  75. package/dist/explore-coverage.d.ts +6 -2
  76. package/dist/explore-coverage.js +7 -6
  77. package/dist/explore-coverage.js.map +1 -1
  78. package/dist/explore-feature.d.ts +3 -1
  79. package/dist/explore-feature.js +5 -5
  80. package/dist/explore-feature.js.map +1 -1
  81. package/dist/explore-goal.d.ts +37 -6
  82. package/dist/explore-goal.js +69 -50
  83. package/dist/explore-goal.js.map +1 -1
  84. package/dist/explore-shared.d.ts +12 -7
  85. package/dist/explore-shared.js +9 -1
  86. package/dist/explore-shared.js.map +1 -1
  87. package/dist/findings-filing.d.ts +6 -0
  88. package/dist/findings-filing.js +15 -1
  89. package/dist/findings-filing.js.map +1 -1
  90. package/dist/goal-run-flags.d.ts +2 -0
  91. package/dist/goal-run-flags.js +8 -1
  92. package/dist/goal-run-flags.js.map +1 -1
  93. package/dist/heal-probe-guard.d.ts +9 -0
  94. package/dist/heal-probe-guard.js +113 -0
  95. package/dist/heal-probe-guard.js.map +1 -0
  96. package/dist/host-health-run.d.ts +32 -1
  97. package/dist/host-health-run.js +38 -1
  98. package/dist/host-health-run.js.map +1 -1
  99. package/dist/http-5xx-outcome.d.ts +8 -3
  100. package/dist/http-5xx-outcome.js +5 -15
  101. package/dist/http-5xx-outcome.js.map +1 -1
  102. package/dist/init-cli.d.ts +7 -0
  103. package/dist/init-cli.js +79 -9
  104. package/dist/init-cli.js.map +1 -1
  105. package/dist/init-codeowners.d.ts +39 -0
  106. package/dist/init-codeowners.js +91 -0
  107. package/dist/init-codeowners.js.map +1 -0
  108. package/dist/init-keys.d.ts +3 -1
  109. package/dist/init-keys.js +20 -8
  110. package/dist/init-keys.js.map +1 -1
  111. package/dist/init-skills.d.ts +85 -7
  112. package/dist/init-skills.js +303 -36
  113. package/dist/init-skills.js.map +1 -1
  114. package/dist/jev-advisor.d.ts +72 -0
  115. package/dist/jev-advisor.js +172 -0
  116. package/dist/jev-advisor.js.map +1 -0
  117. package/dist/journey-api.d.ts +76 -5
  118. package/dist/journey-api.js +238 -29
  119. package/dist/journey-api.js.map +1 -1
  120. package/dist/journey-cli.js +257 -23
  121. package/dist/journey-cli.js.map +1 -1
  122. package/dist/journey-heal.d.ts +74 -0
  123. package/dist/journey-heal.js +180 -0
  124. package/dist/journey-heal.js.map +1 -0
  125. package/dist/journey-network-checks.d.ts +5 -1
  126. package/dist/journey-network-checks.js +15 -4
  127. package/dist/journey-network-checks.js.map +1 -1
  128. package/dist/journey-prefix.js +2 -2
  129. package/dist/journey-prefix.js.map +1 -1
  130. package/dist/journey-proposal-store.d.ts +100 -0
  131. package/dist/journey-proposal-store.js +342 -0
  132. package/dist/journey-proposal-store.js.map +1 -0
  133. package/dist/journey-result-record.d.ts +40 -0
  134. package/dist/journey-result-record.js +28 -0
  135. package/dist/journey-result-record.js.map +1 -0
  136. package/dist/journey-review-api.d.ts +19 -0
  137. package/dist/journey-review-api.js +53 -0
  138. package/dist/journey-review-api.js.map +1 -0
  139. package/dist/journey-review-store.d.ts +16 -0
  140. package/dist/journey-review-store.js +95 -0
  141. package/dist/journey-review-store.js.map +1 -0
  142. package/dist/journey-review.d.ts +54 -0
  143. package/dist/journey-review.js +538 -0
  144. package/dist/journey-review.js.map +1 -0
  145. package/dist/journey-verify.js +14 -1
  146. package/dist/journey-verify.js.map +1 -1
  147. package/dist/key-report.d.ts +20 -5
  148. package/dist/key-report.js +32 -9
  149. package/dist/key-report.js.map +1 -1
  150. package/dist/kill-signal.js +10 -2
  151. package/dist/kill-signal.js.map +1 -1
  152. package/dist/launch-armed.js +5 -1
  153. package/dist/launch-armed.js.map +1 -1
  154. package/dist/load-cli.js +4 -2
  155. package/dist/load-cli.js.map +1 -1
  156. package/dist/log-classes.d.ts +73 -0
  157. package/dist/log-classes.js +167 -0
  158. package/dist/log-classes.js.map +1 -0
  159. package/dist/log-correlation.d.ts +29 -10
  160. package/dist/log-correlation.js +44 -21
  161. package/dist/log-correlation.js.map +1 -1
  162. package/dist/login-cli.d.ts +17 -0
  163. package/dist/login-cli.js +161 -0
  164. package/dist/login-cli.js.map +1 -0
  165. package/dist/logs-cli.js +3 -1
  166. package/dist/logs-cli.js.map +1 -1
  167. package/dist/mcp-api.d.ts +6 -1
  168. package/dist/mcp-api.js +110 -16
  169. package/dist/mcp-api.js.map +1 -1
  170. package/dist/mcp-cli-runner.d.ts +2 -0
  171. package/dist/mcp-cli-runner.js +3 -1
  172. package/dist/mcp-cli-runner.js.map +1 -1
  173. package/dist/mcp-cli-tools.d.ts +5 -0
  174. package/dist/mcp-cli-tools.js +178 -23
  175. package/dist/mcp-cli-tools.js.map +1 -1
  176. package/dist/mission-cli.js +8 -4
  177. package/dist/mission-cli.js.map +1 -1
  178. package/dist/mission-journal.d.ts +4 -1
  179. package/dist/mission-journal.js +9 -3
  180. package/dist/mission-journal.js.map +1 -1
  181. package/dist/mission-queue-cli.js +21 -2
  182. package/dist/mission-queue-cli.js.map +1 -1
  183. package/dist/mission-queue-runner.d.ts +6 -0
  184. package/dist/mission-queue-runner.js +33 -3
  185. package/dist/mission-queue-runner.js.map +1 -1
  186. package/dist/multi-run-cli.d.ts +7 -1
  187. package/dist/multi-run-cli.js +10 -3
  188. package/dist/multi-run-cli.js.map +1 -1
  189. package/dist/multi-run.d.ts +44 -8
  190. package/dist/multi-run.js +118 -25
  191. package/dist/multi-run.js.map +1 -1
  192. package/dist/persona-login.d.ts +256 -0
  193. package/dist/persona-login.js +884 -0
  194. package/dist/persona-login.js.map +1 -0
  195. package/dist/pre-approval.d.ts +98 -0
  196. package/dist/pre-approval.js +175 -0
  197. package/dist/pre-approval.js.map +1 -0
  198. package/dist/program.js +12 -0
  199. package/dist/program.js.map +1 -1
  200. package/dist/project-dir.d.ts +2 -1
  201. package/dist/project-dir.js +3 -1
  202. package/dist/project-dir.js.map +1 -1
  203. package/dist/readiness.d.ts +29 -0
  204. package/dist/readiness.js +291 -0
  205. package/dist/readiness.js.map +1 -0
  206. package/dist/regression-cli.js +4 -2
  207. package/dist/regression-cli.js.map +1 -1
  208. package/dist/report-api.d.ts +25 -2
  209. package/dist/report-api.js +34 -5
  210. package/dist/report-api.js.map +1 -1
  211. package/dist/report-cli.js +8 -1
  212. package/dist/report-cli.js.map +1 -1
  213. package/dist/resource-preflight.js +5 -3
  214. package/dist/resource-preflight.js.map +1 -1
  215. package/dist/result-schema.d.ts +12 -0
  216. package/dist/result-schema.js +8 -0
  217. package/dist/result-schema.js.map +1 -1
  218. package/dist/run-index.d.ts +4 -2
  219. package/dist/run-index.js +3 -1
  220. package/dist/run-index.js.map +1 -1
  221. package/dist/run-key-preflight.d.ts +2 -1
  222. package/dist/run-key-preflight.js +3 -2
  223. package/dist/run-key-preflight.js.map +1 -1
  224. package/dist/run-metadata.d.ts +29 -0
  225. package/dist/run-metadata.js +48 -0
  226. package/dist/run-metadata.js.map +1 -0
  227. package/dist/run-tags-cli.d.ts +14 -0
  228. package/dist/run-tags-cli.js +41 -0
  229. package/dist/run-tags-cli.js.map +1 -0
  230. package/dist/self-heal-adapter.d.ts +43 -27
  231. package/dist/self-heal-adapter.js +196 -62
  232. package/dist/self-heal-adapter.js.map +1 -1
  233. package/dist/site-cli.d.ts +1 -1
  234. package/dist/site-cli.js +24 -1
  235. package/dist/site-cli.js.map +1 -1
  236. package/dist/source-cli.js +9 -5
  237. package/dist/source-cli.js.map +1 -1
  238. package/dist/suite-explore-options.d.ts +14 -0
  239. package/dist/suite-explore-options.js +8 -0
  240. package/dist/suite-explore-options.js.map +1 -1
  241. package/dist/sweep-api.d.ts +289 -0
  242. package/dist/sweep-api.js +859 -0
  243. package/dist/sweep-api.js.map +1 -0
  244. package/dist/sweep-cli.d.ts +9 -0
  245. package/dist/sweep-cli.js +117 -0
  246. package/dist/sweep-cli.js.map +1 -0
  247. package/dist/target-config.d.ts +5 -2
  248. package/dist/target-config.js +15 -0
  249. package/dist/target-config.js.map +1 -1
  250. package/dist/ux-cli.js +3 -1
  251. package/dist/ux-cli.js.map +1 -1
  252. package/dist/ux-usability.d.ts +9 -3
  253. package/dist/ux-usability.js +8 -5
  254. package/dist/ux-usability.js.map +1 -1
  255. package/dist/verify-fix-cli.js +4 -2
  256. package/dist/verify-fix-cli.js.map +1 -1
  257. package/package.json +9 -9
  258. package/skills/jevitate-ci-check/SKILL.md +9 -1
  259. package/skills/jevitate-demo/SKILL.md +5 -2
  260. package/skills/jevitate-getting-started/SKILL.md +14 -1
  261. package/skills/jevitate-mission-scope/SKILL.md +2 -2
  262. package/skills/jevitate-run-journey/SKILL.md +42 -9
  263. package/skills/jevitate-test-campaign/SKILL.md +26 -5
@@ -1,12 +1,29 @@
1
+ import { JEV_PROVIDER_FLAG_HELP, emitUsageLine, jevProviderArg } from "./cli-shared.js";
2
+ import { READINESS_FLAG_HELP, REAL_JEV_FLAG_HELP, jevSetupFor } from "./catalog-cli.js";
3
+ import { TAG_FLAG, TAG_HELP, collectTag, taggedAction } from "./run-tags-cli.js";
1
4
  import { existsSync } from "node:fs";
2
- import { writeFile } from "node:fs/promises";
5
+ import { readFile, writeFile } from "node:fs/promises";
3
6
  import { FsJourneyStore, JourneyRegistry, ParamValidationError, journeyStepCount, listJourneyAnchors } from "@jevitate/journey";
4
7
  import { MissingCredentialError } from "@jevitate/ai-core";
5
- import { safeRunPolicy } from "@jevitate/domain";
6
- import { makeExploreSelfHealer } from "./self-heal-adapter.js";
8
+ import { journeyExitCode, safeRunPolicy } from "@jevitate/domain";
9
+ import { makeEvidenceSelfHealer } from "./self-heal-adapter.js";
10
+ import { CLI_HEAL_NAMES, JourneyHealArgsError, journeyHealBudget, journeyRunSummary, readJourneyChangeScope, validateJourneyHeal } from "./journey-heal.js";
11
+ import { ChangesArgsError, ChangesInputError } from "./change-context.js";
12
+ import { positiveIntArg } from "./cli-args.js";
7
13
  import { ok, fail } from "./envelope.js";
8
14
  import { SiteGateRefusedError } from "@jevitate/runtime";
9
- import { runJourneyProgrammatically, promoteJourney, lintJourneyById, WeakJourneyError, UnknownJourneyError, JourneyRequiresAuthError } from "./journey-api.js";
15
+ import { runJourneyProgrammatically, promoteJourney, lintJourneyById, WeakJourneyError, UnknownJourneyError, JourneyRequiresAuthError, StaleReviewError } from "./journey-api.js";
16
+ import { ReviewSheetError, renderReviewMarkdown, renderReviewText, reviewSheetHash } from "./journey-review.js";
17
+ import { reviewJourneyById } from "./journey-review-api.js";
18
+ import { ReviewSidecarError } from "./journey-review-store.js";
19
+ import { JourneyProposalArgsError } from "./journey-api.js";
20
+ import { JourneyProposalInvalidError, JourneyProposalNotFoundError, JourneyProposalProofError, JourneyProposalStaleError, isProposalId } from "./journey-proposal-store.js";
21
+ import { rejectionProvenance } from "./approval-provenance.js";
22
+ import { UnvettedLinksError, resolveCatalogDir } from "./catalog-api.js";
23
+ import { CatalogInputError } from "./catalog.js";
24
+ import { ApprovalFindingsError } from "./pre-approval.js";
25
+ import { approvalRefusal, checkNonInteractiveReason, describeProvenance, makeApprovalConfirm } from "./approval-provenance.js";
26
+ import { TargetConfigError } from "./target-config.js";
10
27
  import { ExtensionMismatchError } from "./browser-run-options.js";
11
28
  import { parseScreenshotsArg } from "./run-screenshots.js";
12
29
  import { withSiteGate } from "./site-gate-cli.js";
@@ -23,6 +40,11 @@ import { UnknownSourceError, EmbeddedSecretError, UndeclaredOriginError } from "
23
40
  import { environmentFromFlags, isEnvironmentError, withEnvironmentFlags } from "./environments.js";
24
41
  import { resolveDbPath, resolveJourneysDir, resolveSourceApiDeps, withBrowserLaunchFlags, browserRunFromFlags, withDemoFlags, withScreenshotsFlag, withEmulationFlags, emulationFromFlags, collectParam, emitJson, environmentSeams, writeRawResult, GatewaySelectionError, buildExploreGateways, } from "./cli-shared.js";
25
42
  /** #401: one human line per lint finding — level, step (when it has one), rule, message. */
43
+ /** #432: the targets.json a review sheet reads its site's safety config from (the CLI's own seam). */
44
+ function targetsOpts(deps) {
45
+ const file = deps.explore?.targetsConfigPath;
46
+ return file === undefined ? {} : { targetsFile: file };
47
+ }
26
48
  function lintFindingLine(finding) {
27
49
  const message = finding.message.replace(/^step \d+: /, "");
28
50
  return `${finding.level} ${finding.step === undefined ? "" : `step ${finding.step} `}${finding.rule} ${message}`;
@@ -58,7 +80,9 @@ export function registerJourneyCommands(program, deps) {
58
80
  }
59
81
  else {
60
82
  for (const m of metas) {
61
- out?.(`${m.id}\t${m.name}${m.promoted ? "" : " (unpromoted)"}\n`);
83
+ // #437: how a promoted Journey's approval was made ("approved non-interactively (likely an agent: CLAUDECODE)").
84
+ const how = m.promoted && m.approval !== undefined ? ` — ${describeProvenance(m.approval.provenance)}` : "";
85
+ out?.(`${m.id}\t${m.name}${m.promoted ? "" : " (unpromoted)"}${how}\n`);
62
86
  }
63
87
  }
64
88
  process.exitCode = 0;
@@ -115,12 +139,21 @@ export function registerJourneyCommands(program, deps) {
115
139
  // runtime's write floor). `hybrid`/`full` need an AI gateway, selected
116
140
  // with --real/--fake-ai (mirrors `explore`); requesting a heal mode
117
141
  // without one fails CLOSED, never a silent unhealed run.
118
- .option("--self-heal <mode>", "self-heal policy mode: fail-closed | hybrid | full", "fail-closed")
142
+ .option("--self-heal <mode>", "self-heal policy mode: fail-closed | hybrid | full (#453: hybrid/full need --changes and/or --change-note; a heal is proposed for review, exit 5 — never a pass)", "fail-closed")
143
+ .option("--changes <range>", "#453: the git range that explains a break (e.g. HEAD~1..HEAD, main...HEAD; read-only, in the journeys dir's repo) — needs --self-heal hybrid|full")
144
+ .option("--change-note <text>", "#453: a change note that explains a break (e.g. 'renamed \"Create New\" to \"Create\"'; repeatable) — needs --self-heal hybrid|full", (v, prev) => [...prev, v], [])
145
+ .option("--heal-max-attempts <n>", "#453: candidates tried per broken step (default 2)", positiveIntArg)
146
+ .option("--heal-max-model-calls <n>", "#453: model calls per broken step (default 6)", positiveIntArg)
147
+ .option("--heal-max-ms <ms>", "#453: healing time per broken step in ms (default 60000)", positiveIntArg)
148
+ .option("--heal-max-run-attempts <n>", "#453: candidates tried in the whole run (default 4)", positiveIntArg)
149
+ .option("--heal-max-run-ms <ms>", "#453: healing time in the whole run in ms (default 180000)", positiveIntArg)
119
150
  .option("--real", "use live Jev + OpenRouter gateways for self-heal (requires keys)", false)
120
151
  .option("--fake-ai", "use deterministic fake gateways for self-heal (pipeline smoke only)", false)
152
+ .option("--jev-provider <provider>", JEV_PROVIDER_FLAG_HELP, jevProviderArg)
121
153
  .option("--action-deltas", "opt-in (#303): record what each replayed step changed on the page (redacted, a code verdict per step) and compare it with the delta its Recording stored — returned as actionDeltas")
122
154
  .option("--json", "emit a JSON envelope")
123
- .action(async function (id) {
155
+ .option(TAG_FLAG, TAG_HELP, collectTag, [])
156
+ .action(taggedAction(program, "journey run", async function (id) {
124
157
  const { env: envName, baseUrl } = this.opts();
125
158
  // #247: --env/--base-url choose where the Journey runs (unknown env / bad file → 64, nothing opened).
126
159
  let environment;
@@ -140,7 +173,7 @@ export function registerJourneyCommands(program, deps) {
140
173
  ...(ownFixtureFlags.before === undefined && environment?.hooks?.before !== undefined ? { before: environment.hooks.before } : {}),
141
174
  ...(ownFixtureFlags.after === undefined && environment?.hooks?.after !== undefined ? { after: environment.hooks.after } : {}),
142
175
  };
143
- const { dir, param, storageState: storageStateFlag, selfHeal, real, fakeAi, json, screenshots: _screenshots, actionDeltas, ...emulationFlags } = this.opts();
176
+ const { dir, param, storageState: storageStateFlag, selfHeal, real, fakeAi, jevProvider, json, screenshots: _screenshots, actionDeltas, changes, changeNote, healMaxAttempts, healMaxModelCalls, healMaxMs, healMaxRunAttempts, healMaxRunMs, ...emulationFlags } = this.opts();
144
177
  // --storage-state wins; else the environment's own session (~/.jevitate/targets.json[<origin>]).
145
178
  const storageState = storageStateFlag ?? environment?.storageState;
146
179
  if (storageState !== undefined && !existsSync(storageState)) {
@@ -178,6 +211,31 @@ export function registerJourneyCommands(program, deps) {
178
211
  return;
179
212
  }
180
213
  const selfHealMode = selfHeal;
214
+ // #453 Q1: a heal needs a change context, and the change/budget flags need a heal — refused
215
+ // (64) before any Journey lookup, git read, model gateway or browser.
216
+ const healRequest = {
217
+ selfHeal: selfHealMode,
218
+ ...(changes === undefined ? {} : { changes }),
219
+ changeNotes: changeNote,
220
+ ...(healMaxAttempts === undefined ? {} : { maxAttempts: healMaxAttempts }),
221
+ ...(healMaxModelCalls === undefined ? {} : { maxModelCalls: healMaxModelCalls }),
222
+ ...(healMaxMs === undefined ? {} : { maxMs: healMaxMs }),
223
+ ...(healMaxRunAttempts === undefined ? {} : { maxRunAttempts: healMaxRunAttempts }),
224
+ ...(healMaxRunMs === undefined ? {} : { maxRunMs: healMaxRunMs }),
225
+ };
226
+ let healScope;
227
+ try {
228
+ validateJourneyHeal(healRequest, CLI_HEAL_NAMES);
229
+ if (selfHealMode !== "fail-closed")
230
+ healScope = await readJourneyChangeScope(healRequest, resolveJourneysDir(deps, dir));
231
+ }
232
+ catch (err) {
233
+ if (err instanceof JourneyHealArgsError || err instanceof ChangesArgsError || err instanceof ChangesInputError) {
234
+ emitJson(program, fail(err.code, err.message));
235
+ return;
236
+ }
237
+ throw err;
238
+ }
181
239
  // When a heal mode is requested, build the SelfHealer HERE (this action
182
240
  // owns `deps` + the credential preflight); a missing/unselected gateway
183
241
  // fails CLOSED before any browser launch, rather than silently running
@@ -187,10 +245,10 @@ export function registerJourneyCommands(program, deps) {
187
245
  // #163: a self-healing run makes model calls — their usage (and full cost) lands on its result.
188
246
  let healUsage;
189
247
  if (selfHealMode !== "fail-closed") {
190
- let judge;
248
+ // #453: the healer is evidence-only — its model is an advisory ranker; judgment never decides a heal.
191
249
  let gen;
192
250
  try {
193
- ({ judge, gen, usage: healUsage } = await buildExploreGateways(deps, { real: real ?? false, fakeAi: fakeAi ?? false }));
251
+ ({ gen, usage: healUsage } = await buildExploreGateways(deps, { real: real ?? false, fakeAi: fakeAi ?? false, jevProvider }));
194
252
  }
195
253
  catch (err) {
196
254
  if (err instanceof MissingCredentialError || err instanceof GatewaySelectionError) {
@@ -201,8 +259,8 @@ export function registerJourneyCommands(program, deps) {
201
259
  }
202
260
  return;
203
261
  }
204
- selfHealer = makeExploreSelfHealer(judge, gen);
205
- policy = { ...policy, selfHeal: { mode: selfHealMode } };
262
+ selfHealer = makeEvidenceSelfHealer(gen, healUsage === undefined ? {} : { usage: healUsage });
263
+ policy = { ...policy, selfHeal: { mode: selfHealMode, budget: journeyHealBudget(healRequest) } };
206
264
  }
207
265
  try {
208
266
  // `runJourneyProgrammatically` validates params UP FRONT (before any
@@ -216,6 +274,7 @@ export function registerJourneyCommands(program, deps) {
216
274
  params: param,
217
275
  policy,
218
276
  selfHealer,
277
+ ...(healScope === undefined ? {} : { heal: { scope: healScope } }),
219
278
  browserPortFactory: deps.explore?.browserPortFactory,
220
279
  ...(browser === undefined ? {} : { browser }),
221
280
  ...(journeyRunEmulation === undefined ? {} : { emulation: journeyRunEmulation }),
@@ -244,14 +303,17 @@ export function registerJourneyCommands(program, deps) {
244
303
  const envelope = ok(intent === undefined ? result : { ...result, intent });
245
304
  if (json) {
246
305
  emitJson(program, envelope);
247
- // "ok" and "healed" (a recovered run) are both successes; only
248
- // "quarantined" is a non-zero exit.
249
- if (result.outcome === "quarantined")
250
- process.exitCode = 1;
306
+ // #453: ok → 0; healed-pending-review → 5 (a proposed revision, never a pass); else 1.
307
+ const code = journeyExitCode(result.outcome);
308
+ if (code !== 0)
309
+ process.exitCode = code;
251
310
  }
252
311
  else {
253
312
  writeRawResult(program, envelope.data);
254
- process.exitCode = result.outcome === "quarantined" ? 1 : 0;
313
+ // #453: a self-heal run also says, in words, what happened and what a person does next.
314
+ if (selfHealMode !== "fail-closed")
315
+ program.configureOutput().writeErr?.(journeyRunSummary(id, result));
316
+ process.exitCode = journeyExitCode(result.outcome);
255
317
  }
256
318
  }
257
319
  catch (err) {
@@ -282,7 +344,7 @@ export function registerJourneyCommands(program, deps) {
282
344
  emitJson(program, fail("E_JOURNEY_RUN", String(err)));
283
345
  }
284
346
  }
285
- });
347
+ }));
286
348
  // #124 — promote a local Journey so it becomes discoverable/runnable (journey
287
349
  // find / MCP find_capabilities / run_journey), mirroring `mission target
288
350
  // promote`'s human-approval-gate semantics: promoting is a deliberate,
@@ -290,27 +352,130 @@ export function registerJourneyCommands(program, deps) {
290
352
  // always starts `false` — see `explore-author-journey`/`jevitate record`).
291
353
  journey
292
354
  .command("promote <id>")
293
- .description("promote a local Journey (human-approval gate) so it becomes discoverable/runnable")
355
+ .description("promote a local Journey (human-approval gate) so it becomes discoverable/runnable; shows its review sheet first and records the approval")
294
356
  .option("--dir <path>", "journeys directory (default: the repo's .jevitate/journeys; outside a repo ~/.jevitate/journeys)")
295
357
  .option("--accept-weak <reason>", "#401: promote a Journey whose assertions cannot prove its outcome, recording the reason")
358
+ .option("--reviewed-hash <hash>", "#432: the content hash of the review sheet you read; refused (E_JOURNEY_REVIEW_STALE) if the Journey changed since")
359
+ .option("--review-sheet <file>", "#432: the review sheet file you read (journey review --out); its content hash binds the approval like --reviewed-hash")
360
+ .option("--accept-unvetted <reason>", "#433: promote although its linked job/persona is not approved (unknown, draft or stale), recording the reason in approval.waivers")
361
+ .option("--accept-findings <reason>", "#433: promote although pre-approval findings need an acknowledgment, recording the reason in approval.acceptedFindings")
362
+ .option("--real", `${REAL_JEV_FLAG_HELP}; a conflicting/duplicate pair classification at or above the documented threshold then needs --accept-findings`)
363
+ .option("--jev-provider <provider>", JEV_PROVIDER_FLAG_HELP, jevProviderArg)
364
+ .option("--non-interactive-approval <reason>", "#437: approve without a terminal confirmation (a scripted setup), recorded as channel non-interactive (ci under a CI marker) with the reason — never as a person's; check --require-approvals fails it. A coding agent never uses this: it hands the approval to a person")
365
+ .option("--proposal <pid>", "#453: accept this pending self-heal proposal (journey review shows it): the Journey is replaced by the proposed revision through every gate, bound to its proposedHash")
366
+ .option("--reject-proposal <pid>", "#453: reject this pending self-heal proposal (needs --reason); the stored Journey is untouched")
367
+ .option("--reason <text>", "#453: why the proposal is rejected (recorded with the rejection)")
296
368
  .option("--json", "emit a JSON envelope")
297
369
  .action(async function (id) {
298
- const { dir, json, acceptWeak } = this.opts();
370
+ const { dir, json, acceptWeak, reviewedHash: hashFlag, reviewSheet, acceptUnvetted, acceptFindings, real, jevProvider, nonInteractiveApproval, proposal, rejectProposal, reason } = this.opts();
299
371
  try {
300
- const journeyResult = await promoteJourney(resolveJourneysDir(deps, dir), id, acceptWeak === undefined ? {} : { acceptWeak });
372
+ checkNonInteractiveReason(nonInteractiveApproval);
373
+ const journeysDir = resolveJourneysDir(deps, dir);
374
+ // #453: the proposal flags, validated before anything is read (an id is 12 hex characters — never a path).
375
+ for (const [flag, value] of [["--proposal", proposal], ["--reject-proposal", rejectProposal]]) {
376
+ if (value !== undefined && !isProposalId(value)) {
377
+ emitJson(program, fail("E_JOURNEY_PROPOSAL_ARGS", `${flag} needs a proposal id (12 hex characters, shown by \`journey review\`), not '${value}'`));
378
+ return;
379
+ }
380
+ }
381
+ if (proposal !== undefined && rejectProposal !== undefined) {
382
+ emitJson(program, fail("E_JOURNEY_PROPOSAL_ARGS", "--proposal and --reject-proposal are exclusive: accept or reject, not both"));
383
+ return;
384
+ }
385
+ if (rejectProposal !== undefined && (reason ?? "").trim() === "") {
386
+ emitJson(program, fail("E_JOURNEY_PROPOSAL_ARGS", "--reject-proposal needs --reason <text> (it is recorded with the rejection)"));
387
+ return;
388
+ }
389
+ if (reason !== undefined && rejectProposal === undefined) {
390
+ emitJson(program, fail("E_JOURNEY_PROPOSAL_ARGS", "--reason belongs to --reject-proposal"));
391
+ return;
392
+ }
393
+ if (proposal !== undefined && reviewSheet !== undefined) {
394
+ emitJson(program, fail("E_JOURNEY_PROPOSAL_ARGS", "--review-sheet binds the stored Journey's hash; with --proposal bind with --reviewed-hash <proposedHash>"));
395
+ return;
396
+ }
397
+ if (rejectProposal !== undefined) {
398
+ const rejected = await promoteJourney(journeysDir, id, {
399
+ rejectProposal,
400
+ reason: reason ?? "",
401
+ rejectProvenance: rejectionProvenance(deps.approval, reason ?? ""),
402
+ });
403
+ if (json)
404
+ emitJson(program, ok({ ...rejected.metadata, rejectedProposal: rejectProposal }));
405
+ else {
406
+ program.configureOutput().writeOut?.(`rejected proposal ${rejectProposal} for journey '${rejected.metadata.id}'; the stored Journey is unchanged\n`);
407
+ process.exitCode = 0;
408
+ }
409
+ return;
410
+ }
411
+ // #432: what the reviewer read — a hash, a sheet file, or (human mode) the sheet shown below.
412
+ let reviewedHash = hashFlag?.trim().toLowerCase();
413
+ if (reviewedHash !== undefined && !/^[0-9a-f]{64}$/.test(reviewedHash)) {
414
+ emitJson(program, fail("E_JOURNEY_REVIEW_ARGS", "--reviewed-hash needs the 64-hex content hash a review sheet shows"));
415
+ return;
416
+ }
417
+ if (reviewSheet !== undefined) {
418
+ let text;
419
+ try {
420
+ text = await readFile(reviewSheet, "utf8");
421
+ }
422
+ catch (e) {
423
+ emitJson(program, fail("E_JOURNEY_REVIEW_ARGS", `cannot read --review-sheet ${reviewSheet}: ${e instanceof Error ? e.message : String(e)}`));
424
+ return;
425
+ }
426
+ const fromSheet = reviewSheetHash(text);
427
+ if (reviewedHash !== undefined && reviewedHash !== fromSheet) {
428
+ emitJson(program, fail("E_JOURNEY_REVIEW_ARGS", "--reviewed-hash and --review-sheet name different content hashes"));
429
+ return;
430
+ }
431
+ reviewedHash = fromSheet;
432
+ }
433
+ // #434/#435: the readiness checks and the catalog analysis run before every approval; Jev only with --real.
434
+ const jev = await jevSetupFor(deps, resolveCatalogDir(deps.catalogDir), { real, jevProvider });
435
+ if (!json) {
436
+ // Human mode: the sheet is shown before promoting, and the approval binds to what was shown.
437
+ const { review } = await reviewJourneyById(journeysDir, id, { ...targetsOpts(deps), catalogDir: resolveCatalogDir(deps.catalogDir), readiness: true, jev, action: "journey promote" });
438
+ program.configureOutput().writeOut?.(`${renderReviewText(review)}\n`);
439
+ reviewedHash ??= proposal === undefined ? review.contentHash : review.proposal?.proposedHash;
440
+ }
441
+ const journeyResult = await promoteJourney(journeysDir, id, {
442
+ jev,
443
+ ...(proposal === undefined ? {} : { proposal }),
444
+ ...(acceptWeak === undefined ? {} : { acceptWeak }),
445
+ ...(reviewedHash === undefined ? {} : { reviewedHash }),
446
+ ...(acceptUnvetted === undefined ? {} : { acceptUnvetted }),
447
+ ...(acceptFindings === undefined ? {} : { acceptFindings }),
448
+ catalogDir: resolveCatalogDir(deps.catalogDir),
449
+ // #437: a typed confirmation on a TTY (or the escape hatch, or the MCP channel), recorded as provenance.
450
+ confirm: makeApprovalConfirm(deps.approval, nonInteractiveApproval === undefined ? {} : { nonInteractiveReason: nonInteractiveApproval }),
451
+ });
301
452
  const envelope = ok(journeyResult.metadata);
302
453
  if (json) {
303
454
  emitJson(program, envelope);
304
455
  }
305
456
  else {
306
- program.configureOutput().writeOut?.(`promoted journey '${journeyResult.metadata.id}'\n`);
457
+ program.configureOutput().writeOut?.(`promoted journey '${journeyResult.metadata.id}' (approved content hash ${journeyResult.metadata.approval?.contentHash ?? ""}; ${describeProvenance(journeyResult.metadata.approval?.provenance)})\n`);
307
458
  process.exitCode = 0;
308
459
  }
309
460
  }
310
461
  catch (err) {
311
- if (err instanceof UnknownJourneyError) {
462
+ const refusal = approvalRefusal(err);
463
+ if (refusal !== null) {
464
+ emitJson(program, fail(refusal.code, refusal.message));
465
+ }
466
+ else if (err instanceof UnknownJourneyError) {
312
467
  emitJson(program, fail("E_UNKNOWN_JOURNEY", String(err.message)));
313
468
  }
469
+ else if (err instanceof JourneyProposalArgsError ||
470
+ err instanceof JourneyProposalNotFoundError ||
471
+ err instanceof JourneyProposalStaleError ||
472
+ err instanceof JourneyProposalProofError ||
473
+ err instanceof JourneyProposalInvalidError) {
474
+ emitJson(program, fail(err.code, err.message));
475
+ }
476
+ else if (err instanceof StaleReviewError || err instanceof ReviewSheetError || err instanceof ReviewSidecarError || err instanceof TargetConfigError) {
477
+ emitJson(program, fail(err instanceof TargetConfigError ? "E_TARGET_CONFIG" : err.code, err.message));
478
+ }
314
479
  else if (err instanceof WeakJourneyError) {
315
480
  // #401: the findings printed before the refusal (human mode); the reason the gate is here.
316
481
  if (!json) {
@@ -321,11 +486,80 @@ export function registerJourneyCommands(program, deps) {
321
486
  emitJson(program, fail("E_JOURNEY_WEAK", String(err.message)));
322
487
  process.exitCode = 1;
323
488
  }
489
+ else if (err instanceof UnvettedLinksError || err instanceof ApprovalFindingsError) {
490
+ // #433: a gate on the catalog — exit 1 (a gating finding), like E_JOURNEY_WEAK.
491
+ emitJson(program, fail(err.code, err.message));
492
+ process.exitCode = 1;
493
+ }
494
+ else if (err instanceof CatalogInputError) {
495
+ emitJson(program, fail(err.code, err.message));
496
+ }
497
+ else if (err instanceof GatewaySelectionError || err instanceof MissingCredentialError) {
498
+ emitJson(program, fail("E_AI_SETUP_REQUIRED", err.message));
499
+ }
324
500
  else {
325
501
  emitJson(program, fail("E_JOURNEY_PROMOTE", String(err instanceof Error ? err.message : err)));
326
502
  }
327
503
  }
328
504
  });
505
+ // #432 — the review sheet a reviewer reads before `journey promote`: what the Journey does, what it
506
+ // changes, what it proves, what changed since its last approval, and the content hash to bind to.
507
+ journey
508
+ .command("review <id>")
509
+ .description("a human-readable review sheet for promotion sign-off: summary, steps, side effects, inputs (names only), proof, change since last approval, content hash")
510
+ .option("--dir <path>", "journeys directory (default: the repo's .jevitate/journeys; outside a repo ~/.jevitate/journeys)")
511
+ .option("--markdown", "render the sheet as Markdown")
512
+ .option("--out <file>", "write the sheet (JSON with --json, Markdown with --markdown, else text) to this file")
513
+ .option("--readiness", READINESS_FLAG_HELP)
514
+ .option("--real", REAL_JEV_FLAG_HELP)
515
+ .option("--jev-provider <provider>", JEV_PROVIDER_FLAG_HELP, jevProviderArg)
516
+ .option("--json", "emit a JSON envelope (the schema-checked sheet)")
517
+ .action(async function (id) {
518
+ const { dir, json, markdown, out: outFile, readiness, real, jevProvider } = this.opts();
519
+ if (json === true && markdown === true) {
520
+ emitJson(program, fail("E_JOURNEY_REVIEW_ARGS", "--json and --markdown are exclusive: pick one rendering"));
521
+ return;
522
+ }
523
+ try {
524
+ const jev = await jevSetupFor(deps, resolveCatalogDir(deps.catalogDir), { real, jevProvider });
525
+ const { review } = await reviewJourneyById(resolveJourneysDir(deps, dir), id, { ...targetsOpts(deps), catalogDir: resolveCatalogDir(deps.catalogDir), readiness: readiness === true, jev });
526
+ const rendered = json ? `${JSON.stringify(review, null, 2)}\n` : markdown ? renderReviewMarkdown(review) : renderReviewText(review);
527
+ if (outFile !== undefined)
528
+ await writeFile(outFile, rendered, { mode: 0o600 });
529
+ if (json) {
530
+ emitJson(program, ok(review));
531
+ }
532
+ else if (outFile !== undefined) {
533
+ program.configureOutput().writeOut?.(`review sheet for journey '${review.id}' written to ${outFile} (content hash ${review.contentHash})\n`);
534
+ }
535
+ else {
536
+ program.configureOutput().writeOut?.(rendered);
537
+ }
538
+ emitUsageLine(program, review.jev);
539
+ // #434: a review never fails on its findings (readiness and Jev answers are advice).
540
+ process.exitCode = 0;
541
+ }
542
+ catch (err) {
543
+ if (err instanceof UnknownJourneyError) {
544
+ emitJson(program, fail("E_UNKNOWN_JOURNEY", String(err.message)));
545
+ }
546
+ else if (err instanceof ReviewSidecarError || err instanceof CatalogInputError) {
547
+ emitJson(program, fail(err.code, err.message));
548
+ }
549
+ else if (err instanceof TargetConfigError) {
550
+ emitJson(program, fail("E_TARGET_CONFIG", err.message));
551
+ }
552
+ else if (err instanceof GatewaySelectionError || err instanceof MissingCredentialError) {
553
+ emitJson(program, fail("E_AI_SETUP_REQUIRED", err.message));
554
+ }
555
+ else if (err instanceof Error && err.message.startsWith("Invalid journey id")) {
556
+ emitJson(program, fail("E_JOURNEY_REVIEW_ARGS", err.message));
557
+ }
558
+ else {
559
+ emitJson(program, fail("E_JOURNEY_REVIEW", String(err instanceof Error ? err.message : err)));
560
+ }
561
+ }
562
+ });
329
563
  // #401 — the assertion-strength lint: which assertions cannot prove the Journey's outcome. CI can
330
564
  // gate on it (`--json`/`--sarif`, exit 1 when any error); `promote` runs the same lint first.
331
565
  journey
@@ -1 +1 @@
1
- {"version":3,"file":"journey-cli.js","sourceRoot":"","sources":["../src/journey-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journey-cli.js","sourceRoot":"","sources":["../src/journey-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import type { HealBudget, SelfHealMode } from "@jevitate/domain";
2
+ import { type ChangeScope, type JourneyRunResult, type StepRiskClassifier } from "@jevitate/runtime";
3
+ import { SafetyPolicy } from "@jevitate/explore";
4
+ import { type GitExec } from "./change-context.js";
5
+ /**
6
+ * #453: the change-aware self-heal inputs `journey run` and MCP `run_journey` share — the change
7
+ * context (`--changes <range>`, `--change-note`), the heal budget flags, and their refusals. Every
8
+ * refusal happens before any Journey is looked up or any browser opens.
9
+ */
10
+ /** A self-heal argument combination that is unusable (exit 64). */
11
+ export declare class JourneyHealArgsError extends Error {
12
+ readonly code: "E_JOURNEY_RUN_ARGS";
13
+ constructor(message: string);
14
+ }
15
+ /** What a caller asked for (CLI flags or MCP arguments). */
16
+ export interface JourneyHealRequest {
17
+ readonly selfHeal: SelfHealMode;
18
+ readonly changes?: string;
19
+ readonly changeNotes: readonly string[];
20
+ readonly maxAttempts?: number;
21
+ readonly maxModelCalls?: number;
22
+ readonly maxMs?: number;
23
+ readonly maxRunAttempts?: number;
24
+ readonly maxRunMs?: number;
25
+ }
26
+ /** How each budget input is named on a surface (CLI flags vs MCP argument names), for refusals. */
27
+ export interface JourneyHealNames {
28
+ readonly selfHeal: string;
29
+ readonly changes: string;
30
+ readonly changeNote: string;
31
+ readonly budget: string;
32
+ readonly maxAttempts: string;
33
+ readonly maxRunAttempts: string;
34
+ readonly maxMs: string;
35
+ readonly maxRunMs: string;
36
+ }
37
+ export declare const CLI_HEAL_NAMES: JourneyHealNames;
38
+ export declare const MCP_HEAL_NAMES: JourneyHealNames;
39
+ /**
40
+ * Q1: a heal mode needs a change context (`--changes` and/or `--change-note`) — every break would
41
+ * otherwise be unexplained; the change and budget inputs need a heal mode. The range's syntax and the
42
+ * notes are checked here too (`ChangesArgsError`). Pure: no git, no store, no browser.
43
+ */
44
+ export declare function validateJourneyHeal(r: JourneyHealRequest, names?: JourneyHealNames): void;
45
+ /**
46
+ * The run's `HealBudget`: the defaults, with the given per-step and per-run limits. A run limit is
47
+ * never below its step limit: a given one below it is refused by `validateJourneyHeal` (exit 64);
48
+ * an unset one defaults to at least the step limit.
49
+ */
50
+ export declare function journeyHealBudget(r: JourneyHealRequest): HealBudget;
51
+ /**
52
+ * Reads the change context (read-only git, `readChangeScope`) in the repository that holds the
53
+ * Journeys directory (its git root; the directory itself when it is in none — a range then fails
54
+ * `E_CHANGES_INPUT`). Notes only: no git at all. A fail-closed run has the empty scope.
55
+ */
56
+ export declare function readJourneyChangeScope(r: JourneyHealRequest, journeysDir: string, exec?: GitExec): Promise<ChangeScope>;
57
+ /**
58
+ * #453 (Q2): the risky/irreversible classification of a click/fill step's control, from explore's
59
+ * `SafetyPolicy` (the built-in session-end / destructive / paid vocabulary). Every anchor the target
60
+ * carries is checked — its accessible name, label, text, and its test id / css tokens read as words —
61
+ * so a control addressed only by `data-testid="delete-account"` is still classified. A control with
62
+ * no readable anchor at all is treated as risky: it cannot be classified, so it is never healed.
63
+ */
64
+ export declare function journeyStepRisk(policy?: SafetyPolicy): StepRiskClassifier;
65
+ /**
66
+ * #453: the human summary of a self-heal `journey run` (stderr; stdout keeps the JSON result). A
67
+ * proposed revision names each retargeted step and — once the run wrote a proposal (its `proposal.id`
68
+ * on the result) — the review and accept commands; an exhausted or unexplained break names the step.
69
+ */
70
+ export declare function journeyRunSummary(id: string, result: JourneyRunResult & {
71
+ proposal?: {
72
+ id?: unknown;
73
+ };
74
+ }): string;