@crvouga/atlas 0.4.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 (379) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +178 -617
  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 +35 -5
  94. package/dist/reports/src/evidence-live.js +18 -2
  95. package/dist/reports/src/evidence-types.d.ts +68 -1
  96. package/dist/reports/src/evidence-types.js +5 -1
  97. package/dist/reports/src/evidence-view.d.ts +43 -4
  98. package/dist/reports/src/evidence-view.js +13 -2
  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 +35 -5
  134. package/dist/reports/src/layer-axes.js +25 -5
  135. package/dist/reports/src/layer-catalog.d.ts +28 -1
  136. package/dist/reports/src/layer-catalog.js +18 -1
  137. package/dist/reports/src/layer-merge.d.ts +98 -9
  138. package/dist/reports/src/layer-merge.js +147 -31
  139. package/dist/reports/src/layer-source.d.ts +18 -0
  140. package/dist/reports/src/layer-source.js +11 -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 +32 -1
  144. package/dist/reports/src/layers-route.d.ts +47 -4
  145. package/dist/reports/src/layers-route.js +86 -7
  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 +26 -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 +42 -9
  175. package/dist/reports/src/publish.js +36 -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 +37 -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 +32 -4
  329. package/packages/core/README.md +2 -1
  330. package/packages/reports/README.md +65 -0
  331. package/packages/reports/STORAGE.md +4 -0
  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 +21 -0
  361. package/packages/visualizer/src/app/AppShell.tsx +9 -2
  362. package/packages/visualizer/src/app/report-sources.tsx +6 -4
  363. package/packages/visualizer/src/app/router.tsx +3 -3
  364. package/packages/visualizer/src/components/Header.module.css +35 -0
  365. package/packages/visualizer/src/components/Header.tsx +40 -3
  366. package/packages/visualizer/src/data/adapters/adapter.ts +5 -17
  367. package/packages/visualizer/src/data/adapters/index.ts +10 -1
  368. package/packages/visualizer/src/evidence/api.ts +14 -2
  369. package/packages/visualizer/src/evidence/artifacts.module.css +213 -0
  370. package/packages/visualizer/src/evidence/artifacts.tsx +272 -0
  371. package/packages/visualizer/src/evidence/check-detail.tsx +3 -1
  372. package/packages/visualizer/src/evidence/evidence-context.tsx +74 -12
  373. package/packages/visualizer/src/evidence/spec-page.tsx +23 -16
  374. package/packages/visualizer/src/find/Finder.tsx +1 -7
  375. package/packages/visualizer/src/find/open.ts +4 -0
  376. package/packages/visualizer/src/live/live-stream.ts +204 -0
  377. package/packages/visualizer/src/runtime.ts +19 -0
  378. package/packages/visualizer/vite/atlas-server-proxy.ts +36 -0
  379. package/packages/visualizer/vite.config.ts +11 -3
