@crvouga/atlas 1.20.0 → 1.22.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 +15 -1
- package/dist/core/src/cli.d.ts +2 -2
- package/dist/core/src/cli.js +7 -1
- package/dist/critics/src/catalog-client.d.ts +91 -0
- package/dist/critics/src/catalog-client.js +194 -0
- package/dist/critics/src/cli-calibrate.d.ts +4 -0
- package/dist/critics/src/cli-calibrate.js +211 -0
- package/dist/critics/src/cli-common.d.ts +108 -0
- package/dist/critics/src/cli-common.js +155 -0
- package/dist/critics/src/cli-review.d.ts +4 -0
- package/dist/critics/src/cli-review.js +174 -0
- package/dist/critics/src/cli-watch.d.ts +4 -0
- package/dist/critics/src/cli-watch.js +191 -0
- package/dist/critics/src/cli.d.ts +13 -0
- package/dist/critics/src/cli.js +490 -0
- package/dist/critics/src/index.d.ts +3 -0
- package/dist/critics/src/index.js +3 -0
- package/dist/critics/src/judging.d.ts +8 -0
- package/dist/critics/src/llm.d.ts +120 -0
- package/dist/critics/src/llm.js +266 -0
- package/dist/critics/src/marks.d.ts +74 -0
- package/dist/critics/src/marks.js +76 -0
- package/dist/critics/src/registry.d.ts +125 -0
- package/dist/critics/src/registry.js +203 -0
- package/dist/critics/src/spool.d.ts +32 -0
- package/dist/critics/src/spool.js +129 -0
- package/dist/critics/src/uiclip.d.ts +82 -0
- package/dist/critics/src/uiclip.js +167 -0
- package/dist/reports/src/compose.d.ts +23 -1
- package/dist/reports/src/compose.js +29 -19
- package/dist/reports/src/critique-review.d.ts +111 -0
- package/dist/reports/src/critique-review.js +123 -0
- package/dist/reports/src/critique-row.d.ts +24 -0
- package/dist/reports/src/critique-row.js +39 -0
- package/dist/reports/src/evidence-types.d.ts +5 -0
- package/dist/reports/src/layer-merge.js +5 -0
- package/dist/reports/src/report-cli.d.ts +13 -0
- package/dist/reports/src/report-cli.js +6 -4
- package/dist/reports/src/report-index.d.ts +6 -0
- package/dist/reports/src/report-index.js +12 -0
- package/dist/reports/src/ui-catalog-cli.d.ts +10 -0
- package/dist/reports/src/ui-catalog-cli.js +391 -0
- package/dist/reports/src/ui-catalog-diff.d.ts +104 -0
- package/dist/reports/src/ui-catalog-diff.js +130 -0
- package/dist/reports/src/ui-catalog-entries.d.ts +147 -0
- package/dist/reports/src/ui-catalog-entries.js +190 -0
- package/dist/reports/src/ui-catalog-export.d.ts +82 -0
- package/dist/reports/src/ui-catalog-export.js +221 -0
- package/dist/reports/src/ui-catalog-publish.js +2 -2
- package/dist/reports/src/ui-catalog.d.ts +2 -0
- package/dist/reports/src/ui-catalog.js +1 -1
- package/dist/reports/src/ui-state.d.ts +2 -0
- package/dist/reports/src/ui-state.js +2 -2
- package/dist/schema/src/api.d.ts +653 -1
- package/dist/schema/src/api.js +44 -0
- package/dist/schema/src/cli-results.d.ts +991 -1
- package/dist/schema/src/cli-results.js +265 -1
- package/dist/schema/src/critique.d.ts +31 -0
- package/dist/schema/src/critique.js +26 -0
- package/dist/schema/src/server-config.d.ts +3 -3
- package/dist/server/src/app.js +28 -1
- package/dist/server/src/openapi.js +19 -2
- package/docs/agents.md +16 -2
- package/docs/critics.md +273 -9
- package/docs/extending.md +1 -1
- package/docs/reference/cli.md +126 -1
- package/docs/reference/core.md +1 -1
- package/docs/reference/critics.md +1131 -29
- package/docs/reference/http-api.md +40 -0
- package/docs/reference/reports.md +855 -0
- package/docs/reference/schema.md +197 -1
- package/docs/report-contract.md +2 -1
- package/docs/server.md +2 -0
- package/docs/ui-catalog.md +110 -13
- package/docs/ui.md +69 -2
- package/llms-full.txt +636 -26
- package/llms.txt +1 -1
- package/package.json +9 -1
- package/packages/critics/README.md +1 -0
- package/packages/schema/schemas/critic-calibrate-result.schema.json +274 -0
- package/packages/schema/schemas/critic-doctor-result.schema.json +74 -0
- package/packages/schema/schemas/critic-list-result.schema.json +90 -0
- package/packages/schema/schemas/critic-review-result.schema.json +397 -0
- package/packages/schema/schemas/critic-run-result.schema.json +249 -0
- package/packages/schema/schemas/critic-setup-result.schema.json +34 -0
- package/packages/schema/schemas/critic-watch-result.schema.json +211 -0
- package/packages/schema/schemas/critique-mark.schema.json +81 -0
- package/packages/schema/schemas/effective-delta.schema.json +337 -0
- package/packages/schema/schemas/effective-evidence.schema.json +337 -0
- package/packages/schema/schemas/layer-rows.schema.json +337 -0
- package/packages/schema/schemas/ui-catalog-diff-result.schema.json +201 -0
- package/packages/schema/schemas/ui-catalog-export-result.schema.json +83 -0
- package/packages/schema/schemas/ui-catalog-publish-result.schema.json +116 -0
- package/packages/schema/schemas/ui-catalog-status.schema.json +197 -0
- package/packages/server/openapi.json +6755 -4738
- package/packages/visualizer/src/app/AppShell.tsx +3 -1
- package/packages/visualizer/src/app/router.tsx +20 -7
- package/packages/visualizer/src/catalog/Picture.tsx +32 -0
- package/packages/visualizer/src/catalog/UiCatalogCompare.tsx +289 -0
- package/packages/visualizer/src/catalog/UiCatalogPage.tsx +18 -28
- package/packages/visualizer/src/catalog/history.ts +61 -0
- package/packages/visualizer/src/catalog/search.ts +14 -3
- package/packages/visualizer/src/components/Header.tsx +16 -4
- package/packages/visualizer/src/critiques/CritiquesPage.tsx +402 -0
- package/packages/visualizer/src/critiques/FindingOverlay.tsx +50 -0
- package/packages/visualizer/src/critiques/ranking.ts +54 -0
- package/packages/visualizer/src/critiques/search.ts +41 -0
- package/packages/visualizer/src/evidence/applicability-view.tsx +11 -7
- package/packages/visualizer/src/evidence/behaviors-page.tsx +22 -15
- package/packages/visualizer/src/evidence/evidence-context.tsx +2 -1
- package/packages/visualizer/src/explorer/Explorer.tsx +5 -0
- package/packages/visualizer/src/explorer/TestDetail.tsx +4 -1
- package/packages/visualizer/src/explorer/parts.tsx +19 -1
- package/packages/visualizer/src/explorer/playlist.tsx +11 -7
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "https://github.com/crvouga/atlas/schemas/ui-catalog-publish-result.schema.json",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"ok": {
|
|
7
|
+
"type": "boolean",
|
|
8
|
+
"const": true,
|
|
9
|
+
"description": "True: the layer was written. A state whose picture could not be read is published as `failed` and named in `warnings`; it does not fail the command"
|
|
10
|
+
},
|
|
11
|
+
"store": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Where it was written: a folder, `s3://…` or a server URL"
|
|
14
|
+
},
|
|
15
|
+
"layer": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"properties": {
|
|
18
|
+
"id": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The layer id: 64 hex digits, the SHA-256 of its content. Publishing the same input again gives the same id"
|
|
21
|
+
},
|
|
22
|
+
"kind": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": [
|
|
25
|
+
"ui-state",
|
|
26
|
+
"ui-plan"
|
|
27
|
+
],
|
|
28
|
+
"description": "`ui-state`: captures (`publish`). `ui-plan`: the expected set (`plan`)"
|
|
29
|
+
},
|
|
30
|
+
"producer": {
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
33
|
+
"environment": {
|
|
34
|
+
"type": [
|
|
35
|
+
"string",
|
|
36
|
+
"null"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"parameters": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"propertyNames": {
|
|
42
|
+
"type": "string"
|
|
43
|
+
},
|
|
44
|
+
"additionalProperties": {
|
|
45
|
+
"type": "string"
|
|
46
|
+
},
|
|
47
|
+
"description": "The rest of the profile, such as `{ \"viewport\": \"390x844\" }`"
|
|
48
|
+
},
|
|
49
|
+
"states": {
|
|
50
|
+
"type": "integer",
|
|
51
|
+
"minimum": 0,
|
|
52
|
+
"maximum": 9007199254740991,
|
|
53
|
+
"description": "States in the layer"
|
|
54
|
+
},
|
|
55
|
+
"captured": {
|
|
56
|
+
"type": "integer",
|
|
57
|
+
"minimum": 0,
|
|
58
|
+
"maximum": 9007199254740991,
|
|
59
|
+
"description": "For `publish`: states that were captured (`passed`). Zero for a plan"
|
|
60
|
+
},
|
|
61
|
+
"failed": {
|
|
62
|
+
"type": "integer",
|
|
63
|
+
"minimum": 0,
|
|
64
|
+
"maximum": 9007199254740991,
|
|
65
|
+
"description": "For `publish`: states recorded as failed, including those whose picture could not be read"
|
|
66
|
+
},
|
|
67
|
+
"pictures": {
|
|
68
|
+
"type": "integer",
|
|
69
|
+
"minimum": 0,
|
|
70
|
+
"maximum": 9007199254740991,
|
|
71
|
+
"description": "Pictures stored in the layer"
|
|
72
|
+
},
|
|
73
|
+
"pictureBytes": {
|
|
74
|
+
"type": "integer",
|
|
75
|
+
"minimum": 0,
|
|
76
|
+
"maximum": 9007199254740991
|
|
77
|
+
},
|
|
78
|
+
"shard": {
|
|
79
|
+
"description": "The `--shard` label, which describes the layer and never splits its slot",
|
|
80
|
+
"type": [
|
|
81
|
+
"string",
|
|
82
|
+
"null"
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"required": [
|
|
87
|
+
"id",
|
|
88
|
+
"kind",
|
|
89
|
+
"producer",
|
|
90
|
+
"environment",
|
|
91
|
+
"parameters",
|
|
92
|
+
"states",
|
|
93
|
+
"captured",
|
|
94
|
+
"failed",
|
|
95
|
+
"pictures",
|
|
96
|
+
"pictureBytes",
|
|
97
|
+
"shard"
|
|
98
|
+
],
|
|
99
|
+
"additionalProperties": {}
|
|
100
|
+
},
|
|
101
|
+
"warnings": {
|
|
102
|
+
"type": "array",
|
|
103
|
+
"items": {
|
|
104
|
+
"type": "string"
|
|
105
|
+
},
|
|
106
|
+
"description": "What was skipped and why, such as a picture file that could not be read. Never fatal"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"required": [
|
|
110
|
+
"ok",
|
|
111
|
+
"store",
|
|
112
|
+
"layer",
|
|
113
|
+
"warnings"
|
|
114
|
+
],
|
|
115
|
+
"additionalProperties": {}
|
|
116
|
+
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "https://github.com/crvouga/atlas/schemas/ui-catalog-status.schema.json",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"ok": {
|
|
7
|
+
"type": "boolean",
|
|
8
|
+
"description": "True only when the catalog holds a state and has no problem: nothing failed, nothing expected is missing, nothing is still being captured, and every backend and layer was read (otherwise the exit code is 1). Skipped cells are counted, not problems"
|
|
9
|
+
},
|
|
10
|
+
"summary": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"states": {
|
|
14
|
+
"type": "integer",
|
|
15
|
+
"minimum": 0,
|
|
16
|
+
"maximum": 9007199254740991
|
|
17
|
+
},
|
|
18
|
+
"profiles": {
|
|
19
|
+
"type": "integer",
|
|
20
|
+
"minimum": 0,
|
|
21
|
+
"maximum": 9007199254740991
|
|
22
|
+
},
|
|
23
|
+
"cells": {
|
|
24
|
+
"type": "integer",
|
|
25
|
+
"minimum": 0,
|
|
26
|
+
"maximum": 9007199254740991,
|
|
27
|
+
"description": "States counted once per profile"
|
|
28
|
+
},
|
|
29
|
+
"coverage": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"propertyNames": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"enum": [
|
|
34
|
+
"captured",
|
|
35
|
+
"failed",
|
|
36
|
+
"capturing",
|
|
37
|
+
"skipped",
|
|
38
|
+
"missing"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"additionalProperties": {
|
|
42
|
+
"type": "integer",
|
|
43
|
+
"minimum": 0,
|
|
44
|
+
"maximum": 9007199254740991
|
|
45
|
+
},
|
|
46
|
+
"required": [
|
|
47
|
+
"captured",
|
|
48
|
+
"failed",
|
|
49
|
+
"capturing",
|
|
50
|
+
"skipped",
|
|
51
|
+
"missing"
|
|
52
|
+
],
|
|
53
|
+
"description": "Cells by coverage"
|
|
54
|
+
},
|
|
55
|
+
"undeclared": {
|
|
56
|
+
"type": "integer",
|
|
57
|
+
"minimum": 0,
|
|
58
|
+
"maximum": 9007199254740991,
|
|
59
|
+
"description": "Captured cells no plan expects; zero when no plan exists"
|
|
60
|
+
},
|
|
61
|
+
"planned": {
|
|
62
|
+
"type": "boolean",
|
|
63
|
+
"description": "Whether any plan was published. Without one, `missing` is always zero because what should exist is unknown"
|
|
64
|
+
},
|
|
65
|
+
"surfaces": {
|
|
66
|
+
"type": "integer",
|
|
67
|
+
"minimum": 0,
|
|
68
|
+
"maximum": 9007199254740991
|
|
69
|
+
},
|
|
70
|
+
"uncoveredSurfaces": {
|
|
71
|
+
"type": "integer",
|
|
72
|
+
"minimum": 0,
|
|
73
|
+
"maximum": 9007199254740991
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"required": [
|
|
77
|
+
"states",
|
|
78
|
+
"profiles",
|
|
79
|
+
"cells",
|
|
80
|
+
"coverage",
|
|
81
|
+
"undeclared",
|
|
82
|
+
"planned",
|
|
83
|
+
"surfaces",
|
|
84
|
+
"uncoveredSurfaces"
|
|
85
|
+
],
|
|
86
|
+
"additionalProperties": {}
|
|
87
|
+
},
|
|
88
|
+
"profiles": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"items": {
|
|
91
|
+
"type": "object",
|
|
92
|
+
"properties": {
|
|
93
|
+
"key": {
|
|
94
|
+
"type": "string"
|
|
95
|
+
},
|
|
96
|
+
"label": {
|
|
97
|
+
"type": "string"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"required": [
|
|
101
|
+
"key",
|
|
102
|
+
"label"
|
|
103
|
+
],
|
|
104
|
+
"additionalProperties": {}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"problems": {
|
|
108
|
+
"type": "array",
|
|
109
|
+
"items": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"properties": {
|
|
112
|
+
"kind": {
|
|
113
|
+
"type": "string",
|
|
114
|
+
"enum": [
|
|
115
|
+
"failed",
|
|
116
|
+
"missing",
|
|
117
|
+
"capturing",
|
|
118
|
+
"unavailable",
|
|
119
|
+
"unreadable",
|
|
120
|
+
"empty"
|
|
121
|
+
],
|
|
122
|
+
"description": "`failed`: a capture was attempted and failed. `missing`: a plan expects it and nothing was captured. `capturing`: still being taken, so not known. `unavailable`: a backend could not be read. `unreadable`: a layer could not be read. `empty`: the catalog holds no state at all"
|
|
123
|
+
},
|
|
124
|
+
"state": {
|
|
125
|
+
"description": "The state id, for `failed`, `missing` and `capturing`",
|
|
126
|
+
"type": "string"
|
|
127
|
+
},
|
|
128
|
+
"profile": {
|
|
129
|
+
"description": "The profile label, for `failed`, `missing` and `capturing`",
|
|
130
|
+
"type": "string"
|
|
131
|
+
},
|
|
132
|
+
"detail": {
|
|
133
|
+
"description": "Why, when the producer said",
|
|
134
|
+
"type": "string"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"required": [
|
|
138
|
+
"kind"
|
|
139
|
+
],
|
|
140
|
+
"additionalProperties": {}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"sources": {
|
|
144
|
+
"type": "object",
|
|
145
|
+
"properties": {
|
|
146
|
+
"layers": {
|
|
147
|
+
"type": "integer",
|
|
148
|
+
"minimum": 0,
|
|
149
|
+
"maximum": 9007199254740991
|
|
150
|
+
},
|
|
151
|
+
"backends": {
|
|
152
|
+
"type": "array",
|
|
153
|
+
"items": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"properties": {
|
|
156
|
+
"id": {
|
|
157
|
+
"type": "string"
|
|
158
|
+
},
|
|
159
|
+
"label": {
|
|
160
|
+
"type": "string"
|
|
161
|
+
},
|
|
162
|
+
"available": {
|
|
163
|
+
"type": "boolean"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"required": [
|
|
167
|
+
"id",
|
|
168
|
+
"label",
|
|
169
|
+
"available"
|
|
170
|
+
],
|
|
171
|
+
"additionalProperties": {}
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"notices": {
|
|
175
|
+
"type": "array",
|
|
176
|
+
"items": {
|
|
177
|
+
"type": "string"
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"required": [
|
|
182
|
+
"layers",
|
|
183
|
+
"backends",
|
|
184
|
+
"notices"
|
|
185
|
+
],
|
|
186
|
+
"additionalProperties": {}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"required": [
|
|
190
|
+
"ok",
|
|
191
|
+
"summary",
|
|
192
|
+
"profiles",
|
|
193
|
+
"problems",
|
|
194
|
+
"sources"
|
|
195
|
+
],
|
|
196
|
+
"additionalProperties": {}
|
|
197
|
+
}
|