@jevitate/cli 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/README.md +23 -0
  2. package/dist/ai-cli.d.ts +31 -11
  3. package/dist/ai-cli.js +131 -88
  4. package/dist/ai-cli.js.map +1 -1
  5. package/dist/author-journey-cli.d.ts +4 -0
  6. package/dist/author-journey-cli.js +111 -0
  7. package/dist/author-journey-cli.js.map +1 -0
  8. package/dist/bin.js +60349 -16477
  9. package/dist/bin.js.map +1 -1
  10. package/dist/browser-run-options.d.ts +89 -0
  11. package/dist/browser-run-options.js +175 -0
  12. package/dist/browser-run-options.js.map +1 -0
  13. package/dist/build-info.generated.d.ts +2 -0
  14. package/dist/build-info.generated.js +10 -0
  15. package/dist/build-info.generated.js.map +1 -0
  16. package/dist/campaign-api.d.ts +151 -0
  17. package/dist/campaign-api.js +446 -0
  18. package/dist/campaign-api.js.map +1 -0
  19. package/dist/campaign-cli.d.ts +6 -0
  20. package/dist/campaign-cli.js +66 -0
  21. package/dist/campaign-cli.js.map +1 -0
  22. package/dist/check-api.d.ts +5 -0
  23. package/dist/check-api.js +234 -0
  24. package/dist/check-api.js.map +1 -0
  25. package/dist/check-budget.d.ts +26 -0
  26. package/dist/check-budget.js +90 -0
  27. package/dist/check-budget.js.map +1 -0
  28. package/dist/check-cli.d.ts +31 -0
  29. package/dist/check-cli.js +109 -0
  30. package/dist/check-cli.js.map +1 -0
  31. package/dist/check-execute.d.ts +29 -0
  32. package/dist/check-execute.js +420 -0
  33. package/dist/check-execute.js.map +1 -0
  34. package/dist/check-plan.d.ts +118 -0
  35. package/dist/check-plan.js +516 -0
  36. package/dist/check-plan.js.map +1 -0
  37. package/dist/check-suite.d.ts +184 -0
  38. package/dist/check-suite.js +540 -0
  39. package/dist/check-suite.js.map +1 -0
  40. package/dist/check-types.d.ts +181 -0
  41. package/dist/check-types.js +35 -0
  42. package/dist/check-types.js.map +1 -0
  43. package/dist/cli-args.d.ts +26 -0
  44. package/dist/cli-args.js +50 -0
  45. package/dist/cli-args.js.map +1 -0
  46. package/dist/cli-output.d.ts +106 -0
  47. package/dist/cli-output.js +563 -0
  48. package/dist/cli-output.js.map +1 -0
  49. package/dist/cli-reference.d.ts +3 -0
  50. package/dist/cli-reference.js +81 -0
  51. package/dist/cli-reference.js.map +1 -0
  52. package/dist/cli-refusal.d.ts +12 -0
  53. package/dist/cli-refusal.js +52 -0
  54. package/dist/cli-refusal.js.map +1 -0
  55. package/dist/cli-shared.d.ts +340 -0
  56. package/dist/cli-shared.js +537 -0
  57. package/dist/cli-shared.js.map +1 -0
  58. package/dist/cli-surface.d.ts +33 -0
  59. package/dist/cli-surface.js +48 -0
  60. package/dist/cli-surface.js.map +1 -0
  61. package/dist/conversation-options.d.ts +15 -0
  62. package/dist/conversation-options.js +10 -0
  63. package/dist/conversation-options.js.map +1 -0
  64. package/dist/credentials-file.d.ts +15 -0
  65. package/dist/credentials-file.js +56 -0
  66. package/dist/credentials-file.js.map +1 -0
  67. package/dist/data-dir.d.ts +1 -1
  68. package/dist/data-dir.js +1 -1
  69. package/dist/defect-evidence.d.ts +141 -0
  70. package/dist/defect-evidence.js +505 -0
  71. package/dist/defect-evidence.js.map +1 -0
  72. package/dist/demo-aspect-api.d.ts +209 -0
  73. package/dist/demo-aspect-api.js +398 -0
  74. package/dist/demo-aspect-api.js.map +1 -0
  75. package/dist/demo-aspect-cli.d.ts +3 -0
  76. package/dist/demo-aspect-cli.js +243 -0
  77. package/dist/demo-aspect-cli.js.map +1 -0
  78. package/dist/demo-capture.d.ts +142 -0
  79. package/dist/demo-capture.js +537 -0
  80. package/dist/demo-capture.js.map +1 -0
  81. package/dist/engine.d.ts +35 -0
  82. package/dist/engine.js +25 -0
  83. package/dist/engine.js.map +1 -0
  84. package/dist/environments.d.ts +155 -0
  85. package/dist/environments.js +364 -0
  86. package/dist/environments.js.map +1 -0
  87. package/dist/exit-codes.d.ts +46 -0
  88. package/dist/exit-codes.js +91 -0
  89. package/dist/exit-codes.js.map +1 -0
  90. package/dist/explore-adversarial.d.ts +144 -0
  91. package/dist/explore-adversarial.js +227 -0
  92. package/dist/explore-adversarial.js.map +1 -0
  93. package/dist/explore-api.d.ts +7 -187
  94. package/dist/explore-api.js +7 -301
  95. package/dist/explore-api.js.map +1 -1
  96. package/dist/explore-author.d.ts +79 -0
  97. package/dist/explore-author.js +86 -0
  98. package/dist/explore-author.js.map +1 -0
  99. package/dist/explore-cli.d.ts +7 -0
  100. package/dist/explore-cli.js +1199 -0
  101. package/dist/explore-cli.js.map +1 -0
  102. package/dist/explore-coverage.d.ts +173 -0
  103. package/dist/explore-coverage.js +246 -0
  104. package/dist/explore-coverage.js.map +1 -0
  105. package/dist/explore-feature.d.ts +125 -0
  106. package/dist/explore-feature.js +218 -0
  107. package/dist/explore-feature.js.map +1 -0
  108. package/dist/explore-goal.d.ts +271 -0
  109. package/dist/explore-goal.js +417 -0
  110. package/dist/explore-goal.js.map +1 -0
  111. package/dist/explore-shared.d.ts +177 -0
  112. package/dist/explore-shared.js +149 -0
  113. package/dist/explore-shared.js.map +1 -0
  114. package/dist/explore-specs.d.ts +53 -0
  115. package/dist/explore-specs.js +333 -0
  116. package/dist/explore-specs.js.map +1 -0
  117. package/dist/findings-filing.d.ts +64 -0
  118. package/dist/findings-filing.js +108 -0
  119. package/dist/findings-filing.js.map +1 -0
  120. package/dist/fixture-auth.d.ts +63 -0
  121. package/dist/fixture-auth.js +95 -0
  122. package/dist/fixture-auth.js.map +1 -0
  123. package/dist/fixture-cli.d.ts +99 -0
  124. package/dist/fixture-cli.js +292 -0
  125. package/dist/fixture-cli.js.map +1 -0
  126. package/dist/github-issue-filer.d.ts +62 -0
  127. package/dist/github-issue-filer.js +189 -0
  128. package/dist/github-issue-filer.js.map +1 -0
  129. package/dist/host-health-run.d.ts +25 -0
  130. package/dist/host-health-run.js +33 -0
  131. package/dist/host-health-run.js.map +1 -0
  132. package/dist/http-5xx-outcome.d.ts +6 -0
  133. package/dist/http-5xx-outcome.js +39 -0
  134. package/dist/http-5xx-outcome.js.map +1 -0
  135. package/dist/inbox-cli.d.ts +7 -0
  136. package/dist/inbox-cli.js +197 -0
  137. package/dist/inbox-cli.js.map +1 -0
  138. package/dist/index.d.ts +1 -0
  139. package/dist/index.js +1 -0
  140. package/dist/index.js.map +1 -1
  141. package/dist/init-cli.d.ts +4 -0
  142. package/dist/init-cli.js +156 -0
  143. package/dist/init-cli.js.map +1 -0
  144. package/dist/init-keys.d.ts +30 -2
  145. package/dist/init-keys.js +19 -5
  146. package/dist/init-keys.js.map +1 -1
  147. package/dist/init-next-steps.d.ts +35 -0
  148. package/dist/init-next-steps.js +79 -0
  149. package/dist/init-next-steps.js.map +1 -0
  150. package/dist/invariants-file.d.ts +34 -0
  151. package/dist/invariants-file.js +68 -0
  152. package/dist/invariants-file.js.map +1 -0
  153. package/dist/invariants-validate.d.ts +30 -0
  154. package/dist/invariants-validate.js +105 -0
  155. package/dist/invariants-validate.js.map +1 -0
  156. package/dist/journey-annotate-api.d.ts +76 -0
  157. package/dist/journey-annotate-api.js +269 -0
  158. package/dist/journey-annotate-api.js.map +1 -0
  159. package/dist/journey-annotate-cli.d.ts +9 -0
  160. package/dist/journey-annotate-cli.js +181 -0
  161. package/dist/journey-annotate-cli.js.map +1 -0
  162. package/dist/journey-api.d.ts +104 -2
  163. package/dist/journey-api.js +163 -20
  164. package/dist/journey-api.js.map +1 -1
  165. package/dist/journey-cli.d.ts +4 -0
  166. package/dist/journey-cli.js +411 -0
  167. package/dist/journey-cli.js.map +1 -0
  168. package/dist/journey-demo-api.d.ts +114 -0
  169. package/dist/journey-demo-api.js +405 -0
  170. package/dist/journey-demo-api.js.map +1 -0
  171. package/dist/journey-demo-cli.d.ts +10 -0
  172. package/dist/journey-demo-cli.js +158 -0
  173. package/dist/journey-demo-cli.js.map +1 -0
  174. package/dist/journey-prefix.d.ts +194 -0
  175. package/dist/journey-prefix.js +279 -0
  176. package/dist/journey-prefix.js.map +1 -0
  177. package/dist/key-report.d.ts +49 -0
  178. package/dist/key-report.js +101 -0
  179. package/dist/key-report.js.map +1 -0
  180. package/dist/kill-signal.d.ts +193 -0
  181. package/dist/kill-signal.js +283 -0
  182. package/dist/kill-signal.js.map +1 -0
  183. package/dist/launch-armed.d.ts +37 -0
  184. package/dist/launch-armed.js +31 -0
  185. package/dist/launch-armed.js.map +1 -0
  186. package/dist/ledger-api.d.ts +106 -0
  187. package/dist/ledger-api.js +239 -0
  188. package/dist/ledger-api.js.map +1 -0
  189. package/dist/ledger-cli.d.ts +18 -0
  190. package/dist/ledger-cli.js +107 -0
  191. package/dist/ledger-cli.js.map +1 -0
  192. package/dist/load-api.d.ts +29 -11
  193. package/dist/load-api.js +23 -15
  194. package/dist/load-api.js.map +1 -1
  195. package/dist/load-cli.d.ts +4 -0
  196. package/dist/load-cli.js +97 -0
  197. package/dist/load-cli.js.map +1 -0
  198. package/dist/log-correlation.d.ts +200 -0
  199. package/dist/log-correlation.js +394 -0
  200. package/dist/log-correlation.js.map +1 -0
  201. package/dist/log-lines.d.ts +131 -0
  202. package/dist/log-lines.js +389 -0
  203. package/dist/log-lines.js.map +1 -0
  204. package/dist/log-sources.d.ts +71 -0
  205. package/dist/log-sources.js +236 -0
  206. package/dist/log-sources.js.map +1 -0
  207. package/dist/log-trace.d.ts +80 -0
  208. package/dist/log-trace.js +210 -0
  209. package/dist/log-trace.js.map +1 -0
  210. package/dist/logs-cli.d.ts +3 -0
  211. package/dist/logs-cli.js +51 -0
  212. package/dist/logs-cli.js.map +1 -0
  213. package/dist/logs-retention.d.ts +28 -0
  214. package/dist/logs-retention.js +85 -0
  215. package/dist/logs-retention.js.map +1 -0
  216. package/dist/masked-input.d.ts +22 -0
  217. package/dist/masked-input.js +99 -0
  218. package/dist/masked-input.js.map +1 -0
  219. package/dist/mcp-api.d.ts +91 -1
  220. package/dist/mcp-api.js +514 -18
  221. package/dist/mcp-api.js.map +1 -1
  222. package/dist/mcp-args.d.ts +50 -0
  223. package/dist/mcp-args.js +164 -0
  224. package/dist/mcp-args.js.map +1 -0
  225. package/dist/mcp-cli-bridge.d.ts +34 -0
  226. package/dist/mcp-cli-bridge.js +62 -0
  227. package/dist/mcp-cli-bridge.js.map +1 -0
  228. package/dist/mcp-cli-runner.d.ts +29 -0
  229. package/dist/mcp-cli-runner.js +44 -0
  230. package/dist/mcp-cli-runner.js.map +1 -0
  231. package/dist/mcp-cli-tools.d.ts +129 -0
  232. package/dist/mcp-cli-tools.js +737 -0
  233. package/dist/mcp-cli-tools.js.map +1 -0
  234. package/dist/mcp-paths.d.ts +28 -0
  235. package/dist/mcp-paths.js +76 -0
  236. package/dist/mcp-paths.js.map +1 -0
  237. package/dist/mission-actors.d.ts +40 -0
  238. package/dist/mission-actors.js +72 -0
  239. package/dist/mission-actors.js.map +1 -0
  240. package/dist/mission-api.d.ts +35 -0
  241. package/dist/mission-api.js +60 -3
  242. package/dist/mission-api.js.map +1 -1
  243. package/dist/mission-cli.d.ts +4 -0
  244. package/dist/mission-cli.js +248 -0
  245. package/dist/mission-cli.js.map +1 -0
  246. package/dist/mission-exit.d.ts +22 -0
  247. package/dist/mission-exit.js +26 -0
  248. package/dist/mission-exit.js.map +1 -0
  249. package/dist/mission-fixtures.d.ts +234 -0
  250. package/dist/mission-fixtures.js +862 -0
  251. package/dist/mission-fixtures.js.map +1 -0
  252. package/dist/mission-journal.d.ts +60 -0
  253. package/dist/mission-journal.js +115 -0
  254. package/dist/mission-journal.js.map +1 -0
  255. package/dist/mission-queue-cli.d.ts +10 -0
  256. package/dist/mission-queue-cli.js +198 -0
  257. package/dist/mission-queue-cli.js.map +1 -0
  258. package/dist/mission-queue-runner.d.ts +126 -0
  259. package/dist/mission-queue-runner.js +406 -0
  260. package/dist/mission-queue-runner.js.map +1 -0
  261. package/dist/multi-run-cli.d.ts +37 -0
  262. package/dist/multi-run-cli.js +116 -0
  263. package/dist/multi-run-cli.js.map +1 -0
  264. package/dist/multi-run.d.ts +339 -0
  265. package/dist/multi-run.js +619 -0
  266. package/dist/multi-run.js.map +1 -0
  267. package/dist/openrouter-call.d.ts +22 -0
  268. package/dist/openrouter-call.js +64 -0
  269. package/dist/openrouter-call.js.map +1 -0
  270. package/dist/profile-cli.d.ts +4 -0
  271. package/dist/profile-cli.js +57 -0
  272. package/dist/profile-cli.js.map +1 -0
  273. package/dist/program.d.ts +3 -75
  274. package/dist/program.js +123 -1921
  275. package/dist/program.js.map +1 -1
  276. package/dist/project-dir.d.ts +96 -0
  277. package/dist/project-dir.js +221 -0
  278. package/dist/project-dir.js.map +1 -0
  279. package/dist/record-api.d.ts +13 -7
  280. package/dist/record-api.js +44 -30
  281. package/dist/record-api.js.map +1 -1
  282. package/dist/record-cli.d.ts +4 -0
  283. package/dist/record-cli.js +76 -0
  284. package/dist/record-cli.js.map +1 -0
  285. package/dist/recording-cli.d.ts +4 -0
  286. package/dist/recording-cli.js +248 -0
  287. package/dist/recording-cli.js.map +1 -0
  288. package/dist/regression-api.d.ts +107 -0
  289. package/dist/regression-api.js +387 -6
  290. package/dist/regression-api.js.map +1 -1
  291. package/dist/regression-cli.d.ts +4 -0
  292. package/dist/regression-cli.js +284 -0
  293. package/dist/regression-cli.js.map +1 -0
  294. package/dist/report-api.d.ts +146 -0
  295. package/dist/report-api.js +431 -0
  296. package/dist/report-api.js.map +1 -0
  297. package/dist/report-cli.d.ts +12 -0
  298. package/dist/report-cli.js +147 -0
  299. package/dist/report-cli.js.map +1 -0
  300. package/dist/resource-preflight.d.ts +87 -0
  301. package/dist/resource-preflight.js +160 -0
  302. package/dist/resource-preflight.js.map +1 -0
  303. package/dist/result-schema.d.ts +22 -0
  304. package/dist/result-schema.js +28 -0
  305. package/dist/result-schema.js.map +1 -0
  306. package/dist/run-index.d.ts +29 -0
  307. package/dist/run-index.js +70 -0
  308. package/dist/run-index.js.map +1 -0
  309. package/dist/run-key-preflight.d.ts +42 -0
  310. package/dist/run-key-preflight.js +82 -0
  311. package/dist/run-key-preflight.js.map +1 -0
  312. package/dist/run-screenshots.d.ts +123 -0
  313. package/dist/run-screenshots.js +235 -0
  314. package/dist/run-screenshots.js.map +1 -0
  315. package/dist/runtime-env.d.ts +8 -0
  316. package/dist/runtime-env.js +23 -0
  317. package/dist/runtime-env.js.map +1 -0
  318. package/dist/secret-args.d.ts +23 -0
  319. package/dist/secret-args.js +45 -0
  320. package/dist/secret-args.js.map +1 -0
  321. package/dist/serve-cli.d.ts +4 -0
  322. package/dist/serve-cli.js +95 -0
  323. package/dist/serve-cli.js.map +1 -0
  324. package/dist/server-log-verify.d.ts +36 -0
  325. package/dist/server-log-verify.js +120 -0
  326. package/dist/server-log-verify.js.map +1 -0
  327. package/dist/session-check.d.ts +14 -0
  328. package/dist/session-check.js +44 -0
  329. package/dist/session-check.js.map +1 -0
  330. package/dist/site-cli.d.ts +4 -0
  331. package/dist/site-cli.js +127 -0
  332. package/dist/site-cli.js.map +1 -0
  333. package/dist/site-gate-cli.d.ts +28 -0
  334. package/dist/site-gate-cli.js +59 -0
  335. package/dist/site-gate-cli.js.map +1 -0
  336. package/dist/source-api.js +20 -4
  337. package/dist/source-api.js.map +1 -1
  338. package/dist/source-cli.d.ts +4 -0
  339. package/dist/source-cli.js +284 -0
  340. package/dist/source-cli.js.map +1 -0
  341. package/dist/source-run-api.d.ts +27 -1
  342. package/dist/source-run-api.js +22 -11
  343. package/dist/source-run-api.js.map +1 -1
  344. package/dist/storage-state-snapshot.d.ts +50 -0
  345. package/dist/storage-state-snapshot.js +87 -0
  346. package/dist/storage-state-snapshot.js.map +1 -0
  347. package/dist/suite-explore-options.d.ts +321 -0
  348. package/dist/suite-explore-options.js +162 -0
  349. package/dist/suite-explore-options.js.map +1 -0
  350. package/dist/target-config.d.ts +115 -0
  351. package/dist/target-config.js +225 -0
  352. package/dist/target-config.js.map +1 -0
  353. package/dist/transcript-file.d.ts +12 -0
  354. package/dist/transcript-file.js +23 -0
  355. package/dist/transcript-file.js.map +1 -0
  356. package/dist/type-fixture-file.d.ts +9 -0
  357. package/dist/type-fixture-file.js +48 -0
  358. package/dist/type-fixture-file.js.map +1 -0
  359. package/dist/ui-api.d.ts +3 -0
  360. package/dist/ui-api.js +11 -4
  361. package/dist/ui-api.js.map +1 -1
  362. package/dist/usability-capture.d.ts +43 -0
  363. package/dist/usability-capture.js +327 -0
  364. package/dist/usability-capture.js.map +1 -0
  365. package/dist/usage-config.d.ts +36 -0
  366. package/dist/usage-config.js +114 -0
  367. package/dist/usage-config.js.map +1 -0
  368. package/dist/ux-api.d.ts +3 -75
  369. package/dist/ux-api.js +3 -220
  370. package/dist/ux-api.js.map +1 -1
  371. package/dist/ux-claim-probe.d.ts +45 -0
  372. package/dist/ux-claim-probe.js +386 -0
  373. package/dist/ux-claim-probe.js.map +1 -0
  374. package/dist/ux-cli.d.ts +4 -0
  375. package/dist/ux-cli.js +109 -0
  376. package/dist/ux-cli.js.map +1 -0
  377. package/dist/ux-config.d.ts +29 -0
  378. package/dist/ux-config.js +103 -0
  379. package/dist/ux-config.js.map +1 -0
  380. package/dist/ux-evidence.d.ts +54 -0
  381. package/dist/ux-evidence.js +197 -0
  382. package/dist/ux-evidence.js.map +1 -0
  383. package/dist/ux-product.d.ts +14 -0
  384. package/dist/ux-product.js +39 -0
  385. package/dist/ux-product.js.map +1 -0
  386. package/dist/ux-review.d.ts +116 -0
  387. package/dist/ux-review.js +171 -0
  388. package/dist/ux-review.js.map +1 -0
  389. package/dist/ux-usability.d.ts +263 -0
  390. package/dist/ux-usability.js +580 -0
  391. package/dist/ux-usability.js.map +1 -0
  392. package/dist/verify-fix-api.d.ts +194 -0
  393. package/dist/verify-fix-api.js +506 -0
  394. package/dist/verify-fix-api.js.map +1 -0
  395. package/dist/verify-fix-cli.d.ts +4 -0
  396. package/dist/verify-fix-cli.js +115 -0
  397. package/dist/verify-fix-cli.js.map +1 -0
  398. package/package.json +23 -18
  399. package/skills/jevitate-ci-check/SKILL.md +77 -0
  400. package/skills/jevitate-demo/SKILL.md +61 -0
  401. package/skills/jevitate-explore/SKILL.md +96 -87
  402. package/skills/jevitate-getting-started/SKILL.md +89 -0
  403. package/skills/jevitate-load-test/SKILL.md +11 -2
  404. package/skills/jevitate-mission-scope/SKILL.md +19 -11
  405. package/skills/jevitate-record/SKILL.md +23 -5
  406. package/skills/jevitate-run-journey/SKILL.md +61 -17
  407. package/skills/jevitate-sources/SKILL.md +57 -14
  408. package/skills/jevitate-test-campaign/SKILL.md +203 -0
  409. package/skills/jevitate-ux-review/SKILL.md +106 -16
  410. package/skills/jevitate-verify-fix/SKILL.md +76 -0
