@crvouga/atlas 0.11.0 → 0.13.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.
- package/CHANGELOG.md +12 -0
- package/dist/reports/src/catalog-health.d.ts +142 -0
- package/dist/reports/src/catalog-health.js +257 -0
- package/dist/reports/src/test-catalog.d.ts +8 -0
- package/dist/reports/src/test-catalog.js +5 -1
- package/dist/schema/src/api.d.ts +79 -0
- package/dist/schema/src/api.js +50 -0
- package/dist/server/src/app.js +9 -0
- package/dist/server/src/llms.js +1 -0
- package/dist/server/src/openapi.js +18 -2
- package/docs/reference/http-api.md +34 -0
- package/docs/reference/reports.md +224 -0
- package/docs/reference/schema.md +10 -0
- package/docs/server.md +10 -0
- package/docs/ui.md +1 -1
- package/llms-full.txt +45 -1
- package/package.json +1 -1
- package/packages/schema/schemas/catalog-health.schema.json +400 -0
- package/packages/server/openapi.json +596 -0
- package/packages/visualizer/src/evidence/check-detail.tsx +10 -4
- package/packages/visualizer/src/evidence/recording-page.tsx +5 -2
- package/packages/visualizer/src/explorer/Explorer.tsx +6 -6
- package/packages/visualizer/src/explorer/RunsView.tsx +2 -2
- package/packages/visualizer/src/explorer/TestDetail.tsx +142 -14
- package/packages/visualizer/src/explorer/pinned.ts +91 -0
- package/packages/visualizer/src/explorer/search.ts +5 -2
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "https://github.com/crvouga/atlas/schemas/catalog-health.schema.json",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"schemaVersion": {
|
|
7
|
+
"type": "number",
|
|
8
|
+
"const": 1
|
|
9
|
+
},
|
|
10
|
+
"version": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Changes whenever the report or its history does"
|
|
13
|
+
},
|
|
14
|
+
"generatedAtMs": {
|
|
15
|
+
"type": "number"
|
|
16
|
+
},
|
|
17
|
+
"ok": {
|
|
18
|
+
"type": "boolean",
|
|
19
|
+
"description": "True when there is no warning-severity finding"
|
|
20
|
+
},
|
|
21
|
+
"counts": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"properties": {
|
|
24
|
+
"specs": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"properties": {
|
|
27
|
+
"files": {
|
|
28
|
+
"type": "integer",
|
|
29
|
+
"minimum": 0,
|
|
30
|
+
"maximum": 9007199254740991,
|
|
31
|
+
"description": "Spec files the report is laid over, before any root mapping"
|
|
32
|
+
},
|
|
33
|
+
"defined": {
|
|
34
|
+
"type": "integer",
|
|
35
|
+
"minimum": 0,
|
|
36
|
+
"maximum": 9007199254740991,
|
|
37
|
+
"description": "Logical specs: files joined by a declared root mapping count once"
|
|
38
|
+
},
|
|
39
|
+
"withTests": {
|
|
40
|
+
"type": "integer",
|
|
41
|
+
"minimum": 0,
|
|
42
|
+
"maximum": 9007199254740991,
|
|
43
|
+
"description": "Logical specs, defined or not, that have at least one test"
|
|
44
|
+
},
|
|
45
|
+
"executed": {
|
|
46
|
+
"type": "integer",
|
|
47
|
+
"minimum": 0,
|
|
48
|
+
"maximum": 9007199254740991,
|
|
49
|
+
"description": "Defined logical specs with a test that passed or failed"
|
|
50
|
+
},
|
|
51
|
+
"withoutExecution": {
|
|
52
|
+
"type": "integer",
|
|
53
|
+
"minimum": 0,
|
|
54
|
+
"maximum": 9007199254740991,
|
|
55
|
+
"description": "Defined logical specs with no passed or failed test: the defined coverage gaps"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"required": [
|
|
59
|
+
"files",
|
|
60
|
+
"defined",
|
|
61
|
+
"withTests",
|
|
62
|
+
"executed",
|
|
63
|
+
"withoutExecution"
|
|
64
|
+
],
|
|
65
|
+
"additionalProperties": {}
|
|
66
|
+
},
|
|
67
|
+
"tests": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"properties": {
|
|
70
|
+
"total": {
|
|
71
|
+
"type": "integer",
|
|
72
|
+
"minimum": 0,
|
|
73
|
+
"maximum": 9007199254740991
|
|
74
|
+
},
|
|
75
|
+
"withSpec": {
|
|
76
|
+
"type": "integer",
|
|
77
|
+
"minimum": 0,
|
|
78
|
+
"maximum": 9007199254740991
|
|
79
|
+
},
|
|
80
|
+
"withoutSpec": {
|
|
81
|
+
"type": "integer",
|
|
82
|
+
"minimum": 0,
|
|
83
|
+
"maximum": 9007199254740991
|
|
84
|
+
},
|
|
85
|
+
"passed": {
|
|
86
|
+
"type": "integer",
|
|
87
|
+
"minimum": 0,
|
|
88
|
+
"maximum": 9007199254740991,
|
|
89
|
+
"description": "Tests whose current status is passed"
|
|
90
|
+
},
|
|
91
|
+
"historicalOnly": {
|
|
92
|
+
"type": "integer",
|
|
93
|
+
"minimum": 0,
|
|
94
|
+
"maximum": 9007199254740991,
|
|
95
|
+
"description": "Tests only the history holds a result for"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"required": [
|
|
99
|
+
"total",
|
|
100
|
+
"withSpec",
|
|
101
|
+
"withoutSpec",
|
|
102
|
+
"passed",
|
|
103
|
+
"historicalOnly"
|
|
104
|
+
],
|
|
105
|
+
"additionalProperties": {}
|
|
106
|
+
},
|
|
107
|
+
"scenarios": {
|
|
108
|
+
"type": "object",
|
|
109
|
+
"properties": {
|
|
110
|
+
"outlines": {
|
|
111
|
+
"type": "integer",
|
|
112
|
+
"minimum": 0,
|
|
113
|
+
"maximum": 9007199254740991,
|
|
114
|
+
"description": "Tests sharing the label `outline` count once; a test without it is its own outline"
|
|
115
|
+
},
|
|
116
|
+
"examples": {
|
|
117
|
+
"type": "integer",
|
|
118
|
+
"minimum": 0,
|
|
119
|
+
"maximum": 9007199254740991,
|
|
120
|
+
"description": "Tests (check identities), however many environments ran them"
|
|
121
|
+
},
|
|
122
|
+
"observations": {
|
|
123
|
+
"type": "integer",
|
|
124
|
+
"minimum": 0,
|
|
125
|
+
"maximum": 9007199254740991,
|
|
126
|
+
"description": "Current results per producer, environment and parameter set"
|
|
127
|
+
},
|
|
128
|
+
"executedObservations": {
|
|
129
|
+
"type": "integer",
|
|
130
|
+
"minimum": 0,
|
|
131
|
+
"maximum": 9007199254740991
|
|
132
|
+
},
|
|
133
|
+
"passedObservations": {
|
|
134
|
+
"type": "integer",
|
|
135
|
+
"minimum": 0,
|
|
136
|
+
"maximum": 9007199254740991
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"required": [
|
|
140
|
+
"outlines",
|
|
141
|
+
"examples",
|
|
142
|
+
"observations",
|
|
143
|
+
"executedObservations",
|
|
144
|
+
"passedObservations"
|
|
145
|
+
],
|
|
146
|
+
"additionalProperties": {}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"required": [
|
|
150
|
+
"specs",
|
|
151
|
+
"tests",
|
|
152
|
+
"scenarios"
|
|
153
|
+
],
|
|
154
|
+
"additionalProperties": {}
|
|
155
|
+
},
|
|
156
|
+
"reconciliation": {
|
|
157
|
+
"type": "object",
|
|
158
|
+
"properties": {
|
|
159
|
+
"specs": {
|
|
160
|
+
"type": "integer",
|
|
161
|
+
"minimum": 0,
|
|
162
|
+
"maximum": 9007199254740991,
|
|
163
|
+
"description": "What the Specs view counts: spec files"
|
|
164
|
+
},
|
|
165
|
+
"testSpecs": {
|
|
166
|
+
"type": "integer",
|
|
167
|
+
"minimum": 0,
|
|
168
|
+
"maximum": 9007199254740991,
|
|
169
|
+
"description": "What the Tests view groups by: logical specs with at least one test"
|
|
170
|
+
},
|
|
171
|
+
"steps": {
|
|
172
|
+
"type": "array",
|
|
173
|
+
"items": {
|
|
174
|
+
"type": "object",
|
|
175
|
+
"properties": {
|
|
176
|
+
"code": {
|
|
177
|
+
"type": "string"
|
|
178
|
+
},
|
|
179
|
+
"label": {
|
|
180
|
+
"type": "string"
|
|
181
|
+
},
|
|
182
|
+
"delta": {
|
|
183
|
+
"type": "integer",
|
|
184
|
+
"minimum": -9007199254740991,
|
|
185
|
+
"maximum": 9007199254740991
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"required": [
|
|
189
|
+
"code",
|
|
190
|
+
"label",
|
|
191
|
+
"delta"
|
|
192
|
+
],
|
|
193
|
+
"additionalProperties": {}
|
|
194
|
+
},
|
|
195
|
+
"description": "From `specs` to `testSpecs`: each step adds its `delta`"
|
|
196
|
+
},
|
|
197
|
+
"testsWithoutSpec": {
|
|
198
|
+
"type": "integer",
|
|
199
|
+
"minimum": 0,
|
|
200
|
+
"maximum": 9007199254740991
|
|
201
|
+
},
|
|
202
|
+
"explanation": {
|
|
203
|
+
"type": "array",
|
|
204
|
+
"items": {
|
|
205
|
+
"type": "string"
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"required": [
|
|
210
|
+
"specs",
|
|
211
|
+
"testSpecs",
|
|
212
|
+
"steps",
|
|
213
|
+
"testsWithoutSpec",
|
|
214
|
+
"explanation"
|
|
215
|
+
],
|
|
216
|
+
"additionalProperties": {}
|
|
217
|
+
},
|
|
218
|
+
"identity": {
|
|
219
|
+
"type": "object",
|
|
220
|
+
"properties": {
|
|
221
|
+
"checks": {
|
|
222
|
+
"type": "integer",
|
|
223
|
+
"minimum": 0,
|
|
224
|
+
"maximum": 9007199254740991
|
|
225
|
+
},
|
|
226
|
+
"fallbackIdentity": {
|
|
227
|
+
"type": "integer",
|
|
228
|
+
"minimum": 0,
|
|
229
|
+
"maximum": 9007199254740991,
|
|
230
|
+
"description": "Checks whose id equals their title"
|
|
231
|
+
},
|
|
232
|
+
"basis": {
|
|
233
|
+
"type": "string"
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
"required": [
|
|
237
|
+
"checks",
|
|
238
|
+
"fallbackIdentity",
|
|
239
|
+
"basis"
|
|
240
|
+
],
|
|
241
|
+
"additionalProperties": {}
|
|
242
|
+
},
|
|
243
|
+
"domains": {
|
|
244
|
+
"type": "array",
|
|
245
|
+
"items": {
|
|
246
|
+
"type": "object",
|
|
247
|
+
"properties": {
|
|
248
|
+
"name": {
|
|
249
|
+
"type": "string"
|
|
250
|
+
},
|
|
251
|
+
"specs": {
|
|
252
|
+
"type": "integer",
|
|
253
|
+
"minimum": 0,
|
|
254
|
+
"maximum": 9007199254740991
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
"required": [
|
|
258
|
+
"name",
|
|
259
|
+
"specs"
|
|
260
|
+
],
|
|
261
|
+
"additionalProperties": {}
|
|
262
|
+
},
|
|
263
|
+
"description": "Specs per domain, most first"
|
|
264
|
+
},
|
|
265
|
+
"roots": {
|
|
266
|
+
"type": "array",
|
|
267
|
+
"items": {
|
|
268
|
+
"type": "object",
|
|
269
|
+
"properties": {
|
|
270
|
+
"from": {
|
|
271
|
+
"type": "string"
|
|
272
|
+
},
|
|
273
|
+
"to": {
|
|
274
|
+
"type": "string"
|
|
275
|
+
},
|
|
276
|
+
"matched": {
|
|
277
|
+
"type": "integer",
|
|
278
|
+
"minimum": 0,
|
|
279
|
+
"maximum": 9007199254740991,
|
|
280
|
+
"description": "Distinct paths the mapping changed"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"required": [
|
|
284
|
+
"from",
|
|
285
|
+
"to",
|
|
286
|
+
"matched"
|
|
287
|
+
],
|
|
288
|
+
"additionalProperties": {}
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
"aliases": {
|
|
292
|
+
"type": "array",
|
|
293
|
+
"items": {
|
|
294
|
+
"type": "object",
|
|
295
|
+
"properties": {
|
|
296
|
+
"path": {
|
|
297
|
+
"type": "string"
|
|
298
|
+
},
|
|
299
|
+
"sources": {
|
|
300
|
+
"type": "array",
|
|
301
|
+
"items": {
|
|
302
|
+
"type": "string"
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
"required": [
|
|
307
|
+
"path",
|
|
308
|
+
"sources"
|
|
309
|
+
],
|
|
310
|
+
"additionalProperties": {}
|
|
311
|
+
},
|
|
312
|
+
"description": "Logical specs seen under more than one original path, joined by a root mapping"
|
|
313
|
+
},
|
|
314
|
+
"findings": {
|
|
315
|
+
"type": "array",
|
|
316
|
+
"items": {
|
|
317
|
+
"type": "object",
|
|
318
|
+
"properties": {
|
|
319
|
+
"code": {
|
|
320
|
+
"type": "string",
|
|
321
|
+
"description": "An open set: treat a code you do not know as informational"
|
|
322
|
+
},
|
|
323
|
+
"severity": {
|
|
324
|
+
"type": "string",
|
|
325
|
+
"enum": [
|
|
326
|
+
"warning",
|
|
327
|
+
"info"
|
|
328
|
+
]
|
|
329
|
+
},
|
|
330
|
+
"message": {
|
|
331
|
+
"type": "string"
|
|
332
|
+
},
|
|
333
|
+
"count": {
|
|
334
|
+
"type": "integer",
|
|
335
|
+
"minimum": 0,
|
|
336
|
+
"maximum": 9007199254740991
|
|
337
|
+
},
|
|
338
|
+
"items": {
|
|
339
|
+
"type": "array",
|
|
340
|
+
"items": {
|
|
341
|
+
"type": "object",
|
|
342
|
+
"properties": {
|
|
343
|
+
"path": {
|
|
344
|
+
"type": "string"
|
|
345
|
+
},
|
|
346
|
+
"candidates": {
|
|
347
|
+
"description": "Other paths it could be the same promise as. Atlas has not merged them",
|
|
348
|
+
"type": "array",
|
|
349
|
+
"items": {
|
|
350
|
+
"type": "object",
|
|
351
|
+
"properties": {
|
|
352
|
+
"path": {
|
|
353
|
+
"type": "string"
|
|
354
|
+
},
|
|
355
|
+
"reason": {
|
|
356
|
+
"type": "string"
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
"required": [
|
|
360
|
+
"path",
|
|
361
|
+
"reason"
|
|
362
|
+
],
|
|
363
|
+
"additionalProperties": {}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
"required": [
|
|
368
|
+
"path"
|
|
369
|
+
],
|
|
370
|
+
"additionalProperties": {}
|
|
371
|
+
},
|
|
372
|
+
"description": "At most 25; `count` is the whole"
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
"required": [
|
|
376
|
+
"code",
|
|
377
|
+
"severity",
|
|
378
|
+
"message",
|
|
379
|
+
"count",
|
|
380
|
+
"items"
|
|
381
|
+
],
|
|
382
|
+
"additionalProperties": {}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"required": [
|
|
387
|
+
"schemaVersion",
|
|
388
|
+
"version",
|
|
389
|
+
"generatedAtMs",
|
|
390
|
+
"ok",
|
|
391
|
+
"counts",
|
|
392
|
+
"reconciliation",
|
|
393
|
+
"identity",
|
|
394
|
+
"domains",
|
|
395
|
+
"roots",
|
|
396
|
+
"aliases",
|
|
397
|
+
"findings"
|
|
398
|
+
],
|
|
399
|
+
"additionalProperties": {}
|
|
400
|
+
}
|