@crvouga/atlas 0.3.0 → 0.5.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 (429) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +178 -604
  3. package/dist/bun/src/driver.d.ts +41 -7
  4. package/dist/bun/src/driver.js +47 -6
  5. package/dist/bun/src/index.d.ts +8 -0
  6. package/dist/bun/src/index.js +8 -0
  7. package/dist/core/src/cli.d.ts +14 -1
  8. package/dist/core/src/cli.js +30 -1
  9. package/dist/core/src/config.d.ts +70 -4
  10. package/dist/core/src/config.js +62 -3
  11. package/dist/core/src/events/cloudevents.d.ts +54 -9
  12. package/dist/core/src/events/cloudevents.js +60 -9
  13. package/dist/core/src/graph.d.ts +21 -0
  14. package/dist/core/src/graph.js +26 -0
  15. package/dist/core/src/index.d.ts +11 -0
  16. package/dist/core/src/index.js +11 -0
  17. package/dist/core/src/lint.d.ts +30 -0
  18. package/dist/core/src/lint.js +13 -0
  19. package/dist/core/src/plan.d.ts +39 -1
  20. package/dist/core/src/plan.js +28 -1
  21. package/dist/core/src/privacy.d.ts +29 -2
  22. package/dist/core/src/privacy.js +19 -2
  23. package/dist/core/src/report/formats.d.ts +34 -4
  24. package/dist/core/src/report/formats.js +24 -4
  25. package/dist/core/src/report/markdown.d.ts +15 -0
  26. package/dist/core/src/report/markdown.js +8 -0
  27. package/dist/core/src/run/clients.d.ts +44 -5
  28. package/dist/core/src/run/clients.js +46 -2
  29. package/dist/core/src/run/execute.d.ts +69 -16
  30. package/dist/core/src/run/execute.js +67 -16
  31. package/dist/core/src/run/frames.d.ts +13 -4
  32. package/dist/core/src/run/frames.js +19 -4
  33. package/dist/core/src/run/http.d.ts +34 -1
  34. package/dist/core/src/run/http.js +14 -1
  35. package/dist/core/src/run/types.d.ts +76 -3
  36. package/dist/core/src/run/types.js +19 -3
  37. package/dist/core/src/signals.d.ts +49 -5
  38. package/dist/core/src/signals.js +22 -5
  39. package/dist/core/src/spec/compose.d.ts +23 -1
  40. package/dist/core/src/spec/compose.js +10 -1
  41. package/dist/core/src/spec/index.d.ts +9 -1
  42. package/dist/core/src/spec/index.js +9 -1
  43. package/dist/core/src/spec/load.d.ts +22 -1
  44. package/dist/core/src/spec/load.js +31 -1
  45. package/dist/core/src/spec/parse.d.ts +16 -2
  46. package/dist/core/src/spec/parse.js +25 -2
  47. package/dist/core/src/spec/scxml.d.ts +25 -4
  48. package/dist/core/src/spec/scxml.js +36 -4
  49. package/dist/core/src/spec/types.d.ts +52 -1
  50. package/dist/core/src/spec/types.js +24 -0
  51. package/dist/detox/src/index.d.ts +54 -11
  52. package/dist/detox/src/index.js +45 -7
  53. package/dist/playwright/src/driver.d.ts +39 -3
  54. package/dist/playwright/src/driver.js +27 -3
  55. package/dist/playwright/src/index.d.ts +10 -0
  56. package/dist/playwright/src/index.js +10 -0
  57. package/dist/playwright/src/media.d.ts +50 -4
  58. package/dist/playwright/src/media.js +55 -4
  59. package/dist/playwright/src/signals.d.ts +44 -5
  60. package/dist/playwright/src/signals.js +29 -5
  61. package/dist/reports/src/attachment-files.d.ts +44 -0
  62. package/dist/reports/src/attachment-files.js +121 -0
  63. package/dist/reports/src/attachment-response.d.ts +31 -0
  64. package/dist/reports/src/attachment-response.js +55 -0
  65. package/dist/reports/src/aws-credentials.d.ts +48 -0
  66. package/dist/reports/src/aws-credentials.js +221 -0
  67. package/dist/reports/src/browser-navigation.d.ts +14 -0
  68. package/dist/reports/src/browser-navigation.js +7 -0
  69. package/dist/reports/src/bundle.d.ts +34 -2
  70. package/dist/reports/src/bundle.js +38 -2
  71. package/dist/reports/src/catalog.d.ts +34 -3
  72. package/dist/reports/src/catalog.js +17 -3
  73. package/dist/reports/src/cli-stores.d.ts +36 -0
  74. package/dist/reports/src/cli-stores.js +73 -0
  75. package/dist/reports/src/clock.d.ts +7 -2
  76. package/dist/reports/src/clock.js +5 -2
  77. package/dist/reports/src/completion-order.d.ts +18 -5
  78. package/dist/reports/src/completion-order.js +18 -5
  79. package/dist/reports/src/compose.d.ts +80 -0
  80. package/dist/reports/src/compose.js +117 -0
  81. package/dist/reports/src/copy-store.d.ts +29 -0
  82. package/dist/reports/src/copy-store.js +52 -0
  83. package/dist/reports/src/directory-outline.d.ts +38 -0
  84. package/dist/reports/src/directory-outline.js +103 -0
  85. package/dist/reports/src/directory-store.d.ts +20 -0
  86. package/dist/reports/src/directory-store.js +166 -0
  87. package/dist/reports/src/doctor.d.ts +29 -0
  88. package/dist/reports/src/doctor.js +83 -0
  89. package/dist/reports/src/effective-delta.d.ts +34 -0
  90. package/dist/reports/src/effective-delta.js +25 -0
  91. package/dist/reports/src/evidence-detail.d.ts +64 -0
  92. package/dist/reports/src/evidence-detail.js +92 -0
  93. package/dist/reports/src/evidence-live.d.ts +40 -4
  94. package/dist/reports/src/evidence-live.js +52 -4
  95. package/dist/reports/src/evidence-types.d.ts +70 -1
  96. package/dist/reports/src/evidence-types.js +5 -1
  97. package/dist/reports/src/evidence-view.d.ts +58 -6
  98. package/dist/reports/src/evidence-view.js +44 -5
  99. package/dist/reports/src/explorer-types.d.ts +40 -3
  100. package/dist/reports/src/explorer-types.js +8 -0
  101. package/dist/reports/src/explorer-versions.d.ts +9 -1
  102. package/dist/reports/src/explorer-versions.js +18 -1
  103. package/dist/reports/src/export-evidence.d.ts +16 -1
  104. package/dist/reports/src/export-evidence.js +52 -1
  105. package/dist/reports/src/fetcher.d.ts +27 -3
  106. package/dist/reports/src/fetcher.js +11 -3
  107. package/dist/reports/src/format-date.d.ts +6 -0
  108. package/dist/reports/src/format-date.js +6 -0
  109. package/dist/reports/src/format.d.ts +16 -0
  110. package/dist/reports/src/format.js +10 -0
  111. package/dist/reports/src/frames.d.ts +36 -3
  112. package/dist/reports/src/frames.js +22 -3
  113. package/dist/reports/src/hash.d.ts +18 -0
  114. package/dist/reports/src/hash.js +13 -0
  115. package/dist/reports/src/host.d.ts +29 -0
  116. package/dist/reports/src/host.js +64 -0
  117. package/dist/reports/src/html-frame.d.ts +5 -6
  118. package/dist/reports/src/html-frame.js +12 -1
  119. package/dist/reports/src/http-store.d.ts +52 -0
  120. package/dist/reports/src/http-store.js +145 -0
  121. package/dist/reports/src/http.d.ts +7 -0
  122. package/dist/reports/src/http.js +6 -0
  123. package/dist/reports/src/ingest.d.ts +54 -0
  124. package/dist/reports/src/ingest.js +210 -0
  125. package/dist/reports/src/init.d.ts +40 -0
  126. package/dist/reports/src/init.js +364 -0
  127. package/dist/reports/src/junit.d.ts +33 -6
  128. package/dist/reports/src/junit.js +87 -21
  129. package/dist/reports/src/keyboard.d.ts +20 -0
  130. package/dist/reports/src/keyboard.js +11 -0
  131. package/dist/reports/src/keys.d.ts +21 -3
  132. package/dist/reports/src/keys.js +21 -3
  133. package/dist/reports/src/layer-axes.d.ts +48 -0
  134. package/dist/reports/src/layer-axes.js +71 -0
  135. package/dist/reports/src/layer-catalog.d.ts +28 -1
  136. package/dist/reports/src/layer-catalog.js +19 -2
  137. package/dist/reports/src/layer-merge.d.ts +98 -9
  138. package/dist/reports/src/layer-merge.js +154 -33
  139. package/dist/reports/src/layer-source.d.ts +18 -0
  140. package/dist/reports/src/layer-source.js +14 -0
  141. package/dist/reports/src/layer-store.d.ts +42 -0
  142. package/dist/reports/src/layer-store.js +63 -5
  143. package/dist/reports/src/layer-types.d.ts +34 -1
  144. package/dist/reports/src/layers-route.d.ts +47 -4
  145. package/dist/reports/src/layers-route.js +88 -12
  146. package/dist/reports/src/media-types.d.ts +11 -0
  147. package/dist/reports/src/media-types.js +22 -0
  148. package/dist/reports/src/namespace-guard.d.ts +10 -1
  149. package/dist/reports/src/namespace-guard.js +10 -1
  150. package/dist/reports/src/navigation.d.ts +12 -0
  151. package/dist/reports/src/navigation.js +7 -0
  152. package/dist/reports/src/object-io.d.ts +11 -4
  153. package/dist/reports/src/object-io.js +4 -4
  154. package/dist/reports/src/object-store-conformance.d.ts +27 -0
  155. package/dist/reports/src/object-store-conformance.js +87 -0
  156. package/dist/reports/src/object-store.d.ts +33 -24
  157. package/dist/reports/src/object-store.js +17 -24
  158. package/dist/reports/src/parse-with.d.ts +16 -0
  159. package/dist/reports/src/parse-with.js +14 -0
  160. package/dist/reports/src/performance-part.d.ts +25 -1
  161. package/dist/reports/src/performance-part.js +15 -1
  162. package/dist/reports/src/performance.d.ts +22 -2
  163. package/dist/reports/src/performance.js +12 -2
  164. package/dist/reports/src/persist.d.ts +12 -3
  165. package/dist/reports/src/persist.js +12 -3
  166. package/dist/reports/src/phone.d.ts +18 -1
  167. package/dist/reports/src/phone.js +18 -1
  168. package/dist/reports/src/protocol.d.ts +30 -4
  169. package/dist/reports/src/protocol.js +15 -4
  170. package/dist/reports/src/publication.d.ts +21 -1
  171. package/dist/reports/src/publication.js +21 -1
  172. package/dist/reports/src/publish-checks.d.ts +35 -0
  173. package/dist/reports/src/publish-checks.js +122 -0
  174. package/dist/reports/src/publish.d.ts +44 -9
  175. package/dist/reports/src/publish.js +40 -7
  176. package/dist/reports/src/read.d.ts +46 -16
  177. package/dist/reports/src/read.js +38 -14
  178. package/dist/reports/src/recording-bundle.d.ts +13 -2
  179. package/dist/reports/src/recording-bundle.js +4 -2
  180. package/dist/reports/src/recording-keys.d.ts +15 -1
  181. package/dist/reports/src/recording-keys.js +15 -1
  182. package/dist/reports/src/remote-report.d.ts +28 -7
  183. package/dist/reports/src/remote-report.js +15 -7
  184. package/dist/reports/src/report-cli.d.ts +51 -0
  185. package/dist/reports/src/report-cli.js +485 -0
  186. package/dist/reports/src/report-index.d.ts +99 -0
  187. package/dist/reports/src/report-index.js +337 -0
  188. package/dist/reports/src/report-loader.d.ts +10 -0
  189. package/dist/reports/src/report-loader.js +6 -0
  190. package/dist/reports/src/report-parts.d.ts +29 -3
  191. package/dist/reports/src/report-parts.js +40 -3
  192. package/dist/reports/src/report-status.d.ts +48 -0
  193. package/dist/reports/src/report-status.js +156 -0
  194. package/dist/reports/src/report-types.d.ts +73 -0
  195. package/dist/reports/src/report-types.js +3 -0
  196. package/dist/reports/src/reporter.d.ts +67 -0
  197. package/dist/reports/src/reporter.js +128 -0
  198. package/dist/reports/src/reports-explorer-route.d.ts +541 -0
  199. package/dist/reports/src/reports-explorer-route.js +11 -0
  200. package/dist/reports/src/reports-list-route.d.ts +9 -0
  201. package/dist/reports/src/reports-list-route.js +9 -0
  202. package/dist/reports/src/reports-route.d.ts +561 -22
  203. package/dist/reports/src/reports-route.js +11 -3
  204. package/dist/reports/src/reports-store.d.ts +19 -2
  205. package/dist/reports/src/reports-store.js +10 -2
  206. package/dist/reports/src/resilient-cache.d.ts +14 -1
  207. package/dist/reports/src/resilient-cache.js +8 -1
  208. package/dist/reports/src/retention.d.ts +17 -1
  209. package/dist/reports/src/retention.js +5 -1
  210. package/dist/reports/src/run-bundle.d.ts +63 -0
  211. package/dist/reports/src/run-bundle.js +159 -0
  212. package/dist/reports/src/s3-store.d.ts +79 -0
  213. package/dist/reports/src/s3-store.js +295 -0
  214. package/dist/reports/src/scenario.d.ts +14 -4
  215. package/dist/reports/src/scenario.js +5 -4
  216. package/dist/reports/src/sigv4.d.ts +72 -0
  217. package/dist/reports/src/sigv4.js +96 -0
  218. package/dist/reports/src/snapshot-bundle.d.ts +24 -1
  219. package/dist/reports/src/snapshot-bundle.js +27 -2
  220. package/dist/reports/src/snapshot-surface.d.ts +20 -9
  221. package/dist/reports/src/snapshot-surface.js +32 -19
  222. package/dist/reports/src/source-content.d.ts +23 -0
  223. package/dist/reports/src/source-content.js +30 -1
  224. package/dist/reports/src/source-entries.d.ts +13 -0
  225. package/dist/reports/src/source-entries.js +6 -0
  226. package/dist/reports/src/source-part.d.ts +15 -0
  227. package/dist/reports/src/source-part.js +8 -0
  228. package/dist/reports/src/source-reader.d.ts +11 -0
  229. package/dist/reports/src/source-reader.js +5 -0
  230. package/dist/reports/src/spec-evidence.d.ts +12 -2
  231. package/dist/reports/src/spec-evidence.js +6 -2
  232. package/dist/reports/src/spec-inventory.d.ts +15 -1
  233. package/dist/reports/src/spec-inventory.js +22 -1
  234. package/dist/reports/src/spec-link.d.ts +28 -0
  235. package/dist/reports/src/spec-link.js +70 -0
  236. package/dist/reports/src/spec-set.d.ts +63 -0
  237. package/dist/reports/src/spec-set.js +177 -0
  238. package/dist/reports/src/status.d.ts +10 -0
  239. package/dist/reports/src/status.js +5 -0
  240. package/dist/reports/src/store-prefix.d.ts +28 -0
  241. package/dist/reports/src/store-prefix.js +22 -0
  242. package/dist/reports/src/store-url.d.ts +89 -0
  243. package/dist/reports/src/store-url.js +160 -0
  244. package/dist/reports/src/test-catalog-entity.d.ts +11 -0
  245. package/dist/reports/src/test-catalog-entity.js +6 -0
  246. package/dist/reports/src/types.d.ts +6 -1
  247. package/dist/reports/src/use-report-nav.d.ts +35 -0
  248. package/dist/reports/src/use-report-nav.js +12 -0
  249. package/dist/schema/src/api.d.ts +799 -0
  250. package/dist/schema/src/api.js +201 -0
  251. package/dist/schema/src/cli-results.d.ts +210 -0
  252. package/dist/schema/src/cli-results.js +124 -0
  253. package/dist/schema/src/common.d.ts +53 -0
  254. package/dist/schema/src/common.js +42 -0
  255. package/dist/schema/src/index.d.ts +14 -0
  256. package/dist/schema/src/index.js +14 -0
  257. package/dist/schema/src/layer.d.ts +2273 -0
  258. package/dist/schema/src/layer.js +462 -0
  259. package/dist/schema/src/manifest.d.ts +95 -0
  260. package/dist/schema/src/manifest.js +84 -0
  261. package/dist/schema/src/report-sources.d.ts +28 -0
  262. package/dist/schema/src/report-sources.js +25 -0
  263. package/dist/schema/src/runs-index.d.ts +16 -0
  264. package/dist/schema/src/runs-index.js +15 -0
  265. package/dist/schema/src/server-config.d.ts +93 -0
  266. package/dist/schema/src/server-config.js +73 -0
  267. package/dist/schema/src/spec.d.ts +69 -0
  268. package/dist/schema/src/spec.js +58 -0
  269. package/dist/server/src/app.d.ts +62 -0
  270. package/dist/server/src/app.js +419 -0
  271. package/dist/server/src/auth.d.ts +41 -0
  272. package/dist/server/src/auth.js +59 -0
  273. package/dist/server/src/config.d.ts +83 -0
  274. package/dist/server/src/config.js +187 -0
  275. package/dist/server/src/dev.d.ts +12 -0
  276. package/dist/server/src/dev.js +80 -0
  277. package/dist/server/src/events.d.ts +29 -0
  278. package/dist/server/src/events.js +101 -0
  279. package/dist/server/src/host.d.ts +30 -0
  280. package/dist/server/src/host.js +115 -0
  281. package/dist/server/src/index.d.ts +16 -0
  282. package/dist/server/src/index.js +16 -0
  283. package/dist/server/src/llms.d.ts +19 -0
  284. package/dist/server/src/llms.js +63 -0
  285. package/dist/server/src/main.d.ts +30 -0
  286. package/dist/server/src/main.js +112 -0
  287. package/dist/server/src/openapi.d.ts +59 -0
  288. package/dist/server/src/openapi.js +374 -0
  289. package/dist/server/src/problem.d.ts +8 -0
  290. package/dist/server/src/problem.js +39 -0
  291. package/dist/server/src/site.d.ts +13 -0
  292. package/dist/server/src/site.js +43 -0
  293. package/dist/server/src/store-api.d.ts +28 -0
  294. package/dist/server/src/store-api.js +159 -0
  295. package/dist/server/src/validate.d.ts +71 -0
  296. package/dist/server/src/validate.js +197 -0
  297. package/dist/vitest/src/index.d.ts +27 -5
  298. package/dist/vitest/src/index.js +18 -5
  299. package/dist/webdriver/src/driver.d.ts +63 -11
  300. package/dist/webdriver/src/driver.js +57 -6
  301. package/dist/webdriver/src/index.d.ts +8 -0
  302. package/dist/webdriver/src/index.js +1 -0
  303. package/dist/webdriver/src/protocol.d.ts +75 -6
  304. package/dist/webdriver/src/protocol.js +79 -6
  305. package/docs/agents.md +137 -0
  306. package/docs/deploying.md +345 -0
  307. package/docs/dogfooding.md +175 -0
  308. package/docs/extending.md +242 -0
  309. package/docs/integrating.md +485 -0
  310. package/docs/reference/bun.md +141 -0
  311. package/docs/reference/cli.md +146 -0
  312. package/docs/reference/core.md +2426 -0
  313. package/docs/reference/detox.md +150 -0
  314. package/docs/reference/http-api.md +303 -0
  315. package/docs/reference/playwright.md +303 -0
  316. package/docs/reference/reports.md +7098 -0
  317. package/docs/reference/schema.md +1651 -0
  318. package/docs/reference/server.md +685 -0
  319. package/docs/reference/vitest.md +45 -0
  320. package/docs/reference/webdriver.md +330 -0
  321. package/docs/report-backends.md +144 -0
  322. package/docs/report-contract.md +400 -0
  323. package/docs/reporting-issues.md +160 -0
  324. package/docs/server.md +285 -0
  325. package/docs/statecharts.md +641 -0
  326. package/llms-full.txt +3506 -0
  327. package/llms.txt +47 -0
  328. package/package.json +33 -5
  329. package/packages/core/README.md +2 -1
  330. package/packages/reports/README.md +69 -2
  331. package/packages/reports/STORAGE.md +5 -1
  332. package/packages/schema/README.md +14 -0
  333. package/packages/schema/schemas/check-detail.schema.json +1032 -0
  334. package/packages/schema/schemas/checks-result.schema.json +26 -0
  335. package/packages/schema/schemas/command-error.schema.json +35 -0
  336. package/packages/schema/schemas/doctor-result.schema.json +60 -0
  337. package/packages/schema/schemas/effective-delta.schema.json +490 -0
  338. package/packages/schema/schemas/effective-evidence.schema.json +471 -0
  339. package/packages/schema/schemas/evidence-page.schema.json +271 -0
  340. package/packages/schema/schemas/hello-event.schema.json +22 -0
  341. package/packages/schema/schemas/init-plan.schema.json +347 -0
  342. package/packages/schema/schemas/layer-rows.schema.json +199 -0
  343. package/packages/schema/schemas/layer.schema.json +2888 -0
  344. package/packages/schema/schemas/merge-result.schema.json +40 -0
  345. package/packages/schema/schemas/outline.schema.json +62 -0
  346. package/packages/schema/schemas/problem.schema.json +37 -0
  347. package/packages/schema/schemas/publish-checks.schema.json +1413 -0
  348. package/packages/schema/schemas/publish-result.schema.json +168 -0
  349. package/packages/schema/schemas/ready.schema.json +68 -0
  350. package/packages/schema/schemas/report-event.schema.json +100 -0
  351. package/packages/schema/schemas/report-status.schema.json +370 -0
  352. package/packages/schema/schemas/server-config.schema.json +194 -0
  353. package/packages/schema/schemas/server-info.schema.json +114 -0
  354. package/packages/schema/schemas/spec-set.schema.json +103 -0
  355. package/packages/schema/schemas/store-listing.schema.json +29 -0
  356. package/packages/schema/schemas/store-write-result.schema.json +28 -0
  357. package/packages/schema/schemas/stream-result.schema.json +59 -0
  358. package/packages/server/README.md +43 -0
  359. package/packages/server/openapi.json +6699 -0
  360. package/packages/visualizer/README.md +27 -5
  361. package/packages/visualizer/example/specs/coffee/ordering/cart.qnt +7 -0
  362. package/packages/visualizer/example/specs/coffee/ordering/checkout.openslo.yaml +10 -0
  363. package/packages/visualizer/example/specs/coffee/ordering/drink-price.dmn +24 -0
  364. package/packages/visualizer/example/specs/coffee/ordering/loyalty.feature +7 -0
  365. package/packages/visualizer/example/specs/coffee/ordering/ordering.feature +36 -0
  366. package/packages/visualizer/example/specs/coffee/ordering/payment.als +4 -0
  367. package/packages/visualizer/fixtures/failures/specs/coffee/ordering/cart.qnt +7 -0
  368. package/packages/visualizer/fixtures/failures/specs/coffee/ordering/checkout.openslo.yaml +10 -0
  369. package/packages/visualizer/fixtures/failures/specs/coffee/ordering/drink-price.dmn +24 -0
  370. package/packages/visualizer/fixtures/failures/specs/coffee/ordering/loyalty.feature +7 -0
  371. package/packages/visualizer/fixtures/failures/specs/coffee/ordering/ordering.feature +36 -0
  372. package/packages/visualizer/fixtures/failures/specs/coffee/ordering/payment.als +4 -0
  373. package/packages/visualizer/fixtures/full/specs/coffee/ordering/cart.qnt +7 -0
  374. package/packages/visualizer/fixtures/full/specs/coffee/ordering/checkout.openslo.yaml +10 -0
  375. package/packages/visualizer/fixtures/full/specs/coffee/ordering/drink-price.dmn +24 -0
  376. package/packages/visualizer/fixtures/full/specs/coffee/ordering/loyalty.feature +7 -0
  377. package/packages/visualizer/fixtures/full/specs/coffee/ordering/ordering.feature +36 -0
  378. package/packages/visualizer/fixtures/full/specs/coffee/ordering/payment.als +4 -0
  379. package/packages/visualizer/fixtures/malformed/specs/coffee/ordering/cart.qnt +7 -0
  380. package/packages/visualizer/fixtures/malformed/specs/coffee/ordering/checkout.openslo.yaml +10 -0
  381. package/packages/visualizer/fixtures/malformed/specs/coffee/ordering/drink-price.dmn +24 -0
  382. package/packages/visualizer/fixtures/malformed/specs/coffee/ordering/loyalty.feature +7 -0
  383. package/packages/visualizer/fixtures/malformed/specs/coffee/ordering/ordering.feature +36 -0
  384. package/packages/visualizer/fixtures/malformed/specs/coffee/ordering/payment.als +4 -0
  385. package/packages/visualizer/fixtures/partial/specs/coffee/ordering/cart.qnt +7 -0
  386. package/packages/visualizer/fixtures/partial/specs/coffee/ordering/checkout.openslo.yaml +10 -0
  387. package/packages/visualizer/fixtures/partial/specs/coffee/ordering/drink-price.dmn +24 -0
  388. package/packages/visualizer/fixtures/partial/specs/coffee/ordering/loyalty.feature +7 -0
  389. package/packages/visualizer/fixtures/partial/specs/coffee/ordering/ordering.feature +36 -0
  390. package/packages/visualizer/fixtures/partial/specs/coffee/ordering/payment.als +4 -0
  391. package/packages/visualizer/fixtures/removed/specs/coffee/ordering/cart.qnt +7 -0
  392. package/packages/visualizer/fixtures/removed/specs/coffee/ordering/checkout.openslo.yaml +10 -0
  393. package/packages/visualizer/fixtures/removed/specs/coffee/ordering/drink-price.dmn +24 -0
  394. package/packages/visualizer/fixtures/removed/specs/coffee/ordering/loyalty.feature +7 -0
  395. package/packages/visualizer/fixtures/removed/specs/coffee/ordering/ordering.feature +36 -0
  396. package/packages/visualizer/fixtures/removed/specs/coffee/ordering/payment.als +4 -0
  397. package/packages/visualizer/fixtures/spec-only/specs/coffee/ordering/cart.qnt +7 -0
  398. package/packages/visualizer/fixtures/spec-only/specs/coffee/ordering/checkout.openslo.yaml +10 -0
  399. package/packages/visualizer/fixtures/spec-only/specs/coffee/ordering/drink-price.dmn +24 -0
  400. package/packages/visualizer/fixtures/spec-only/specs/coffee/ordering/loyalty.feature +7 -0
  401. package/packages/visualizer/fixtures/spec-only/specs/coffee/ordering/ordering.feature +36 -0
  402. package/packages/visualizer/fixtures/spec-only/specs/coffee/ordering/payment.als +4 -0
  403. package/packages/visualizer/scripts/make-fixtures.ts +2 -0
  404. package/packages/visualizer/scripts/publish-data.ts +1 -2
  405. package/packages/visualizer/src/app/AppShell.tsx +9 -2
  406. package/packages/visualizer/src/app/report-sources.tsx +6 -4
  407. package/packages/visualizer/src/app/router.tsx +3 -3
  408. package/packages/visualizer/src/components/Header.module.css +35 -0
  409. package/packages/visualizer/src/components/Header.tsx +41 -4
  410. package/packages/visualizer/src/data/adapters/adapter.ts +5 -17
  411. package/packages/visualizer/src/data/adapters/index.ts +10 -1
  412. package/packages/visualizer/src/evidence/api.ts +14 -2
  413. package/packages/visualizer/src/evidence/artifacts.module.css +213 -0
  414. package/packages/visualizer/src/evidence/artifacts.tsx +272 -0
  415. package/packages/visualizer/src/evidence/check-detail.tsx +38 -4
  416. package/packages/visualizer/src/evidence/evidence-context.tsx +74 -12
  417. package/packages/visualizer/src/evidence/evidence.module.css +20 -0
  418. package/packages/visualizer/src/evidence/marks.tsx +2 -0
  419. package/packages/visualizer/src/evidence/overview.tsx +3 -3
  420. package/packages/visualizer/src/evidence/sources-panel.tsx +88 -34
  421. package/packages/visualizer/src/evidence/spec-page.tsx +23 -16
  422. package/packages/visualizer/src/find/Finder.tsx +1 -7
  423. package/packages/visualizer/src/find/open.ts +4 -0
  424. package/packages/visualizer/src/live/live-stream.ts +204 -0
  425. package/packages/visualizer/src/runtime.ts +19 -0
  426. package/packages/visualizer/src/state/ui-store.ts +6 -2
  427. package/packages/visualizer/vite/atlas-server-proxy.ts +36 -0
  428. package/packages/visualizer/vite/example-reports.ts +475 -0
  429. package/packages/visualizer/vite.config.ts +18 -2