@@ -0,0 +1,181 @@
1
+ import { type GenerationPort, type JudgmentPort, type UsageAggregate, type UsageTracker } from "@jevitate/ai-core";
2
+ import type { BrowserPort } from "@jevitate/playwright";
3
+ import type { BrowserRunOptions } from "./browser-run-options.js";
4
+ import type { JourneyRunResult } from "@jevitate/runtime";
5
+ import { type ConsolidatedDefect, type DiffEntry, type FindingIdentity, type FindingsDiff } from "@jevitate/findings";
6
+ import { runAdversarialCliMission, runCoverageMission, runExploration, runFeatureCliMission } from "./explore-api.js";
7
+ import { type RunJourneyProgrammaticallyOptions } from "./journey-api.js";
8
+ import { runUsabilityMission } from "./ux-api.js";
9
+ import { runVerifyFix } from "./verify-fix-api.js";
10
+ import { type TargetConfig } from "./target-config.js";
11
+ import { type EngineInfo } from "./engine.js";
12
+ import type { CheckSuite, SuiteBudget } from "./check-suite.js";
13
+ import { type RunSummary } from "./report-api.js";
14
+ /**
15
+ * `jevitate check --suite <file>` (#137): jevitate as a CI regression gate. Runs every suite item
16
+ * — promoted Journeys, goals, missions, verify-fix replays — SEQUENTIALLY through the existing
17
+ * runners, inside one total action / wall-clock / USD budget, then decides pass/fail from the
18
+ * shared finding identity (`@jevitate/findings`):
19
+ *
20
+ * - HARD findings fail the gate: a Journey assertion failed, an invariant was violated, a goal
21
+ * success check failed, a verify-fix still reproduces (or is intermittent), a hard-signal
22
+ * defect or a hang. Advisory findings (UX, 4xx-correlated console errors, Jev flags) never do,
23
+ * unless the suite sets `gateAdvisory`.
24
+ * - With `--baseline`, only findings NOT seen in the baseline gate ("new", including a new flaky
25
+ * one); findings already in the baseline are tracked, not gated.
26
+ * - Fail closed: an item that could not prove anything (crashed, inconclusive, refused) and any
27
+ * budget overrun fail the gate; nothing that did not run is ever reported as passing.
28
+ *
29
+ * Everything is validated before the first browser opens (suite, invariant files and their probe
30
+ * origins, success specs, Journeys and their origins, verify-fix inputs, the model gateway). Every
31
+ * result is stamped with the engine identity and the caller's `--target-build`.
32
+ */
33
+ export declare class CheckPreflightError extends Error {
34
+ readonly code: "E_CHECK_SUITE";
35
+ constructor(message: string);
36
+ }
37
+ /** The suite needs a model gateway and none was selected (fail closed, before anything runs). */
38
+ export declare class CheckAiSetupError extends Error {
39
+ readonly code: "E_AI_SETUP_REQUIRED";
40
+ constructor(message: string);
41
+ }
42
+ export interface CheckGateways {
43
+ readonly judge: JudgmentPort;
44
+ readonly gen: GenerationPort;
45
+ readonly usage: UsageTracker;
46
+ }
47
+ /** The runners (real by default; tests inject fakes). */
48
+ export interface CheckRunners {
49
+ readonly journey: (o: RunJourneyProgrammaticallyOptions) => Promise<JourneyRunResult>;
50
+ readonly goal: typeof runExploration;
51
+ readonly coverage: typeof runCoverageMission;
52
+ readonly adversarial: typeof runAdversarialCliMission;
53
+ readonly feature: typeof runFeatureCliMission;
54
+ readonly usability: typeof runUsabilityMission;
55
+ readonly verifyFix: typeof runVerifyFix;
56
+ }
57
+ export interface RunCheckOptions {
58
+ readonly suite: CheckSuite;
59
+ /** Where results, JUnit, SARIF, the report and the check record go. */
60
+ readonly outDir: string;
61
+ /** The caller's target build/commit id, stamped on every result. */
62
+ readonly targetBuild?: string;
63
+ /** `--baseline <run|tag|last>`: only findings not in it gate. */
64
+ readonly baseline?: string;
65
+ /** Dirs searched for run ids and `last` (default: this check's results dir). */
66
+ readonly baselineDirs?: readonly string[];
67
+ readonly baselinesDir?: string;
68
+ /** `--changed-routes`: only Journeys and goals touching these route globs run. */
69
+ readonly changedRoutes?: readonly string[];
70
+ readonly junitPath?: string;
71
+ readonly sarifPath?: string;
72
+ readonly jsonPath?: string;
73
+ /** Default Journeys dir (`~/.jevitate/journeys`) for targets that name none. */
74
+ readonly journeysDir: string;
75
+ /** The site-policy database (`jevitate site policy set`): Journey items are paced, throttled and budgeted per origin. */
76
+ readonly sitePolicyDbPath?: string;
77
+ /**
78
+ * Builds the model gateways — called only when an item needs one. Throws when no gateway is
79
+ * selected (fail closed, before anything runs).
80
+ */
81
+ readonly gateways?: () => Promise<CheckGateways>;
82
+ /** The selected gateway kind: `fake` gateways cost nothing (USD 0), so `maxUsd` is measurable. */
83
+ readonly aiMode?: "real" | "fake";
84
+ /** Per-origin settle/hang configuration (`~/.jevitate/targets.json`). */
85
+ readonly targetsConfig?: Readonly<Record<string, TargetConfig>>;
86
+ /** #247: the environments file a Journey item's `env` names (default: the repo's `.jevitate/environments.json`). */
87
+ readonly environmentsFile?: string;
88
+ /** Where a target's `secretFields` read their values (default `process.env`). */
89
+ readonly env?: Readonly<Record<string, string | undefined>>;
90
+ readonly browserPortFactory?: () => BrowserPort;
91
+ readonly browser?: BrowserRunOptions;
92
+ readonly runners?: Partial<CheckRunners>;
93
+ /** Clock seams. */
94
+ readonly now?: () => number;
95
+ readonly nowIso?: () => string;
96
+ /** The suite file as the caller named it (SARIF's physical location). Default: its absolute path. */
97
+ readonly suiteUri?: string;
98
+ }
99
+ export type ItemKind = "journey" | "goal" | "mission" | "verify-fix";
100
+ export interface CheckItemReport {
101
+ readonly target: string;
102
+ readonly kind: ItemKind;
103
+ readonly name: string;
104
+ readonly strategy?: string;
105
+ /** `ran`: a result exists; `error`: the item could not prove anything; `skipped`: not affected by `--changed-routes`. */
106
+ readonly status: "ran" | "error" | "skipped";
107
+ readonly error?: {
108
+ readonly type: string;
109
+ readonly message: string;
110
+ };
111
+ readonly resultPath?: string;
112
+ readonly runId?: string;
113
+ readonly outcome?: string;
114
+ /** #217: a goal item's own ending (succeeded/failed/exhausted/blocked/…); `outcome` is its canonical verdict. */
115
+ readonly goalOutcome?: string;
116
+ readonly actions: number;
117
+ readonly durationMs: number;
118
+ /** JUnit verdict after gating. */
119
+ readonly verdict: "passed" | "failed" | "error" | "skipped";
120
+ /** Keys of the gating findings this item's run observed. */
121
+ readonly gating: readonly string[];
122
+ }
123
+ export interface BudgetReport {
124
+ readonly limits: SuiteBudget;
125
+ readonly used: {
126
+ readonly actions: number;
127
+ readonly minutes: number;
128
+ readonly usd?: number;
129
+ };
130
+ /** Why the budget was exceeded (fail closed), or absent. */
131
+ readonly exceeded?: string;
132
+ }
133
+ export interface CheckFinding {
134
+ readonly key: string;
135
+ readonly title: string;
136
+ readonly category: string;
137
+ readonly severity: string;
138
+ readonly identity: FindingIdentity;
139
+ readonly gating: boolean;
140
+ readonly status?: DiffEntry["status"];
141
+ readonly modes: ConsolidatedDefect["modes"];
142
+ readonly reproduce?: string;
143
+ }
144
+ export interface CheckResult {
145
+ readonly kind: "jevitate-check";
146
+ readonly suite: string;
147
+ readonly suitePath: string;
148
+ readonly verdict: "pass" | "fail";
149
+ /** 0 pass · 1 a gating finding · 2 no gating finding, but an item errored or the budget was exceeded. */
150
+ readonly exitCode: 0 | 1 | 2;
151
+ readonly engine: EngineInfo;
152
+ readonly targetBuild?: string;
153
+ readonly startedAt: string;
154
+ readonly budget: BudgetReport;
155
+ /**
156
+ * Model usage summed over every item that ran (#163): calls, tokens, `jevUsd` + `generationUsd` =
157
+ * `totalUsd`, and `priced` (a `partial` total fails a `maxUsd` budget closed). Absent when no item
158
+ * needed a model gateway.
159
+ */
160
+ readonly usage?: UsageAggregate;
161
+ readonly items: readonly CheckItemReport[];
162
+ readonly findings: readonly CheckFinding[];
163
+ readonly summary: {
164
+ readonly items: number;
165
+ readonly passed: number;
166
+ readonly failed: number;
167
+ readonly errors: number;
168
+ readonly skipped: number;
169
+ readonly gatingFindings: number;
170
+ };
171
+ readonly diff?: {
172
+ readonly baseline: readonly RunSummary[];
173
+ readonly summary: FindingsDiff["summary"];
174
+ };
175
+ /** Every result file this check wrote (what `report`/`diff`/`baseline tag` read back). */
176
+ readonly results: readonly string[];
177
+ readonly junitPath: string;
178
+ readonly sarifPath: string;
179
+ readonly jsonPath: string;
180
+ readonly reportPath: string;
181
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * `jevitate check --suite <file>` (#137): jevitate as a CI regression gate. Runs every suite item
3
+ * — promoted Journeys, goals, missions, verify-fix replays — SEQUENTIALLY through the existing
4
+ * runners, inside one total action / wall-clock / USD budget, then decides pass/fail from the
5
+ * shared finding identity (`@jevitate/findings`):
6
+ *
7
+ * - HARD findings fail the gate: a Journey assertion failed, an invariant was violated, a goal
8
+ * success check failed, a verify-fix still reproduces (or is intermittent), a hard-signal
9
+ * defect or a hang. Advisory findings (UX, 4xx-correlated console errors, Jev flags) never do,
10
+ * unless the suite sets `gateAdvisory`.
11
+ * - With `--baseline`, only findings NOT seen in the baseline gate ("new", including a new flaky
12
+ * one); findings already in the baseline are tracked, not gated.
13
+ * - Fail closed: an item that could not prove anything (crashed, inconclusive, refused) and any
14
+ * budget overrun fail the gate; nothing that did not run is ever reported as passing.
15
+ *
16
+ * Everything is validated before the first browser opens (suite, invariant files and their probe
17
+ * origins, success specs, Journeys and their origins, verify-fix inputs, the model gateway). Every
18
+ * result is stamped with the engine identity and the caller's `--target-build`.
19
+ */
20
+ export class CheckPreflightError extends Error {
21
+ code = "E_CHECK_SUITE";
22
+ constructor(message) {
23
+ super(message);
24
+ this.name = "CheckPreflightError";
25
+ }
26
+ }
27
+ /** The suite needs a model gateway and none was selected (fail closed, before anything runs). */
28
+ export class CheckAiSetupError extends Error {
29
+ code = "E_AI_SETUP_REQUIRED";
30
+ constructor(message) {
31
+ super(message);
32
+ this.name = "CheckAiSetupError";
33
+ }
34
+ }
35
+ //# sourceMappingURL=check-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-types.js","sourceRoot":"","sources":["../src/check-types.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,eAAwB,CAAC;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,iGAAiG;AACjG,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,GAAG,qBAA8B,CAAC;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Numeric option parsers (#218), used as commander `argParser`s so a bad number is refused while
3
+ * the command line is parsed — a usage error (exit 64, `useUsageExitCode`), before anything runs —
4
+ * rather than a `NaN` reaching a run and failing it at runtime (exit 2, "proves nothing").
5
+ *
6
+ * Every numeric flag of every command takes one of these; `cli-refusal.test.ts` walks the program
7
+ * and fails when a `<n>`/`<ms>`/`<k>` option has none.
8
+ */
9
+ export interface IntArgBounds {
10
+ /** Smallest accepted value (inclusive). */
11
+ readonly min?: number;
12
+ /** Largest accepted value (inclusive). */
13
+ readonly max?: number;
14
+ }
15
+ /** A commander argParser for an integer option within `bounds` (decimal digits only: no `1e3`, `0x10`, `2.5`). */
16
+ export declare function intArg(bounds?: IntArgBounds): (value: string) => number;
17
+ /** `≥ 1`: counts and caps (replays, attempts, takes, actions, concurrency, …). */
18
+ export declare const positiveIntArg: (value: string) => number;
19
+ /** `≥ 0`: durations in ms and counts where 0 means "none" (e.g. `--hang-replays 0`). */
20
+ export declare const nonNegativeIntArg: (value: string) => number;
21
+ /** A commander argParser for a ratio in [0, 1] (e.g. `--min-control-coverage 0.8`). */
22
+ export declare function ratioArg(value: string): number;
23
+ /** A commander argParser for a number > 0, fractions allowed (e.g. `--stall-timeout 1.5` seconds). */
24
+ export declare function positiveNumberArg(value: string): number;
25
+ /** A commander argParser for any finite number (e.g. an RNG `--seed`). */
26
+ export declare function finiteNumberArg(value: string): number;
@@ -0,0 +1,50 @@
1
+ import { InvalidArgumentError } from "commander";
2
+ function describe(bounds) {
3
+ if (bounds.min !== undefined && bounds.max !== undefined)
4
+ return `an integer from ${bounds.min} to ${bounds.max}`;
5
+ if (bounds.min === 0)
6
+ return "a non-negative integer";
7
+ if (bounds.min === 1)
8
+ return "a positive integer";
9
+ if (bounds.min !== undefined)
10
+ return `an integer ≥ ${bounds.min}`;
11
+ if (bounds.max !== undefined)
12
+ return `an integer ≤ ${bounds.max}`;
13
+ return "an integer";
14
+ }
15
+ /** A commander argParser for an integer option within `bounds` (decimal digits only: no `1e3`, `0x10`, `2.5`). */
16
+ export function intArg(bounds = {}) {
17
+ return (value) => {
18
+ const n = /^-?\d+$/.test(value.trim()) ? Number(value) : Number.NaN;
19
+ if (!Number.isSafeInteger(n) || (bounds.min !== undefined && n < bounds.min) || (bounds.max !== undefined && n > bounds.max)) {
20
+ throw new InvalidArgumentError(`must be ${describe(bounds)} (got ${JSON.stringify(value)})`);
21
+ }
22
+ return n;
23
+ };
24
+ }
25
+ /** `≥ 1`: counts and caps (replays, attempts, takes, actions, concurrency, …). */
26
+ export const positiveIntArg = intArg({ min: 1 });
27
+ /** `≥ 0`: durations in ms and counts where 0 means "none" (e.g. `--hang-replays 0`). */
28
+ export const nonNegativeIntArg = intArg({ min: 0 });
29
+ /** A commander argParser for a ratio in [0, 1] (e.g. `--min-control-coverage 0.8`). */
30
+ export function ratioArg(value) {
31
+ const n = value.trim() === "" ? Number.NaN : Number(value);
32
+ if (!Number.isFinite(n) || n < 0 || n > 1)
33
+ throw new InvalidArgumentError(`must be a number from 0 to 1 (got ${JSON.stringify(value)})`);
34
+ return n;
35
+ }
36
+ /** A commander argParser for a number > 0, fractions allowed (e.g. `--stall-timeout 1.5` seconds). */
37
+ export function positiveNumberArg(value) {
38
+ const n = value.trim() === "" ? Number.NaN : Number(value);
39
+ if (!Number.isFinite(n) || n <= 0)
40
+ throw new InvalidArgumentError(`must be a positive number (got ${JSON.stringify(value)})`);
41
+ return n;
42
+ }
43
+ /** A commander argParser for any finite number (e.g. an RNG `--seed`). */
44
+ export function finiteNumberArg(value) {
45
+ const n = value.trim() === "" ? Number.NaN : Number(value);
46
+ if (!Number.isFinite(n))
47
+ throw new InvalidArgumentError(`must be a finite number (got ${JSON.stringify(value)})`);
48
+ return n;
49
+ }
50
+ //# sourceMappingURL=cli-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { type KeySourceReport, type KeyVerificationReport } from "./key-report.js";
2
+ import type { Command } from "commander";
3
+ import type { JsonEnvelope } from "./envelope.js";
4
+ /**
5
+ * Human vs machine output for the CLI (#210). One rule for every command that has both:
6
+ *
7
+ * - `--json`: exactly one line, the `{v, ok, data | error}` envelope, on stdout — the machine
8
+ * contract, byte-for-byte what it always was.
9
+ * - otherwise: a short human summary on stdout (a success) or an `error <CODE>: <message>` line on
10
+ * stderr (a refusal) — never raw JSON.
11
+ *
12
+ * The human style follows `jevitate check`'s: an upper-case tag padded to a column, then the detail;
13
+ * the last lines say where the full result is and what to run next (`next: …`).
14
+ *
15
+ * The exit code always comes from exit-codes.ts: the caller's verdict code when it has one,
16
+ * otherwise the envelope's class (0 ok · 64 usage error · 2 the command failed).
17
+ */
18
+ export interface EmitOptions<T> {
19
+ /** `--json` was passed: print the envelope. */
20
+ readonly json: boolean;
21
+ /** The verdict's exit code (a mission's `exitCode`, a check's, a verify-fix's); default: the envelope's class. */
22
+ readonly exitCode?: number;
23
+ /** The human rendering of a successful envelope's `data`; default: nothing but the exit code. */
24
+ readonly human?: (data: T) => string;
25
+ /** The command, named in a usage error's `--help` hint (e.g. `explore`, `ledger add`). */
26
+ readonly command?: string;
27
+ }
28
+ export declare function emitEnvelope<T>(program: Command, envelope: JsonEnvelope<T>, opts: EmitOptions<T>): void;
29
+ /** `error E_EXPLORE_ARGS: --url is required` (+ a `--help` hint for a usage error). */
30
+ export declare function formatErrorHuman(error: {
31
+ readonly code: string;
32
+ readonly message: string;
33
+ }, command?: string): string;
34
+ /**
35
+ * A mission result (any strategy) as a human summary: the verdict, the defects and hangs by
36
+ * fingerprint, why a broken run proved nothing, where the result file is, and what to run next.
37
+ */
38
+ export declare function formatMissionHuman(result: unknown): string;
39
+ /**
40
+ * `explore --repeat/--persona`'s aggregate (multi-run) result (#226: the #217 contract): the canonical
41
+ * verdict as the headline (a goal's own ending beside it, never in its place), why it is what it is,
42
+ * each persona's verdict and each run's with its reason, the persona diff's status differences, the
43
+ * agreed and flaky findings, and the find-out answer(s).
44
+ */
45
+ export declare function formatMultiRunHuman(result: unknown): string;
46
+ /**
47
+ * `verify-fix`: the verdict, why, and what to do about it.
48
+ * #230: `opts.result` is the `--result` the user passed (not the ledger fallback's own path) — a
49
+ * re-check hint must carry it too, or (with no ledger entry for this fingerprint at that path) the
50
+ * follow-up `verify-fix` fails to find the repro material.
51
+ */
52
+ export declare function formatVerifyFixHuman(report: unknown, opts?: {
53
+ readonly result?: string;
54
+ }): string;
55
+ /** `ledger list`. #230: `opts.dir` is the `--dir` the user passed — the follow-up hints must carry it too. */
56
+ export declare function formatLedgerListHuman(listed: {
57
+ readonly entries: readonly object[];
58
+ }, opts?: {
59
+ readonly dir?: string;
60
+ }): string;
61
+ /**
62
+ * `ledger add`. #230: `opts.dir` is the `--dir` the user passed. `verify-fix`'s equivalent flag is
63
+ * named `--regressions-dir` (same directory, a ledger's own `--dir`), so the hint uses that name.
64
+ */
65
+ export declare function formatLedgerAddHuman(added: object, opts?: {
66
+ readonly dir?: string;
67
+ }): string;
68
+ /** `ledger verify`. #230: `opts.dir` is the `--dir` the user passed (see `formatLedgerAddHuman`). */
69
+ export declare function formatLedgerVerifyHuman(verified: object, opts?: {
70
+ readonly dir?: string;
71
+ }): string;
72
+ /**
73
+ * `init`'s key report: per feature, which keys are configured — never "collected: []", which read
74
+ * as "keys missing" when every key was already set (#210). Collection either stores every missing
75
+ * key or fails closed, so after it every required key is configured. Names only, never a value.
76
+ */
77
+ export declare function formatInitKeysHuman(keys: Readonly<Record<string, {
78
+ readonly required: readonly string[];
79
+ readonly collected: readonly string[];
80
+ readonly missing?: readonly string[];
81
+ readonly sources?: readonly KeySourceReport[];
82
+ readonly verification?: readonly KeyVerificationReport[];
83
+ readonly warnings?: readonly string[];
84
+ }>>): string;
85
+ /**
86
+ * `regression capture` (#227): a committed regression, or a failure too flaky to commit — never the
87
+ * raw envelope. #230: `opts.dir` is the `--dir` the user passed — the `regression run` hint must
88
+ * carry it too, or (a non-default regressions dir, e.g. the README demo's `--dir demo-regressions`)
89
+ * the follow-up looks in the default dir and refuses E_REGRESSION_NOT_FOUND.
90
+ */
91
+ export declare function formatRegressionCaptureHuman(result: unknown, opts?: {
92
+ readonly dir?: string;
93
+ }): string;
94
+ /**
95
+ * `regression run` (#227): the verdict, why, and what to do about it — matches `verify-fix`'s shape.
96
+ * #230: `opts.dir` is the `--dir` the user passed — the re-check hints must carry it too.
97
+ */
98
+ export declare function formatRegressionRunHuman(report: unknown, opts?: {
99
+ readonly dir?: string;
100
+ }): string;
101
+ /** `baseline tag` (#227). */
102
+ export declare function formatBaselineTagHuman(data: unknown): string;
103
+ /** `baseline list` (#227): every tag, or a next step when there are none yet. */
104
+ export declare function formatBaselineListHuman(data: unknown): string;
105
+ /** `baseline show` (#227). */
106
+ export declare function formatBaselineShowHuman(data: unknown): string;