@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,7 +1,12 @@
1
1
  import { FsJourneyStore, JourneyRegistry, ParamValidationError, deriveParamSchema, describeStep, flatJourneySteps, journeyPrefix, lintJourney, secretParamValues, validateParams } from "@jevitate/journey";
2
+ import { programmaticProvenance } from "./approval-provenance.js";
3
+ import { checkProposal, deleteJourneyProposal, proposedJourney, rejectJourneyProposal, requireJourneyProposal } from "./journey-proposal-store.js";
4
+ import { journeyReviewHash } from "./journey-review.js";
5
+ import { writeApprovedSnapshot } from "./journey-review-store.js";
6
+ import { journeyCatalogGate, resolveCatalogDir } from "./catalog-api.js";
2
7
  import { redactText } from "@jevitate/ai-core";
3
- import { safeRunPolicy, clock } from "@jevitate/domain";
4
- import { join } from "node:path";
8
+ import { safeRunPolicy, runTagsOf, clock } from "@jevitate/domain";
9
+ import { dirname, join } from "node:path";
5
10
  import { PlaywrightBrowserPort } from "@jevitate/playwright";
6
11
  import { assertSameExtensionBuild, closeOnce, finalizeVideos, runVideoDir, sessionLaunchOptions } from "./browser-run-options.js";
7
12
  import { artifactStamp } from "./mission-journal.js";
@@ -13,7 +18,15 @@ import { writeClassifier } from "@jevitate/recording";
13
18
  import { BrowseTheWebToken } from "@jevitate/screenplay";
14
19
  import { SecretPixelMask, maskingPort } from "./demo-capture.js";
15
20
  import { RunScreenshots, composeObservers, screenshotObserver, screenshotsDirFor } from "./run-screenshots.js";
16
- import { JourneyRunner } from "@jevitate/runtime";
21
+ import { JourneyRunner, flattenRecording, retargetRecording } from "@jevitate/runtime";
22
+ import { journeyStepRisk } from "./journey-heal.js";
23
+ import { installHealProbeGuard } from "./heal-probe-guard.js";
24
+ import { journeyResultRecord } from "./journey-result-record.js";
25
+ import { JourneyProposalProofError, writeJourneyProposal } from "./journey-proposal-store.js";
26
+ import { stampRunMetadata } from "./run-metadata.js";
27
+ import { recordRun } from "./run-index.js";
28
+ import { captureStepScreenshot } from "./demo-capture.js";
29
+ import { mkdir, writeFile } from "node:fs/promises";
17
30
  import { gateJourney } from "./site-gate-cli.js";
18
31
  import { substituteSetupRefs } from "./mission-fixtures.js";
19
32
  import { applyJourneyEnvironment } from "./environments.js";
