@crvouga/atlas 0.9.0 → 0.10.1

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 (91) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/playwright-reporter/src/evidence.d.ts +122 -0
  3. package/dist/playwright-reporter/src/evidence.js +327 -0
  4. package/dist/playwright-reporter/src/index.d.ts +114 -0
  5. package/dist/playwright-reporter/src/index.js +312 -0
  6. package/dist/reports/src/compose.js +7 -14
  7. package/dist/reports/src/recorded-specs.d.ts +33 -0
  8. package/dist/reports/src/recorded-specs.js +42 -0
  9. package/dist/reports/src/report-index.d.ts +6 -0
  10. package/dist/reports/src/report-index.js +14 -2
  11. package/dist/reports/src/test-catalog.d.ts +386 -0
  12. package/dist/reports/src/test-catalog.js +655 -0
  13. package/dist/schema/src/api.d.ts +585 -0
  14. package/dist/schema/src/api.js +105 -0
  15. package/dist/schema/src/common.d.ts +2 -2
  16. package/dist/schema/src/manifest.d.ts +4 -4
  17. package/dist/schema/src/spec.d.ts +6 -6
  18. package/dist/server/src/app.js +82 -4
  19. package/dist/server/src/llms.js +14 -0
  20. package/dist/server/src/openapi.d.ts +1 -1
  21. package/dist/server/src/openapi.js +60 -3
  22. package/docs/agents.md +1 -0
  23. package/docs/integrating.md +1 -0
  24. package/docs/reference/http-api.md +134 -2
  25. package/docs/reference/playwright-reporter.md +332 -0
  26. package/docs/reference/reports.md +632 -0
  27. package/docs/reference/schema.md +57 -0
  28. package/docs/rich-evidence.md +198 -0
  29. package/docs/server.md +41 -0
  30. package/llms-full.txt +378 -2
  31. package/llms.txt +2 -0
  32. package/package.json +8 -3
  33. package/packages/schema/schemas/check-detail.schema.json +15 -15
  34. package/packages/schema/schemas/checks-result.schema.json +2 -2
  35. package/packages/schema/schemas/command-error.schema.json +4 -4
  36. package/packages/schema/schemas/doctor-result.schema.json +4 -4
  37. package/packages/schema/schemas/effective-delta.schema.json +69 -95
  38. package/packages/schema/schemas/effective-evidence.schema.json +63 -89
  39. package/packages/schema/schemas/evidence-page.schema.json +41 -59
  40. package/packages/schema/schemas/init-plan.schema.json +58 -90
  41. package/packages/schema/schemas/layer-rows.schema.json +17 -29
  42. package/packages/schema/schemas/layer.schema.json +54 -70
  43. package/packages/schema/schemas/live-run-start.schema.json +1 -1
  44. package/packages/schema/schemas/live-run.schema.json +1 -1
  45. package/packages/schema/schemas/merge-result.schema.json +6 -6
  46. package/packages/schema/schemas/outline.schema.json +7 -11
  47. package/packages/schema/schemas/path-record.schema.json +12 -28
  48. package/packages/schema/schemas/problem.schema.json +9 -9
  49. package/packages/schema/schemas/publish-checks.schema.json +27 -43
  50. package/packages/schema/schemas/publish-result.schema.json +16 -24
  51. package/packages/schema/schemas/ready.schema.json +12 -12
  52. package/packages/schema/schemas/report-event.schema.json +22 -28
  53. package/packages/schema/schemas/report-run.schema.json +225 -0
  54. package/packages/schema/schemas/report-runs.schema.json +163 -0
  55. package/packages/schema/schemas/report-status.schema.json +30 -54
  56. package/packages/schema/schemas/run-info.schema.json +9 -21
  57. package/packages/schema/schemas/run-summary.schema.json +6 -14
  58. package/packages/schema/schemas/server-config.schema.json +21 -21
  59. package/packages/schema/schemas/server-editable-settings.schema.json +14 -14
  60. package/packages/schema/schemas/server-info.schema.json +15 -19
  61. package/packages/schema/schemas/server-settings-snapshot.schema.json +28 -28
  62. package/packages/schema/schemas/spec-set.schema.json +16 -24
  63. package/packages/schema/schemas/state-node.schema.json +16 -16
  64. package/packages/schema/schemas/state-record.schema.json +5 -9
  65. package/packages/schema/schemas/store-listing.schema.json +3 -7
  66. package/packages/schema/schemas/store-write-result.schema.json +2 -2
  67. package/packages/schema/schemas/stream-result.schema.json +13 -17
  68. package/packages/schema/schemas/test-catalog.schema.json +1135 -0
  69. package/packages/schema/schemas/test-history.schema.json +632 -0
  70. package/packages/schema/schemas/timeline-entry.schema.json +2 -2
  71. package/packages/schema/schemas/transition-record.schema.json +9 -21
  72. package/packages/server/openapi.json +4417 -1382
  73. package/packages/visualizer/src/app/AppShell.tsx +7 -3
  74. package/packages/visualizer/src/app/router.tsx +26 -3
  75. package/packages/visualizer/src/components/Header.tsx +2 -2
  76. package/packages/visualizer/src/evidence/evidence-context.tsx +10 -1
  77. package/packages/visualizer/src/explorer/Explorer.tsx +433 -0
  78. package/packages/visualizer/src/explorer/ExplorerIndex.tsx +120 -0
  79. package/packages/visualizer/src/explorer/RunsView.tsx +164 -0
  80. package/packages/visualizer/src/explorer/TestDetail.tsx +214 -0
  81. package/packages/visualizer/src/explorer/catalog.tsx +274 -0
  82. package/packages/visualizer/src/explorer/explorer.module.css +1238 -0
  83. package/packages/visualizer/src/explorer/groups.test.ts +87 -0
  84. package/packages/visualizer/src/explorer/groups.ts +126 -0
  85. package/packages/visualizer/src/explorer/navigate.ts +36 -0
  86. package/packages/visualizer/src/explorer/parts.tsx +59 -0
  87. package/packages/visualizer/src/explorer/search.ts +97 -0
  88. package/packages/visualizer/src/find/Finder.tsx +2 -0
  89. package/packages/visualizer/src/find/corpus.ts +13 -6
  90. package/packages/visualizer/src/find/rank.ts +2 -0
  91. package/packages/visualizer/src/evidence/project-home.tsx +0 -45
