@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
@@ -1,7 +1,25 @@
1
+ /**
2
+ * @module Statechart run manifest schemas
3
+ *
4
+ * Zod schemas for `runs/<run-id>/manifest.json`, the file `atlas run` writes for one run of a statechart spec: run
5
+ * info, the map of states and edges, one record per state, transition, path, journey and seed, the timeline and
6
+ * business events observed, and coverage. The envelope keeps each section `unknown` so a reader can validate every
7
+ * record on its own and keep the ones that parse (the visualizer's `parse/manifest.ts` does). Within a
8
+ * `schemaVersion` only optional fields are added. A run is published into the layered report with `atlas report
9
+ * publish --manifest`.
10
+ *
11
+ * @see docs/statecharts.md
12
+ * @see docs/report-contract.md
13
+ */
1
14
  import { z } from 'zod/v4';
2
15
  /** Manifest schema versions this package describes. Readers accept these and try newer ones. */
3
16
  export declare const MANIFEST_SCHEMA_VERSIONS: readonly [1];
17
+ /**
18
+ * The newest manifest `schemaVersion` this package describes. The visualizer reads a manifest without a version as
19
+ * this one, and reads a newer one as far as it understands it.
20
+ */
4
21
  export declare const LATEST_MANIFEST_SCHEMA_VERSION = 1;
22
+ /** Whether a screenshot or clip a run promised is `ready`, still `processing` or `failed`. Absent means ready. */
5
23
  export declare const MEDIA_STATES: readonly ["ready", "processing", "failed"];
6
24
  /**
7
25
  * Proposed: the runner marks media it has promised but not finished writing, so a viewer can
@@ -12,7 +30,16 @@ export declare const MediaStateSchema: z.ZodEnum<{
12
30
  ready: "ready";
13
31
  processing: "processing";
14
32
  }>;
33
+ /**
34
+ * Kinds of `TimelineEntry` a driver records during a transition: `tap`, `type`, `system` (a call to or from another
35
+ * system), `screen` (the screen changed), `toast`, `note`, `time` (a clock jump), `notification`. A reader shows a
36
+ * kind it does not know as a `note`.
37
+ */
15
38
  export declare const TIMELINE_KINDS: readonly ["tap", "type", "system", "screen", "toast", "note", "time", "notification"];