@@ -0,0 +1,799 @@
1
+ /**
2
+ * @module Atlas server API documents
3
+ *
4
+ * The JSON bodies the Atlas server speaks, as Zod schemas: the problem document every error uses (RFC 9457), what
5
+ * `/api/server` and `/readyz` say about the server, the report a viewer reads (`/api/reports/evidence/effective`) and
6
+ * what changed since a version of it, the store protocol's listings and acknowledgements, and the events on the
7
+ * stream. The server's OpenAPI document (`@crvouga/atlas/openapi.json`) is generated from these, and each is also
8
+ * published as a JSON Schema, so a client in any language can validate what it receives.
9
+ *
10
+ * Every object is open (unknown keys are kept, not refused) because the API only grows: within a version a response
11
+ * may gain optional fields, never lose or change one (see AGENTS.md, "The server is a living application"). A client
12
+ * must ignore what it does not know.
13
+ *
14
+ * @see docs/server.md
15
+ */
16
+ import { z } from 'zod/v4';
17
+ /** One of the statuses a check has in a report: `passed`, `failed`, `running` (not finished) or `not-run`. Closed. */
18
+ export declare const EvidenceStatusSchema: z.ZodEnum<{
19
+ passed: "passed";
20
+ failed: "failed";
21
+ running: "running";
22
+ "not-run": "not-run";
23
+ }>;
24
+ /**
25
+ * The body of every error the server answers, a Problem Details document (RFC 9457, `application/problem+json`).
26
+ * `error` repeats `detail` for clients written before the standard was adopted; read `detail`.
27
+ */
28
+ export declare const ProblemSchema: z.ZodObject<{
29
+ type: z.ZodDefault<z.ZodString>;
30
+ title: z.ZodString;
31
+ status: z.ZodNumber;
32
+ detail: z.ZodString;
33
+ error: z.ZodString;
34
+ }, z.core.$loose>;
35
+ /** What `GET /healthz` answers: the process is up. */
36
+ export declare const HealthSchema: z.ZodObject<{
37
+ ok: z.ZodLiteral<true>;
38
+ }, z.core.$loose>;
39
+ /** What `GET /readyz` answers: whether the backends were read, and counts for logs. `ready` false comes with status 503. */
40
+ export declare const ReadySchema: z.ZodObject<{
41
+ ready: z.ZodBoolean;
42
+ layers: z.ZodNumber;
43
+ slots: z.ZodNumber;
44
+ holding: z.ZodNumber;
45
+ failed: z.ZodNumber;
46
+ refreshedAt: z.ZodNumber;
47
+ backends: z.ZodArray<z.ZodObject<{
48
+ id: z.ZodString;
49
+ available: z.ZodBoolean;
50
+ }, z.core.$loose>>;
51
+ }, z.core.$loose>;
52
+ /** What `GET /api/server` answers: what the server is, who is asking, and what it can do. */
53
+ export declare const ServerInfoSchema: z.ZodObject<{
54
+ name: z.ZodLiteral<"atlas">;
55
+ version: z.ZodNullable<z.ZodString>;
56
+ role: z.ZodEnum<{
57
+ read: "read";
58
+ publish: "publish";
59
+ admin: "admin";
60
+ }>;
61
+ open: z.ZodBoolean;
62
+ write: z.ZodString;
63
+ ready: z.ZodBoolean;
64
+ viewers: z.ZodNumber;
65
+ time: z.ZodNumber;
66
+ backends: z.ZodArray<z.ZodObject<{
67
+ id: z.ZodString;
68
+ label: z.ZodString;
69
+ available: z.ZodBoolean;
70
+ write: z.ZodBoolean;
71
+ }, z.core.$loose>>;
72
+ layers: z.ZodNumber;
73
+ slots: z.ZodNumber;
74
+ capabilities: z.ZodRecord<z.ZodString, z.ZodBoolean>;
75
+ }, z.core.$loose>;
76
+ /** A backend as the report shows it: where results came from, and whether it could be read. */
77
+ export declare const BackendInfoSchema: z.ZodObject<{
78
+ id: z.ZodString;
79
+ label: z.ZodString;
80
+ live: z.ZodBoolean;
81
+ available: z.ZodBoolean;
82
+ }, z.core.$loose>;
83
+ /** What a result carries beyond its outcome, as counts and short facts. Present only when there is something. */
84
+ export declare const EvidenceSummarySchema: z.ZodObject<{
85
+ attachments: z.ZodNumber;
86
+ steps: z.ZodNumber;
87
+ annotations: z.ZodNumber;
88
+ attempts: z.ZodNumber;
89
+ links: z.ZodNumber;
90
+ tags: z.ZodArray<z.ZodString>;
91
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
92
+ roles: z.ZodArray<z.ZodString>;
93
+ }, z.core.$loose>;
94
+ /** A layer as the report shows it: its origin and its checks by status. */
95
+ export declare const LayerHeaderSchema: z.ZodObject<{
96
+ id: z.ZodString;
97
+ backend: z.ZodString;
98
+ producer: z.ZodString;
99
+ packageDir: z.ZodNullable<z.ZodString>;
100
+ recordedAtMs: z.ZodNumber;
101
+ sha: z.ZodNullable<z.ZodString>;
102
+ branch: z.ZodNullable<z.ZodString>;
103
+ environment: z.ZodNullable<z.ZodString>;
104
+ runUrl: z.ZodNullable<z.ZodString>;
105
+ parameters: z.ZodRecord<z.ZodString, z.ZodString>;
106
+ freshness: z.ZodOptional<z.ZodEnum<{
107
+ unknown: "unknown";
108
+ modified: "modified";
109
+ }>>;
110
+ recording: z.ZodNullable<z.ZodUnknown>;
111
+ live: z.ZodBoolean;
112
+ counts: z.ZodRecord<z.ZodEnum<{
113
+ passed: "passed";
114
+ failed: "failed";
115
+ running: "running";
116
+ "not-run": "not-run";
117
+ }>, z.ZodNumber>;
118
+ execution: z.ZodString;
119
+ evidence: z.ZodOptional<z.ZodObject<{
120
+ attachments: z.ZodNumber;
121
+ steps: z.ZodNumber;
122
+ annotations: z.ZodNumber;
123
+ attempts: z.ZodNumber;
124
+ links: z.ZodNumber;
125
+ tags: z.ZodArray<z.ZodString>;
126
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
127
+ roles: z.ZodArray<z.ZodString>;
128
+ }, z.core.$loose>>;
129
+ }, z.core.$loose>;
130
+ /** One check of a layer as the report shows it. */
131
+ export declare const LayerRowSchema: z.ZodObject<{
132
+ kind: z.ZodString;
133
+ id: z.ZodString;
134
+ title: z.ZodString;
135
+ status: z.ZodEnum<{
136
+ passed: "passed";
137
+ failed: "failed";
138
+ running: "running";
139
+ "not-run": "not-run";
140
+ }>;
141
+ specPath: z.ZodNullable<z.ZodString>;
142
+ detail: z.ZodString;
143
+ measurements: z.ZodArray<z.ZodObject<{
144
+ name: z.ZodString;
145
+ value: z.ZodNumber;
146
+ unit: z.ZodString;
147
+ limit: z.ZodOptional<z.ZodNumber>;
148
+ }, z.core.$loose>>;
149
+ testId: z.ZodNullable<z.ZodString>;
150
+ variant: z.ZodRecord<z.ZodString, z.ZodString>;
151
+ durationMs: z.ZodNullable<z.ZodNumber>;
152
+ evidence: z.ZodOptional<z.ZodObject<{
153
+ attachments: z.ZodNumber;
154
+ steps: z.ZodNumber;
155
+ annotations: z.ZodNumber;
156
+ attempts: z.ZodNumber;
157
+ links: z.ZodNumber;
158
+ tags: z.ZodArray<z.ZodString>;
159
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
160
+ roles: z.ZodArray<z.ZodString>;
161
+ }, z.core.$loose>>;
162
+ }, z.core.$loose>;
163
+ /** A layer with its checks: the rows of one layer, read apart from its header. */
164
+ export declare const LayerRowsSchema: z.ZodObject<{
165
+ id: z.ZodString;
166
+ rows: z.ZodArray<z.ZodObject<{
167
+ kind: z.ZodString;
168
+ id: z.ZodString;
169
+ title: z.ZodString;
170
+ status: z.ZodEnum<{
171
+ passed: "passed";
172
+ failed: "failed";
173
+ running: "running";
174
+ "not-run": "not-run";
175
+ }>;
176
+ specPath: z.ZodNullable<z.ZodString>;
177
+ detail: z.ZodString;
178
+ measurements: z.ZodArray<z.ZodObject<{
179
+ name: z.ZodString;
180
+ value: z.ZodNumber;
181
+ unit: z.ZodString;
182
+ limit: z.ZodOptional<z.ZodNumber>;
183
+ }, z.core.$loose>>;
184
+ testId: z.ZodNullable<z.ZodString>;
185
+ variant: z.ZodRecord<z.ZodString, z.ZodString>;
186
+ durationMs: z.ZodNullable<z.ZodNumber>;
187
+ evidence: z.ZodOptional<z.ZodObject<{
188
+ attachments: z.ZodNumber;
189
+ steps: z.ZodNumber;
190
+ annotations: z.ZodNumber;
191
+ attempts: z.ZodNumber;
192
+ links: z.ZodNumber;
193
+ tags: z.ZodArray<z.ZodString>;
194
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
195
+ roles: z.ZodArray<z.ZodString>;
196
+ }, z.core.$loose>>;
197
+ }, z.core.$loose>>;
198
+ fingerprints: z.ZodRecord<z.ZodString, z.ZodString>;
199
+ }, z.core.$loose>;
200
+ /** A layer that holds winners, with only the rows that win. */
201
+ export declare const LayerEvidenceSchema: z.ZodObject<{
202
+ id: z.ZodString;
203
+ rows: z.ZodArray<z.ZodObject<{
204
+ kind: z.ZodString;
205
+ id: z.ZodString;
206
+ title: z.ZodString;
207
+ status: z.ZodEnum<{
208
+ passed: "passed";
209
+ failed: "failed";
210
+ running: "running";
211
+ "not-run": "not-run";
212
+ }>;
213
+ specPath: z.ZodNullable<z.ZodString>;
214
+ detail: z.ZodString;
215
+ measurements: z.ZodArray<z.ZodObject<{
216
+ name: z.ZodString;
217
+ value: z.ZodNumber;
218
+ unit: z.ZodString;
219
+ limit: z.ZodOptional<z.ZodNumber>;
220
+ }, z.core.$loose>>;
221
+ testId: z.ZodNullable<z.ZodString>;
222
+ variant: z.ZodRecord<z.ZodString, z.ZodString>;
223
+ durationMs: z.ZodNullable<z.ZodNumber>;
224
+ evidence: z.ZodOptional<z.ZodObject<{
225
+ attachments: z.ZodNumber;
226
+ steps: z.ZodNumber;
227
+ annotations: z.ZodNumber;
228
+ attempts: z.ZodNumber;
229
+ links: z.ZodNumber;
230
+ tags: z.ZodArray<z.ZodString>;
231
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
232
+ roles: z.ZodArray<z.ZodString>;
233
+ }, z.core.$loose>>;
234
+ }, z.core.$loose>>;
235
+ fingerprints: z.ZodRecord<z.ZodString, z.ZodString>;
236
+ layer: z.ZodObject<{
237
+ id: z.ZodString;
238
+ backend: z.ZodString;
239
+ producer: z.ZodString;
240
+ packageDir: z.ZodNullable<z.ZodString>;
241
+ recordedAtMs: z.ZodNumber;
242
+ sha: z.ZodNullable<z.ZodString>;
243
+ branch: z.ZodNullable<z.ZodString>;
244
+ environment: z.ZodNullable<z.ZodString>;
245
+ runUrl: z.ZodNullable<z.ZodString>;
246
+ parameters: z.ZodRecord<z.ZodString, z.ZodString>;
247
+ freshness: z.ZodOptional<z.ZodEnum<{
248
+ unknown: "unknown";
249
+ modified: "modified";
250
+ }>>;
251
+ recording: z.ZodNullable<z.ZodUnknown>;
252
+ live: z.ZodBoolean;
253
+ counts: z.ZodRecord<z.ZodEnum<{
254
+ passed: "passed";
255
+ failed: "failed";
256
+ running: "running";
257
+ "not-run": "not-run";
258
+ }>, z.ZodNumber>;
259
+ execution: z.ZodString;
260
+ evidence: z.ZodOptional<z.ZodObject<{
261
+ attachments: z.ZodNumber;
262
+ steps: z.ZodNumber;
263
+ annotations: z.ZodNumber;
264
+ attempts: z.ZodNumber;
265
+ links: z.ZodNumber;
266
+ tags: z.ZodArray<z.ZodString>;
267
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
268
+ roles: z.ZodArray<z.ZodString>;
269
+ }, z.core.$loose>>;
270
+ }, z.core.$loose>;
271
+ }, z.core.$loose>;
272
+ /**
273
+ * The report as it stands: `GET /api/reports/evidence/effective`. Only the layers that win at least one check are
274
+ * listed, each with only the rows that win, newest first. `version` is a hash of the report: equal exactly when the
275
+ * report is, on every replica, so it works as an ETag and as the `since` of a delta.
276
+ */
277
+ export declare const EffectiveEvidenceSchema: z.ZodObject<{
278
+ version: z.ZodString;
279
+ layers: z.ZodArray<z.ZodObject<{
280
+ id: z.ZodString;
281
+ rows: z.ZodArray<z.ZodObject<{
282
+ kind: z.ZodString;
283
+ id: z.ZodString;
284
+ title: z.ZodString;
285
+ status: z.ZodEnum<{
286
+ passed: "passed";
287
+ failed: "failed";
288
+ running: "running";
289
+ "not-run": "not-run";
290
+ }>;
291
+ specPath: z.ZodNullable<z.ZodString>;
292
+ detail: z.ZodString;
293
+ measurements: z.ZodArray<z.ZodObject<{
294
+ name: z.ZodString;
295
+ value: z.ZodNumber;
296
+ unit: z.ZodString;
297
+ limit: z.ZodOptional<z.ZodNumber>;
298
+ }, z.core.$loose>>;
299
+ testId: z.ZodNullable<z.ZodString>;
300
+ variant: z.ZodRecord<z.ZodString, z.ZodString>;
301
+ durationMs: z.ZodNullable<z.ZodNumber>;
302
+ evidence: z.ZodOptional<z.ZodObject<{
303
+ attachments: z.ZodNumber;
304
+ steps: z.ZodNumber;
305
+ annotations: z.ZodNumber;
306
+ attempts: z.ZodNumber;
307
+ links: z.ZodNumber;
308
+ tags: z.ZodArray<z.ZodString>;
309
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
310
+ roles: z.ZodArray<z.ZodString>;
311
+ }, z.core.$loose>>;
312
+ }, z.core.$loose>>;
313
+ fingerprints: z.ZodRecord<z.ZodString, z.ZodString>;
314
+ layer: z.ZodObject<{
315
+ id: z.ZodString;
316
+ backend: z.ZodString;
317
+ producer: z.ZodString;
318
+ packageDir: z.ZodNullable<z.ZodString>;
319
+ recordedAtMs: z.ZodNumber;
320
+ sha: z.ZodNullable<z.ZodString>;
321
+ branch: z.ZodNullable<z.ZodString>;
322
+ environment: z.ZodNullable<z.ZodString>;
323
+ runUrl: z.ZodNullable<z.ZodString>;
324
+ parameters: z.ZodRecord<z.ZodString, z.ZodString>;
325
+ freshness: z.ZodOptional<z.ZodEnum<{
326
+ unknown: "unknown";
327
+ modified: "modified";
328
+ }>>;
329
+ recording: z.ZodNullable<z.ZodUnknown>;
330
+ live: z.ZodBoolean;
331
+ counts: z.ZodRecord<z.ZodEnum<{
332
+ passed: "passed";
333
+ failed: "failed";
334
+ running: "running";
335
+ "not-run": "not-run";
336
+ }>, z.ZodNumber>;
337
+ execution: z.ZodString;
338
+ evidence: z.ZodOptional<z.ZodObject<{
339
+ attachments: z.ZodNumber;
340
+ steps: z.ZodNumber;
341
+ annotations: z.ZodNumber;
342
+ attempts: z.ZodNumber;
343
+ links: z.ZodNumber;
344
+ tags: z.ZodArray<z.ZodString>;
345
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
346
+ roles: z.ZodArray<z.ZodString>;
347
+ }, z.core.$loose>>;
348
+ }, z.core.$loose>;
349
+ }, z.core.$loose>>;
350
+ backends: z.ZodArray<z.ZodObject<{
351
+ id: z.ZodString;
352
+ label: z.ZodString;
353
+ live: z.ZodBoolean;
354
+ available: z.ZodBoolean;
355
+ }, z.core.$loose>>;
356
+ notices: z.ZodArray<z.ZodString>;
357
+ totalLayers: z.ZodNumber;
358
+ active: z.ZodArray<z.ZodUnknown>;
359
+ }, z.core.$loose>;
360
+ /**
361
+ * What `GET /api/reports/evidence/effective?since=<version>` answers when the server remembers that version: only
362
+ * what changed. Replace the layers of the same id, drop `removed`, take the rest whole; the result equals the full
363
+ * report. When the server does not remember the version it answers with the whole report instead (no `delta` key).
364
+ */
365
+ export declare const EffectiveDeltaSchema: z.ZodObject<{
366
+ version: z.ZodString;
367
+ backends: z.ZodArray<z.ZodObject<{
368
+ id: z.ZodString;
369
+ label: z.ZodString;
370
+ live: z.ZodBoolean;
371
+ available: z.ZodBoolean;
372
+ }, z.core.$loose>>;
373
+ notices: z.ZodArray<z.ZodString>;
374
+ totalLayers: z.ZodNumber;
375
+ active: z.ZodArray<z.ZodUnknown>;
376
+ delta: z.ZodLiteral<true>;
377
+ base: z.ZodString;
378
+ layers: z.ZodArray<z.ZodObject<{
379
+ id: z.ZodString;
380
+ rows: z.ZodArray<z.ZodObject<{
381
+ kind: z.ZodString;
382
+ id: z.ZodString;
383
+ title: z.ZodString;
384
+ status: z.ZodEnum<{
385
+ passed: "passed";
386
+ failed: "failed";
387
+ running: "running";
388
+ "not-run": "not-run";
389
+ }>;
390
+ specPath: z.ZodNullable<z.ZodString>;
391
+ detail: z.ZodString;
392
+ measurements: z.ZodArray<z.ZodObject<{
393
+ name: z.ZodString;
394
+ value: z.ZodNumber;
395
+ unit: z.ZodString;
396
+ limit: z.ZodOptional<z.ZodNumber>;
397
+ }, z.core.$loose>>;
398
+ testId: z.ZodNullable<z.ZodString>;
399
+ variant: z.ZodRecord<z.ZodString, z.ZodString>;
400
+ durationMs: z.ZodNullable<z.ZodNumber>;
401
+ evidence: z.ZodOptional<z.ZodObject<{
402
+ attachments: z.ZodNumber;
403
+ steps: z.ZodNumber;
404
+ annotations: z.ZodNumber;
405
+ attempts: z.ZodNumber;
406
+ links: z.ZodNumber;
407
+ tags: z.ZodArray<z.ZodString>;
408
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
409
+ roles: z.ZodArray<z.ZodString>;
410
+ }, z.core.$loose>>;
411
+ }, z.core.$loose>>;
412
+ fingerprints: z.ZodRecord<z.ZodString, z.ZodString>;
413
+ layer: z.ZodObject<{
414
+ id: z.ZodString;
415
+ backend: z.ZodString;
416
+ producer: z.ZodString;
417
+ packageDir: z.ZodNullable<z.ZodString>;
418
+ recordedAtMs: z.ZodNumber;
419
+ sha: z.ZodNullable<z.ZodString>;
420
+ branch: z.ZodNullable<z.ZodString>;
421
+ environment: z.ZodNullable<z.ZodString>;
422
+ runUrl: z.ZodNullable<z.ZodString>;
423
+ parameters: z.ZodRecord<z.ZodString, z.ZodString>;
424
+ freshness: z.ZodOptional<z.ZodEnum<{
425
+ unknown: "unknown";
426
+ modified: "modified";
427
+ }>>;
428
+ recording: z.ZodNullable<z.ZodUnknown>;
429
+ live: z.ZodBoolean;
430
+ counts: z.ZodRecord<z.ZodEnum<{
431
+ passed: "passed";
432
+ failed: "failed";
433
+ running: "running";
434
+ "not-run": "not-run";
435
+ }>, z.ZodNumber>;
436
+ execution: z.ZodString;
437
+ evidence: z.ZodOptional<z.ZodObject<{
438
+ attachments: z.ZodNumber;
439
+ steps: z.ZodNumber;
440
+ annotations: z.ZodNumber;
441
+ attempts: z.ZodNumber;
442
+ links: z.ZodNumber;
443
+ tags: z.ZodArray<z.ZodString>;
444
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
445
+ roles: z.ZodArray<z.ZodString>;
446
+ }, z.core.$loose>>;
447
+ }, z.core.$loose>;
448
+ }, z.core.$loose>>;
449
+ removed: z.ZodArray<z.ZodString>;
450
+ }, z.core.$loose>;
451
+ /** A spec of the outline a report is laid over. */
452
+ export declare const OutlineSpecSchema: z.ZodObject<{
453
+ path: z.ZodString;
454
+ domain: z.ZodString;
455
+ kind: z.ZodString;
456
+ title: z.ZodString;
457
+ fingerprint: z.ZodOptional<z.ZodString>;
458
+ }, z.core.$loose>;
459
+ /** `GET /api/reports/outline`: the specs a report is laid over, from the newest committed spec set. */
460
+ export declare const OutlineSchema: z.ZodObject<{
461
+ specs: z.ZodArray<z.ZodObject<{
462
+ path: z.ZodString;
463
+ domain: z.ZodString;
464
+ kind: z.ZodString;
465
+ title: z.ZodString;
466
+ fingerprint: z.ZodOptional<z.ZodString>;
467
+ }, z.core.$loose>>;
468
+ sha: z.ZodNullable<z.ZodString>;
469
+ changedFiles: z.ZodArray<z.ZodString>;
470
+ }, z.core.$loose>;
471
+ /** `GET /api/reports/evidence`: one page of layer headers, newest first. Used by clients that read the whole history. */
472
+ export declare const EvidencePageSchema: z.ZodObject<{
473
+ layers: z.ZodArray<z.ZodObject<{
474
+ id: z.ZodString;
475
+ backend: z.ZodString;
476
+ producer: z.ZodString;
477
+ packageDir: z.ZodNullable<z.ZodString>;
478
+ recordedAtMs: z.ZodNumber;
479
+ sha: z.ZodNullable<z.ZodString>;
480
+ branch: z.ZodNullable<z.ZodString>;
481
+ environment: z.ZodNullable<z.ZodString>;
482
+ runUrl: z.ZodNullable<z.ZodString>;
483
+ parameters: z.ZodRecord<z.ZodString, z.ZodString>;
484
+ freshness: z.ZodOptional<z.ZodEnum<{
485
+ unknown: "unknown";
486
+ modified: "modified";
487
+ }>>;
488
+ recording: z.ZodNullable<z.ZodUnknown>;
489
+ live: z.ZodBoolean;
490
+ counts: z.ZodRecord<z.ZodEnum<{
491
+ passed: "passed";
492
+ failed: "failed";
493
+ running: "running";
494
+ "not-run": "not-run";
495
+ }>, z.ZodNumber>;
496
+ execution: z.ZodString;
497
+ evidence: z.ZodOptional<z.ZodObject<{
498
+ attachments: z.ZodNumber;
499
+ steps: z.ZodNumber;
500
+ annotations: z.ZodNumber;
501
+ attempts: z.ZodNumber;
502
+ links: z.ZodNumber;
503
+ tags: z.ZodArray<z.ZodString>;
504
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
505
+ roles: z.ZodArray<z.ZodString>;
506
+ }, z.core.$loose>>;
507
+ }, z.core.$loose>>;
508
+ cursor: z.ZodNullable<z.ZodString>;
509
+ notices: z.ZodArray<z.ZodString>;
510
+ backends: z.ZodArray<z.ZodObject<{
511
+ id: z.ZodString;
512
+ label: z.ZodString;
513
+ live: z.ZodBoolean;
514
+ available: z.ZodBoolean;
515
+ }, z.core.$loose>>;
516
+ active: z.ZodArray<z.ZodUnknown>;
517
+ }, z.core.$loose>;
518
+ /** `GET /api/reports/evidence/detail/{backend}/{id}`: everything one check carries, and what its run carries. */
519
+ export declare const CheckDetailSchema: z.ZodObject<{
520
+ layer: z.ZodString;
521
+ kind: z.ZodString;
522
+ check: z.ZodObject<{
523
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
524
+ id: z.ZodOptional<z.ZodString>;
525
+ parentId: z.ZodOptional<z.ZodString>;
526
+ name: z.ZodString;
527
+ kind: z.ZodOptional<z.ZodString>;
528
+ status: z.ZodOptional<z.ZodString>;
529
+ offsetMs: z.ZodOptional<z.ZodNumber>;
530
+ durationMs: z.ZodOptional<z.ZodNumber>;
531
+ detail: z.ZodOptional<z.ZodString>;
532
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
533
+ id: z.ZodOptional<z.ZodString>;
534
+ name: z.ZodString;
535
+ role: z.ZodOptional<z.ZodString>;
536
+ contentType: z.ZodOptional<z.ZodString>;
537
+ bundleKey: z.ZodOptional<z.ZodString>;
538
+ uri: z.ZodOptional<z.ZodString>;
539
+ text: z.ZodOptional<z.ZodString>;
540
+ bytes: z.ZodOptional<z.ZodNumber>;
541
+ sha256: z.ZodOptional<z.ZodString>;
542
+ width: z.ZodOptional<z.ZodNumber>;
543
+ height: z.ZodOptional<z.ZodNumber>;
544
+ durationMs: z.ZodOptional<z.ZodNumber>;
545
+ description: z.ZodOptional<z.ZodString>;
546
+ at: z.ZodOptional<z.ZodObject<{
547
+ step: z.ZodOptional<z.ZodString>;
548
+ offsetMs: z.ZodOptional<z.ZodNumber>;
549
+ }, z.core.$loose>>;
550
+ poster: z.ZodOptional<z.ZodString>;
551
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
552
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
553
+ }, z.core.$loose>>>;
554
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
555
+ type: z.ZodString;
556
+ message: z.ZodString;
557
+ level: z.ZodOptional<z.ZodString>;
558
+ at: z.ZodOptional<z.ZodObject<{
559
+ step: z.ZodOptional<z.ZodString>;
560
+ offsetMs: z.ZodOptional<z.ZodNumber>;
561
+ }, z.core.$loose>>;
562
+ source: z.ZodOptional<z.ZodObject<{
563
+ file: z.ZodOptional<z.ZodString>;
564
+ line: z.ZodOptional<z.ZodNumber>;
565
+ column: z.ZodOptional<z.ZodNumber>;
566
+ }, z.core.$loose>>;
567
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
568
+ url: z.ZodString;
569
+ name: z.ZodOptional<z.ZodString>;
570
+ rel: z.ZodOptional<z.ZodString>;
571
+ }, z.core.$loose>>>;
572
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
573
+ }, z.core.$loose>>>;
574
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
575
+ }, z.core.$loose>>>;
576
+ attempts: z.ZodOptional<z.ZodArray<z.ZodObject<{
577
+ index: z.ZodNumber;
578
+ status: z.ZodEnum<{
579
+ passed: "passed";
580
+ failed: "failed";
581
+ running: "running";
582
+ "not-run": "not-run";
583
+ }>;
584
+ durationMs: z.ZodOptional<z.ZodNumber>;
585
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
586
+ detail: z.ZodOptional<z.ZodString>;
587
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
588
+ id: z.ZodOptional<z.ZodString>;
589
+ parentId: z.ZodOptional<z.ZodString>;
590
+ name: z.ZodString;
591
+ kind: z.ZodOptional<z.ZodString>;
592
+ status: z.ZodOptional<z.ZodString>;
593
+ offsetMs: z.ZodOptional<z.ZodNumber>;
594
+ durationMs: z.ZodOptional<z.ZodNumber>;
595
+ detail: z.ZodOptional<z.ZodString>;
596
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
597
+ id: z.ZodOptional<z.ZodString>;
598
+ name: z.ZodString;
599
+ role: z.ZodOptional<z.ZodString>;
600
+ contentType: z.ZodOptional<z.ZodString>;
601
+ bundleKey: z.ZodOptional<z.ZodString>;
602
+ uri: z.ZodOptional<z.ZodString>;
603
+ text: z.ZodOptional<z.ZodString>;
604
+ bytes: z.ZodOptional<z.ZodNumber>;
605
+ sha256: z.ZodOptional<z.ZodString>;
606
+ width: z.ZodOptional<z.ZodNumber>;
607
+ height: z.ZodOptional<z.ZodNumber>;
608
+ durationMs: z.ZodOptional<z.ZodNumber>;
609
+ description: z.ZodOptional<z.ZodString>;
610
+ at: z.ZodOptional<z.ZodObject<{
611
+ step: z.ZodOptional<z.ZodString>;
612
+ offsetMs: z.ZodOptional<z.ZodNumber>;
613
+ }, z.core.$loose>>;
614
+ poster: z.ZodOptional<z.ZodString>;
615
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
616
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
617
+ }, z.core.$loose>>>;
618
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
619
+ type: z.ZodString;
620
+ message: z.ZodString;
621
+ level: z.ZodOptional<z.ZodString>;
622
+ at: z.ZodOptional<z.ZodObject<{
623
+ step: z.ZodOptional<z.ZodString>;
624
+ offsetMs: z.ZodOptional<z.ZodNumber>;
625
+ }, z.core.$loose>>;
626
+ source: z.ZodOptional<z.ZodObject<{
627
+ file: z.ZodOptional<z.ZodString>;
628
+ line: z.ZodOptional<z.ZodNumber>;
629
+ column: z.ZodOptional<z.ZodNumber>;
630
+ }, z.core.$loose>>;
631
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
632
+ url: z.ZodString;
633
+ name: z.ZodOptional<z.ZodString>;
634
+ rel: z.ZodOptional<z.ZodString>;
635
+ }, z.core.$loose>>>;
636
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
637
+ }, z.core.$loose>>>;
638
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
639
+ }, z.core.$loose>>>;
640
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
641
+ id: z.ZodOptional<z.ZodString>;
642
+ name: z.ZodString;
643
+ role: z.ZodOptional<z.ZodString>;
644
+ contentType: z.ZodOptional<z.ZodString>;
645
+ bundleKey: z.ZodOptional<z.ZodString>;
646
+ uri: z.ZodOptional<z.ZodString>;
647
+ text: z.ZodOptional<z.ZodString>;
648
+ bytes: z.ZodOptional<z.ZodNumber>;
649
+ sha256: z.ZodOptional<z.ZodString>;
650
+ width: z.ZodOptional<z.ZodNumber>;
651
+ height: z.ZodOptional<z.ZodNumber>;
652
+ durationMs: z.ZodOptional<z.ZodNumber>;
653
+ description: z.ZodOptional<z.ZodString>;
654
+ at: z.ZodOptional<z.ZodObject<{
655
+ step: z.ZodOptional<z.ZodString>;
656
+ offsetMs: z.ZodOptional<z.ZodNumber>;
657
+ }, z.core.$loose>>;
658
+ poster: z.ZodOptional<z.ZodString>;
659
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
660
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
661
+ }, z.core.$loose>>>;
662
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
663
+ type: z.ZodString;
664
+ message: z.ZodString;
665
+ level: z.ZodOptional<z.ZodString>;
666
+ at: z.ZodOptional<z.ZodObject<{
667
+ step: z.ZodOptional<z.ZodString>;
668
+ offsetMs: z.ZodOptional<z.ZodNumber>;
669
+ }, z.core.$loose>>;
670
+ source: z.ZodOptional<z.ZodObject<{
671
+ file: z.ZodOptional<z.ZodString>;
672
+ line: z.ZodOptional<z.ZodNumber>;
673
+ column: z.ZodOptional<z.ZodNumber>;
674
+ }, z.core.$loose>>;
675
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
676
+ url: z.ZodString;
677
+ name: z.ZodOptional<z.ZodString>;
678
+ rel: z.ZodOptional<z.ZodString>;
679
+ }, z.core.$loose>>>;
680
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
681
+ }, z.core.$loose>>>;
682
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
683
+ }, z.core.$loose>>>;
684
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
685
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
686
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
687
+ url: z.ZodString;
688
+ name: z.ZodOptional<z.ZodString>;
689
+ rel: z.ZodOptional<z.ZodString>;
690
+ }, z.core.$loose>>>;
691
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
692
+ id: z.ZodOptional<z.ZodString>;
693
+ name: z.ZodString;
694
+ role: z.ZodOptional<z.ZodString>;
695
+ contentType: z.ZodOptional<z.ZodString>;
696
+ bundleKey: z.ZodOptional<z.ZodString>;
697
+ uri: z.ZodOptional<z.ZodString>;
698
+ text: z.ZodOptional<z.ZodString>;
699
+ bytes: z.ZodOptional<z.ZodNumber>;
700
+ sha256: z.ZodOptional<z.ZodString>;
701
+ width: z.ZodOptional<z.ZodNumber>;
702
+ height: z.ZodOptional<z.ZodNumber>;
703
+ durationMs: z.ZodOptional<z.ZodNumber>;
704
+ description: z.ZodOptional<z.ZodString>;
705
+ at: z.ZodOptional<z.ZodObject<{
706
+ step: z.ZodOptional<z.ZodString>;
707
+ offsetMs: z.ZodOptional<z.ZodNumber>;
708
+ }, z.core.$loose>>;
709
+ poster: z.ZodOptional<z.ZodString>;
710
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
711
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
712
+ }, z.core.$loose>>>;
713
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
714
+ type: z.ZodString;
715
+ message: z.ZodString;
716
+ level: z.ZodOptional<z.ZodString>;
717
+ at: z.ZodOptional<z.ZodObject<{
718
+ step: z.ZodOptional<z.ZodString>;
719
+ offsetMs: z.ZodOptional<z.ZodNumber>;
720
+ }, z.core.$loose>>;
721
+ source: z.ZodOptional<z.ZodObject<{
722
+ file: z.ZodOptional<z.ZodString>;
723
+ line: z.ZodOptional<z.ZodNumber>;
724
+ column: z.ZodOptional<z.ZodNumber>;
725
+ }, z.core.$loose>>;
726
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
727
+ url: z.ZodString;
728
+ name: z.ZodOptional<z.ZodString>;
729
+ rel: z.ZodOptional<z.ZodString>;
730
+ }, z.core.$loose>>>;
731
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
732
+ }, z.core.$loose>>>;
733
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
734
+ id: z.ZodString;
735
+ title: z.ZodString;
736
+ status: z.ZodEnum<{
737
+ passed: "passed";
738
+ failed: "failed";
739
+ running: "running";
740
+ "not-run": "not-run";
741
+ }>;
742
+ detail: z.ZodDefault<z.ZodString>;
743
+ specPath: z.ZodOptional<z.ZodString>;
744
+ measurements: z.ZodDefault<z.ZodArray<z.ZodObject<{
745
+ name: z.ZodString;
746
+ value: z.ZodNumber;
747
+ unit: z.ZodString;
748
+ limit: z.ZodOptional<z.ZodNumber>;
749
+ }, z.core.$loose>>>;
750
+ durationMs: z.ZodOptional<z.ZodNumber>;
751
+ }, z.core.$loose>;
752
+ run: z.ZodObject<{}, z.core.$loose>;
753
+ }, z.core.$loose>;
754
+ /** `GET /api/store?prefix=…`: one page of keys under `layers/`, in code-unit order. */
755
+ export declare const StoreListingSchema: z.ZodObject<{
756
+ keys: z.ZodArray<z.ZodString>;
757
+ next: z.ZodNullable<z.ZodString>;
758
+ }, z.core.$loose>;
759
+ /** `PUT /api/store/{key}` answered: the key was taken (`created`) or was already there with the same bytes. */
760
+ export declare const StoreWriteResultSchema: z.ZodObject<{
761
+ ok: z.ZodLiteral<true>;
762
+ key: z.ZodString;
763
+ kind: z.ZodString;
764
+ created: z.ZodBoolean;
765
+ }, z.core.$loose>;
766
+ /** `POST /api/checks` answered: the layer that was written. */
767
+ export declare const ChecksResultSchema: z.ZodObject<{
768
+ ok: z.ZodLiteral<true>;
769
+ id: z.ZodString;
770
+ checks: z.ZodNumber;
771
+ }, z.core.$loose>;
772
+ /** The data of the `hello` event: sent first on `/api/events`. */
773
+ export declare const HelloEventSchema: z.ZodObject<{
774
+ version: z.ZodString;
775
+ ready: z.ZodBoolean;
776
+ time: z.ZodNumber;
777
+ }, z.core.$loose>;
778
+ /** The data of the `report` event: layers arrived. Enough to say who sent what, without asking. */
779
+ export declare const ReportEventSchema: z.ZodObject<{
780
+ version: z.ZodString;
781
+ totalLayers: z.ZodNumber;
782
+ added: z.ZodArray<z.ZodObject<{
783
+ id: z.ZodString;
784
+ producer: z.ZodString;
785
+ environment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
786
+ branch: z.ZodOptional<z.ZodNullable<z.ZodString>>;
787
+ sha: z.ZodOptional<z.ZodNullable<z.ZodString>>;
788
+ recordedAtMs: z.ZodNumber;
789
+ counts: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
790
+ passed: "passed";
791
+ failed: "failed";
792
+ running: "running";
793
+ "not-run": "not-run";
794
+ }>, z.ZodNumber>>;
795
+ }, z.core.$loose>>;
796
+ addedTotal: z.ZodNumber;
797
+ }, z.core.$loose>;
798
+ /** The data of the `ping` event: sent every `heartbeatSeconds`, so a quiet server is told apart from a dead connection. */
799
+ export declare const PingEventSchema: z.ZodObject<{}, z.core.$loose>;