@@ -8,27 +8,23 @@
8
8
  "const": true
9
9
  },
10
10
  "store": {
11
- "description": "Where it was written: a folder, `s3://…` or a server URL",
12
- "type": "string"
11
+ "type": "string",
12
+ "description": "Where it was written: a folder, `s3://…` or a server URL"
13
13
  },
14
14
  "layer": {
15
15
  "type": "object",
16
16
  "properties": {
17
17
  "id": {
18
- "description": "The layer id: 64 hex digits, the SHA-256 of its content. Publishing the same input again gives the same id",
19
- "type": "string"
18
+ "type": "string",
19
+ "description": "The layer id: 64 hex digits, the SHA-256 of its content. Publishing the same input again gives the same id"
20
20
  },
21
21
  "producer": {
22
22
  "type": "string"
23
23
  },
24
24
  "environment": {
25
- "anyOf": [
26
- {
27
- "type": "string"
28
- },
29
- {
30
- "type": "null"
31
- }
25
+ "type": [
26
+ "string",
27
+ "null"
32
28
  ]
33
29
  },
34
30
  "checks": {
@@ -47,16 +43,16 @@
47
43
  "maximum": 9007199254740991
48
44
  },
49
45
  "notRun": {
50
- "description": "Skipped, pending or otherwise not run",
51
46
  "type": "integer",
52
47
  "minimum": 0,
53
- "maximum": 9007199254740991
48
+ "maximum": 9007199254740991,
49
+ "description": "Skipped, pending or otherwise not run"
54
50
  },
55
51
  "linkedToSpec": {
56
- "description": "Checks that were matched to a spec file. The rest still count, but belong to no spec",
57
52
  "type": "integer",
58
53
  "minimum": 0,
59
- "maximum": 9007199254740991
54
+ "maximum": 9007199254740991,
55
+ "description": "Checks that were matched to a spec file. The rest still count, but belong to no spec"
60
56
  },
61
57
  "freshness": {
62
58
  "description": "Set when the checkout had uncommitted changes (`modified`) or no git origin (`unknown`)",
@@ -104,13 +100,9 @@
104
100
  "maximum": 9007199254740991
105
101
  },
106
102
  "branch": {
107
- "anyOf": [
108
- {
109
- "type": "string"
110
- },
111
- {
112
- "type": "null"
113
- }
103
+ "type": [
104
+ "string",
105
+ "null"
114
106
  ]
115
107
  }
116
108
  },
@@ -151,11 +143,11 @@
151
143
  "additionalProperties": {}
152
144
  },
153
145
  "warnings": {
154
- "description": "What was skipped and why, such as an attachment file that could not be read. Never fatal",
155
146
  "type": "array",
156
147
  "items": {
157
148
  "type": "string"
158
- }
149
+ },
150
+ "description": "What was skipped and why, such as an attachment file that could not be read. Never fatal"
159
151
  }
160
152
  },