@@ -36,6 +49,14 @@ export class JourneyRequiresAuthError extends Error {
36
49
  * #401: the Journey's assertions cannot prove its outcome (the `lintJourney` errors). `promote`
37
50
  * refuses unless the reviewer accepts it with a non-empty `--accept-weak <reason>`.
38
51
  */
52
+ /** #432: `journey promote --reviewed-hash`: the Journey changed after the reviewer's sheet was produced. */
53
+ export class StaleReviewError extends Error {
54
+ code = "E_JOURNEY_REVIEW_STALE";
55
+ }
56
+ /** #453: a bad combination of proposal flags (`--proposal` with `--reject-proposal`; a rejection with no reason). Exit 64. */
57
+ export class JourneyProposalArgsError extends Error {
58
+ code = "E_JOURNEY_PROPOSAL_ARGS";
59
+ }
39
60
  export class WeakJourneyError extends Error {
40
61
  findings;
41
62
  constructor(message, findings = []) {
@@ -94,18 +115,6 @@ export async function lintJourneyById(dir, id, opts = {}) {
94
115
  warnings: findings.filter((f) => f.level === "warning").length,
95
116
  };
96
117
  }
97
- /**
98
- * Promotes a local Journey (#124, mirrors `promoteMissionTarget` in
99
- * `mission-api.ts`) so it becomes discoverable via `journey find`/MCP
100
- * `find_capabilities` and runnable via `run_journey` — a human-approval gate,
101
- * same as `mission target promote`. An unknown id is refused with
102
- * `UnknownJourneyError` (never silently created). Returns the persisted,
103
- * now-promoted Journey.
104
- *
105
- * #401: lints first — a Journey whose assertions cannot prove its outcome is refused
106
- * (`WeakJourneyError`) unless the reviewer accepts it with a non-empty `--accept-weak <reason>`,
107
- * which is recorded on the Journey (`metadata.acceptedWeak`). Warnings never block.
108
- */
109
118
  export async function promoteJourney(dir, id, opts = {}) {
110
119
  const store = new FsJourneyStore(dir);
111
120
  const registry = new JourneyRegistry(store);
@@ -113,7 +122,30 @@ export async function promoteJourney(dir, id, opts = {}) {
113
122
  if (!existing) {
114
123
  throw new UnknownJourneyError(`unknown journey '${id}'`);
115
124
  }
116
- const errors = lintJourney(existing).filter((f) => f.level === "error");
125
+ if (opts.proposal !== undefined && opts.rejectProposal !== undefined) {
126
+ throw new JourneyProposalArgsError("--proposal and --reject-proposal are exclusive: accept or reject, not both");
127
+ }
128
+ if (opts.rejectProposal !== undefined) {
129
+ const why = opts.reason?.trim() ?? "";
130
+ if (why === "")
131
+ throw new JourneyProposalArgsError("--reject-proposal needs --reason <text> (it is recorded with the rejection)");
132
+ await rejectJourneyProposal(dir, id, opts.rejectProposal, { reason: why, provenance: opts.rejectProvenance ?? programmaticProvenance() });
133
+ return existing;
134
+ }
135
+ // #453: the proposal being accepted, re-checked against the stored Journey; the gates below judge the Journey it would make.
136
+ const proposal = opts.proposal === undefined ? null : await requireJourneyProposal(dir, id, opts.proposal);
137
+ if (proposal !== null) {
138
+ const problem = checkProposal(existing, proposal);
139
+ if (problem !== null)
140
+ throw problem;
141
+ }
142
+ const subject = proposal === null ? existing : proposedJourney(existing, proposal);
143
+ // #432: approval binds to what the reviewer read — refused when the Journey changed since.
144
+ const contentHash = journeyReviewHash(subject);
145
+ if (opts.reviewedHash !== undefined && opts.reviewedHash.trim().toLowerCase() !== contentHash) {
146
+ throw new StaleReviewError(`journey '${id}' changed after its review sheet was produced (reviewed ${opts.reviewedHash.trim()}, now ${contentHash}) — review it again: jevitate journey review ${id}`);
147
+ }
148
+ const errors = lintJourney(subject).filter((f) => f.level === "error");
117
149
  const reason = opts.acceptWeak?.trim() ?? "";
118
150
  if (errors.length > 0 && reason === "") {
119
151
  throw new WeakJourneyError([
@@ -122,14 +154,57 @@ export async function promoteJourney(dir, id, opts = {}) {
122
154
  "strengthen the Journey or pass --accept-weak <reason>",
123
155
  ].join("\n"), errors);
124
156
  }
125
- if (errors.length > 0) {
126
- const acceptedWeak = { reason, rules: [...new Set(errors.map((f) => f.rule))] };
127
- await store.put({ ...existing, metadata: { ...existing.metadata, promoted: true, acceptedWeak } });
128
- return (await registry.get(id)) ?? { ...existing, metadata: { ...existing.metadata, promoted: true, acceptedWeak } };
129
- }
130
- await registry.promote(id);
131
- const promoted = await registry.get(id);
132
- return promoted ?? { ...existing, metadata: { ...existing.metadata, promoted: true } };
157
+ const acceptedWeak = errors.length > 0 ? { reason, rules: [...new Set(errors.map((f) => f.rule))] } : undefined;
158
+ const gate = await journeyCatalogGate(subject, {
159
+ catalogDir: opts.catalogDir === undefined ? resolveCatalogDir(undefined) : opts.catalogDir,
160
+ journeysDir: dir,
161
+ action: opts.action ?? "journey promote",
162
+ ...(opts.acceptUnvetted === undefined ? {} : { acceptUnvetted: opts.acceptUnvetted }),
163
+ ...(opts.acceptFindings === undefined ? {} : { acceptFindings: opts.acceptFindings }),
164
+ ...(opts.jev === undefined ? {} : { jev: opts.jev }),
165
+ });
166
+ // #437: the person confirms the approval and each waiver given with it (or it is refused) — then it is recorded with how it was made.
167
+ const provenance = opts.confirm === undefined
168
+ ? programmaticProvenance()
169
+ : await opts.confirm({
170
+ kind: opts.action === "demo approve" ? "demo" : "journey",
171
+ id,
172
+ contentHash,
173
+ ...(proposal === null
174
+ ? {}
175
+ : {
176
+ proposal: {
177
+ id: proposal.proposalId,
178
+ baseHash: proposal.baseHash,
179
+ steps: proposal.steps.map((st) => ({ number: st.index + 1, before: describeStep(st.before), after: describeStep(st.after) })),
180
+ },
181
+ }),
182
+ waivers: [
183
+ ...(acceptedWeak === undefined ? [] : [{ flag: "--accept-weak", reason: acceptedWeak.reason, detail: acceptedWeak.rules.join(", ") }]),
184
+ ...(gate.waivers ?? []).map((w) => ({ flag: "--accept-unvetted", reason: w.reason, detail: w.items.join(", ") })),
185
+ ...(gate.acceptedFindings === undefined ? [] : [{ flag: "--accept-findings", reason: gate.acceptedFindings.reason, detail: gate.acceptedFindings.findings.join(", ") }]),
186
+ ],
187
+ });
188
+ const approval = {
189
+ contentHash,
190
+ at: clock.nowIso(),
191
+ provenance,
192
+ ...(acceptedWeak === undefined ? {} : { acceptedWeak: { ...acceptedWeak, provenance } }),
193
+ ...(gate.waivers === undefined ? {} : { waivers: gate.waivers.map((w) => ({ ...w, provenance })) }),
194
+ ...(gate.acceptedFindings === undefined ? {} : { acceptedFindings: { ...gate.acceptedFindings, provenance } }),
195
+ ...(proposal === null ? {} : { proposal: { id: proposal.proposalId, baseHash: proposal.baseHash, steps: proposal.steps.map((st) => st.index) } }),
196
+ };
197
+ const promoted = {
198
+ ...subject,
199
+ metadata: { ...existing.metadata, promoted: true, ...(acceptedWeak === undefined ? {} : { acceptedWeak }), approval },
200
+ };
201
+ await store.put(promoted);
202
+ // #432: the Journey as approved — the next review diffs against it ("change since last approval").
203
+ await writeApprovedSnapshot(dir, promoted);
204
+ // #453: an accepted proposal is spent.
205
+ if (proposal !== null)
206
+ await deleteJourneyProposal(dir, id);
207
+ return (await registry.get(id)) ?? promoted;
133
208
  }
134
209
  /**
135
210
  * The one programmatic surface for "run this published Journey by id" —
@@ -187,7 +262,10 @@ export async function runJourneyProgrammatically(opts, mutation = {}) {
187
262
  const rawPort = (opts.browserPortFactory ?? (() => new PlaywrightBrowserPort()))();
188
263
  return capturing ? maskingPort(rawPort, mask) : rawPort;
189
264
  };
190
- const artifactName = `journey-${opts.id.replace(/[^A-Za-z0-9._-]/g, "_")}-${artifactStamp(clock.nowIso())}.json`;
265
+ const startedAt = clock.nowIso();
266
+ const stampBase = `journey-${opts.id.replace(/[^A-Za-z0-9._-]/g, "_")}-${artifactStamp(startedAt)}`;
267
+ const artifactName = `${stampBase}.json`;
268
+ const healDir = join(logsDirFor(), `${stampBase}.heal`);
191
269
  // #245: `--record-video` → `journey-<id>-<stamp>.videos/` under the given dir, else the logs dir.
192
270
  const videoDir = opts.browser?.recordVideo === undefined || opts.session !== undefined
193
271
  ? undefined
@@ -226,13 +304,19 @@ export async function runJourneyProgrammatically(opts, mutation = {}) {
226
304
  // and each step's request expectations.
227
305
  const outcomeChecks = new JourneyOutcomeChecks(session.page, journey === full ? replayed : undefined, { secrets });
228
306
  const blocker = mutation.blockWritesAtStep === undefined ? undefined : await stepWriteBlocker(session.page, mutation.blockWritesAtStep, allowedOrigins);
307
+ // #453 (Q2): a guarded click/fill heal probe runs under a per-step write blocker.
308
+ // Context-level (popups, WebSockets), no write exemptions; see heal-probe-guard.ts.
309
+ const healGuard = opts.heal === undefined || policy.selfHeal.mode === "fail-closed" ? undefined : await installHealProbeGuard(session.page);
229
310
  const observer = composeObservers(outcomeChecks.observer(), blocker?.observer, replayDeltas?.observer(), opts.observer, shots === undefined ? undefined : screenshotObserver(shots, (a) => a.ability(BrowseTheWebToken).session.page, whatOf));
230
311
  const skipStep = mutation.skipStep;
231
312
  const interpreter = opts.interpreter ??
232
- (opts.observer === undefined && shots === undefined && replayDeltas === undefined && outcomeChecks.observer() === undefined && blocker === undefined && skipStep === undefined
313
+ (opts.observer === undefined && shots === undefined && replayDeltas === undefined && outcomeChecks.observer() === undefined && blocker === undefined && healGuard === undefined && skipStep === undefined
233
314
  ? new RecordingInterpreter()
234
315
  : new RecordingInterpreter({ observer, ...(skipStep === undefined ? {} : { skipStep: (i) => skipStep(i) }) }));
235
- const runner = new JourneyRunner(actor, interpreter, undefined, undefined, opts.selfHealer);
316
+ const heal = opts.heal === undefined || healGuard === undefined
317
+ ? undefined
318
+ : { scope: opts.heal.scope, riskOf: journeyStepRisk(), writeGuard: healGuard.guard, allowedOrigins, observe: healObserver(healDir, mask) };
319
+ const runner = new JourneyRunner(actor, interpreter, undefined, undefined, opts.selfHealer, heal);
236
320
  let result;
237
321
  try {
238
322
  result = redactSecretParams(await outcomeChecks.run(actor, () => runner.run({ journey: replayed, params, policy })), journey, params);
@@ -240,6 +324,18 @@ export async function runJourneyProgrammatically(opts, mutation = {}) {
240
324
  finally {
241
325
  await gate.done();
242
326
  await blocker?.guard.disarm();
327
+ await healGuard?.guard.disarm();
328
+ await healGuard?.dispose();
329
+ }
330
+ // #453: a self-heal run persists its record (heal attempts, the proposal) and indexes it.
331
+ // #453 review: a run that cannot write its proposal (a prefix or mutated replay, a proof error)
332
+ // is never pending review — `persistHealRun` reports it quarantined, saying why.
333
+ let healFields = {};
334
+ if (policy.selfHeal.mode !== "fail-closed") {
335
+ const unwritable = journey !== full ? "only a prefix of the Journey ran" : mutation.mutateJourney !== undefined ? "a mutated copy of the Journey ran" : undefined;
336
+ const persisted = await persistHealRun({ result, stored, params, secrets, opts, stampBase, startedAt, ...(unwritable === undefined ? {} : { unwritable }) });
337
+ result = persisted.result;
338
+ healFields = persisted.fields;
243
339
  }
244
340
  const mutationFields = {
245
341
  ...(mutation.structuredFailures === true ? { outcomeFailures: redactSecretParams([...outcomeChecks.lastFailures], journey, params) } : {}),
@@ -250,10 +346,10 @@ export async function runJourneyProgrammatically(opts, mutation = {}) {
250
346
  // #245: the context closed (its video finalized) before the result naming it is returned.
251
347
  const videos = await finalizeVideos(videoDir, closeSession);
252
348
  if (fx === undefined)
253
- return { ...result, ...videos, ...shotFields, ...deltaFields, ...mutationFields };
349
+ return { ...result, ...healFields, ...videos, ...shotFields, ...deltaFields, ...mutationFields };
254
350
  await fx.restore();
255
351
  // #399: a fixture output passed in as a secret param (`--param t='${setup.t}'`) is redacted here too.
256
- return { ...result, ...videos, ...shotFields, ...deltaFields, ...mutationFields, fixtures: redactSecretParams(fx.record(), journey, params) };
352
+ return { ...result, ...healFields, ...videos, ...shotFields, ...deltaFields, ...mutationFields, fixtures: redactSecretParams(fx.record(), journey, params) };
257
353
  }
258
354
  finally {
259
355
  await closeSession();
@@ -268,6 +364,119 @@ export async function runJourneyProgrammatically(opts, mutation = {}) {
268
364
  await fx?.restore();
269
365
  }
270
366
  }
367
+ /** The heal probe's evidence: a masked screenshot of the page after each candidate, under `<logs>/journey-<id>-<stamp>.heal/`. */
368
+ function healObserver(dir, mask) {
369
+ return async (actor, at) => {
370
+ const page = actor.ability(BrowseTheWebToken).session.page;
371
+ await mkdir(dir, { recursive: true });
372
+ const path = join(dir, `step-${at.stepIndex + 1}-attempt-${at.attempt}.png`);
373
+ await captureStepScreenshot(page, path, { step: at.stepIndex }, [mask.layer()]);
374
+ return { screenshot: path };
375
+ };
376
+ }
377
+ /**
378
+ * #453: writes the proposal of a `healed-pending-review` run (the stored Journey is never written)
379
+ * and the run's `journey-<id>-<stamp>.result.json` (recorded in the run index). Returns the result
380
+ * to report and the fields to put on it: the `proposal` handle, the `resultPath`.
381
+ *
382
+ * A run on an environment (`--env` / `--base-url`) proposes against the STORED Journey: a retarget
383
+ * changes a target or a navigate path, and a navigate URL moved onto the environment's base URL is
384
+ * moved back onto the recorded site. Where no proposal can be written (`unwritable`: a prefix or
385
+ * mutated replay; or a revision the proof check refuses) the run is NOT pending review — there is
386
+ * nothing to accept — it is reported `quarantined`, its reason saying why no proposal was written.
387
+ * A `healed-pending-review` result never leaves here without a proposal id.
388
+ */
389
+ async function persistHealRun(a) {
390
+ const resultPath = join(logsDirFor(a.startedAt), `${a.stampBase}.result.json`);
391
+ const id = a.opts.id;
392
+ let result = a.result;
393
+ let proposal;
394
+ if (result.outcome === "healed-pending-review") {
395
+ let why = a.unwritable ?? (result.heal === undefined ? "the run carries no heal record" : undefined);
396
+ if (why === undefined && result.heal !== undefined) {
397
+ const scope = a.opts.heal?.scope;
398
+ try {
399
+ const draft = draftOnStored(a.stored, result.revision, a.opts.environment);
400
+ const written = await writeJourneyProposal(a.opts.dir, {
401
+ journeyId: id,
402
+ base: a.stored,
403
+ draft,
404
+ attempts: result.heal.attempts,
405
+ changes: {
406
+ ...(scope?.range === undefined ? {} : { range: scope.range }),
407
+ ...(scope?.baseSha === undefined ? {} : { baseSha: scope.baseSha }),
408
+ ...(scope?.headSha === undefined ? {} : { headSha: scope.headSha }),
409
+ notes: (scope?.evidence ?? []).flatMap((e) => (e.kind === "note" && e.note !== undefined ? [e.note] : [])),
410
+ },
411
+ runResultPath: resultPath,
412
+ secrets: a.secrets,
413
+ });
414
+ proposal = {
415
+ id: written.proposalId,
416
+ path: written.path,
417
+ steps: draft.steps.map((c) => ({ number: c.index + 1, before: describeStep(c.before), after: describeStep(c.after) })),
418
+ reviewCommand: `jevitate journey review ${id}`,
419
+ acceptCommand: `jevitate journey promote ${id} --proposal ${written.proposalId}`,
420
+ };
421
+ }
422
+ catch (err) {
423
+ // A revision that touches proof (or fails the heal floor) is never stored.
424
+ if (!(err instanceof JourneyProposalProofError))
425
+ throw err;
426
+ why = err.message;
427
+ }
428
+ }
429
+ if (proposal === undefined) {
430
+ result = {
431
+ outcome: "quarantined",
432
+ reason: `the run completed only after a heal, but no proposal was written (${why ?? "unknown"}) — there is nothing to accept; re-run on the recorded site without a prefix or mutation`,
433
+ ...(result.waits === undefined ? {} : { waits: result.waits }),
434
+ ...(result.heal === undefined ? {} : { heal: result.heal }),
435
+ };
436
+ }
437
+ }
438
+ const record = journeyResultRecord(result, { journey: a.stored, params: a.params, startedAt: a.startedAt, ...(proposal === undefined ? {} : { proposal }) });
439
+ const stamped = { ...record, result: stampRunMetadata(record.result) };
440
+ await mkdir(dirname(resultPath), { recursive: true });
441
+ await writeFile(resultPath, `${JSON.stringify(stamped, null, 2)}\n`, "utf8");
442
+ recordRun(resultPath, { tags: runTagsOf(stamped.result) });
443
+ return { result, fields: { ...(proposal === undefined ? {} : { proposal }), resultPath } };
444
+ }
445
+ /**
446
+ * The revision a run on an environment proposed, onto the STORED Journey: each changed step's
447
+ * `before` is the stored step, its `after` the retarget — a navigate URL on the environment's base
448
+ * URL moved back onto the recorded site. Without an environment the draft is the stored Journey's.
449
+ */
450
+ export function draftOnStored(stored, draft, env) {
451
+ if (env === undefined)
452
+ return draft;
453
+ let recordedOrigin;
454
+ try {
455
+ recordedOrigin = /^https?:\/\//i.test(stored.recording.site) ? new URL(stored.recording.site).origin : undefined;
456
+ }
457
+ catch {
458
+ recordedOrigin = undefined;
459
+ }
460
+ const base = env.baseUrl.replace(/\/+$/, "");
461
+ const unbase = (url) => {
462
+ if (recordedOrigin === undefined || !url.startsWith(base))
463
+ return url;
464
+ const rest = url.slice(base.length);
465
+ return rest === "" || /^[/?#]/.test(rest) ? `${recordedOrigin}${rest}` : url;
466
+ };
467
+ const flat = flattenRecording(stored.recording);
468
+ let recording = stored.recording;
469
+ const steps = draft.steps.map((c) => {
470
+ const before = flat[c.index]?.step;
471
+ if (before === undefined)
472
+ throw new JourneyProposalProofError(`the revision changes step ${c.index + 1}, which the stored Journey does not have`);
473
+ // A target is environment-independent; only an absolute navigate URL was moved (rebaseRecording).
474
+ const after = c.after.kind === "navigate" ? { ...c.after, url: unbase(c.after.url) } : c.after;
475
+ recording = retargetRecording(recording, c.index, after);
476
+ return { ...c, before, after };
477
+ });
478
+ return { recording, steps };
479
+ }
271
480
  /** How long one blocked step's window stays open for the writes its action triggers (network settle). */
272
481
  const BLOCK_WINDOW_SETTLE_MS = 5_000;
273
482
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"journey-api.js","sourceRoot":"","sources":["../src/journey-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAyC,MAAM,mBAAmB,CAAC;AACnP,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAkB,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAA6D,MAAM,sBAAsB,CAAC;AACxH,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAA0B,MAAM,0BAA0B,CAAC;AAC1J,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAqB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAA8C,MAAM,mBAAmB,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAgD,MAAM,sBAAsB,CAAC;AAC7J,OAAO,EAAE,aAAa,EAA6D,MAAM,mBAAmB,CAAC;AAC7G,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAA4C,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAmC,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAA4B,MAAM,6BAA6B,CAAC;AAE7F;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;CAAG;AAEjD;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;CAAG;AAEtD;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACH;IAAtC,YAAY,OAAe,EAAW,WAA0C,EAAE;QAChF,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,aAAQ,GAAR,QAAQ,CAAoC;IAElF,CAAC;CACF;AA+HD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAI,MAAS,EAAE,OAAgB,EAAE,MAA8B;IAC/F,OAAO,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,kBAAkB,CAAI,MAAS,EAAE,OAA0B;IACzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,CAAU,EAAW,EAAE,CACpC,OAAO,CAAC,KAAK,QAAQ;QACnB,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC;QACxB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YACd,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;gBACnC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC,MAAM,CAAM,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,MAAe,EAAE,MAA8B;IACzF,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,2CAA2C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzH,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;IAC5D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,EAAU,EACV,OAA6C,EAAE;IAE/C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,mBAAmB,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAClH,OAAO;QACL,EAAE;QACF,QAAQ;QACR,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;QAC1D,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM;KAC/D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,EAAU,EAAE,OAAgC,EAAE;IAC9F,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,mBAAmB,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,gBAAgB,CACxB;YACE,YAAY,EAAE,SAAS,MAAM,CAAC,MAAM,+BAA+B;YACnE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,uDAAuD;SACxD,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACnG,OAAO,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;IACvH,CAAC;IACD,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,QAAQ,IAAI,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;AACzF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAuC,EACvC,WAAkC,EAAE;IAEpC,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,mBAAmB,CAAC,oBAAoB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,6FAA6F;IAC7F,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/D,0FAA0F;IAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAClG,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACxH,iHAAiH;IACjH,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,wBAAwB,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAElJ,wFAAwF;IACxF,+FAA+F;IAC/F,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC9E,MAAM,IAAI,wBAAwB,CAChC,YAAY,IAAI,CAAC,EAAE,2EAA2E,CAC/F,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,2CAA2C;IAC3C,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9F,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,qGAAqG;IACrG,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;IAE9C,mGAAmG;IACnG,+EAA+E;IAC/E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5J,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,MAAM,GAAG,WAAW,CAAC;IACzB,IAAI,CAAC;QACH,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtI,CAAC;QACD,iHAAiH;QACjH,+FAA+F;QAC/F,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;QAC5H,MAAM,QAAQ,GAAG,GAAgB,EAAE;YACjC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,WAAW,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC;QACjH,kGAAkG;QAClG,MAAM,QAAQ,GACZ,IAAI,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YACnE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAClG,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,KAAK,GACT,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,cAAc,CAAC;gBACjB,IAAI,EAAE,IAAI,CAAC,WAAW;gBACtB,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC;gBAC1E,OAAO;gBACP,KAAK,EAAE,WAAW,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACzC,IAAI;aACL,CAAC,CAAC;QACT,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9G,OAAO,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,sFAAsF;QACtF,MAAM,OAAO,GACX,IAAI,CAAC,OAAO;YACZ,CAAC,MAAM,QAAQ,EAAE,CAAC,IAAI,CAAC;gBACrB,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;gBAC/C,cAAc;gBACd,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI;gBAC/B,GAAG,IAAI,CAAC,SAAS;gBACjB,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChF,CAAC,CAAC,CAAC;QACN,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAmB,EAAE,CAAC,SAAS,CAAC;QAC1H,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAChD,IAAI,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,EACzC,GAAG,IAAI,CAAC,SAAS,CAClB,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnI,gGAAgG;YAChG,wCAAwC;YACxC,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACnH,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;YACxJ,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,aAAa,CAAC,QAAQ,EAAE,EACxB,OAAO,EAAE,QAAQ,EACjB,YAAY,EAAE,QAAQ,EAAE,EACxB,IAAI,CAAC,QAAQ,EACb,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CACtH,CAAC;YACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,MAAM,WAAW,GACf,IAAI,CAAC,WAAW;gBAChB,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,EAAE,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;oBAC5K,CAAC,CAAC,IAAI,oBAAoB,EAAE;oBAC5B,CAAC,CAAC,IAAI,oBAAoB,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3H,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5F,IAAI,MAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,kBAAkB,CACzB,MAAM,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EACvF,OAAO,EACP,MAAM,CACP,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,CAAC;YACD,MAAM,cAAc,GAAyB;gBAC3C,GAAG,CAAC,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1I,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;aAC3E,CAAC;YACF,MAAM,UAAU,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YAC9I,0FAA0F;YAC1F,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC5D,IAAI,EAAE,KAAK,SAAS;gBAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;YACxG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;YACnB,sGAAsG;YACtG,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG,cAAc,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QAChJ,CAAC;gBAAS,CAAC;YACT,MAAM,YAAY,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yFAAyF;QACzF,mFAAmF;QACnF,MAAM,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAAU,EAAE,KAAa,EAAE,cAAiC;IAC1F,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;IACpH,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3B,OAAO;QACL,KAAK;QACL,QAAQ,EAAE;YACR,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;gBACjC,IAAI,CAAC,KAAK,KAAK;oBAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,CAAC;YACD,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;gBAChC,IAAI,CAAC,KAAK,KAAK;oBAAE,OAAO;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBACnE,CAAC;wBAAS,CAAC;oBACT,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,qHAAqH;AACrH,MAAM,UAAU,kBAAkB,CAAC,GAAY,EAAE,OAA0B;IACzE,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAChE,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxE,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"journey-api.js","sourceRoot":"","sources":["../src/journey-api.ts"],"names":[],"mappings":"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"}