39
+ /**
40
+ * A call between the product and another system during a transition, recorded on a `system` timeline entry: source,
41
+ * endpoint, event type, payload and response. The HTTP driver records these.
42
+ */
16
43
  export declare const SystemCallSchema: z.ZodObject<{
17
44
  source: z.ZodOptional<z.ZodString>;
18
45
  endpoint: z.ZodOptional<z.ZodString>;
@@ -41,6 +68,10 @@ export declare const NotificationSchema: z.ZodObject<{
41
68
  title: z.ZodOptional<z.ZodString>;
42
69
  body: z.ZodOptional<z.ZodString>;
43
70
  }, z.core.$strip>;
71
+ /**
72
+ * One moment in a transition's timeline: what happened (`kind`, `label`), when (`atMs` from the start of the clip)
73
+ * and the details that go with the kind. The timeline becomes the captions of the transition's clip.
74
+ */
44
75
  export declare const TimelineEntrySchema: z.ZodObject<{
45
76
  atMs: z.ZodNumber;
46
77
  kind: z.ZodEnum<{
@@ -85,6 +116,7 @@ export declare const TimelineEntrySchema: z.ZodObject<{
85
116
  }, z.core.$strip>>;
86
117
  client: z.ZodOptional<z.ZodString>;
87
118
  }, z.core.$strip>;
119
+ /** A parsed `TimelineEntrySchema` value. */
88
120
  export type TimelineEntry = z.infer<typeof TimelineEntrySchema>;
89
121
  /** A CloudEvents 1.0 event (JSON format), as an event source observed it. */
90
122
  export declare const CloudEventSchema: z.ZodObject<{
@@ -97,7 +129,12 @@ export declare const CloudEventSchema: z.ZodObject<{
97
129
  datacontenttype: z.ZodOptional<z.ZodString>;
98
130
  data: z.ZodOptional<z.ZodUnknown>;
99
131
  }, z.core.$loose>;
132
+ /** A parsed `CloudEventSchema` value. */
100
133
  export type CloudEvent = z.infer<typeof CloudEventSchema>;
134
+ /**
135
+ * The business events a state expects (from `meta.events`) against what event sources observed while the step ran:
136
+ * `expected`, `observed`, `missing`, and `noSignal` for those with no observable signal mapped.
137
+ */
101
138
  export declare const BusinessEventsSchema: z.ZodObject<{
102
139
  expected: z.ZodArray<z.ZodString>;
103
140
  observed: z.ZodArray<z.ZodString>;
@@ -114,14 +151,24 @@ export declare const BusinessEventsSchema: z.ZodObject<{
114
151
  data: z.ZodOptional<z.ZodUnknown>;
115
152
  }, z.core.$loose>>>;
116
153
  }, z.core.$strip>;
154
+ /** A parsed `BusinessEventsSchema` value. */
117
155
  export type BusinessEvents = z.infer<typeof BusinessEventsSchema>;
156
+ /**
157
+ * The result of one item of a state's `meta.checks`: its text, whether it held, and what was expected and seen when
158
+ * it did not. A failed check fails the state.
159
+ */
118
160
  export declare const CheckResultSchema: z.ZodObject<{
119
161
  check: z.ZodString;
120
162
  passed: z.ZodBoolean;
121
163
  expected: z.ZodOptional<z.ZodString>;
122
164
  actual: z.ZodOptional<z.ZodString>;
123
165
  }, z.core.$strip>;
166
+ /** A parsed `CheckResultSchema` value. */
124
167
  export type CheckResult = z.infer<typeof CheckResultSchema>;
168
+ /**
169
+ * What a state's recogniser saw: whether the state matched, and each signal with what was expected (visible or
170
+ * hidden) and whether it was visible.
171
+ */
125
172
  export declare const RecognizerSchema: z.ZodObject<{
126
173
  matched: z.ZodBoolean;
127
174
  signals: z.ZodArray<z.ZodObject<{
@@ -130,6 +177,11 @@ export declare const RecognizerSchema: z.ZodObject<{
130
177
  visible: z.ZodBoolean;
131
178
  }, z.core.$strip>>;
132
179
  }, z.core.$strip>;
180
+ /**
181
+ * The `run` section of a manifest: identity, timing and provenance of the run (id, start and finish, commit, branch,
182
+ * environment, mode), the spec version and directory, how far it has got, and how the plan was split, scoped, reused
183
+ * or merged.
184
+ */
133
185
  export declare const RunInfoSchema: z.ZodObject<{
134
186
  id: z.ZodString;
135
187
  startedAt: z.ZodString;
@@ -167,7 +219,12 @@ export declare const RunInfoSchema: z.ZodObject<{
167
219
  }, z.core.$strip>>;
168
220
  mergedFrom: z.ZodOptional<z.ZodArray<z.ZodString>>;
169
221
  }, z.core.$strip>;
222
+ /** A parsed `RunInfoSchema` value. */
170
223
  export type RunInfo = z.infer<typeof RunInfoSchema>;
224
+ /**
225
+ * A chart that took part in the run: its id, spec file and description, the state of its parent that invokes it, and,
226
+ * for each of its final states, the hand-off event its parent receives.
227
+ */
171
228
  export declare const ManifestChartSchema: z.ZodObject<{
172
229
  id: z.ZodString;
173
230
  file: z.ZodString;
@@ -175,6 +232,10 @@ export declare const ManifestChartSchema: z.ZodObject<{
175
232
  parentState: z.ZodOptional<z.ZodNullable<z.ZodString>>;
176
233
  handOffs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
177
234
  }, z.core.$strip>;
235
+ /**
236
+ * A state in the map of the composed product: id, parent state, chart, type, initial child, and whether it is inside
237
+ * the scope of the run.
238
+ */
178
239
  export declare const MapNodeSchema: z.ZodObject<{
179
240
  id: z.ZodString;
180
241
  parent: z.ZodNullable<z.ZodString>;
@@ -188,6 +249,10 @@ export declare const MapNodeSchema: z.ZodObject<{
188
249
  initial: z.ZodOptional<z.ZodNullable<z.ZodString>>;
189
250
  inScope: z.ZodOptional<z.ZodBoolean>;
190
251
  }, z.core.$strip>;
252
+ /**
253
+ * A transition in the map: its id (see `transitionId`), source and target state names (the target is empty when the
254
+ * event leads nowhere), the event, who sends it, and whether it is inside the scope of the run.
255
+ */
191
256
  export declare const MapEdgeSchema: z.ZodObject<{
192
257
  id: z.ZodString;
193
258
  source: z.ZodString;
@@ -201,6 +266,11 @@ export declare const MapEdgeSchema: z.ZodObject<{
201
266
  }>>;
202
267
  inScope: z.ZodOptional<z.ZodBoolean>;
203
268
  }, z.core.$strip>;
269
+ /**
270
+ * The result for one state: what the spec says about it (description, snapshot, confidence, sources, expected
271
+ * events), whether the run reached it, its screenshots, what the recogniser saw, the business events and
272
+ * `meta.checks` results, and the paths that reached it.
273
+ */
204
274
  export declare const StateRecordSchema: z.ZodObject<{
205
275
  name: z.ZodString;
206
276
  chart: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -280,7 +350,12 @@ export declare const StateRecordSchema: z.ZodObject<{
280
350
  reachedBy: z.ZodOptional<z.ZodArray<z.ZodString>>;
281
351
  notes: z.ZodOptional<z.ZodArray<z.ZodString>>;
282
352
  }, z.core.$strip>;
353
+ /** A parsed `StateRecordSchema` value. */
283
354
  export type StateRecord = z.infer<typeof StateRecordSchema>;
355
+ /**
356
+ * A video of one transition: `video` and `poster` as paths relative to the run directory, its duration, and which
357
+ * client's screen it shows.
358
+ */
284
359
  export declare const ClipSchema: z.ZodObject<{
285
360
  video: z.ZodString;
286
361
  poster: z.ZodOptional<z.ZodString>;
@@ -293,7 +368,13 @@ export declare const ClipSchema: z.ZodObject<{
293
368
  processing: "processing";
294
369
  }>>;
295
370
  }, z.core.$strip>;
371
+ /** A parsed `ClipSchema` value. */
296
372
  export type Clip = z.infer<typeof ClipSchema>;
373
+ /**
374
+ * The result for one transition (an event leaving a state): source, target, event, who sends it, how the
375
+ * implementation makes it happen, its status, clip and timeline, why it was not reached, and the paths that took it.
376
+ * Keyed in a manifest by its id (see `transitionId`).
377
+ */
297
378
  export declare const TransitionRecordSchema: z.ZodObject<{
298
379
  id: z.ZodOptional<z.ZodString>;
299
380
  source: z.ZodString;
@@ -329,7 +410,9 @@ export declare const TransitionRecordSchema: z.ZodObject<{
329
410
  reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
330
411
  reachedBy: z.ZodOptional<z.ZodArray<z.ZodString>>;
331
412
  }, z.core.$strip>;
413
+ /** A parsed `TransitionRecordSchema` value. */
332
414
  export type TransitionRecord = z.infer<typeof TransitionRecordSchema>;
415
+ /** One step of a path: the event, the transition it takes and its outcome, with the reason when it was not reached. */
333
416
  export declare const PathStepSchema: z.ZodObject<{
334
417
  transition: z.ZodOptional<z.ZodString>;
335
418
  event: z.ZodString;
@@ -341,6 +424,11 @@ export declare const PathStepSchema: z.ZodObject<{
341
424
  }>>;
342
425
  reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
343
426
  }, z.core.$strip>;
427
+ /**
428
+ * The result for one planned path: a curated `journey` or a `generated` path covering transitions. It holds the
429
+ * status, every attempt (a failed first attempt is retried once unless retries are off), the steps and where it
430
+ * stopped, and the identity (`key`), start states and seed that let results from different runs compose.
431
+ */
344
432
  export declare const PathRecordSchema: z.ZodObject<{
345
433
  id: z.ZodString;
346
434
  name: z.ZodString;
@@ -377,6 +465,7 @@ export declare const PathRecordSchema: z.ZodObject<{
377
465
  setupMs: z.ZodOptional<z.ZodNumber>;
378
466
  reusedFrom: z.ZodOptional<z.ZodString>;
379
467
  }, z.core.$strip>;
468
+ /** A parsed `PathRecordSchema` value. */
380
469
  export type PathRecord = z.infer<typeof PathRecordSchema>;
381
470
  /** A journey's result, composed from the paths it is cut into (one per seeded stretch). */
382
471
  export declare const JourneyRecordSchema: z.ZodObject<{
@@ -391,6 +480,7 @@ export declare const JourneyRecordSchema: z.ZodObject<{
391
480
  paths: z.ZodArray<z.ZodString>;
392
481
  stoppedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
393
482
  }, z.core.$strip>;
483
+ /** A parsed `JourneyRecordSchema` value. */
394
484
  export type JourneyRecord = z.infer<typeof JourneyRecordSchema>;
395
485
  /** A configuration the implementation can put the system in directly, and what checks it. */
396
486
  export declare const SeedRecordSchema: z.ZodObject<{
@@ -403,6 +493,7 @@ export declare const SeedRecordSchema: z.ZodObject<{
403
493
  paths: z.ZodArray<z.ZodString>;
404
494
  verifiedBy: z.ZodArray<z.ZodString>;
405
495
  }, z.core.$strip>;
496
+ /** A parsed `SeedRecordSchema` value. */
406
497
  export type SeedRecord = z.infer<typeof SeedRecordSchema>;
407
498
  /** Other formats the run wrote, relative to the manifest: JUnit XML, CTRF JSON, Mermaid. */
408
499
  export declare const ReportsSchema: z.ZodObject<{
@@ -410,6 +501,10 @@ export declare const ReportsSchema: z.ZodObject<{
410
501
  ctrf: z.ZodOptional<z.ZodString>;
411
502
  mermaid: z.ZodOptional<z.ZodString>;
412
503
  }, z.core.$strip>;
504
+ /**
505
+ * Result of the privacy scan of a run: whether it passed and what it found. Media of a run whose scan did not pass
506
+ * are not uploaded with `--upload-run`.
507
+ */
413
508
  export declare const PrivacySchema: z.ZodObject<{
414
509
  passed: z.ZodBoolean;
415
510
  findings: z.ZodArray<z.ZodString>;
@@ -1,15 +1,42 @@
1
+ /**
2
+ * @module Statechart run manifest schemas
3
+ *
4
+ * Zod schemas for `runs/<run-id>/manifest.json`, the file `atlas run` writes for one run of a statechart spec: run
5
+ * info, the map of states and edges, one record per state, transition, path, journey and seed, the timeline and
6
+ * business events observed, and coverage. The envelope keeps each section `unknown` so a reader can validate every
7
+ * record on its own and keep the ones that parse (the visualizer's `parse/manifest.ts` does). Within a
8
+ * `schemaVersion` only optional fields are added. A run is published into the layered report with `atlas report
9
+ * publish --manifest`.
10
+ *
11
+ * @see docs/statecharts.md
12
+ * @see docs/report-contract.md
13
+ */
1
14
  import { z } from 'zod/v4';
2
15
  import { CountSchema, EventKindSchema, ImageSchema, RunStatusSchema } from './common.js';
3
16
  /** Manifest schema versions this package describes. Readers accept these and try newer ones. */
4
17
  export const MANIFEST_SCHEMA_VERSIONS = [1];
18
+ /**
19
+ * The newest manifest `schemaVersion` this package describes. The visualizer reads a manifest without a version as
20
+ * this one, and reads a newer one as far as it understands it.
21
+ */
5
22
  export const LATEST_MANIFEST_SCHEMA_VERSION = 1;
23
+ /** Whether a screenshot or clip a run promised is `ready`, still `processing` or `failed`. Absent means ready. */
6
24
  export const MEDIA_STATES = ['ready', 'processing', 'failed'];
7
25
  /**
8
26
  * Proposed: the runner marks media it has promised but not finished writing, so a viewer can
9
27
  * show "still processing" instead of a broken image. Absent means ready.
10
28
  */
11
29
  export const MediaStateSchema = z.enum(MEDIA_STATES);
30
+ /**
31
+ * Kinds of `TimelineEntry` a driver records during a transition: `tap`, `type`, `system` (a call to or from another
32
+ * system), `screen` (the screen changed), `toast`, `note`, `time` (a clock jump), `notification`. A reader shows a
33
+ * kind it does not know as a `note`.
34
+ */
12
35
  export const TIMELINE_KINDS = ['tap', 'type', 'system', 'screen', 'toast', 'note', 'time', 'notification'];
36
+ /**
37
+ * A call between the product and another system during a transition, recorded on a `system` timeline entry: source,
38
+ * endpoint, event type, payload and response. The HTTP driver records these.
39
+ */
13
40
  export const SystemCallSchema = z.object({
14
41
  source: z.string().optional(),
15
42
  endpoint: z.string().optional(),
@@ -30,6 +57,10 @@ export const NotificationSchema = z.object({
30
57
  title: z.string().optional(),
31
58
  body: z.string().optional()
32
59
  });
60
+ /**
61
+ * One moment in a transition's timeline: what happened (`kind`, `label`), when (`atMs` from the start of the clip)
62
+ * and the details that go with the kind. The timeline becomes the captions of the transition's clip.
63
+ */
33
64
  export const TimelineEntrySchema = z.object({
34
65
  atMs: z.number().nonnegative().describe('Milliseconds from the start of the clip'),
35
66
  kind: z.enum(TIMELINE_KINDS),
@@ -55,6 +86,10 @@ export const CloudEventSchema = z
55
86
  data: z.unknown().optional()
56
87
  })
57
88
  .passthrough();
89
+ /**
90
+ * The business events a state expects (from `meta.events`) against what event sources observed while the step ran:
91
+ * `expected`, `observed`, `missing`, and `noSignal` for those with no observable signal mapped.
92
+ */
58
93
  export const BusinessEventsSchema = z.object({
59
94
  expected: z.array(z.string()),
60
95
  observed: z.array(z.string()),
@@ -62,16 +97,29 @@ export const BusinessEventsSchema = z.object({
62
97
  noSignal: z.array(z.string()).describe('No observable signal is mapped yet'),
63
98
  events: z.array(CloudEventSchema).optional().describe('The CloudEvents observed during the step')
64
99
  });
100
+ /**
101
+ * The result of one item of a state's `meta.checks`: its text, whether it held, and what was expected and seen when
102
+ * it did not. A failed check fails the state.
103
+ */
65
104
  export const CheckResultSchema = z.object({
66
105
  check: z.string(),
67
106
  passed: z.boolean(),
68
107
  expected: z.string().optional(),
69
108
  actual: z.string().optional()
70
109
  });
110
+ /**
111
+ * What a state's recogniser saw: whether the state matched, and each signal with what was expected (visible or
112
+ * hidden) and whether it was visible.
113
+ */
71
114
  export const RecognizerSchema = z.object({
72
115
  matched: z.boolean(),
73
116
  signals: z.array(z.object({ signal: z.string(), expected: z.string(), visible: z.boolean() }))
74
117
  });
118
+ /**
119
+ * The `run` section of a manifest: identity, timing and provenance of the run (id, start and finish, commit, branch,
120
+ * environment, mode), the spec version and directory, how far it has got, and how the plan was split, scoped, reused
121
+ * or merged.
122
+ */
75
123
  export const RunInfoSchema = z.object({
76
124
  id: z.string().min(1),
77
125
  startedAt: z.string(),
@@ -98,6 +146,10 @@ export const RunInfoSchema = z.object({
98
146
  reused: z.object({ from: z.string(), paths: z.number().int().nonnegative() }).optional().describe('Passed paths kept from an earlier run instead of running again'),
99
147
  mergedFrom: z.array(z.string()).optional().describe('The runs this run was composed from')
100
148
  });
149
+ /**
150
+ * A chart that took part in the run: its id, spec file and description, the state of its parent that invokes it, and,
151
+ * for each of its final states, the hand-off event its parent receives.
152
+ */
101
153
  export const ManifestChartSchema = z.object({
102
154
  id: z.string().min(1),
103
155
  file: z.string(),
@@ -105,6 +157,10 @@ export const ManifestChartSchema = z.object({
105
157
  parentState: z.string().nullable().optional(),
106
158
  handOffs: z.record(z.string(), z.string()).optional()
107
159
  });
160
+ /**
161
+ * A state in the map of the composed product: id, parent state, chart, type, initial child, and whether it is inside
162
+ * the scope of the run.
163
+ */
108
164
  export const MapNodeSchema = z.object({
109
165
  id: z.string().min(1),
110
166
  parent: z.string().nullable(),
@@ -113,6 +169,10 @@ export const MapNodeSchema = z.object({
113
169
  initial: z.string().nullable().optional(),
114
170
  inScope: z.boolean().optional()
115
171
  });
172
+ /**
173
+ * A transition in the map: its id (see `transitionId`), source and target state names (the target is empty when the
174
+ * event leads nowhere), the event, who sends it, and whether it is inside the scope of the run.
175
+ */
116
176
  export const MapEdgeSchema = z.object({
117
177
  id: z.string().min(1),
118
178
  source: z.string(),
@@ -121,6 +181,11 @@ export const MapEdgeSchema = z.object({
121
181
  kind: EventKindSchema,
122
182
  inScope: z.boolean().optional()
123
183
  });
184
+ /**
185
+ * The result for one state: what the spec says about it (description, snapshot, confidence, sources, expected
186
+ * events), whether the run reached it, its screenshots, what the recogniser saw, the business events and
187
+ * `meta.checks` results, and the paths that reached it.
188
+ */
124
189
  export const StateRecordSchema = z.object({
125
190
  name: z.string(),
126
191
  chart: z.string().nullable().optional(),
@@ -143,6 +208,10 @@ export const StateRecordSchema = z.object({
143
208
  reachedBy: z.array(z.string()).optional(),
144
209
  notes: z.array(z.string()).optional()
145
210
  });
211
+ /**
212
+ * A video of one transition: `video` and `poster` as paths relative to the run directory, its duration, and which
213
+ * client's screen it shows.
214
+ */
146
215
  export const ClipSchema = z.object({
147
216
  video: z.string().min(1),
148
217
  poster: z.string().optional(),
@@ -151,6 +220,11 @@ export const ClipSchema = z.object({
151
220
  client: z.string().optional().describe('The client whose screen was recorded'),
152
221
  state: MediaStateSchema.optional()
153
222
  });
223
+ /**
224
+ * The result for one transition (an event leaving a state): source, target, event, who sends it, how the
225
+ * implementation makes it happen, its status, clip and timeline, why it was not reached, and the paths that took it.
226
+ * Keyed in a manifest by its id (see `transitionId`).
227
+ */
154
228
  export const TransitionRecordSchema = z.object({
155
229
  id: z.string().optional(),
156
230
  source: z.string(),
@@ -165,12 +239,18 @@ export const TransitionRecordSchema = z.object({
165
239
  reason: z.string().nullable().optional(),
166
240
  reachedBy: z.array(z.string()).optional()
167
241
  });
242
+ /** One step of a path: the event, the transition it takes and its outcome, with the reason when it was not reached. */
168
243
  export const PathStepSchema = z.object({
169
244
  transition: z.string().optional(),
170
245
  event: z.string(),
171
246
  status: RunStatusSchema.optional(),
172
247
  reason: z.string().nullable().optional()
173
248
  });
249
+ /**
250
+ * The result for one planned path: a curated `journey` or a `generated` path covering transitions. It holds the
251
+ * status, every attempt (a failed first attempt is retried once unless retries are off), the steps and where it
252
+ * stopped, and the identity (`key`), start states and seed that let results from different runs compose.
253
+ */
174
254
  export const PathRecordSchema = z.object({
175
255
  id: z.string().min(1),
176
256
  name: z.string(),
@@ -222,6 +302,10 @@ export const ReportsSchema = z.object({
222
302
  ctrf: z.string().optional(),
223
303
  mermaid: z.string().optional()
224
304
  });
305
+ /**
306
+ * Result of the privacy scan of a run: whether it passed and what it found. Media of a run whose scan did not pass
307
+ * are not uploaded with `--upload-run`.
308
+ */
225
309
  export const PrivacySchema = z.object({
226
310
  passed: z.boolean(),
227
311
  findings: z.array(z.string())
@@ -1,4 +1,19 @@
1
+ /**
2
+ * @module Report sources and change notices
3
+ *
4
+ * The files and events the viewer uses to find runs. `ReportSourcesSchema` validates the sources file named by
5
+ * `ATLAS_SOURCES_FILE`, which lists extra places to read runs from (a directory, or another host over HTTP).
6
+ * `AtlasChangeSchema` is the payload of the `atlas:change` event that tells a live viewer that specs or runs changed.
7
+ * Both are read by the visualizer; the server sends the change notice.
8
+ *
9
+ * @see docs/report-backends.md
10
+ */
1
11
  import { z } from 'zod/v4';
12
+ /**
13
+ * A source reached over HTTP: `type` `http` or `api`, a base URL without credentials, an optional events URL for live
14
+ * updates, a polling interval in milliseconds (1 000 to 3 600 000) and a `live` flag. The id `workspace` is reserved
15
+ * for the local runs directory.
16
+ */
2
17
  export declare const RemoteReportSourceSchema: z.ZodObject<{
3
18
  type: z.ZodEnum<{
4
19
  http: "http";
@@ -11,12 +26,17 @@ export declare const RemoteReportSourceSchema: z.ZodObject<{
11
26
  id: z.ZodString;
12
27
  label: z.ZodString;
13
28
  }, z.core.$strip>;
29
+ /**
30
+ * A source that is a directory of runs on the machine running the viewer. A relative `runs` path is resolved against
31
+ * the sources file.
32
+ */
14
33
  export declare const DirectoryReportSourceSchema: z.ZodObject<{
15
34
  type: z.ZodLiteral<"directory">;
16
35
  runs: z.ZodString;
17
36
  id: z.ZodString;
18
37
  label: z.ZodString;
19
38
  }, z.core.$strip>;
39
+ /** One source: a directory or a remote host. */
20
40
  export declare const ReportSourceSchema: z.ZodUnion<readonly [z.ZodObject<{
21
41
  type: z.ZodLiteral<"directory">;
22
42
  runs: z.ZodString;
@@ -34,8 +54,11 @@ export declare const ReportSourceSchema: z.ZodUnion<readonly [z.ZodObject<{
34
54
  id: z.ZodString;
35
55
  label: z.ZodString;
36
56
  }, z.core.$strip>]>;
57
+ /** A parsed `ReportSourceSchema` value. */
37
58
  export type ReportSource = z.infer<typeof ReportSourceSchema>;
59
+ /** A parsed `RemoteReportSourceSchema` value. */
38
60
  export type RemoteReportSource = z.infer<typeof RemoteReportSourceSchema>;
61
+ /** The sources file, `{ "schemaVersion": 1, "sources": [...] }`. Source ids must be unique. */
39
62
  export declare const ReportSourcesSchema: z.ZodObject<{
40
63
  schemaVersion: z.ZodLiteral<1>;
41
64
  sources: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
@@ -56,6 +79,10 @@ export declare const ReportSourcesSchema: z.ZodObject<{
56
79
  label: z.ZodString;
57
80
  }, z.core.$strip>]>>;
58
81
  }, z.core.$strip>;
82
+ /**
83
+ * The payload of the `atlas:change` event: which `scope` changed (`specs` or `runs`), the files and run ids concerned
84
+ * (empty lists when not known), and the source that changed. Unknown payloads are ignored by the viewer.
85
+ */
59
86
  export declare const AtlasChangeSchema: z.ZodObject<{
60
87
  scope: z.ZodEnum<{
61
88
  specs: "specs";
@@ -65,4 +92,5 @@ export declare const AtlasChangeSchema: z.ZodObject<{
65
92
  runIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
66
93
  sourceId: z.ZodOptional<z.ZodString>;
67
94
  }, z.core.$strip>;
95
+ /** A parsed `AtlasChangeSchema` value. */
68
96
  export type AtlasChange = z.infer<typeof AtlasChangeSchema>;
@@ -1,3 +1,13 @@
1
+ /**
2
+ * @module Report sources and change notices
3
+ *
4
+ * The files and events the viewer uses to find runs. `ReportSourcesSchema` validates the sources file named by
5
+ * `ATLAS_SOURCES_FILE`, which lists extra places to read runs from (a directory, or another host over HTTP).
6
+ * `AtlasChangeSchema` is the payload of the `atlas:change` event that tells a live viewer that specs or runs changed.
7
+ * Both are read by the visualizer; the server sends the change notice.
8
+ *
9
+ * @see docs/report-backends.md
10
+ */
1
11
  import { z } from 'zod/v4';
2
12
  const SourceIdentity = {
3
13
  id: z
@@ -18,6 +28,11 @@ const HttpLocation = z
18
28
  return false;
19
29
  }
20
30
  }, 'Use an HTTP URL without credentials.');
31
+ /**
32
+ * A source reached over HTTP: `type` `http` or `api`, a base URL without credentials, an optional events URL for live
33
+ * updates, a polling interval in milliseconds (1 000 to 3 600 000) and a `live` flag. The id `workspace` is reserved
34
+ * for the local runs directory.
35
+ */
21
36
  export const RemoteReportSourceSchema = z.object({
22
37
  ...SourceIdentity,
23
38
  type: z.enum(['http', 'api']),
@@ -26,12 +41,18 @@ export const RemoteReportSourceSchema = z.object({
26
41
  pollMs: z.number().int().min(1000).max(3_600_000).optional(),
27
42
  live: z.boolean().optional()
28
43
  });
44
+ /**
45
+ * A source that is a directory of runs on the machine running the viewer. A relative `runs` path is resolved against
46
+ * the sources file.
47
+ */
29
48
  export const DirectoryReportSourceSchema = z.object({
30
49
  ...SourceIdentity,
31
50
  type: z.literal('directory'),
32
51
  runs: z.string().min(1)
33
52
  });
53
+ /** One source: a directory or a remote host. */
34
54
  export const ReportSourceSchema = z.union([DirectoryReportSourceSchema, RemoteReportSourceSchema]);
55
+ /** The sources file, `{ "schemaVersion": 1, "sources": [...] }`. Source ids must be unique. */
35
56
  export const ReportSourcesSchema = z
36
57
  .object({
37
58
  schemaVersion: z.literal(1),
@@ -45,6 +66,10 @@ export const ReportSourcesSchema = z
45
66
  ids.add(source.id);
46
67
  });
47
68
  });
69
+ /**
70
+ * The payload of the `atlas:change` event: which `scope` changed (`specs` or `runs`), the files and run ids concerned
71
+ * (empty lists when not known), and the source that changed. Unknown payloads are ignored by the viewer.
72
+ */
48
73
  export const AtlasChangeSchema = z.object({
49
74
  scope: z.enum(['specs', 'runs']),
50
75
  files: z.array(z.string()).default([]),
@@ -1,5 +1,20 @@
1
+ /**
2
+ * @module Runs index
3
+ *
4
+ * `runs/index.json`, the list of statechart runs a host serves, newest first, and the summary the viewer keeps for
5
+ * each. The index lists runs as `unknown` so a reader can validate each summary on its own and drop the ones that do
6
+ * not parse.
7
+ *
8
+ * @see docs/statecharts.md
9
+ */
1
10
  import { z } from 'zod/v4';
11
+ /** Whether a run is still being written (`running`) or finished (`complete`). */
2
12
  export declare const RUN_PROGRESS: readonly ["running", "complete"];
13
+ /**
14
+ * One run in the index: its id, start, mode, commit, branch, duration and spec version, whether it is `running` or
15
+ * complete, the planned and completed path counts of a running run, whether its manifest exists yet, and the state,
16
+ * transition and journey tallies.
17
+ */
3
18
  export declare const RunSummarySchema: z.ZodObject<{
4
19
  id: z.ZodString;
5
20
  startedAt: z.ZodString;
@@ -43,6 +58,7 @@ export declare const RunSummarySchema: z.ZodObject<{
43
58
  notReached: z.ZodNumber;
44
59
  }, z.core.$strip>>;
45
60
  }, z.core.$strip>;
61
+ /** A parsed `RunSummarySchema` value. */
46
62
  export type RunSummary = z.infer<typeof RunSummarySchema>;
47
63
  /** `runs/index.json`: the runs a host serves, newest first. */
48
64
  export declare const RunsIndexSchema: z.ZodObject<{
@@ -1,7 +1,22 @@
1
+ /**
2
+ * @module Runs index
3
+ *
4
+ * `runs/index.json`, the list of statechart runs a host serves, newest first, and the summary the viewer keeps for
5
+ * each. The index lists runs as `unknown` so a reader can validate each summary on its own and drop the ones that do
6
+ * not parse.
7
+ *
8
+ * @see docs/statecharts.md
9
+ */
1
10
  import { z } from 'zod/v4';
2
11
  import { CountSchema } from './common.js';
3
12
  import { RunInfoSchema } from './manifest.js';
13
+ /** Whether a run is still being written (`running`) or finished (`complete`). */
4
14
  export const RUN_PROGRESS = ['running', 'complete'];
15
+ /**
16
+ * One run in the index: its id, start, mode, commit, branch, duration and spec version, whether it is `running` or
17
+ * complete, the planned and completed path counts of a running run, whether its manifest exists yet, and the state,
18
+ * transition and journey tallies.
19
+ */
5
20
  export const RunSummarySchema = z.object({
6
21
  id: z.string().min(1),
7
22
  startedAt: z.string(),