161
153
  "required": [
@@ -4,36 +4,36 @@
4
4
  "type": "object",
5
5
  "properties": {
6
6
  "ready": {
7
- "description": "True once the first pass over the backends is done and at least one backend answers",
8
- "type": "boolean"
7
+ "type": "boolean",
8
+ "description": "True once the first pass over the backends is done and at least one backend answers"
9
9
  },
10
10
  "layers": {
11
- "description": "Distinct layers read",
12
11
  "type": "integer",
13
12
  "minimum": 0,
14
- "maximum": 9007199254740991
13
+ "maximum": 9007199254740991,
14
+ "description": "Distinct layers read"
15
15
  },
16
16
  "slots": {
17
- "description": "Distinct checks (slots) the report holds a winner for",
18
17
  "type": "integer",
19
18
  "minimum": 0,
20
- "maximum": 9007199254740991
19
+ "maximum": 9007199254740991,
20
+ "description": "Distinct checks (slots) the report holds a winner for"
21
21
  },
22
22
  "holding": {
23
- "description": "Layers that still hold at least one winner",
24
23
  "type": "integer",
25
24
  "minimum": 0,
26
- "maximum": 9007199254740991
25
+ "maximum": 9007199254740991,
26
+ "description": "Layers that still hold at least one winner"
27
27
  },
28
28
  "failed": {
29
- "description": "Layers or backends that could not be read right now",
30
29
  "type": "integer",
31
30
  "minimum": 0,
32
- "maximum": 9007199254740991
31
+ "maximum": 9007199254740991,
32
+ "description": "Layers or backends that could not be read right now"
33
33
  },
34
34
  "refreshedAt": {
35
- "description": "When a pass over the backends last finished, epoch milliseconds; 0 before the first",
36
- "type": "number"
35
+ "type": "number",
36
+ "description": "When a pass over the backends last finished, epoch milliseconds; 0 before the first"
37
37
  },
38
38
  "backends": {
39
39
  "type": "array",
@@ -4,8 +4,8 @@
4
4
  "type": "object",
5
5
  "properties": {
6
6
  "version": {
7
- "description": "The report version after these layers",
8
- "type": "string"
7
+ "type": "string",
8
+ "description": "The report version after these layers"
9
9
  },
10
10
  "totalLayers": {
11
11
  "type": "integer",
@@ -13,7 +13,6 @@
13
13
  "maximum": 9007199254740991
14
14
  },
15
15
  "added": {
16
- "description": "At most the 20 newest of the layers that arrived",
17
16
  "type": "array",
18
17
  "items": {
19
18
  "type": "object",
@@ -25,33 +24,21 @@
25
24
  "type": "string"
26
25
  },
27
26
  "environment": {
28
- "anyOf": [
29
- {
30
- "type": "string"
31
- },
32
- {
33
- "type": "null"
34
- }
27
+ "type": [
28
+ "string",
29
+ "null"
35
30
  ]
36
31
  },
37
32
  "branch": {
38
- "anyOf": [
39
- {
40
- "type": "string"
41
- },
42
- {
43
- "type": "null"
44
- }
33
+ "type": [
34
+ "string",
35
+ "null"
45
36
  ]
46
37
  },
47
38
  "sha": {
48
- "anyOf": [
49
- {
50
- "type": "string"
51
- },
52
- {
53
- "type": "null"
54
- }
39
+ "type": [
40
+ "string",
41
+ "null"
55
42
  ]
56
43
  },
57
44
  "recordedAtMs": {
@@ -72,7 +59,13 @@
72
59
  "type": "integer",
73
60
  "minimum": 0,
74
61
  "maximum": 9007199254740991
75
- }
62
+ },
63
+ "required": [
64
+ "passed",
65
+ "failed",
66
+ "running",
67
+ "not-run"
68
+ ]
76
69
  }
77
70
  },
78
71
  "required": [
@@ -81,13 +74,14 @@
81
74
  "recordedAtMs"
82
75
  ],
83
76
  "additionalProperties": {}
84
- }
77
+ },
78
+ "description": "At most the 20 newest of the layers that arrived"
85
79
  },
86
80
  "addedTotal": {
87
- "description": "How many layers arrived, including those not listed",
88
81
  "type": "integer",
89
82
  "minimum": 0,
90
- "maximum": 9007199254740991
83
+ "maximum": 9007199254740991,
84
+ "description": "How many layers arrived, including those not listed"
91
85
  }
92
86
  },
93
87
  "required": [
@@ -0,0 +1,225 @@
1
+ {
2
+ "$id": "https://github.com/crvouga/atlas/schemas/report-run.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
+ },
13
+ "run": {
14
+ "type": "object",
15
+ "properties": {
16
+ "key": {
17
+ "type": "string",
18
+ "description": "The run URL, or `branch@sha`. Pass it to `/api/reports/runs/detail?key=` or `/api/reports/tests?run=`"
19
+ },
20
+ "runUrl": {
21
+ "type": [
22
+ "string",
23
+ "null"
24
+ ]
25
+ },
26
+ "branch": {
27
+ "type": [
28
+ "string",
29
+ "null"
30
+ ]
31
+ },
32
+ "sha": {
33
+ "type": [
34
+ "string",
35
+ "null"
36
+ ]
37
+ },
38
+ "startedAtMs": {
39
+ "type": "number"
40
+ },
41
+ "endedAtMs": {
42
+ "type": "number"
43
+ },
44
+ "spanMs": {
45
+ "type": "number"
46
+ },
47
+ "producers": {
48
+ "type": "array",
49
+ "items": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ "environments": {
54
+ "type": "array",
55
+ "items": {
56
+ "type": "string"
57
+ }
58
+ },
59
+ "layers": {
60
+ "type": "integer",
61
+ "minimum": 0,
62
+ "maximum": 9007199254740991
63
+ },
64
+ "tests": {
65
+ "type": "integer",
66
+ "minimum": 0,
67
+ "maximum": 9007199254740991
68
+ },
69
+ "counts": {
70
+ "type": "object",
71
+ "propertyNames": {
72
+ "type": "string",
73
+ "enum": [
74
+ "passed",
75
+ "failed",
76
+ "running",
77
+ "not-run"
78
+ ]
79
+ },
80
+ "additionalProperties": {
81
+ "type": "integer",
82
+ "minimum": 0,
83
+ "maximum": 9007199254740991
84
+ },
85
+ "required": [
86
+ "passed",
87
+ "failed",
88
+ "running",
89
+ "not-run"
90
+ ]
91
+ },
92
+ "totalDurationMs": {
93
+ "type": [
94
+ "number",
95
+ "null"
96
+ ]
97
+ },
98
+ "failing": {
99
+ "type": "array",
100
+ "items": {
101
+ "type": "object",
102
+ "properties": {
103
+ "key": {
104
+ "type": "string"
105
+ },
106
+ "title": {
107
+ "type": "string"
108
+ },
109
+ "environment": {
110
+ "type": [
111
+ "string",
112
+ "null"
113
+ ]
114
+ },
115
+ "detail": {
116
+ "type": "string"
117
+ }
118
+ },
119
+ "required": [
120
+ "key",
121
+ "title",
122
+ "environment",
123
+ "detail"
124
+ ],
125
+ "additionalProperties": {}
126
+ }
127
+ }
128
+ },
129
+ "required": [
130
+ "key",
131
+ "runUrl",
132
+ "branch",
133
+ "sha",
134
+ "startedAtMs",
135
+ "endedAtMs",
136
+ "spanMs",
137
+ "producers",
138
+ "environments",
139
+ "layers",
140
+ "tests",
141
+ "counts",
142
+ "totalDurationMs",
143
+ "failing"
144
+ ],
145
+ "additionalProperties": {}
146
+ },
147
+ "results": {
148
+ "type": "array",
149
+ "items": {
150
+ "type": "object",
151
+ "properties": {
152
+ "key": {
153
+ "type": "string"
154
+ },
155
+ "id": {
156
+ "type": "string"
157
+ },
158
+ "title": {
159
+ "type": "string"
160
+ },
161
+ "specPath": {
162
+ "type": [
163
+ "string",
164
+ "null"
165
+ ]
166
+ },
167
+ "environment": {
168
+ "type": [
169
+ "string",
170
+ "null"
171
+ ]
172
+ },
173
+ "producer": {
174
+ "type": "string"
175
+ },
176
+ "status": {
177
+ "type": "string",
178
+ "enum": [
179
+ "passed",
180
+ "failed",
181
+ "running",
182
+ "not-run"
183
+ ]
184
+ },
185
+ "durationMs": {
186
+ "type": [
187
+ "number",
188
+ "null"
189
+ ]
190
+ },
191
+ "at": {
192
+ "type": "number"
193
+ },
194
+ "layer": {
195
+ "type": "string"
196
+ },
197
+ "detail": {
198
+ "type": "string"
199
+ }
200
+ },
201
+ "required": [
202
+ "key",
203
+ "id",
204
+ "title",
205
+ "specPath",
206
+ "environment",
207
+ "producer",
208
+ "status",
209
+ "durationMs",
210
+ "at",
211
+ "layer",
212
+ "detail"
213
+ ],
214
+ "additionalProperties": {}
215
+ }
216
+ }
217
+ },
218
+ "required": [
219
+ "schemaVersion",
220
+ "version",
221
+ "run",
222
+ "results"
223
+ ],
224
+ "additionalProperties": {}
225
+ }
@@ -0,0 +1,163 @@
1
+ {
2
+ "$id": "https://github.com/crvouga/atlas/schemas/report-runs.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
+ },
13
+ "total": {
14
+ "type": "integer",
15
+ "minimum": 0,
16
+ "maximum": 9007199254740991
17
+ },
18
+ "runs": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "object",
22
+ "properties": {
23
+ "key": {
24
+ "type": "string",
25
+ "description": "The run URL, or `branch@sha`. Pass it to `/api/reports/runs/detail?key=` or `/api/reports/tests?run=`"
26
+ },
27
+ "runUrl": {
28
+ "type": [
29
+ "string",
30
+ "null"
31
+ ]
32
+ },
33
+ "branch": {
34
+ "type": [
35
+ "string",
36
+ "null"
37
+ ]
38
+ },
39
+ "sha": {
40
+ "type": [
41
+ "string",
42
+ "null"
43
+ ]
44
+ },
45
+ "startedAtMs": {
46
+ "type": "number"
47
+ },
48
+ "endedAtMs": {
49
+ "type": "number"
50
+ },
51
+ "spanMs": {
52
+ "type": "number"
53
+ },
54
+ "producers": {
55
+ "type": "array",
56
+ "items": {
57
+ "type": "string"
58
+ }
59
+ },
60
+ "environments": {
61
+ "type": "array",
62
+ "items": {
63
+ "type": "string"
64
+ }
65
+ },
66
+ "layers": {
67
+ "type": "integer",
68
+ "minimum": 0,
69
+ "maximum": 9007199254740991
70
+ },
71
+ "tests": {
72
+ "type": "integer",
73
+ "minimum": 0,
74
+ "maximum": 9007199254740991
75
+ },
76
+ "counts": {
77
+ "type": "object",
78
+ "propertyNames": {
79
+ "type": "string",
80
+ "enum": [
81
+ "passed",
82
+ "failed",
83
+ "running",
84
+ "not-run"
85
+ ]
86
+ },
87
+ "additionalProperties": {
88
+ "type": "integer",
89
+ "minimum": 0,
90
+ "maximum": 9007199254740991
91
+ },
92
+ "required": [
93
+ "passed",
94
+ "failed",
95
+ "running",
96
+ "not-run"
97
+ ]
98
+ },
99
+ "totalDurationMs": {
100
+ "type": [
101
+ "number",
102
+ "null"
103
+ ]
104
+ },
105
+ "failing": {
106
+ "type": "array",
107
+ "items": {
108
+ "type": "object",
109
+ "properties": {
110
+ "key": {
111
+ "type": "string"
112
+ },
113
+ "title": {
114
+ "type": "string"
115
+ },
116
+ "environment": {
117
+ "type": [
118
+ "string",
119
+ "null"
120
+ ]
121
+ },
122
+ "detail": {
123
+ "type": "string"
124
+ }
125
+ },
126
+ "required": [
127
+ "key",
128
+ "title",
129
+ "environment",
130
+ "detail"
131
+ ],
132
+ "additionalProperties": {}
133
+ }
134
+ }
135
+ },
136
+ "required": [
137
+ "key",
138
+ "runUrl",
139
+ "branch",
140
+ "sha",
141
+ "startedAtMs",
142
+ "endedAtMs",
143
+ "spanMs",
144
+ "producers",
145
+ "environments",
146
+ "layers",
147
+ "tests",
148
+ "counts",
149
+ "totalDurationMs",
150
+ "failing"
151
+ ],
152
+ "additionalProperties": {}
153
+ }
154
+ }
155
+ },
156
+ "required": [
157
+ "schemaVersion",
158
+ "version",
159
+ "total",
160
+ "runs"
161
+ ],
162
+ "additionalProperties": {}
163
+ }