@@ -0,0 +1,2273 @@
1
+ /**
2
+ * @module Layer document and report status schemas
3
+ *
4
+ * The stable evidence format. A layer is the one unit of evidence every producer writes and every reader combines;
5
+ * this module also holds the input a producer hands to the publisher (`PublishChecksSchema`), the spec set a report is
6
+ * laid over (`SpecSetSchema`) and the JSON `atlas report status` prints (`ReportStatusSchema`). Reports are never
7
+ * stored
8
+ * as a whole; they are computed by layering.
9
+ *
10
+ * A layer is one focused recording: the checks one producer ran, on one environment, from one
11
+ * version and branch. It is immutable and addressed by its content.
12
+ *
13
+ * Compatibility, which is the point of this file:
14
+ * - Within a schema major version a change only adds optional fields. Readers ignore fields they
15
+ * do not know (every object here is loose), so an old reader reads a newer minor layer.
16
+ * - The closed enumerations (`status`, `freshness`) change only with a new major version.
17
+ * - `schemaVersion` is the major version. A reader that is older than a layer says so; it never
18
+ * guesses.
19
+ *
20
+ * Extensibility, which is what makes one format fit any test framework (docs/extending.md):
21
+ * - Evidence is open. Beyond its outcome a check may carry attachments of any media type, timeline
22
+ * steps, annotations, retry attempts, tags, labels, links and namespaced `extensions`. Every one of
23
+ * them is optional, so a layer without them is as valid as it ever was.
24
+ * - Vocabularies are open strings (`role`, `kind`, `type`, `level`, a step's `status`). The values
25
+ * documented here are conventions, not a list: a reader shows what it does not know in a generic way.
26
+ * - `extensions` is where a producer or a tool puts structured data of its own, under a key it owns
27
+ * (`com.example.coverage`). Readers keep it and never fail on it.
28
+ * - Evidence never decides a result. A reader that cannot read a piece of evidence drops that piece and
29
+ * keeps the check, its status and its place in the report.
30
+ *
31
+ * @see docs/report-contract.md
32
+ * @see docs/extending.md
33
+ */
34
+ import { z } from 'zod/v4';
35
+ /**
36
+ * The major version of the layer format, written as `schemaVersion` in every layer. `parseLayerDocument` reads a
37
+ * layer without the field as this version and refuses any other.
38
+ */
39
+ export declare const LAYER_SCHEMA_VERSION = 1;
40
+ /** Outcomes of a check. Anything not `passed` is not evidence of success. */
41
+ export declare const CHECK_STATUSES: readonly ["passed", "failed", "running", "not-run"];
42
+ /**
43
+ * Zod enum over `CHECK_STATUSES`, the closed vocabulary of a check's and an attempt's `status`. It changes only with
44
+ * a new `schemaVersion`.
45
+ */
46
+ export declare const CheckStatusSchema: z.ZodEnum<{
47
+ passed: "passed";
48
+ failed: "failed";
49
+ running: "running";
50
+ "not-run": "not-run";
51
+ }>;
52
+ /**
53
+ * One of `CHECK_STATUSES`: `passed` and `failed` are completed results; `running` and `not-run` are unfinished and
54
+ * never count as a pass.
55
+ */
56
+ export type CheckStatus = z.infer<typeof CheckStatusSchema>;
57
+ /**
58
+ * Why a layer's origin is advisory: `modified` (recorded from a checkout with uncommitted changes) or `unknown`
59
+ * (origin not captured). Absent on a layer from a clean commit. It never changes a status. A closed vocabulary: it
60
+ * changes only with a new `schemaVersion`.
61
+ */
62
+ export declare const FRESHNESS: readonly ["unknown", "modified"];
63
+ /**
64
+ * A number a check measured, such as a latency or a size, with its unit and an optional allowance. A measurement over
65
+ * its `limit` is reported and never changes the check's status.
66
+ */
67
+ export declare const MeasurementSchema: z.ZodObject<{
68
+ name: z.ZodString;
69
+ value: z.ZodNumber;
70
+ unit: z.ZodString;
71
+ limit: z.ZodOptional<z.ZodNumber>;
72
+ }, z.core.$loose>;
73
+ /**
74
+ * Structured data of a producer's or tool's own, by namespace: `{ "com.example.coverage": { … } }`.
75
+ * Use a name you own (a reverse domain, or your tool's name). Readers preserve it and never fail on it.
76
+ */
77
+ export declare const ExtensionsSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
78
+ /** A link attached to a layer, part, check or annotation: a URL, an optional name and why it is linked. */
79
+ export declare const LinkSchema: z.ZodObject<{
80
+ url: z.ZodString;
81
+ name: z.ZodOptional<z.ZodString>;
82
+ rel: z.ZodOptional<z.ZodString>;
83
+ }, z.core.$loose>;
84
+ /** Where in a check something happened: at a step, and/or this long after the check started. */
85
+ export declare const MomentSchema: z.ZodObject<{
86
+ step: z.ZodOptional<z.ZodString>;
87
+ offsetMs: z.ZodOptional<z.ZodNumber>;
88
+ }, z.core.$loose>;
89
+ /**
90
+ * A file or a value that goes with a result: a screenshot, a video, a trace, a log, a DOM or accessibility
91
+ * snapshot, a HAR, a coverage report, a diff, anything. `contentType` says how to read it; `role` says what
92
+ * it is for, in an open vocabulary (`screenshot`, `video`, `trace`, `log`, `snapshot`, `har`, `coverage`,
93
+ * `diff`, `report`…). The bytes are in the layer (`bundleKey`), somewhere else (`uri`), or small enough to
94
+ * sit inline (`text`).
95
+ */
96
+ export declare const AttachmentSchema: z.ZodObject<{
97
+ id: z.ZodOptional<z.ZodString>;
98
+ name: z.ZodString;
99
+ role: z.ZodOptional<z.ZodString>;
100
+ contentType: z.ZodOptional<z.ZodString>;
101
+ bundleKey: z.ZodOptional<z.ZodString>;
102
+ uri: z.ZodOptional<z.ZodString>;
103
+ text: z.ZodOptional<z.ZodString>;
104
+ bytes: z.ZodOptional<z.ZodNumber>;
105
+ sha256: z.ZodOptional<z.ZodString>;
106
+ width: z.ZodOptional<z.ZodNumber>;
107
+ height: z.ZodOptional<z.ZodNumber>;
108
+ durationMs: z.ZodOptional<z.ZodNumber>;
109
+ description: z.ZodOptional<z.ZodString>;
110
+ at: z.ZodOptional<z.ZodObject<{
111
+ step: z.ZodOptional<z.ZodString>;
112
+ offsetMs: z.ZodOptional<z.ZodNumber>;
113
+ }, z.core.$loose>>;
114
+ poster: z.ZodOptional<z.ZodString>;
115
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
116
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
117
+ }, z.core.$loose>;
118
+ /** An attachment as stored in a layer, parsed from `AttachmentSchema`. */
119
+ export type Attachment = z.output<typeof AttachmentSchema>;
120
+ /** A note about a result: a warning, a deprecation, a coverage figure, an accessibility finding, anything. */
121
+ export declare const AnnotationSchema: z.ZodObject<{
122
+ type: z.ZodString;
123
+ message: z.ZodString;
124
+ level: z.ZodOptional<z.ZodString>;
125
+ at: z.ZodOptional<z.ZodObject<{
126
+ step: z.ZodOptional<z.ZodString>;
127
+ offsetMs: z.ZodOptional<z.ZodNumber>;
128
+ }, z.core.$loose>>;
129
+ source: z.ZodOptional<z.ZodObject<{
130
+ file: z.ZodOptional<z.ZodString>;
131
+ line: z.ZodOptional<z.ZodNumber>;
132
+ column: z.ZodOptional<z.ZodNumber>;
133
+ }, z.core.$loose>>;
134
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
135
+ url: z.ZodString;
136
+ name: z.ZodOptional<z.ZodString>;
137
+ rel: z.ZodOptional<z.ZodString>;
138
+ }, z.core.$loose>>>;
139
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
140
+ }, z.core.$loose>;
141
+ /** An annotation as stored in a layer, parsed from `AnnotationSchema`. */
142
+ export type Annotation = z.output<typeof AnnotationSchema>;
143
+ /**
144
+ * One entry on a check's timeline. Steps are a flat list: nest them with `parentId`, order them by
145
+ * `offsetMs`. Whatever a framework calls its steps (actions, hooks, requests, spans), they fit.
146
+ */
147
+ export declare const StepSchema: z.ZodObject<{
148
+ id: z.ZodOptional<z.ZodString>;
149
+ parentId: z.ZodOptional<z.ZodString>;
150
+ name: z.ZodString;
151
+ kind: z.ZodOptional<z.ZodString>;
152
+ status: z.ZodOptional<z.ZodString>;
153
+ offsetMs: z.ZodOptional<z.ZodNumber>;
154
+ durationMs: z.ZodOptional<z.ZodNumber>;
155
+ detail: z.ZodOptional<z.ZodString>;
156
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
157
+ id: z.ZodOptional<z.ZodString>;
158
+ name: z.ZodString;
159
+ role: z.ZodOptional<z.ZodString>;
160
+ contentType: z.ZodOptional<z.ZodString>;
161
+ bundleKey: z.ZodOptional<z.ZodString>;
162
+ uri: z.ZodOptional<z.ZodString>;
163
+ text: z.ZodOptional<z.ZodString>;
164
+ bytes: z.ZodOptional<z.ZodNumber>;
165
+ sha256: z.ZodOptional<z.ZodString>;
166
+ width: z.ZodOptional<z.ZodNumber>;
167
+ height: z.ZodOptional<z.ZodNumber>;
168
+ durationMs: z.ZodOptional<z.ZodNumber>;
169
+ description: z.ZodOptional<z.ZodString>;
170
+ at: z.ZodOptional<z.ZodObject<{
171
+ step: z.ZodOptional<z.ZodString>;
172
+ offsetMs: z.ZodOptional<z.ZodNumber>;
173
+ }, z.core.$loose>>;
174
+ poster: z.ZodOptional<z.ZodString>;
175
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
176
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
177
+ }, z.core.$loose>>>;
178
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
179
+ type: z.ZodString;
180
+ message: z.ZodString;
181
+ level: z.ZodOptional<z.ZodString>;
182
+ at: z.ZodOptional<z.ZodObject<{
183
+ step: z.ZodOptional<z.ZodString>;
184
+ offsetMs: z.ZodOptional<z.ZodNumber>;
185
+ }, z.core.$loose>>;
186
+ source: z.ZodOptional<z.ZodObject<{
187
+ file: z.ZodOptional<z.ZodString>;
188
+ line: z.ZodOptional<z.ZodNumber>;
189
+ column: z.ZodOptional<z.ZodNumber>;
190
+ }, z.core.$loose>>;
191
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
192
+ url: z.ZodString;
193
+ name: z.ZodOptional<z.ZodString>;
194
+ rel: z.ZodOptional<z.ZodString>;
195
+ }, z.core.$loose>>>;
196
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
197
+ }, z.core.$loose>>>;
198
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
199
+ }, z.core.$loose>;
200
+ /** A timeline step as stored in a layer, parsed from `StepSchema`. */
201
+ export type Step = z.output<typeof StepSchema>;
202
+ /** One try of a check that was retried. The check's own status is the last one. */
203
+ export declare const AttemptSchema: z.ZodObject<{
204
+ index: z.ZodNumber;
205
+ status: z.ZodEnum<{
206
+ passed: "passed";
207
+ failed: "failed";
208
+ running: "running";
209
+ "not-run": "not-run";
210
+ }>;
211
+ durationMs: z.ZodOptional<z.ZodNumber>;
212
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
213
+ detail: z.ZodOptional<z.ZodString>;
214
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
215
+ id: z.ZodOptional<z.ZodString>;
216
+ parentId: z.ZodOptional<z.ZodString>;
217
+ name: z.ZodString;
218
+ kind: z.ZodOptional<z.ZodString>;
219
+ status: z.ZodOptional<z.ZodString>;
220
+ offsetMs: z.ZodOptional<z.ZodNumber>;
221
+ durationMs: z.ZodOptional<z.ZodNumber>;
222
+ detail: z.ZodOptional<z.ZodString>;
223
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
224
+ id: z.ZodOptional<z.ZodString>;
225
+ name: z.ZodString;
226
+ role: z.ZodOptional<z.ZodString>;
227
+ contentType: z.ZodOptional<z.ZodString>;
228
+ bundleKey: z.ZodOptional<z.ZodString>;
229
+ uri: z.ZodOptional<z.ZodString>;
230
+ text: z.ZodOptional<z.ZodString>;
231
+ bytes: z.ZodOptional<z.ZodNumber>;
232
+ sha256: z.ZodOptional<z.ZodString>;
233
+ width: z.ZodOptional<z.ZodNumber>;
234
+ height: z.ZodOptional<z.ZodNumber>;
235
+ durationMs: z.ZodOptional<z.ZodNumber>;
236
+ description: z.ZodOptional<z.ZodString>;
237
+ at: z.ZodOptional<z.ZodObject<{
238
+ step: z.ZodOptional<z.ZodString>;
239
+ offsetMs: z.ZodOptional<z.ZodNumber>;
240
+ }, z.core.$loose>>;
241
+ poster: z.ZodOptional<z.ZodString>;
242
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
243
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
244
+ }, z.core.$loose>>>;
245
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
246
+ type: z.ZodString;
247
+ message: z.ZodString;
248
+ level: z.ZodOptional<z.ZodString>;
249
+ at: z.ZodOptional<z.ZodObject<{
250
+ step: z.ZodOptional<z.ZodString>;
251
+ offsetMs: z.ZodOptional<z.ZodNumber>;
252
+ }, z.core.$loose>>;
253
+ source: z.ZodOptional<z.ZodObject<{
254
+ file: z.ZodOptional<z.ZodString>;
255
+ line: z.ZodOptional<z.ZodNumber>;
256
+ column: z.ZodOptional<z.ZodNumber>;
257
+ }, z.core.$loose>>;
258
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
259
+ url: z.ZodString;
260
+ name: z.ZodOptional<z.ZodString>;
261
+ rel: z.ZodOptional<z.ZodString>;
262
+ }, z.core.$loose>>>;
263
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
264
+ }, z.core.$loose>>>;
265
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
266
+ }, z.core.$loose>>>;
267
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
268
+ id: z.ZodOptional<z.ZodString>;
269
+ name: z.ZodString;
270
+ role: z.ZodOptional<z.ZodString>;
271
+ contentType: z.ZodOptional<z.ZodString>;
272
+ bundleKey: z.ZodOptional<z.ZodString>;
273
+ uri: z.ZodOptional<z.ZodString>;
274
+ text: z.ZodOptional<z.ZodString>;
275
+ bytes: z.ZodOptional<z.ZodNumber>;
276
+ sha256: z.ZodOptional<z.ZodString>;
277
+ width: z.ZodOptional<z.ZodNumber>;
278
+ height: z.ZodOptional<z.ZodNumber>;
279
+ durationMs: z.ZodOptional<z.ZodNumber>;
280
+ description: z.ZodOptional<z.ZodString>;
281
+ at: z.ZodOptional<z.ZodObject<{
282
+ step: z.ZodOptional<z.ZodString>;
283
+ offsetMs: z.ZodOptional<z.ZodNumber>;
284
+ }, z.core.$loose>>;
285
+ poster: z.ZodOptional<z.ZodString>;
286
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
287
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
288
+ }, z.core.$loose>>>;
289
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
290
+ type: z.ZodString;
291
+ message: z.ZodString;
292
+ level: z.ZodOptional<z.ZodString>;
293
+ at: z.ZodOptional<z.ZodObject<{
294
+ step: z.ZodOptional<z.ZodString>;
295
+ offsetMs: z.ZodOptional<z.ZodNumber>;
296
+ }, z.core.$loose>>;
297
+ source: z.ZodOptional<z.ZodObject<{
298
+ file: z.ZodOptional<z.ZodString>;
299
+ line: z.ZodOptional<z.ZodNumber>;
300
+ column: z.ZodOptional<z.ZodNumber>;
301
+ }, z.core.$loose>>;
302
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
303
+ url: z.ZodString;
304
+ name: z.ZodOptional<z.ZodString>;
305
+ rel: z.ZodOptional<z.ZodString>;
306
+ }, z.core.$loose>>>;
307
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
308
+ }, z.core.$loose>>>;
309
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
310
+ }, z.core.$loose>;
311
+ /** A retry attempt as stored in a layer, parsed from `AttemptSchema`. */
312
+ export type Attempt = z.output<typeof AttemptSchema>;
313
+ /**
314
+ * One check: the unit that has a status, such as a Gherkin scenario, a test case or a lint rule. Its `id` is stable
315
+ * across layers; with the layer's producer, the part's kind, the spec, the environment and the parameters it names
316
+ * the slot a result fills, and the newest completed result of a slot wins. It carries the outcome (`status`,
317
+ * `detail`, `measurements`) and, optionally, evidence (tags, labels, links, attachments, annotations, steps,
318
+ * attempts, extensions) that never decides the result.
319
+ */
320
+ export declare const CheckSchema: z.ZodObject<{
321
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
322
+ id: z.ZodOptional<z.ZodString>;
323
+ parentId: z.ZodOptional<z.ZodString>;
324
+ name: z.ZodString;
325
+ kind: z.ZodOptional<z.ZodString>;
326
+ status: z.ZodOptional<z.ZodString>;
327
+ offsetMs: z.ZodOptional<z.ZodNumber>;
328
+ durationMs: z.ZodOptional<z.ZodNumber>;
329
+ detail: z.ZodOptional<z.ZodString>;
330
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
331
+ id: z.ZodOptional<z.ZodString>;
332
+ name: z.ZodString;
333
+ role: z.ZodOptional<z.ZodString>;
334
+ contentType: z.ZodOptional<z.ZodString>;
335
+ bundleKey: z.ZodOptional<z.ZodString>;
336
+ uri: z.ZodOptional<z.ZodString>;
337
+ text: z.ZodOptional<z.ZodString>;
338
+ bytes: z.ZodOptional<z.ZodNumber>;
339
+ sha256: z.ZodOptional<z.ZodString>;
340
+ width: z.ZodOptional<z.ZodNumber>;
341
+ height: z.ZodOptional<z.ZodNumber>;
342
+ durationMs: z.ZodOptional<z.ZodNumber>;
343
+ description: z.ZodOptional<z.ZodString>;
344
+ at: z.ZodOptional<z.ZodObject<{
345
+ step: z.ZodOptional<z.ZodString>;
346
+ offsetMs: z.ZodOptional<z.ZodNumber>;
347
+ }, z.core.$loose>>;
348
+ poster: z.ZodOptional<z.ZodString>;
349
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
350
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
351
+ }, z.core.$loose>>>;
352
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
353
+ type: z.ZodString;
354
+ message: z.ZodString;
355
+ level: z.ZodOptional<z.ZodString>;
356
+ at: z.ZodOptional<z.ZodObject<{
357
+ step: z.ZodOptional<z.ZodString>;
358
+ offsetMs: z.ZodOptional<z.ZodNumber>;
359
+ }, z.core.$loose>>;
360
+ source: z.ZodOptional<z.ZodObject<{
361
+ file: z.ZodOptional<z.ZodString>;
362
+ line: z.ZodOptional<z.ZodNumber>;
363
+ column: z.ZodOptional<z.ZodNumber>;
364
+ }, z.core.$loose>>;
365
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
366
+ url: z.ZodString;
367
+ name: z.ZodOptional<z.ZodString>;
368
+ rel: z.ZodOptional<z.ZodString>;
369
+ }, z.core.$loose>>>;
370
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
371
+ }, z.core.$loose>>>;
372
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
373
+ }, z.core.$loose>>>;
374
+ attempts: z.ZodOptional<z.ZodArray<z.ZodObject<{
375
+ index: z.ZodNumber;
376
+ status: z.ZodEnum<{
377
+ passed: "passed";
378
+ failed: "failed";
379
+ running: "running";
380
+ "not-run": "not-run";
381
+ }>;
382
+ durationMs: z.ZodOptional<z.ZodNumber>;
383
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
384
+ detail: z.ZodOptional<z.ZodString>;
385
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
386
+ id: z.ZodOptional<z.ZodString>;
387
+ parentId: z.ZodOptional<z.ZodString>;
388
+ name: z.ZodString;
389
+ kind: z.ZodOptional<z.ZodString>;
390
+ status: z.ZodOptional<z.ZodString>;
391
+ offsetMs: z.ZodOptional<z.ZodNumber>;
392
+ durationMs: z.ZodOptional<z.ZodNumber>;
393
+ detail: z.ZodOptional<z.ZodString>;
394
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
395
+ id: z.ZodOptional<z.ZodString>;
396
+ name: z.ZodString;
397
+ role: z.ZodOptional<z.ZodString>;
398
+ contentType: z.ZodOptional<z.ZodString>;
399
+ bundleKey: z.ZodOptional<z.ZodString>;
400
+ uri: z.ZodOptional<z.ZodString>;
401
+ text: z.ZodOptional<z.ZodString>;
402
+ bytes: z.ZodOptional<z.ZodNumber>;
403
+ sha256: z.ZodOptional<z.ZodString>;
404
+ width: z.ZodOptional<z.ZodNumber>;
405
+ height: z.ZodOptional<z.ZodNumber>;
406
+ durationMs: z.ZodOptional<z.ZodNumber>;
407
+ description: z.ZodOptional<z.ZodString>;
408
+ at: z.ZodOptional<z.ZodObject<{
409
+ step: z.ZodOptional<z.ZodString>;
410
+ offsetMs: z.ZodOptional<z.ZodNumber>;
411
+ }, z.core.$loose>>;
412
+ poster: z.ZodOptional<z.ZodString>;
413
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
414
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
415
+ }, z.core.$loose>>>;
416
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
417
+ type: z.ZodString;
418
+ message: z.ZodString;
419
+ level: z.ZodOptional<z.ZodString>;
420
+ at: z.ZodOptional<z.ZodObject<{
421
+ step: z.ZodOptional<z.ZodString>;
422
+ offsetMs: z.ZodOptional<z.ZodNumber>;
423
+ }, z.core.$loose>>;
424
+ source: z.ZodOptional<z.ZodObject<{
425
+ file: z.ZodOptional<z.ZodString>;
426
+ line: z.ZodOptional<z.ZodNumber>;
427
+ column: z.ZodOptional<z.ZodNumber>;
428
+ }, z.core.$loose>>;
429
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
430
+ url: z.ZodString;
431
+ name: z.ZodOptional<z.ZodString>;
432
+ rel: z.ZodOptional<z.ZodString>;
433
+ }, z.core.$loose>>>;
434
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
435
+ }, z.core.$loose>>>;
436
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
437
+ }, z.core.$loose>>>;
438
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
439
+ id: z.ZodOptional<z.ZodString>;
440
+ name: z.ZodString;
441
+ role: z.ZodOptional<z.ZodString>;
442
+ contentType: z.ZodOptional<z.ZodString>;
443
+ bundleKey: z.ZodOptional<z.ZodString>;
444
+ uri: z.ZodOptional<z.ZodString>;
445
+ text: z.ZodOptional<z.ZodString>;
446
+ bytes: z.ZodOptional<z.ZodNumber>;
447
+ sha256: z.ZodOptional<z.ZodString>;
448
+ width: z.ZodOptional<z.ZodNumber>;
449
+ height: z.ZodOptional<z.ZodNumber>;
450
+ durationMs: z.ZodOptional<z.ZodNumber>;
451
+ description: z.ZodOptional<z.ZodString>;
452
+ at: z.ZodOptional<z.ZodObject<{
453
+ step: z.ZodOptional<z.ZodString>;
454
+ offsetMs: z.ZodOptional<z.ZodNumber>;
455
+ }, z.core.$loose>>;
456
+ poster: z.ZodOptional<z.ZodString>;
457
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
458
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
459
+ }, z.core.$loose>>>;
460
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
461
+ type: z.ZodString;
462
+ message: z.ZodString;
463
+ level: z.ZodOptional<z.ZodString>;
464
+ at: z.ZodOptional<z.ZodObject<{
465
+ step: z.ZodOptional<z.ZodString>;
466
+ offsetMs: z.ZodOptional<z.ZodNumber>;
467
+ }, z.core.$loose>>;
468
+ source: z.ZodOptional<z.ZodObject<{
469
+ file: z.ZodOptional<z.ZodString>;
470
+ line: z.ZodOptional<z.ZodNumber>;
471
+ column: z.ZodOptional<z.ZodNumber>;
472
+ }, z.core.$loose>>;
473
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
474
+ url: z.ZodString;
475
+ name: z.ZodOptional<z.ZodString>;
476
+ rel: z.ZodOptional<z.ZodString>;
477
+ }, z.core.$loose>>>;
478
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
479
+ }, z.core.$loose>>>;
480
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
481
+ }, z.core.$loose>>>;
482
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
483
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
484
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
485
+ url: z.ZodString;
486
+ name: z.ZodOptional<z.ZodString>;
487
+ rel: z.ZodOptional<z.ZodString>;
488
+ }, z.core.$loose>>>;
489
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
490
+ id: z.ZodOptional<z.ZodString>;
491
+ name: z.ZodString;
492
+ role: z.ZodOptional<z.ZodString>;
493
+ contentType: z.ZodOptional<z.ZodString>;
494
+ bundleKey: z.ZodOptional<z.ZodString>;
495
+ uri: z.ZodOptional<z.ZodString>;
496
+ text: z.ZodOptional<z.ZodString>;
497
+ bytes: z.ZodOptional<z.ZodNumber>;
498
+ sha256: z.ZodOptional<z.ZodString>;
499
+ width: z.ZodOptional<z.ZodNumber>;
500
+ height: z.ZodOptional<z.ZodNumber>;
501
+ durationMs: z.ZodOptional<z.ZodNumber>;
502
+ description: z.ZodOptional<z.ZodString>;
503
+ at: z.ZodOptional<z.ZodObject<{
504
+ step: z.ZodOptional<z.ZodString>;
505
+ offsetMs: z.ZodOptional<z.ZodNumber>;
506
+ }, z.core.$loose>>;
507
+ poster: z.ZodOptional<z.ZodString>;
508
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
509
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
510
+ }, z.core.$loose>>>;
511
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
512
+ type: z.ZodString;
513
+ message: z.ZodString;
514
+ level: z.ZodOptional<z.ZodString>;
515
+ at: z.ZodOptional<z.ZodObject<{
516
+ step: z.ZodOptional<z.ZodString>;
517
+ offsetMs: z.ZodOptional<z.ZodNumber>;
518
+ }, z.core.$loose>>;
519
+ source: z.ZodOptional<z.ZodObject<{
520
+ file: z.ZodOptional<z.ZodString>;
521
+ line: z.ZodOptional<z.ZodNumber>;
522
+ column: z.ZodOptional<z.ZodNumber>;
523
+ }, z.core.$loose>>;
524
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
525
+ url: z.ZodString;
526
+ name: z.ZodOptional<z.ZodString>;
527
+ rel: z.ZodOptional<z.ZodString>;
528
+ }, z.core.$loose>>>;
529
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
530
+ }, z.core.$loose>>>;
531
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
532
+ id: z.ZodString;
533
+ title: z.ZodString;
534
+ status: z.ZodEnum<{
535
+ passed: "passed";
536
+ failed: "failed";
537
+ running: "running";
538
+ "not-run": "not-run";
539
+ }>;
540
+ detail: z.ZodDefault<z.ZodString>;
541
+ specPath: z.ZodOptional<z.ZodString>;
542
+ measurements: z.ZodDefault<z.ZodArray<z.ZodObject<{
543
+ name: z.ZodString;
544
+ value: z.ZodNumber;
545
+ unit: z.ZodString;
546
+ limit: z.ZodOptional<z.ZodNumber>;
547
+ }, z.core.$loose>>>;
548
+ durationMs: z.ZodOptional<z.ZodNumber>;
549
+ }, z.core.$loose>;
550
+ /** A check as stored in a layer, parsed from `CheckSchema`. */
551
+ export type Check = z.output<typeof CheckSchema>;
552
+ /**
553
+ * A spec a layer was recorded against: its path, domain, kind and title, and an advisory fingerprint of its text so a
554
+ * reader can warn when the spec changed since.
555
+ */
556
+ export declare const SpecEntrySchema: z.ZodObject<{
557
+ path: z.ZodString;
558
+ domain: z.ZodString;
559
+ kind: z.ZodString;
560
+ title: z.ZodString;
561
+ fingerprint: z.ZodOptional<z.ZodString>;
562
+ }, z.core.$loose>;
563
+ /**
564
+ * A group of checks inside a layer, with an open `kind` (`behavior`, `performance`, `accessibility`…) that is part of
565
+ * the slot a check fills. `publishChecks` writes a layer with one part. Parts may carry evidence of their own.
566
+ */
567
+ export declare const ReportPartSchema: z.ZodObject<{
568
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
569
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
570
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
571
+ url: z.ZodString;
572
+ name: z.ZodOptional<z.ZodString>;
573
+ rel: z.ZodOptional<z.ZodString>;
574
+ }, z.core.$loose>>>;
575
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
576
+ id: z.ZodOptional<z.ZodString>;
577
+ name: z.ZodString;
578
+ role: z.ZodOptional<z.ZodString>;
579
+ contentType: z.ZodOptional<z.ZodString>;
580
+ bundleKey: z.ZodOptional<z.ZodString>;
581
+ uri: z.ZodOptional<z.ZodString>;
582
+ text: z.ZodOptional<z.ZodString>;
583
+ bytes: z.ZodOptional<z.ZodNumber>;
584
+ sha256: z.ZodOptional<z.ZodString>;
585
+ width: z.ZodOptional<z.ZodNumber>;
586
+ height: z.ZodOptional<z.ZodNumber>;
587
+ durationMs: z.ZodOptional<z.ZodNumber>;
588
+ description: z.ZodOptional<z.ZodString>;
589
+ at: z.ZodOptional<z.ZodObject<{
590
+ step: z.ZodOptional<z.ZodString>;
591
+ offsetMs: z.ZodOptional<z.ZodNumber>;
592
+ }, z.core.$loose>>;
593
+ poster: z.ZodOptional<z.ZodString>;
594
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
595
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
596
+ }, z.core.$loose>>>;
597
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
598
+ type: z.ZodString;
599
+ message: z.ZodString;
600
+ level: z.ZodOptional<z.ZodString>;
601
+ at: z.ZodOptional<z.ZodObject<{
602
+ step: z.ZodOptional<z.ZodString>;
603
+ offsetMs: z.ZodOptional<z.ZodNumber>;
604
+ }, z.core.$loose>>;
605
+ source: z.ZodOptional<z.ZodObject<{
606
+ file: z.ZodOptional<z.ZodString>;
607
+ line: z.ZodOptional<z.ZodNumber>;
608
+ column: z.ZodOptional<z.ZodNumber>;
609
+ }, z.core.$loose>>;
610
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
611
+ url: z.ZodString;
612
+ name: z.ZodOptional<z.ZodString>;
613
+ rel: z.ZodOptional<z.ZodString>;
614
+ }, z.core.$loose>>>;
615
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
616
+ }, z.core.$loose>>>;
617
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
618
+ freshness: z.ZodOptional<z.ZodEnum<{
619
+ unknown: "unknown";
620
+ modified: "modified";
621
+ }>>;
622
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
623
+ sha: z.ZodDefault<z.ZodString>;
624
+ id: z.ZodString;
625
+ kind: z.ZodString;
626
+ title: z.ZodString;
627
+ recordedAtMs: z.ZodNumber;
628
+ checks: z.ZodArray<z.ZodObject<{
629
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
630
+ id: z.ZodOptional<z.ZodString>;
631
+ parentId: z.ZodOptional<z.ZodString>;
632
+ name: z.ZodString;
633
+ kind: z.ZodOptional<z.ZodString>;
634
+ status: z.ZodOptional<z.ZodString>;
635
+ offsetMs: z.ZodOptional<z.ZodNumber>;
636
+ durationMs: z.ZodOptional<z.ZodNumber>;
637
+ detail: z.ZodOptional<z.ZodString>;
638
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
639
+ id: z.ZodOptional<z.ZodString>;
640
+ name: z.ZodString;
641
+ role: z.ZodOptional<z.ZodString>;
642
+ contentType: z.ZodOptional<z.ZodString>;
643
+ bundleKey: z.ZodOptional<z.ZodString>;
644
+ uri: z.ZodOptional<z.ZodString>;
645
+ text: z.ZodOptional<z.ZodString>;
646
+ bytes: z.ZodOptional<z.ZodNumber>;
647
+ sha256: z.ZodOptional<z.ZodString>;
648
+ width: z.ZodOptional<z.ZodNumber>;
649
+ height: z.ZodOptional<z.ZodNumber>;
650
+ durationMs: z.ZodOptional<z.ZodNumber>;
651
+ description: z.ZodOptional<z.ZodString>;
652
+ at: z.ZodOptional<z.ZodObject<{
653
+ step: z.ZodOptional<z.ZodString>;
654
+ offsetMs: z.ZodOptional<z.ZodNumber>;
655
+ }, z.core.$loose>>;
656
+ poster: z.ZodOptional<z.ZodString>;
657
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
658
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
659
+ }, z.core.$loose>>>;
660
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
661
+ type: z.ZodString;
662
+ message: z.ZodString;
663
+ level: z.ZodOptional<z.ZodString>;
664
+ at: z.ZodOptional<z.ZodObject<{
665
+ step: z.ZodOptional<z.ZodString>;
666
+ offsetMs: z.ZodOptional<z.ZodNumber>;
667
+ }, z.core.$loose>>;
668
+ source: z.ZodOptional<z.ZodObject<{
669
+ file: z.ZodOptional<z.ZodString>;
670
+ line: z.ZodOptional<z.ZodNumber>;
671
+ column: z.ZodOptional<z.ZodNumber>;
672
+ }, z.core.$loose>>;
673
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
674
+ url: z.ZodString;
675
+ name: z.ZodOptional<z.ZodString>;
676
+ rel: z.ZodOptional<z.ZodString>;
677
+ }, z.core.$loose>>>;
678
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
679
+ }, z.core.$loose>>>;
680
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
681
+ }, z.core.$loose>>>;
682
+ attempts: z.ZodOptional<z.ZodArray<z.ZodObject<{
683
+ index: z.ZodNumber;
684
+ status: z.ZodEnum<{
685
+ passed: "passed";
686
+ failed: "failed";
687
+ running: "running";
688
+ "not-run": "not-run";
689
+ }>;
690
+ durationMs: z.ZodOptional<z.ZodNumber>;
691
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
692
+ detail: z.ZodOptional<z.ZodString>;
693
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
694
+ id: z.ZodOptional<z.ZodString>;
695
+ parentId: z.ZodOptional<z.ZodString>;
696
+ name: z.ZodString;
697
+ kind: z.ZodOptional<z.ZodString>;
698
+ status: z.ZodOptional<z.ZodString>;
699
+ offsetMs: z.ZodOptional<z.ZodNumber>;
700
+ durationMs: z.ZodOptional<z.ZodNumber>;
701
+ detail: z.ZodOptional<z.ZodString>;
702
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
703
+ id: z.ZodOptional<z.ZodString>;
704
+ name: z.ZodString;
705
+ role: z.ZodOptional<z.ZodString>;
706
+ contentType: z.ZodOptional<z.ZodString>;
707
+ bundleKey: z.ZodOptional<z.ZodString>;
708
+ uri: z.ZodOptional<z.ZodString>;
709
+ text: z.ZodOptional<z.ZodString>;
710
+ bytes: z.ZodOptional<z.ZodNumber>;
711
+ sha256: z.ZodOptional<z.ZodString>;
712
+ width: z.ZodOptional<z.ZodNumber>;
713
+ height: z.ZodOptional<z.ZodNumber>;
714
+ durationMs: z.ZodOptional<z.ZodNumber>;
715
+ description: z.ZodOptional<z.ZodString>;
716
+ at: z.ZodOptional<z.ZodObject<{
717
+ step: z.ZodOptional<z.ZodString>;
718
+ offsetMs: z.ZodOptional<z.ZodNumber>;
719
+ }, z.core.$loose>>;
720
+ poster: z.ZodOptional<z.ZodString>;
721
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
722
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
723
+ }, z.core.$loose>>>;
724
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
725
+ type: z.ZodString;
726
+ message: z.ZodString;
727
+ level: z.ZodOptional<z.ZodString>;
728
+ at: z.ZodOptional<z.ZodObject<{
729
+ step: z.ZodOptional<z.ZodString>;
730
+ offsetMs: z.ZodOptional<z.ZodNumber>;
731
+ }, z.core.$loose>>;
732
+ source: z.ZodOptional<z.ZodObject<{
733
+ file: z.ZodOptional<z.ZodString>;
734
+ line: z.ZodOptional<z.ZodNumber>;
735
+ column: z.ZodOptional<z.ZodNumber>;
736
+ }, z.core.$loose>>;
737
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
738
+ url: z.ZodString;
739
+ name: z.ZodOptional<z.ZodString>;
740
+ rel: z.ZodOptional<z.ZodString>;
741
+ }, z.core.$loose>>>;
742
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
743
+ }, z.core.$loose>>>;
744
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
745
+ }, z.core.$loose>>>;
746
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
747
+ id: z.ZodOptional<z.ZodString>;
748
+ name: z.ZodString;
749
+ role: z.ZodOptional<z.ZodString>;
750
+ contentType: z.ZodOptional<z.ZodString>;
751
+ bundleKey: z.ZodOptional<z.ZodString>;
752
+ uri: z.ZodOptional<z.ZodString>;
753
+ text: z.ZodOptional<z.ZodString>;
754
+ bytes: z.ZodOptional<z.ZodNumber>;
755
+ sha256: z.ZodOptional<z.ZodString>;
756
+ width: z.ZodOptional<z.ZodNumber>;
757
+ height: z.ZodOptional<z.ZodNumber>;
758
+ durationMs: z.ZodOptional<z.ZodNumber>;
759
+ description: z.ZodOptional<z.ZodString>;
760
+ at: z.ZodOptional<z.ZodObject<{
761
+ step: z.ZodOptional<z.ZodString>;
762
+ offsetMs: z.ZodOptional<z.ZodNumber>;
763
+ }, z.core.$loose>>;
764
+ poster: z.ZodOptional<z.ZodString>;
765
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
766
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
767
+ }, z.core.$loose>>>;
768
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
769
+ type: z.ZodString;
770
+ message: z.ZodString;
771
+ level: z.ZodOptional<z.ZodString>;
772
+ at: z.ZodOptional<z.ZodObject<{
773
+ step: z.ZodOptional<z.ZodString>;
774
+ offsetMs: z.ZodOptional<z.ZodNumber>;
775
+ }, z.core.$loose>>;
776
+ source: z.ZodOptional<z.ZodObject<{
777
+ file: z.ZodOptional<z.ZodString>;
778
+ line: z.ZodOptional<z.ZodNumber>;
779
+ column: z.ZodOptional<z.ZodNumber>;
780
+ }, z.core.$loose>>;
781
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
782
+ url: z.ZodString;
783
+ name: z.ZodOptional<z.ZodString>;
784
+ rel: z.ZodOptional<z.ZodString>;
785
+ }, z.core.$loose>>>;
786
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
787
+ }, z.core.$loose>>>;
788
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
789
+ }, z.core.$loose>>>;
790
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
791
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
792
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
793
+ url: z.ZodString;
794
+ name: z.ZodOptional<z.ZodString>;
795
+ rel: z.ZodOptional<z.ZodString>;
796
+ }, z.core.$loose>>>;
797
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
798
+ id: z.ZodOptional<z.ZodString>;
799
+ name: z.ZodString;
800
+ role: z.ZodOptional<z.ZodString>;
801
+ contentType: z.ZodOptional<z.ZodString>;
802
+ bundleKey: z.ZodOptional<z.ZodString>;
803
+ uri: z.ZodOptional<z.ZodString>;
804
+ text: z.ZodOptional<z.ZodString>;
805
+ bytes: z.ZodOptional<z.ZodNumber>;
806
+ sha256: z.ZodOptional<z.ZodString>;
807
+ width: z.ZodOptional<z.ZodNumber>;
808
+ height: z.ZodOptional<z.ZodNumber>;
809
+ durationMs: z.ZodOptional<z.ZodNumber>;
810
+ description: z.ZodOptional<z.ZodString>;
811
+ at: z.ZodOptional<z.ZodObject<{
812
+ step: z.ZodOptional<z.ZodString>;
813
+ offsetMs: z.ZodOptional<z.ZodNumber>;
814
+ }, z.core.$loose>>;
815
+ poster: z.ZodOptional<z.ZodString>;
816
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
817
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
818
+ }, z.core.$loose>>>;
819
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
820
+ type: z.ZodString;
821
+ message: z.ZodString;
822
+ level: z.ZodOptional<z.ZodString>;
823
+ at: z.ZodOptional<z.ZodObject<{
824
+ step: z.ZodOptional<z.ZodString>;
825
+ offsetMs: z.ZodOptional<z.ZodNumber>;
826
+ }, z.core.$loose>>;
827
+ source: z.ZodOptional<z.ZodObject<{
828
+ file: z.ZodOptional<z.ZodString>;
829
+ line: z.ZodOptional<z.ZodNumber>;
830
+ column: z.ZodOptional<z.ZodNumber>;
831
+ }, z.core.$loose>>;
832
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
833
+ url: z.ZodString;
834
+ name: z.ZodOptional<z.ZodString>;
835
+ rel: z.ZodOptional<z.ZodString>;
836
+ }, z.core.$loose>>>;
837
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
838
+ }, z.core.$loose>>>;
839
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
840
+ id: z.ZodString;
841
+ title: z.ZodString;
842
+ status: z.ZodEnum<{
843
+ passed: "passed";
844
+ failed: "failed";
845
+ running: "running";
846
+ "not-run": "not-run";
847
+ }>;
848
+ detail: z.ZodDefault<z.ZodString>;
849
+ specPath: z.ZodOptional<z.ZodString>;
850
+ measurements: z.ZodDefault<z.ZodArray<z.ZodObject<{
851
+ name: z.ZodString;
852
+ value: z.ZodNumber;
853
+ unit: z.ZodString;
854
+ limit: z.ZodOptional<z.ZodNumber>;
855
+ }, z.core.$loose>>>;
856
+ durationMs: z.ZodOptional<z.ZodNumber>;
857
+ }, z.core.$loose>>;
858
+ }, z.core.$loose>;
859
+ /** A suite that recorded timelines and captured files, beside its checks. Absent for a layer of plain checks. */
860
+ export declare const LayerSourceSchema: z.ZodObject<{
861
+ source: z.ZodString;
862
+ packageDir: z.ZodString;
863
+ bucket: z.ZodString;
864
+ status: z.ZodEnum<{
865
+ passed: "passed";
866
+ failed: "failed";
867
+ skipped: "skipped";
868
+ }>;
869
+ updatedAtMs: z.ZodNumber;
870
+ environment: z.ZodOptional<z.ZodString>;
871
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
872
+ evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
873
+ kind: z.ZodString;
874
+ title: z.ZodString;
875
+ checks: z.ZodArray<z.ZodObject<{
876
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
877
+ id: z.ZodOptional<z.ZodString>;
878
+ parentId: z.ZodOptional<z.ZodString>;
879
+ name: z.ZodString;
880
+ kind: z.ZodOptional<z.ZodString>;
881
+ status: z.ZodOptional<z.ZodString>;
882
+ offsetMs: z.ZodOptional<z.ZodNumber>;
883
+ durationMs: z.ZodOptional<z.ZodNumber>;
884
+ detail: z.ZodOptional<z.ZodString>;
885
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
886
+ id: z.ZodOptional<z.ZodString>;
887
+ name: z.ZodString;
888
+ role: z.ZodOptional<z.ZodString>;
889
+ contentType: z.ZodOptional<z.ZodString>;
890
+ bundleKey: z.ZodOptional<z.ZodString>;
891
+ uri: z.ZodOptional<z.ZodString>;
892
+ text: z.ZodOptional<z.ZodString>;
893
+ bytes: z.ZodOptional<z.ZodNumber>;
894
+ sha256: z.ZodOptional<z.ZodString>;
895
+ width: z.ZodOptional<z.ZodNumber>;
896
+ height: z.ZodOptional<z.ZodNumber>;
897
+ durationMs: z.ZodOptional<z.ZodNumber>;
898
+ description: z.ZodOptional<z.ZodString>;
899
+ at: z.ZodOptional<z.ZodObject<{
900
+ step: z.ZodOptional<z.ZodString>;
901
+ offsetMs: z.ZodOptional<z.ZodNumber>;
902
+ }, z.core.$loose>>;
903
+ poster: z.ZodOptional<z.ZodString>;
904
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
905
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
906
+ }, z.core.$loose>>>;
907
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
908
+ type: z.ZodString;
909
+ message: z.ZodString;
910
+ level: z.ZodOptional<z.ZodString>;
911
+ at: z.ZodOptional<z.ZodObject<{
912
+ step: z.ZodOptional<z.ZodString>;
913
+ offsetMs: z.ZodOptional<z.ZodNumber>;
914
+ }, z.core.$loose>>;
915
+ source: z.ZodOptional<z.ZodObject<{
916
+ file: z.ZodOptional<z.ZodString>;
917
+ line: z.ZodOptional<z.ZodNumber>;
918
+ column: z.ZodOptional<z.ZodNumber>;
919
+ }, z.core.$loose>>;
920
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
921
+ url: z.ZodString;
922
+ name: z.ZodOptional<z.ZodString>;
923
+ rel: z.ZodOptional<z.ZodString>;
924
+ }, z.core.$loose>>>;
925
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
926
+ }, z.core.$loose>>>;
927
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
928
+ }, z.core.$loose>>>;
929
+ attempts: z.ZodOptional<z.ZodArray<z.ZodObject<{
930
+ index: z.ZodNumber;
931
+ status: z.ZodEnum<{
932
+ passed: "passed";
933
+ failed: "failed";
934
+ running: "running";
935
+ "not-run": "not-run";
936
+ }>;
937
+ durationMs: z.ZodOptional<z.ZodNumber>;
938
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
939
+ detail: z.ZodOptional<z.ZodString>;
940
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
941
+ id: z.ZodOptional<z.ZodString>;
942
+ parentId: z.ZodOptional<z.ZodString>;
943
+ name: z.ZodString;
944
+ kind: z.ZodOptional<z.ZodString>;
945
+ status: z.ZodOptional<z.ZodString>;
946
+ offsetMs: z.ZodOptional<z.ZodNumber>;
947
+ durationMs: z.ZodOptional<z.ZodNumber>;
948
+ detail: z.ZodOptional<z.ZodString>;
949
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
950
+ id: z.ZodOptional<z.ZodString>;
951
+ name: z.ZodString;
952
+ role: z.ZodOptional<z.ZodString>;
953
+ contentType: z.ZodOptional<z.ZodString>;
954
+ bundleKey: z.ZodOptional<z.ZodString>;
955
+ uri: z.ZodOptional<z.ZodString>;
956
+ text: z.ZodOptional<z.ZodString>;
957
+ bytes: z.ZodOptional<z.ZodNumber>;
958
+ sha256: z.ZodOptional<z.ZodString>;
959
+ width: z.ZodOptional<z.ZodNumber>;
960
+ height: z.ZodOptional<z.ZodNumber>;
961
+ durationMs: z.ZodOptional<z.ZodNumber>;
962
+ description: z.ZodOptional<z.ZodString>;
963
+ at: z.ZodOptional<z.ZodObject<{
964
+ step: z.ZodOptional<z.ZodString>;
965
+ offsetMs: z.ZodOptional<z.ZodNumber>;
966
+ }, z.core.$loose>>;
967
+ poster: z.ZodOptional<z.ZodString>;
968
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
969
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
970
+ }, z.core.$loose>>>;
971
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
972
+ type: z.ZodString;
973
+ message: z.ZodString;
974
+ level: z.ZodOptional<z.ZodString>;
975
+ at: z.ZodOptional<z.ZodObject<{
976
+ step: z.ZodOptional<z.ZodString>;
977
+ offsetMs: z.ZodOptional<z.ZodNumber>;
978
+ }, z.core.$loose>>;
979
+ source: z.ZodOptional<z.ZodObject<{
980
+ file: z.ZodOptional<z.ZodString>;
981
+ line: z.ZodOptional<z.ZodNumber>;
982
+ column: z.ZodOptional<z.ZodNumber>;
983
+ }, z.core.$loose>>;
984
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
985
+ url: z.ZodString;
986
+ name: z.ZodOptional<z.ZodString>;
987
+ rel: z.ZodOptional<z.ZodString>;
988
+ }, z.core.$loose>>>;
989
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
990
+ }, z.core.$loose>>>;
991
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
992
+ }, z.core.$loose>>>;
993
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
994
+ id: z.ZodOptional<z.ZodString>;
995
+ name: z.ZodString;
996
+ role: z.ZodOptional<z.ZodString>;
997
+ contentType: z.ZodOptional<z.ZodString>;
998
+ bundleKey: z.ZodOptional<z.ZodString>;
999
+ uri: z.ZodOptional<z.ZodString>;
1000
+ text: z.ZodOptional<z.ZodString>;
1001
+ bytes: z.ZodOptional<z.ZodNumber>;
1002
+ sha256: z.ZodOptional<z.ZodString>;
1003
+ width: z.ZodOptional<z.ZodNumber>;
1004
+ height: z.ZodOptional<z.ZodNumber>;
1005
+ durationMs: z.ZodOptional<z.ZodNumber>;
1006
+ description: z.ZodOptional<z.ZodString>;
1007
+ at: z.ZodOptional<z.ZodObject<{
1008
+ step: z.ZodOptional<z.ZodString>;
1009
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1010
+ }, z.core.$loose>>;
1011
+ poster: z.ZodOptional<z.ZodString>;
1012
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1013
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1014
+ }, z.core.$loose>>>;
1015
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1016
+ type: z.ZodString;
1017
+ message: z.ZodString;
1018
+ level: z.ZodOptional<z.ZodString>;
1019
+ at: z.ZodOptional<z.ZodObject<{
1020
+ step: z.ZodOptional<z.ZodString>;
1021
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1022
+ }, z.core.$loose>>;
1023
+ source: z.ZodOptional<z.ZodObject<{
1024
+ file: z.ZodOptional<z.ZodString>;
1025
+ line: z.ZodOptional<z.ZodNumber>;
1026
+ column: z.ZodOptional<z.ZodNumber>;
1027
+ }, z.core.$loose>>;
1028
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1029
+ url: z.ZodString;
1030
+ name: z.ZodOptional<z.ZodString>;
1031
+ rel: z.ZodOptional<z.ZodString>;
1032
+ }, z.core.$loose>>>;
1033
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1034
+ }, z.core.$loose>>>;
1035
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1036
+ }, z.core.$loose>>>;
1037
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1038
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1039
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1040
+ url: z.ZodString;
1041
+ name: z.ZodOptional<z.ZodString>;
1042
+ rel: z.ZodOptional<z.ZodString>;
1043
+ }, z.core.$loose>>>;
1044
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1045
+ id: z.ZodOptional<z.ZodString>;
1046
+ name: z.ZodString;
1047
+ role: z.ZodOptional<z.ZodString>;
1048
+ contentType: z.ZodOptional<z.ZodString>;
1049
+ bundleKey: z.ZodOptional<z.ZodString>;
1050
+ uri: z.ZodOptional<z.ZodString>;
1051
+ text: z.ZodOptional<z.ZodString>;
1052
+ bytes: z.ZodOptional<z.ZodNumber>;
1053
+ sha256: z.ZodOptional<z.ZodString>;
1054
+ width: z.ZodOptional<z.ZodNumber>;
1055
+ height: z.ZodOptional<z.ZodNumber>;
1056
+ durationMs: z.ZodOptional<z.ZodNumber>;
1057
+ description: z.ZodOptional<z.ZodString>;
1058
+ at: z.ZodOptional<z.ZodObject<{
1059
+ step: z.ZodOptional<z.ZodString>;
1060
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1061
+ }, z.core.$loose>>;
1062
+ poster: z.ZodOptional<z.ZodString>;
1063
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1064
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1065
+ }, z.core.$loose>>>;
1066
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1067
+ type: z.ZodString;
1068
+ message: z.ZodString;
1069
+ level: z.ZodOptional<z.ZodString>;
1070
+ at: z.ZodOptional<z.ZodObject<{
1071
+ step: z.ZodOptional<z.ZodString>;
1072
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1073
+ }, z.core.$loose>>;
1074
+ source: z.ZodOptional<z.ZodObject<{
1075
+ file: z.ZodOptional<z.ZodString>;
1076
+ line: z.ZodOptional<z.ZodNumber>;
1077
+ column: z.ZodOptional<z.ZodNumber>;
1078
+ }, z.core.$loose>>;
1079
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1080
+ url: z.ZodString;
1081
+ name: z.ZodOptional<z.ZodString>;
1082
+ rel: z.ZodOptional<z.ZodString>;
1083
+ }, z.core.$loose>>>;
1084
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1085
+ }, z.core.$loose>>>;
1086
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1087
+ id: z.ZodString;
1088
+ title: z.ZodString;
1089
+ status: z.ZodEnum<{
1090
+ passed: "passed";
1091
+ failed: "failed";
1092
+ running: "running";
1093
+ "not-run": "not-run";
1094
+ }>;
1095
+ detail: z.ZodDefault<z.ZodString>;
1096
+ specPath: z.ZodOptional<z.ZodString>;
1097
+ measurements: z.ZodDefault<z.ZodArray<z.ZodObject<{
1098
+ name: z.ZodString;
1099
+ value: z.ZodNumber;
1100
+ unit: z.ZodString;
1101
+ limit: z.ZodOptional<z.ZodNumber>;
1102
+ }, z.core.$loose>>>;
1103
+ durationMs: z.ZodOptional<z.ZodNumber>;
1104
+ }, z.core.$loose>>;
1105
+ }, z.core.$loose>>>;
1106
+ tests: z.ZodArray<z.ZodObject<{
1107
+ testId: z.ZodString;
1108
+ title: z.ZodString;
1109
+ status: z.ZodEnum<{
1110
+ passed: "passed";
1111
+ failed: "failed";
1112
+ skipped: "skipped";
1113
+ }>;
1114
+ system: z.ZodDefault<z.ZodString>;
1115
+ runtime: z.ZodDefault<z.ZodString>;
1116
+ seed: z.ZodDefault<z.ZodString>;
1117
+ durationMs: z.ZodDefault<z.ZodNumber>;
1118
+ }, z.core.$loose>>;
1119
+ }, z.core.$loose>;
1120
+ /**
1121
+ * Where the recorded tests of a suite live in the store: in the layer's own bundle (`layer`), or at the older address
1122
+ * of a commit and a source name (`commit`).
1123
+ */
1124
+ export declare const RecordingAddressSchema: z.ZodUnion<readonly [z.ZodObject<{
1125
+ type: z.ZodLiteral<"layer">;
1126
+ }, z.core.$loose>, z.ZodObject<{
1127
+ type: z.ZodLiteral<"commit">;
1128
+ sha: z.ZodString;
1129
+ source: z.ZodString;
1130
+ }, z.core.$loose>]>;
1131
+ /**
1132
+ * The captured files of a layer by file key (`attachments/<sha256>` for attachments): each file's media type and the
1133
+ * byte ranges (`blob` store key, `offset` and `size` in the decompressed blob) whose concatenation is the file.
1134
+ * Written last when a layer is published.
1135
+ */
1136
+ export declare const BundleIndexSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
1137
+ contentType: z.ZodString;
1138
+ parts: z.ZodArray<z.ZodObject<{
1139
+ blob: z.ZodString;
1140
+ offset: z.ZodNumber;
1141
+ size: z.ZodNumber;
1142
+ }, z.core.$loose>>;
1143
+ }, z.core.$loose>>;
1144
+ /** Pattern of a layer id, a spec-set id or a content digest: 64 lowercase hexadecimal digits (a SHA-256). */
1145
+ export declare const LAYER_ID: RegExp;
1146
+ /**
1147
+ * `layers/manifests/<id>.json`. The id is the SHA-256 of the document without it, so two producers
1148
+ * that record the same thing write the same layer, and a retried publish changes nothing.
1149
+ */
1150
+ export declare const LayerDocumentSchema: z.ZodObject<{
1151
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1152
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1153
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1154
+ url: z.ZodString;
1155
+ name: z.ZodOptional<z.ZodString>;
1156
+ rel: z.ZodOptional<z.ZodString>;
1157
+ }, z.core.$loose>>>;
1158
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1159
+ id: z.ZodOptional<z.ZodString>;
1160
+ name: z.ZodString;
1161
+ role: z.ZodOptional<z.ZodString>;
1162
+ contentType: z.ZodOptional<z.ZodString>;
1163
+ bundleKey: z.ZodOptional<z.ZodString>;
1164
+ uri: z.ZodOptional<z.ZodString>;
1165
+ text: z.ZodOptional<z.ZodString>;
1166
+ bytes: z.ZodOptional<z.ZodNumber>;
1167
+ sha256: z.ZodOptional<z.ZodString>;
1168
+ width: z.ZodOptional<z.ZodNumber>;
1169
+ height: z.ZodOptional<z.ZodNumber>;
1170
+ durationMs: z.ZodOptional<z.ZodNumber>;
1171
+ description: z.ZodOptional<z.ZodString>;
1172
+ at: z.ZodOptional<z.ZodObject<{
1173
+ step: z.ZodOptional<z.ZodString>;
1174
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1175
+ }, z.core.$loose>>;
1176
+ poster: z.ZodOptional<z.ZodString>;
1177
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1178
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1179
+ }, z.core.$loose>>>;
1180
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1181
+ type: z.ZodString;
1182
+ message: z.ZodString;
1183
+ level: z.ZodOptional<z.ZodString>;
1184
+ at: z.ZodOptional<z.ZodObject<{
1185
+ step: z.ZodOptional<z.ZodString>;
1186
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1187
+ }, z.core.$loose>>;
1188
+ source: z.ZodOptional<z.ZodObject<{
1189
+ file: z.ZodOptional<z.ZodString>;
1190
+ line: z.ZodOptional<z.ZodNumber>;
1191
+ column: z.ZodOptional<z.ZodNumber>;
1192
+ }, z.core.$loose>>;
1193
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1194
+ url: z.ZodString;
1195
+ name: z.ZodOptional<z.ZodString>;
1196
+ rel: z.ZodOptional<z.ZodString>;
1197
+ }, z.core.$loose>>>;
1198
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1199
+ }, z.core.$loose>>>;
1200
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1201
+ schemaVersion: z.ZodLiteral<1>;
1202
+ id: z.ZodString;
1203
+ producer: z.ZodString;
1204
+ recordedAtMs: z.ZodNumber;
1205
+ sha: z.ZodNullable<z.ZodString>;
1206
+ branch: z.ZodNullable<z.ZodString>;
1207
+ runUrl: z.ZodNullable<z.ZodString>;
1208
+ environment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1209
+ parameters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1210
+ freshness: z.ZodOptional<z.ZodEnum<{
1211
+ unknown: "unknown";
1212
+ modified: "modified";
1213
+ }>>;
1214
+ specs: z.ZodDefault<z.ZodArray<z.ZodObject<{
1215
+ path: z.ZodString;
1216
+ domain: z.ZodString;
1217
+ kind: z.ZodString;
1218
+ title: z.ZodString;
1219
+ fingerprint: z.ZodOptional<z.ZodString>;
1220
+ }, z.core.$loose>>>;
1221
+ parts: z.ZodArray<z.ZodObject<{
1222
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1223
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1224
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1225
+ url: z.ZodString;
1226
+ name: z.ZodOptional<z.ZodString>;
1227
+ rel: z.ZodOptional<z.ZodString>;
1228
+ }, z.core.$loose>>>;
1229
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1230
+ id: z.ZodOptional<z.ZodString>;
1231
+ name: z.ZodString;
1232
+ role: z.ZodOptional<z.ZodString>;
1233
+ contentType: z.ZodOptional<z.ZodString>;
1234
+ bundleKey: z.ZodOptional<z.ZodString>;
1235
+ uri: z.ZodOptional<z.ZodString>;
1236
+ text: z.ZodOptional<z.ZodString>;
1237
+ bytes: z.ZodOptional<z.ZodNumber>;
1238
+ sha256: z.ZodOptional<z.ZodString>;
1239
+ width: z.ZodOptional<z.ZodNumber>;
1240
+ height: z.ZodOptional<z.ZodNumber>;
1241
+ durationMs: z.ZodOptional<z.ZodNumber>;
1242
+ description: z.ZodOptional<z.ZodString>;
1243
+ at: z.ZodOptional<z.ZodObject<{
1244
+ step: z.ZodOptional<z.ZodString>;
1245
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1246
+ }, z.core.$loose>>;
1247
+ poster: z.ZodOptional<z.ZodString>;
1248
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1249
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1250
+ }, z.core.$loose>>>;
1251
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1252
+ type: z.ZodString;
1253
+ message: z.ZodString;
1254
+ level: z.ZodOptional<z.ZodString>;
1255
+ at: z.ZodOptional<z.ZodObject<{
1256
+ step: z.ZodOptional<z.ZodString>;
1257
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1258
+ }, z.core.$loose>>;
1259
+ source: z.ZodOptional<z.ZodObject<{
1260
+ file: z.ZodOptional<z.ZodString>;
1261
+ line: z.ZodOptional<z.ZodNumber>;
1262
+ column: z.ZodOptional<z.ZodNumber>;
1263
+ }, z.core.$loose>>;
1264
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1265
+ url: z.ZodString;
1266
+ name: z.ZodOptional<z.ZodString>;
1267
+ rel: z.ZodOptional<z.ZodString>;
1268
+ }, z.core.$loose>>>;
1269
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1270
+ }, z.core.$loose>>>;
1271
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1272
+ freshness: z.ZodOptional<z.ZodEnum<{
1273
+ unknown: "unknown";
1274
+ modified: "modified";
1275
+ }>>;
1276
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1277
+ sha: z.ZodDefault<z.ZodString>;
1278
+ id: z.ZodString;
1279
+ kind: z.ZodString;
1280
+ title: z.ZodString;
1281
+ recordedAtMs: z.ZodNumber;
1282
+ checks: z.ZodArray<z.ZodObject<{
1283
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
1284
+ id: z.ZodOptional<z.ZodString>;
1285
+ parentId: z.ZodOptional<z.ZodString>;
1286
+ name: z.ZodString;
1287
+ kind: z.ZodOptional<z.ZodString>;
1288
+ status: z.ZodOptional<z.ZodString>;
1289
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1290
+ durationMs: z.ZodOptional<z.ZodNumber>;
1291
+ detail: z.ZodOptional<z.ZodString>;
1292
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1293
+ id: z.ZodOptional<z.ZodString>;
1294
+ name: z.ZodString;
1295
+ role: z.ZodOptional<z.ZodString>;
1296
+ contentType: z.ZodOptional<z.ZodString>;
1297
+ bundleKey: z.ZodOptional<z.ZodString>;
1298
+ uri: z.ZodOptional<z.ZodString>;
1299
+ text: z.ZodOptional<z.ZodString>;
1300
+ bytes: z.ZodOptional<z.ZodNumber>;
1301
+ sha256: z.ZodOptional<z.ZodString>;
1302
+ width: z.ZodOptional<z.ZodNumber>;
1303
+ height: z.ZodOptional<z.ZodNumber>;
1304
+ durationMs: z.ZodOptional<z.ZodNumber>;
1305
+ description: z.ZodOptional<z.ZodString>;
1306
+ at: z.ZodOptional<z.ZodObject<{
1307
+ step: z.ZodOptional<z.ZodString>;
1308
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1309
+ }, z.core.$loose>>;
1310
+ poster: z.ZodOptional<z.ZodString>;
1311
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1312
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1313
+ }, z.core.$loose>>>;
1314
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1315
+ type: z.ZodString;
1316
+ message: z.ZodString;
1317
+ level: z.ZodOptional<z.ZodString>;
1318
+ at: z.ZodOptional<z.ZodObject<{
1319
+ step: z.ZodOptional<z.ZodString>;
1320
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1321
+ }, z.core.$loose>>;
1322
+ source: z.ZodOptional<z.ZodObject<{
1323
+ file: z.ZodOptional<z.ZodString>;
1324
+ line: z.ZodOptional<z.ZodNumber>;
1325
+ column: z.ZodOptional<z.ZodNumber>;
1326
+ }, z.core.$loose>>;
1327
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1328
+ url: z.ZodString;
1329
+ name: z.ZodOptional<z.ZodString>;
1330
+ rel: z.ZodOptional<z.ZodString>;
1331
+ }, z.core.$loose>>>;
1332
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1333
+ }, z.core.$loose>>>;
1334
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1335
+ }, z.core.$loose>>>;
1336
+ attempts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1337
+ index: z.ZodNumber;
1338
+ status: z.ZodEnum<{
1339
+ passed: "passed";
1340
+ failed: "failed";
1341
+ running: "running";
1342
+ "not-run": "not-run";
1343
+ }>;
1344
+ durationMs: z.ZodOptional<z.ZodNumber>;
1345
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
1346
+ detail: z.ZodOptional<z.ZodString>;
1347
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
1348
+ id: z.ZodOptional<z.ZodString>;
1349
+ parentId: z.ZodOptional<z.ZodString>;
1350
+ name: z.ZodString;
1351
+ kind: z.ZodOptional<z.ZodString>;
1352
+ status: z.ZodOptional<z.ZodString>;
1353
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1354
+ durationMs: z.ZodOptional<z.ZodNumber>;
1355
+ detail: z.ZodOptional<z.ZodString>;
1356
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1357
+ id: z.ZodOptional<z.ZodString>;
1358
+ name: z.ZodString;
1359
+ role: z.ZodOptional<z.ZodString>;
1360
+ contentType: z.ZodOptional<z.ZodString>;
1361
+ bundleKey: z.ZodOptional<z.ZodString>;
1362
+ uri: z.ZodOptional<z.ZodString>;
1363
+ text: z.ZodOptional<z.ZodString>;
1364
+ bytes: z.ZodOptional<z.ZodNumber>;
1365
+ sha256: z.ZodOptional<z.ZodString>;
1366
+ width: z.ZodOptional<z.ZodNumber>;
1367
+ height: z.ZodOptional<z.ZodNumber>;
1368
+ durationMs: z.ZodOptional<z.ZodNumber>;
1369
+ description: z.ZodOptional<z.ZodString>;
1370
+ at: z.ZodOptional<z.ZodObject<{
1371
+ step: z.ZodOptional<z.ZodString>;
1372
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1373
+ }, z.core.$loose>>;
1374
+ poster: z.ZodOptional<z.ZodString>;
1375
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1376
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1377
+ }, z.core.$loose>>>;
1378
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1379
+ type: z.ZodString;
1380
+ message: z.ZodString;
1381
+ level: z.ZodOptional<z.ZodString>;
1382
+ at: z.ZodOptional<z.ZodObject<{
1383
+ step: z.ZodOptional<z.ZodString>;
1384
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1385
+ }, z.core.$loose>>;
1386
+ source: z.ZodOptional<z.ZodObject<{
1387
+ file: z.ZodOptional<z.ZodString>;
1388
+ line: z.ZodOptional<z.ZodNumber>;
1389
+ column: z.ZodOptional<z.ZodNumber>;
1390
+ }, z.core.$loose>>;
1391
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1392
+ url: z.ZodString;
1393
+ name: z.ZodOptional<z.ZodString>;
1394
+ rel: z.ZodOptional<z.ZodString>;
1395
+ }, z.core.$loose>>>;
1396
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1397
+ }, z.core.$loose>>>;
1398
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1399
+ }, z.core.$loose>>>;
1400
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1401
+ id: z.ZodOptional<z.ZodString>;
1402
+ name: z.ZodString;
1403
+ role: z.ZodOptional<z.ZodString>;
1404
+ contentType: z.ZodOptional<z.ZodString>;
1405
+ bundleKey: z.ZodOptional<z.ZodString>;
1406
+ uri: z.ZodOptional<z.ZodString>;
1407
+ text: z.ZodOptional<z.ZodString>;
1408
+ bytes: z.ZodOptional<z.ZodNumber>;
1409
+ sha256: z.ZodOptional<z.ZodString>;
1410
+ width: z.ZodOptional<z.ZodNumber>;
1411
+ height: z.ZodOptional<z.ZodNumber>;
1412
+ durationMs: z.ZodOptional<z.ZodNumber>;
1413
+ description: z.ZodOptional<z.ZodString>;
1414
+ at: z.ZodOptional<z.ZodObject<{
1415
+ step: z.ZodOptional<z.ZodString>;
1416
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1417
+ }, z.core.$loose>>;
1418
+ poster: z.ZodOptional<z.ZodString>;
1419
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1420
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1421
+ }, z.core.$loose>>>;
1422
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1423
+ type: z.ZodString;
1424
+ message: z.ZodString;
1425
+ level: z.ZodOptional<z.ZodString>;
1426
+ at: z.ZodOptional<z.ZodObject<{
1427
+ step: z.ZodOptional<z.ZodString>;
1428
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1429
+ }, z.core.$loose>>;
1430
+ source: z.ZodOptional<z.ZodObject<{
1431
+ file: z.ZodOptional<z.ZodString>;
1432
+ line: z.ZodOptional<z.ZodNumber>;
1433
+ column: z.ZodOptional<z.ZodNumber>;
1434
+ }, z.core.$loose>>;
1435
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1436
+ url: z.ZodString;
1437
+ name: z.ZodOptional<z.ZodString>;
1438
+ rel: z.ZodOptional<z.ZodString>;
1439
+ }, z.core.$loose>>>;
1440
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1441
+ }, z.core.$loose>>>;
1442
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1443
+ }, z.core.$loose>>>;
1444
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1445
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1446
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1447
+ url: z.ZodString;
1448
+ name: z.ZodOptional<z.ZodString>;
1449
+ rel: z.ZodOptional<z.ZodString>;
1450
+ }, z.core.$loose>>>;
1451
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1452
+ id: z.ZodOptional<z.ZodString>;
1453
+ name: z.ZodString;
1454
+ role: z.ZodOptional<z.ZodString>;
1455
+ contentType: z.ZodOptional<z.ZodString>;
1456
+ bundleKey: z.ZodOptional<z.ZodString>;
1457
+ uri: z.ZodOptional<z.ZodString>;
1458
+ text: z.ZodOptional<z.ZodString>;
1459
+ bytes: z.ZodOptional<z.ZodNumber>;
1460
+ sha256: z.ZodOptional<z.ZodString>;
1461
+ width: z.ZodOptional<z.ZodNumber>;
1462
+ height: z.ZodOptional<z.ZodNumber>;
1463
+ durationMs: z.ZodOptional<z.ZodNumber>;
1464
+ description: z.ZodOptional<z.ZodString>;
1465
+ at: z.ZodOptional<z.ZodObject<{
1466
+ step: z.ZodOptional<z.ZodString>;
1467
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1468
+ }, z.core.$loose>>;
1469
+ poster: z.ZodOptional<z.ZodString>;
1470
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1471
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1472
+ }, z.core.$loose>>>;
1473
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1474
+ type: z.ZodString;
1475
+ message: z.ZodString;
1476
+ level: z.ZodOptional<z.ZodString>;
1477
+ at: z.ZodOptional<z.ZodObject<{
1478
+ step: z.ZodOptional<z.ZodString>;
1479
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1480
+ }, z.core.$loose>>;
1481
+ source: z.ZodOptional<z.ZodObject<{
1482
+ file: z.ZodOptional<z.ZodString>;
1483
+ line: z.ZodOptional<z.ZodNumber>;
1484
+ column: z.ZodOptional<z.ZodNumber>;
1485
+ }, z.core.$loose>>;
1486
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1487
+ url: z.ZodString;
1488
+ name: z.ZodOptional<z.ZodString>;
1489
+ rel: z.ZodOptional<z.ZodString>;
1490
+ }, z.core.$loose>>>;
1491
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1492
+ }, z.core.$loose>>>;
1493
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1494
+ id: z.ZodString;
1495
+ title: z.ZodString;
1496
+ status: z.ZodEnum<{
1497
+ passed: "passed";
1498
+ failed: "failed";
1499
+ running: "running";
1500
+ "not-run": "not-run";
1501
+ }>;
1502
+ detail: z.ZodDefault<z.ZodString>;
1503
+ specPath: z.ZodOptional<z.ZodString>;
1504
+ measurements: z.ZodDefault<z.ZodArray<z.ZodObject<{
1505
+ name: z.ZodString;
1506
+ value: z.ZodNumber;
1507
+ unit: z.ZodString;
1508
+ limit: z.ZodOptional<z.ZodNumber>;
1509
+ }, z.core.$loose>>>;
1510
+ durationMs: z.ZodOptional<z.ZodNumber>;
1511
+ }, z.core.$loose>>;
1512
+ }, z.core.$loose>>;
1513
+ source: z.ZodDefault<z.ZodNullable<z.ZodObject<{
1514
+ source: z.ZodString;
1515
+ packageDir: z.ZodString;
1516
+ bucket: z.ZodString;
1517
+ status: z.ZodEnum<{
1518
+ passed: "passed";
1519
+ failed: "failed";
1520
+ skipped: "skipped";
1521
+ }>;
1522
+ updatedAtMs: z.ZodNumber;
1523
+ environment: z.ZodOptional<z.ZodString>;
1524
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1525
+ evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
1526
+ kind: z.ZodString;
1527
+ title: z.ZodString;
1528
+ checks: z.ZodArray<z.ZodObject<{
1529
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
1530
+ id: z.ZodOptional<z.ZodString>;
1531
+ parentId: z.ZodOptional<z.ZodString>;
1532
+ name: z.ZodString;
1533
+ kind: z.ZodOptional<z.ZodString>;
1534
+ status: z.ZodOptional<z.ZodString>;
1535
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1536
+ durationMs: z.ZodOptional<z.ZodNumber>;
1537
+ detail: z.ZodOptional<z.ZodString>;
1538
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1539
+ id: z.ZodOptional<z.ZodString>;
1540
+ name: z.ZodString;
1541
+ role: z.ZodOptional<z.ZodString>;
1542
+ contentType: z.ZodOptional<z.ZodString>;
1543
+ bundleKey: z.ZodOptional<z.ZodString>;
1544
+ uri: z.ZodOptional<z.ZodString>;
1545
+ text: z.ZodOptional<z.ZodString>;
1546
+ bytes: z.ZodOptional<z.ZodNumber>;
1547
+ sha256: z.ZodOptional<z.ZodString>;
1548
+ width: z.ZodOptional<z.ZodNumber>;
1549
+ height: z.ZodOptional<z.ZodNumber>;
1550
+ durationMs: z.ZodOptional<z.ZodNumber>;
1551
+ description: z.ZodOptional<z.ZodString>;
1552
+ at: z.ZodOptional<z.ZodObject<{
1553
+ step: z.ZodOptional<z.ZodString>;
1554
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1555
+ }, z.core.$loose>>;
1556
+ poster: z.ZodOptional<z.ZodString>;
1557
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1558
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1559
+ }, z.core.$loose>>>;
1560
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1561
+ type: z.ZodString;
1562
+ message: z.ZodString;
1563
+ level: z.ZodOptional<z.ZodString>;
1564
+ at: z.ZodOptional<z.ZodObject<{
1565
+ step: z.ZodOptional<z.ZodString>;
1566
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1567
+ }, z.core.$loose>>;
1568
+ source: z.ZodOptional<z.ZodObject<{
1569
+ file: z.ZodOptional<z.ZodString>;
1570
+ line: z.ZodOptional<z.ZodNumber>;
1571
+ column: z.ZodOptional<z.ZodNumber>;
1572
+ }, z.core.$loose>>;
1573
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1574
+ url: z.ZodString;
1575
+ name: z.ZodOptional<z.ZodString>;
1576
+ rel: z.ZodOptional<z.ZodString>;
1577
+ }, z.core.$loose>>>;
1578
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1579
+ }, z.core.$loose>>>;
1580
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1581
+ }, z.core.$loose>>>;
1582
+ attempts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1583
+ index: z.ZodNumber;
1584
+ status: z.ZodEnum<{
1585
+ passed: "passed";
1586
+ failed: "failed";
1587
+ running: "running";
1588
+ "not-run": "not-run";
1589
+ }>;
1590
+ durationMs: z.ZodOptional<z.ZodNumber>;
1591
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
1592
+ detail: z.ZodOptional<z.ZodString>;
1593
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
1594
+ id: z.ZodOptional<z.ZodString>;
1595
+ parentId: z.ZodOptional<z.ZodString>;
1596
+ name: z.ZodString;
1597
+ kind: z.ZodOptional<z.ZodString>;
1598
+ status: z.ZodOptional<z.ZodString>;
1599
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1600
+ durationMs: z.ZodOptional<z.ZodNumber>;
1601
+ detail: z.ZodOptional<z.ZodString>;
1602
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1603
+ id: z.ZodOptional<z.ZodString>;
1604
+ name: z.ZodString;
1605
+ role: z.ZodOptional<z.ZodString>;
1606
+ contentType: z.ZodOptional<z.ZodString>;
1607
+ bundleKey: z.ZodOptional<z.ZodString>;
1608
+ uri: z.ZodOptional<z.ZodString>;
1609
+ text: z.ZodOptional<z.ZodString>;
1610
+ bytes: z.ZodOptional<z.ZodNumber>;
1611
+ sha256: z.ZodOptional<z.ZodString>;
1612
+ width: z.ZodOptional<z.ZodNumber>;
1613
+ height: z.ZodOptional<z.ZodNumber>;
1614
+ durationMs: z.ZodOptional<z.ZodNumber>;
1615
+ description: z.ZodOptional<z.ZodString>;
1616
+ at: z.ZodOptional<z.ZodObject<{
1617
+ step: z.ZodOptional<z.ZodString>;
1618
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1619
+ }, z.core.$loose>>;
1620
+ poster: z.ZodOptional<z.ZodString>;
1621
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1622
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1623
+ }, z.core.$loose>>>;
1624
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1625
+ type: z.ZodString;
1626
+ message: z.ZodString;
1627
+ level: z.ZodOptional<z.ZodString>;
1628
+ at: z.ZodOptional<z.ZodObject<{
1629
+ step: z.ZodOptional<z.ZodString>;
1630
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1631
+ }, z.core.$loose>>;
1632
+ source: z.ZodOptional<z.ZodObject<{
1633
+ file: z.ZodOptional<z.ZodString>;
1634
+ line: z.ZodOptional<z.ZodNumber>;
1635
+ column: z.ZodOptional<z.ZodNumber>;
1636
+ }, z.core.$loose>>;
1637
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1638
+ url: z.ZodString;
1639
+ name: z.ZodOptional<z.ZodString>;
1640
+ rel: z.ZodOptional<z.ZodString>;
1641
+ }, z.core.$loose>>>;
1642
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1643
+ }, z.core.$loose>>>;
1644
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1645
+ }, z.core.$loose>>>;
1646
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1647
+ id: z.ZodOptional<z.ZodString>;
1648
+ name: z.ZodString;
1649
+ role: z.ZodOptional<z.ZodString>;
1650
+ contentType: z.ZodOptional<z.ZodString>;
1651
+ bundleKey: z.ZodOptional<z.ZodString>;
1652
+ uri: z.ZodOptional<z.ZodString>;
1653
+ text: z.ZodOptional<z.ZodString>;
1654
+ bytes: z.ZodOptional<z.ZodNumber>;
1655
+ sha256: z.ZodOptional<z.ZodString>;
1656
+ width: z.ZodOptional<z.ZodNumber>;
1657
+ height: z.ZodOptional<z.ZodNumber>;
1658
+ durationMs: z.ZodOptional<z.ZodNumber>;
1659
+ description: z.ZodOptional<z.ZodString>;
1660
+ at: z.ZodOptional<z.ZodObject<{
1661
+ step: z.ZodOptional<z.ZodString>;
1662
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1663
+ }, z.core.$loose>>;
1664
+ poster: z.ZodOptional<z.ZodString>;
1665
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1666
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1667
+ }, z.core.$loose>>>;
1668
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1669
+ type: z.ZodString;
1670
+ message: z.ZodString;
1671
+ level: z.ZodOptional<z.ZodString>;
1672
+ at: z.ZodOptional<z.ZodObject<{
1673
+ step: z.ZodOptional<z.ZodString>;
1674
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1675
+ }, z.core.$loose>>;
1676
+ source: z.ZodOptional<z.ZodObject<{
1677
+ file: z.ZodOptional<z.ZodString>;
1678
+ line: z.ZodOptional<z.ZodNumber>;
1679
+ column: z.ZodOptional<z.ZodNumber>;
1680
+ }, z.core.$loose>>;
1681
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1682
+ url: z.ZodString;
1683
+ name: z.ZodOptional<z.ZodString>;
1684
+ rel: z.ZodOptional<z.ZodString>;
1685
+ }, z.core.$loose>>>;
1686
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1687
+ }, z.core.$loose>>>;
1688
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1689
+ }, z.core.$loose>>>;
1690
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1691
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1692
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1693
+ url: z.ZodString;
1694
+ name: z.ZodOptional<z.ZodString>;
1695
+ rel: z.ZodOptional<z.ZodString>;
1696
+ }, z.core.$loose>>>;
1697
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1698
+ id: z.ZodOptional<z.ZodString>;
1699
+ name: z.ZodString;
1700
+ role: z.ZodOptional<z.ZodString>;
1701
+ contentType: z.ZodOptional<z.ZodString>;
1702
+ bundleKey: z.ZodOptional<z.ZodString>;
1703
+ uri: z.ZodOptional<z.ZodString>;
1704
+ text: z.ZodOptional<z.ZodString>;
1705
+ bytes: z.ZodOptional<z.ZodNumber>;
1706
+ sha256: z.ZodOptional<z.ZodString>;
1707
+ width: z.ZodOptional<z.ZodNumber>;
1708
+ height: z.ZodOptional<z.ZodNumber>;
1709
+ durationMs: z.ZodOptional<z.ZodNumber>;
1710
+ description: z.ZodOptional<z.ZodString>;
1711
+ at: z.ZodOptional<z.ZodObject<{
1712
+ step: z.ZodOptional<z.ZodString>;
1713
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1714
+ }, z.core.$loose>>;
1715
+ poster: z.ZodOptional<z.ZodString>;
1716
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1717
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1718
+ }, z.core.$loose>>>;
1719
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1720
+ type: z.ZodString;
1721
+ message: z.ZodString;
1722
+ level: z.ZodOptional<z.ZodString>;
1723
+ at: z.ZodOptional<z.ZodObject<{
1724
+ step: z.ZodOptional<z.ZodString>;
1725
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1726
+ }, z.core.$loose>>;
1727
+ source: z.ZodOptional<z.ZodObject<{
1728
+ file: z.ZodOptional<z.ZodString>;
1729
+ line: z.ZodOptional<z.ZodNumber>;
1730
+ column: z.ZodOptional<z.ZodNumber>;
1731
+ }, z.core.$loose>>;
1732
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1733
+ url: z.ZodString;
1734
+ name: z.ZodOptional<z.ZodString>;
1735
+ rel: z.ZodOptional<z.ZodString>;
1736
+ }, z.core.$loose>>>;
1737
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1738
+ }, z.core.$loose>>>;
1739
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1740
+ id: z.ZodString;
1741
+ title: z.ZodString;
1742
+ status: z.ZodEnum<{
1743
+ passed: "passed";
1744
+ failed: "failed";
1745
+ running: "running";
1746
+ "not-run": "not-run";
1747
+ }>;
1748
+ detail: z.ZodDefault<z.ZodString>;
1749
+ specPath: z.ZodOptional<z.ZodString>;
1750
+ measurements: z.ZodDefault<z.ZodArray<z.ZodObject<{
1751
+ name: z.ZodString;
1752
+ value: z.ZodNumber;
1753
+ unit: z.ZodString;
1754
+ limit: z.ZodOptional<z.ZodNumber>;
1755
+ }, z.core.$loose>>>;
1756
+ durationMs: z.ZodOptional<z.ZodNumber>;
1757
+ }, z.core.$loose>>;
1758
+ }, z.core.$loose>>>;
1759
+ tests: z.ZodArray<z.ZodObject<{
1760
+ testId: z.ZodString;
1761
+ title: z.ZodString;
1762
+ status: z.ZodEnum<{
1763
+ passed: "passed";
1764
+ failed: "failed";
1765
+ skipped: "skipped";
1766
+ }>;
1767
+ system: z.ZodDefault<z.ZodString>;
1768
+ runtime: z.ZodDefault<z.ZodString>;
1769
+ seed: z.ZodDefault<z.ZodString>;
1770
+ durationMs: z.ZodDefault<z.ZodNumber>;
1771
+ }, z.core.$loose>>;
1772
+ }, z.core.$loose>>>;
1773
+ recording: z.ZodDefault<z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
1774
+ type: z.ZodLiteral<"layer">;
1775
+ }, z.core.$loose>, z.ZodObject<{
1776
+ type: z.ZodLiteral<"commit">;
1777
+ sha: z.ZodString;
1778
+ source: z.ZodString;
1779
+ }, z.core.$loose>]>>>;
1780
+ bundle: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
1781
+ contentType: z.ZodString;
1782
+ parts: z.ZodArray<z.ZodObject<{
1783
+ blob: z.ZodString;
1784
+ offset: z.ZodNumber;
1785
+ size: z.ZodNumber;
1786
+ }, z.core.$loose>>;
1787
+ }, z.core.$loose>>>;
1788
+ }, z.core.$loose>;
1789
+ /** A layer as a reader holds it: the output of `LayerDocumentSchema`, with defaults applied. */
1790
+ export type LayerDocument = z.output<typeof LayerDocumentSchema>;
1791
+ /** The outcome of `parseLayerDocument`: the layer, or the reason it could not be read. */
1792
+ export type ParsedLayer = {
1793
+ readonly ok: true;
1794
+ readonly layer: LayerDocument;
1795
+ } | {
1796
+ readonly ok: false;
1797
+ readonly reason: string;
1798
+ };
1799
+ /**
1800
+ * Reads a layer manifest of any age and returns it, or the reason it cannot be read; it never throws. Layers written
1801
+ * before `schemaVersion` existed are version 1. A layer of a newer major version is refused by name ("Upgrade
1802
+ * @crvouga/atlas to read it") rather than half understood. Evidence the reader cannot read (a malformed attachment,
1803
+ * step, annotation, link, tag, label or extension) is dropped and the check keeps its status and place; anything
1804
+ * else that fails the schema refuses the whole layer, naming the first problem by its path. Callers treat a refused
1805
+ * layer as unknown, never as passed.
1806
+ *
1807
+ * @see docs/report-contract.md
1808
+ *
1809
+ * @example
1810
+ * ```ts
1811
+ * import { parseLayerDocument } from '@crvouga/atlas/schema';
1812
+ *
1813
+ * const parsed = parseLayerDocument(JSON.parse(text));
1814
+ * if (!parsed.ok) throw new Error(parsed.reason);
1815
+ * for (const part of parsed.layer.parts) console.log(part.kind, part.checks.length);
1816
+ * ```
1817
+ */
1818
+ export declare function parseLayerDocument(raw: unknown): ParsedLayer;
1819
+ /**
1820
+ * An attachment as a producer hands it over, before the publisher stores its bytes. Give the bytes as
1821
+ * `path` (a file, read by the CLI), `base64`, `data` (from code), or `text`; the publisher stores them in
1822
+ * the layer, fills in `bundleKey`, `bytes` and `sha256`, and removes these four.
1823
+ */
1824
+ export declare const AttachmentInputSchema: z.ZodObject<{
1825
+ id: z.ZodOptional<z.ZodString>;
1826
+ name: z.ZodString;
1827
+ role: z.ZodOptional<z.ZodString>;
1828
+ contentType: z.ZodOptional<z.ZodString>;
1829
+ bundleKey: z.ZodOptional<z.ZodString>;
1830
+ uri: z.ZodOptional<z.ZodString>;
1831
+ text: z.ZodOptional<z.ZodString>;
1832
+ bytes: z.ZodOptional<z.ZodNumber>;
1833
+ sha256: z.ZodOptional<z.ZodString>;
1834
+ width: z.ZodOptional<z.ZodNumber>;
1835
+ height: z.ZodOptional<z.ZodNumber>;
1836
+ durationMs: z.ZodOptional<z.ZodNumber>;
1837
+ description: z.ZodOptional<z.ZodString>;
1838
+ at: z.ZodOptional<z.ZodObject<{
1839
+ step: z.ZodOptional<z.ZodString>;
1840
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1841
+ }, z.core.$loose>>;
1842
+ poster: z.ZodOptional<z.ZodString>;
1843
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1844
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1845
+ path: z.ZodOptional<z.ZodString>;
1846
+ base64: z.ZodOptional<z.ZodString>;
1847
+ data: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
1848
+ }, z.core.$loose>;
1849
+ /**
1850
+ * The checks of a layer as a producer hands them to the publisher (`publishChecks`, `atlas report publish --checks`),
1851
+ * before the publisher fills in the rest: `id`, `schemaVersion`, the part around the checks and the bundle of
1852
+ * attachment bytes. It is the whole integration surface of a producer that has no timelines to record. `kind` names
1853
+ * the part and defaults to `checks`. Attachments may carry their bytes (`AttachmentInputSchema`). Emitted as
1854
+ * `publish-checks.schema.json`.
1855
+ */
1856
+ export declare const PublishChecksSchema: z.ZodObject<{
1857
+ producer: z.ZodString;
1858
+ checks: z.ZodArray<z.ZodObject<{
1859
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1860
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1861
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1862
+ url: z.ZodString;
1863
+ name: z.ZodOptional<z.ZodString>;
1864
+ rel: z.ZodOptional<z.ZodString>;
1865
+ }, z.core.$loose>>>;
1866
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1867
+ type: z.ZodString;
1868
+ message: z.ZodString;
1869
+ level: z.ZodOptional<z.ZodString>;
1870
+ at: z.ZodOptional<z.ZodObject<{
1871
+ step: z.ZodOptional<z.ZodString>;
1872
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1873
+ }, z.core.$loose>>;
1874
+ source: z.ZodOptional<z.ZodObject<{
1875
+ file: z.ZodOptional<z.ZodString>;
1876
+ line: z.ZodOptional<z.ZodNumber>;
1877
+ column: z.ZodOptional<z.ZodNumber>;
1878
+ }, z.core.$loose>>;
1879
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1880
+ url: z.ZodString;
1881
+ name: z.ZodOptional<z.ZodString>;
1882
+ rel: z.ZodOptional<z.ZodString>;
1883
+ }, z.core.$loose>>>;
1884
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1885
+ }, z.core.$loose>>>;
1886
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1887
+ id: z.ZodString;
1888
+ title: z.ZodString;
1889
+ status: z.ZodEnum<{
1890
+ passed: "passed";
1891
+ failed: "failed";
1892
+ running: "running";
1893
+ "not-run": "not-run";
1894
+ }>;
1895
+ detail: z.ZodDefault<z.ZodString>;
1896
+ specPath: z.ZodOptional<z.ZodString>;
1897
+ measurements: z.ZodDefault<z.ZodArray<z.ZodObject<{
1898
+ name: z.ZodString;
1899
+ value: z.ZodNumber;
1900
+ unit: z.ZodString;
1901
+ limit: z.ZodOptional<z.ZodNumber>;
1902
+ }, z.core.$loose>>>;
1903
+ durationMs: z.ZodOptional<z.ZodNumber>;
1904
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1905
+ id: z.ZodOptional<z.ZodString>;
1906
+ name: z.ZodString;
1907
+ role: z.ZodOptional<z.ZodString>;
1908
+ contentType: z.ZodOptional<z.ZodString>;
1909
+ bundleKey: z.ZodOptional<z.ZodString>;
1910
+ uri: z.ZodOptional<z.ZodString>;
1911
+ text: z.ZodOptional<z.ZodString>;
1912
+ bytes: z.ZodOptional<z.ZodNumber>;
1913
+ sha256: z.ZodOptional<z.ZodString>;
1914
+ width: z.ZodOptional<z.ZodNumber>;
1915
+ height: z.ZodOptional<z.ZodNumber>;
1916
+ durationMs: z.ZodOptional<z.ZodNumber>;
1917
+ description: z.ZodOptional<z.ZodString>;
1918
+ at: z.ZodOptional<z.ZodObject<{
1919
+ step: z.ZodOptional<z.ZodString>;
1920
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1921
+ }, z.core.$loose>>;
1922
+ poster: z.ZodOptional<z.ZodString>;
1923
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1924
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1925
+ path: z.ZodOptional<z.ZodString>;
1926
+ base64: z.ZodOptional<z.ZodString>;
1927
+ data: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
1928
+ }, z.core.$loose>>>;
1929
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
1930
+ id: z.ZodOptional<z.ZodString>;
1931
+ parentId: z.ZodOptional<z.ZodString>;
1932
+ name: z.ZodString;
1933
+ kind: z.ZodOptional<z.ZodString>;
1934
+ status: z.ZodOptional<z.ZodString>;
1935
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1936
+ durationMs: z.ZodOptional<z.ZodNumber>;
1937
+ detail: z.ZodOptional<z.ZodString>;
1938
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1939
+ type: z.ZodString;
1940
+ message: z.ZodString;
1941
+ level: z.ZodOptional<z.ZodString>;
1942
+ at: z.ZodOptional<z.ZodObject<{
1943
+ step: z.ZodOptional<z.ZodString>;
1944
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1945
+ }, z.core.$loose>>;
1946
+ source: z.ZodOptional<z.ZodObject<{
1947
+ file: z.ZodOptional<z.ZodString>;
1948
+ line: z.ZodOptional<z.ZodNumber>;
1949
+ column: z.ZodOptional<z.ZodNumber>;
1950
+ }, z.core.$loose>>;
1951
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1952
+ url: z.ZodString;
1953
+ name: z.ZodOptional<z.ZodString>;
1954
+ rel: z.ZodOptional<z.ZodString>;
1955
+ }, z.core.$loose>>>;
1956
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1957
+ }, z.core.$loose>>>;
1958
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1959
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1960
+ id: z.ZodOptional<z.ZodString>;
1961
+ name: z.ZodString;
1962
+ role: z.ZodOptional<z.ZodString>;
1963
+ contentType: z.ZodOptional<z.ZodString>;
1964
+ bundleKey: z.ZodOptional<z.ZodString>;
1965
+ uri: z.ZodOptional<z.ZodString>;
1966
+ text: z.ZodOptional<z.ZodString>;
1967
+ bytes: z.ZodOptional<z.ZodNumber>;
1968
+ sha256: z.ZodOptional<z.ZodString>;
1969
+ width: z.ZodOptional<z.ZodNumber>;
1970
+ height: z.ZodOptional<z.ZodNumber>;
1971
+ durationMs: z.ZodOptional<z.ZodNumber>;
1972
+ description: z.ZodOptional<z.ZodString>;
1973
+ at: z.ZodOptional<z.ZodObject<{
1974
+ step: z.ZodOptional<z.ZodString>;
1975
+ offsetMs: z.ZodOptional<z.ZodNumber>;
1976
+ }, z.core.$loose>>;
1977
+ poster: z.ZodOptional<z.ZodString>;
1978
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1979
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1980
+ path: z.ZodOptional<z.ZodString>;
1981
+ base64: z.ZodOptional<z.ZodString>;
1982
+ data: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
1983
+ }, z.core.$loose>>>;
1984
+ }, z.core.$loose>>>;
1985
+ attempts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1986
+ index: z.ZodNumber;
1987
+ status: z.ZodEnum<{
1988
+ passed: "passed";
1989
+ failed: "failed";
1990
+ running: "running";
1991
+ "not-run": "not-run";
1992
+ }>;
1993
+ durationMs: z.ZodOptional<z.ZodNumber>;
1994
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
1995
+ detail: z.ZodOptional<z.ZodString>;
1996
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1997
+ type: z.ZodString;
1998
+ message: z.ZodString;
1999
+ level: z.ZodOptional<z.ZodString>;
2000
+ at: z.ZodOptional<z.ZodObject<{
2001
+ step: z.ZodOptional<z.ZodString>;
2002
+ offsetMs: z.ZodOptional<z.ZodNumber>;
2003
+ }, z.core.$loose>>;
2004
+ source: z.ZodOptional<z.ZodObject<{
2005
+ file: z.ZodOptional<z.ZodString>;
2006
+ line: z.ZodOptional<z.ZodNumber>;
2007
+ column: z.ZodOptional<z.ZodNumber>;
2008
+ }, z.core.$loose>>;
2009
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2010
+ url: z.ZodString;
2011
+ name: z.ZodOptional<z.ZodString>;
2012
+ rel: z.ZodOptional<z.ZodString>;
2013
+ }, z.core.$loose>>>;
2014
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2015
+ }, z.core.$loose>>>;
2016
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2017
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
2018
+ id: z.ZodOptional<z.ZodString>;
2019
+ parentId: z.ZodOptional<z.ZodString>;
2020
+ name: z.ZodString;
2021
+ kind: z.ZodOptional<z.ZodString>;
2022
+ status: z.ZodOptional<z.ZodString>;
2023
+ offsetMs: z.ZodOptional<z.ZodNumber>;
2024
+ durationMs: z.ZodOptional<z.ZodNumber>;
2025
+ detail: z.ZodOptional<z.ZodString>;
2026
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
2027
+ type: z.ZodString;
2028
+ message: z.ZodString;
2029
+ level: z.ZodOptional<z.ZodString>;
2030
+ at: z.ZodOptional<z.ZodObject<{
2031
+ step: z.ZodOptional<z.ZodString>;
2032
+ offsetMs: z.ZodOptional<z.ZodNumber>;
2033
+ }, z.core.$loose>>;
2034
+ source: z.ZodOptional<z.ZodObject<{
2035
+ file: z.ZodOptional<z.ZodString>;
2036
+ line: z.ZodOptional<z.ZodNumber>;
2037
+ column: z.ZodOptional<z.ZodNumber>;
2038
+ }, z.core.$loose>>;
2039
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2040
+ url: z.ZodString;
2041
+ name: z.ZodOptional<z.ZodString>;
2042
+ rel: z.ZodOptional<z.ZodString>;
2043
+ }, z.core.$loose>>>;
2044
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2045
+ }, z.core.$loose>>>;
2046
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2047
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
2048
+ id: z.ZodOptional<z.ZodString>;
2049
+ name: z.ZodString;
2050
+ role: z.ZodOptional<z.ZodString>;
2051
+ contentType: z.ZodOptional<z.ZodString>;
2052
+ bundleKey: z.ZodOptional<z.ZodString>;
2053
+ uri: z.ZodOptional<z.ZodString>;
2054
+ text: z.ZodOptional<z.ZodString>;
2055
+ bytes: z.ZodOptional<z.ZodNumber>;
2056
+ sha256: z.ZodOptional<z.ZodString>;
2057
+ width: z.ZodOptional<z.ZodNumber>;
2058
+ height: z.ZodOptional<z.ZodNumber>;
2059
+ durationMs: z.ZodOptional<z.ZodNumber>;
2060
+ description: z.ZodOptional<z.ZodString>;
2061
+ at: z.ZodOptional<z.ZodObject<{
2062
+ step: z.ZodOptional<z.ZodString>;
2063
+ offsetMs: z.ZodOptional<z.ZodNumber>;
2064
+ }, z.core.$loose>>;
2065
+ poster: z.ZodOptional<z.ZodString>;
2066
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
2067
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2068
+ path: z.ZodOptional<z.ZodString>;
2069
+ base64: z.ZodOptional<z.ZodString>;
2070
+ data: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
2071
+ }, z.core.$loose>>>;
2072
+ }, z.core.$loose>>>;
2073
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
2074
+ id: z.ZodOptional<z.ZodString>;
2075
+ name: z.ZodString;
2076
+ role: z.ZodOptional<z.ZodString>;
2077
+ contentType: z.ZodOptional<z.ZodString>;
2078
+ bundleKey: z.ZodOptional<z.ZodString>;
2079
+ uri: z.ZodOptional<z.ZodString>;
2080
+ text: z.ZodOptional<z.ZodString>;
2081
+ bytes: z.ZodOptional<z.ZodNumber>;
2082
+ sha256: z.ZodOptional<z.ZodString>;
2083
+ width: z.ZodOptional<z.ZodNumber>;
2084
+ height: z.ZodOptional<z.ZodNumber>;
2085
+ durationMs: z.ZodOptional<z.ZodNumber>;
2086
+ description: z.ZodOptional<z.ZodString>;
2087
+ at: z.ZodOptional<z.ZodObject<{
2088
+ step: z.ZodOptional<z.ZodString>;
2089
+ offsetMs: z.ZodOptional<z.ZodNumber>;
2090
+ }, z.core.$loose>>;
2091
+ poster: z.ZodOptional<z.ZodString>;
2092
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
2093
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2094
+ path: z.ZodOptional<z.ZodString>;
2095
+ base64: z.ZodOptional<z.ZodString>;
2096
+ data: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
2097
+ }, z.core.$loose>>>;
2098
+ }, z.core.$loose>>>;
2099
+ }, z.core.$loose>>;
2100
+ kind: z.ZodDefault<z.ZodString>;
2101
+ title: z.ZodOptional<z.ZodString>;
2102
+ recordedAtMs: z.ZodNumber;
2103
+ sha: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2104
+ branch: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2105
+ runUrl: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2106
+ environment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2107
+ parameters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
2108
+ freshness: z.ZodOptional<z.ZodEnum<{
2109
+ unknown: "unknown";
2110
+ modified: "modified";
2111
+ }>>;
2112
+ specs: z.ZodDefault<z.ZodArray<z.ZodObject<{
2113
+ path: z.ZodString;
2114
+ domain: z.ZodString;
2115
+ kind: z.ZodString;
2116
+ title: z.ZodString;
2117
+ fingerprint: z.ZodOptional<z.ZodString>;
2118
+ }, z.core.$loose>>>;
2119
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
2120
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2121
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2122
+ url: z.ZodString;
2123
+ name: z.ZodOptional<z.ZodString>;
2124
+ rel: z.ZodOptional<z.ZodString>;
2125
+ }, z.core.$loose>>>;
2126
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
2127
+ id: z.ZodOptional<z.ZodString>;
2128
+ name: z.ZodString;
2129
+ role: z.ZodOptional<z.ZodString>;
2130
+ contentType: z.ZodOptional<z.ZodString>;
2131
+ bundleKey: z.ZodOptional<z.ZodString>;
2132
+ uri: z.ZodOptional<z.ZodString>;
2133
+ text: z.ZodOptional<z.ZodString>;
2134
+ bytes: z.ZodOptional<z.ZodNumber>;
2135
+ sha256: z.ZodOptional<z.ZodString>;
2136
+ width: z.ZodOptional<z.ZodNumber>;
2137
+ height: z.ZodOptional<z.ZodNumber>;
2138
+ durationMs: z.ZodOptional<z.ZodNumber>;
2139
+ description: z.ZodOptional<z.ZodString>;
2140
+ at: z.ZodOptional<z.ZodObject<{
2141
+ step: z.ZodOptional<z.ZodString>;
2142
+ offsetMs: z.ZodOptional<z.ZodNumber>;
2143
+ }, z.core.$loose>>;
2144
+ poster: z.ZodOptional<z.ZodString>;
2145
+ captions: z.ZodOptional<z.ZodArray<z.ZodString>>;
2146
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2147
+ path: z.ZodOptional<z.ZodString>;
2148
+ base64: z.ZodOptional<z.ZodString>;
2149
+ data: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>>;
2150
+ }, z.core.$loose>>>;
2151
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
2152
+ type: z.ZodString;
2153
+ message: z.ZodString;
2154
+ level: z.ZodOptional<z.ZodString>;
2155
+ at: z.ZodOptional<z.ZodObject<{
2156
+ step: z.ZodOptional<z.ZodString>;
2157
+ offsetMs: z.ZodOptional<z.ZodNumber>;
2158
+ }, z.core.$loose>>;
2159
+ source: z.ZodOptional<z.ZodObject<{
2160
+ file: z.ZodOptional<z.ZodString>;
2161
+ line: z.ZodOptional<z.ZodNumber>;
2162
+ column: z.ZodOptional<z.ZodNumber>;
2163
+ }, z.core.$loose>>;
2164
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2165
+ url: z.ZodString;
2166
+ name: z.ZodOptional<z.ZodString>;
2167
+ rel: z.ZodOptional<z.ZodString>;
2168
+ }, z.core.$loose>>>;
2169
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2170
+ }, z.core.$loose>>>;
2171
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2172
+ }, z.core.$loose>;
2173
+ /** What a caller passes to `publishChecks`: the input type of `PublishChecksSchema`, before defaults. */
2174
+ export type PublishChecksInput = z.input<typeof PublishChecksSchema>;
2175
+ /** The `schemaVersion` of the `ReportStatus` JSON, currently 1. */
2176
+ export declare const REPORT_STATUS_SCHEMA_VERSION = 1;
2177
+ /**
2178
+ * What `atlas report status --format json` prints: the combined report in numbers, and whether it
2179
+ * passes. `ok` is the gate: nothing failed, nothing is still running, nothing could not be read,
2180
+ * and every required environment has results.
2181
+ */
2182
+ export declare const ReportStatusSchema: z.ZodObject<{
2183
+ schemaVersion: z.ZodLiteral<1>;
2184
+ ok: z.ZodBoolean;
2185
+ reasons: z.ZodArray<z.ZodString>;
2186
+ checks: z.ZodObject<{
2187
+ passed: z.ZodNumber;
2188
+ failed: z.ZodNumber;
2189
+ running: z.ZodNumber;
2190
+ 'not-run': z.ZodNumber;
2191
+ total: z.ZodNumber;
2192
+ }, z.core.$strip>;
2193
+ byEnvironment: z.ZodRecord<z.ZodString, z.ZodObject<{
2194
+ passed: z.ZodNumber;
2195
+ failed: z.ZodNumber;
2196
+ running: z.ZodNumber;
2197
+ 'not-run': z.ZodNumber;
2198
+ total: z.ZodNumber;
2199
+ }, z.core.$strip>>;
2200
+ layers: z.ZodNumber;
2201
+ backends: z.ZodArray<z.ZodObject<{
2202
+ id: z.ZodString;
2203
+ label: z.ZodString;
2204
+ available: z.ZodBoolean;
2205
+ }, z.core.$strip>>;
2206
+ notices: z.ZodArray<z.ZodString>;
2207
+ specsWithoutEvidence: z.ZodArray<z.ZodString>;
2208
+ specs: z.ZodArray<z.ZodObject<{
2209
+ path: z.ZodNullable<z.ZodString>;
2210
+ title: z.ZodString;
2211
+ kind: z.ZodString;
2212
+ checks: z.ZodObject<{
2213
+ passed: z.ZodNumber;
2214
+ failed: z.ZodNumber;
2215
+ running: z.ZodNumber;
2216
+ 'not-run': z.ZodNumber;
2217
+ total: z.ZodNumber;
2218
+ }, z.core.$strip>;
2219
+ byEnvironment: z.ZodRecord<z.ZodString, z.ZodObject<{
2220
+ passed: z.ZodNumber;
2221
+ failed: z.ZodNumber;
2222
+ running: z.ZodNumber;
2223
+ 'not-run': z.ZodNumber;
2224
+ total: z.ZodNumber;
2225
+ }, z.core.$strip>>;
2226
+ }, z.core.$loose>>;
2227
+ failing: z.ZodArray<z.ZodObject<{
2228
+ spec: z.ZodNullable<z.ZodString>;
2229
+ check: z.ZodString;
2230
+ title: z.ZodString;
2231
+ status: z.ZodEnum<{
2232
+ failed: "failed";
2233
+ running: "running";
2234
+ }>;
2235
+ environment: z.ZodNullable<z.ZodString>;
2236
+ producer: z.ZodString;
2237
+ branch: z.ZodNullable<z.ZodString>;
2238
+ sha: z.ZodNullable<z.ZodString>;
2239
+ layer: z.ZodString;
2240
+ backend: z.ZodString;
2241
+ runUrl: z.ZodNullable<z.ZodString>;
2242
+ detail: z.ZodString;
2243
+ }, z.core.$loose>>;
2244
+ }, z.core.$loose>;
2245
+ /** A parsed `ReportStatusSchema` value. */
2246
+ export type ReportStatus = z.output<typeof ReportStatusSchema>;
2247
+ /**
2248
+ * The specs of one version of a project, as published: what the report is laid over. Layers of
2249
+ * evidence say what ran; a spec set says what the specs were. Like layers, spec sets are immutable and
2250
+ * never replace each other: the node shows the newest one of the branch you choose.
2251
+ */
2252
+ export declare const SpecSetSchema: z.ZodObject<{
2253
+ schemaVersion: z.ZodLiteral<1>;
2254
+ id: z.ZodString;
2255
+ branch: z.ZodNullable<z.ZodString>;
2256
+ sha: z.ZodNullable<z.ZodString>;
2257
+ recordedAtMs: z.ZodNumber;
2258
+ freshness: z.ZodOptional<z.ZodEnum<{
2259
+ unknown: "unknown";
2260
+ modified: "modified";
2261
+ }>>;
2262
+ files: z.ZodArray<z.ZodObject<{
2263
+ path: z.ZodString;
2264
+ digest: z.ZodString;
2265
+ fingerprint: z.ZodString;
2266
+ kind: z.ZodString;
2267
+ title: z.ZodString;
2268
+ domain: z.ZodString;
2269
+ bytes: z.ZodNumber;
2270
+ }, z.core.$loose>>;
2271
+ }, z.core.$loose>;
2272
+ /** A parsed `SpecSetSchema` value. */
2273
+ export type SpecSet = z.output<typeof SpecSetSchema>;