@crvouga/atlas 1.7.0 → 1.9.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 +13 -1
- package/dist/reports/src/evidence-detail.js +6 -1
- package/dist/reports/src/evidence-types.d.ts +2 -0
- package/dist/reports/src/explorer-types.d.ts +19 -0
- package/dist/reports/src/latency.d.ts +204 -0
- package/dist/reports/src/latency.js +219 -0
- package/dist/reports/src/reliability.d.ts +181 -0
- package/dist/reports/src/reliability.js +294 -0
- package/dist/reports/src/report-index.js +1 -1
- package/dist/reports/src/reports-explorer-route.d.ts +19 -6
- package/dist/reports/src/reports-route.d.ts +19 -6
- package/dist/reports/src/test-catalog.d.ts +11 -3
- package/dist/reports/src/test-catalog.js +12 -5
- package/dist/schema/src/api.d.ts +377 -0
- package/dist/schema/src/api.js +55 -3
- package/dist/schema/src/layer.d.ts +90 -0
- package/dist/schema/src/layer.js +20 -1
- package/dist/server/src/app.js +15 -0
- package/dist/server/src/llms.js +1 -0
- package/dist/server/src/openapi.js +25 -2
- package/docs/extending.md +1 -1
- package/docs/reference/http-api.md +48 -0
- package/docs/reference/reports.md +619 -1
- package/docs/reference/schema.md +39 -0
- package/docs/rich-evidence.md +43 -0
- package/docs/server.md +18 -0
- package/docs/ui.md +20 -1
- package/llms-full.txt +130 -2
- package/package.json +1 -1
- package/packages/schema/schemas/check-detail.schema.json +56 -1
- package/packages/schema/schemas/effective-delta.schema.json +86 -2
- package/packages/schema/schemas/effective-evidence.schema.json +86 -2
- package/packages/schema/schemas/evidence-page.schema.json +13 -0
- package/packages/schema/schemas/layer-rows.schema.json +73 -2
- package/packages/schema/schemas/layer.schema.json +112 -2
- package/packages/schema/schemas/publish-checks.schema.json +56 -1
- package/packages/schema/schemas/test-catalog.schema.json +102 -0
- package/packages/schema/schemas/test-history.schema.json +204 -0
- package/packages/schema/schemas/test-reliability.schema.json +629 -0
- package/packages/server/openapi.json +2354 -661
- package/packages/visualizer/src/evidence/check-detail.tsx +9 -0
- package/packages/visualizer/src/explorer/ProductLatency.tsx +214 -0
- package/packages/visualizer/src/explorer/Reliability.tsx +337 -0
- package/packages/visualizer/src/explorer/TestDetail.tsx +12 -2
- package/packages/visualizer/src/explorer/catalog.tsx +1 -1
- package/packages/visualizer/src/explorer/search.ts +36 -0
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
import { displayTag, normalizeTag, normalizeTags } from './artifact-tags.js';
|
|
26
26
|
import { facetsOf, forRuns, labelList, matchesFilter, outcomeOfCounts, splitList, usedFilters } from './artifact-query.js';
|
|
27
27
|
import { videoCounts } from './evidence-detail.js';
|
|
28
|
+
import { productLatency } from './latency.js';
|
|
28
29
|
import { matchesScope, scopeTokens, UNKNOWN_SCOPE } from './evidence-scope.js';
|
|
29
30
|
import { checkSlots } from './evidence-view.js';
|
|
30
31
|
import { combineEvidence, emptyCounts, slotKey, specPath as normalSpecPath } from './layer-merge.js';
|
|
@@ -55,8 +56,8 @@ function shortDetail(detail) {
|
|
|
55
56
|
function completed(status) {
|
|
56
57
|
return status === 'passed' || status === 'failed';
|
|
57
58
|
}
|
|
58
|
-
function entryOf(layer, row, backend) {
|
|
59
|
-
return materialize({ o: originOf(layer, backend), s: row.status, d: row.durationMs, k: row.kind, t: row.detail, e: row.evidence });
|
|
59
|
+
function entryOf(layer, row, backend, fingerprints = {}) {
|
|
60
|
+
return materialize({ o: originOf(layer, backend), s: row.status, d: row.durationMs, k: row.kind, t: row.detail, e: row.evidence, m: productLatency(row.measurements), f: row.specPath ? fingerprints[row.specPath] : undefined });
|
|
60
61
|
}
|
|
61
62
|
function originOf(layer, backend) {
|
|
62
63
|
const parameters = Object.keys(layer.parameters).sort().map(key => `${key}=${layer.parameters[key]}`).join('\u0002');
|
|
@@ -71,7 +72,9 @@ function materialize(held) {
|
|
|
71
72
|
return {
|
|
72
73
|
at: o.at, status: held.s, durationMs: held.d, environment: o.environment, producer: o.producer, kind: held.k, parameters: o.parameters,
|
|
73
74
|
branch: o.branch, sha: o.sha, runUrl: o.runUrl, run: o.run, layer: o.layer, backend: o.backend, detail: shortDetail(held.t),
|
|
75
|
+
...(held.f ? { specRevision: held.f } : {}),
|
|
74
76
|
...(held.e ? { evidence: held.e } : {}),
|
|
77
|
+
...(held.m ? { latency: held.m } : {}),
|
|
75
78
|
};
|
|
76
79
|
}
|
|
77
80
|
/** Newest first; at the same time the more severe, then the larger layer id, so the order is total. */
|
|
@@ -122,8 +125,12 @@ export class TestHistory {
|
|
|
122
125
|
get layers() {
|
|
123
126
|
return this.#seen.size;
|
|
124
127
|
}
|
|
125
|
-
/**
|
|
126
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Takes in one layer: its header, its rows, the specs it recorded and the backend it was read from. A layer id already
|
|
130
|
+
* added is ignored. `fingerprints` (spec path to the fingerprint the layer recorded, as `LayerRows.fingerprints`) gives
|
|
131
|
+
* each result its `specRevision`; without it no result has one.
|
|
132
|
+
*/
|
|
133
|
+
add(layer, rows, specs = [], backend = layer.backend, fingerprints = {}) {
|
|
127
134
|
if (this.#seen.has(layer.id))
|
|
128
135
|
return;
|
|
129
136
|
this.#seen.add(layer.id);
|
|
@@ -180,7 +187,7 @@ export class TestHistory {
|
|
|
180
187
|
ident.title = row.title;
|
|
181
188
|
ident.titledAt = layer.recordedAtMs;
|
|
182
189
|
}
|
|
183
|
-
this.#remember(slot, { o: origin, s: row.status, d: row.durationMs, k: row.kind, t: row.detail, e: row.evidence });
|
|
190
|
+
this.#remember(slot, { o: origin, s: row.status, d: row.durationMs, k: row.kind, t: row.detail, e: row.evidence, m: productLatency(row.measurements), f: row.specPath ? fingerprints[row.specPath] : undefined });
|
|
184
191
|
}
|
|
185
192
|
}
|
|
186
193
|
/** Sorted insert, newest first; past the bound, the oldest is dropped. */
|
package/dist/schema/src/api.d.ts
CHANGED
|
@@ -121,6 +121,12 @@ export declare const EvidenceSummarySchema: z.ZodObject<{
|
|
|
121
121
|
steps: z.ZodNumber;
|
|
122
122
|
annotations: z.ZodNumber;
|
|
123
123
|
attempts: z.ZodNumber;
|
|
124
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
125
|
+
passed: "passed";
|
|
126
|
+
failed: "failed";
|
|
127
|
+
running: "running";
|
|
128
|
+
"not-run": "not-run";
|
|
129
|
+
}>>>;
|
|
124
130
|
links: z.ZodNumber;
|
|
125
131
|
tags: z.ZodArray<z.ZodString>;
|
|
126
132
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -191,6 +197,12 @@ export declare const LayerHeaderSchema: z.ZodObject<{
|
|
|
191
197
|
steps: z.ZodNumber;
|
|
192
198
|
annotations: z.ZodNumber;
|
|
193
199
|
attempts: z.ZodNumber;
|
|
200
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
201
|
+
passed: "passed";
|
|
202
|
+
failed: "failed";
|
|
203
|
+
running: "running";
|
|
204
|
+
"not-run": "not-run";
|
|
205
|
+
}>>>;
|
|
194
206
|
links: z.ZodNumber;
|
|
195
207
|
tags: z.ZodArray<z.ZodString>;
|
|
196
208
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -252,6 +264,17 @@ export declare const LayerRowSchema: z.ZodObject<{
|
|
|
252
264
|
value: z.ZodNumber;
|
|
253
265
|
unit: z.ZodString;
|
|
254
266
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
267
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
268
|
+
from: z.ZodOptional<z.ZodString>;
|
|
269
|
+
to: z.ZodOptional<z.ZodString>;
|
|
270
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
271
|
+
from: z.ZodOptional<z.ZodString>;
|
|
272
|
+
to: z.ZodOptional<z.ZodString>;
|
|
273
|
+
}, z.core.$loose>>;
|
|
274
|
+
source: z.ZodOptional<z.ZodString>;
|
|
275
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
276
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
277
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
255
278
|
}, z.core.$loose>>;
|
|
256
279
|
testId: z.ZodNullable<z.ZodString>;
|
|
257
280
|
variant: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
@@ -261,6 +284,12 @@ export declare const LayerRowSchema: z.ZodObject<{
|
|
|
261
284
|
steps: z.ZodNumber;
|
|
262
285
|
annotations: z.ZodNumber;
|
|
263
286
|
attempts: z.ZodNumber;
|
|
287
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
288
|
+
passed: "passed";
|
|
289
|
+
failed: "failed";
|
|
290
|
+
running: "running";
|
|
291
|
+
"not-run": "not-run";
|
|
292
|
+
}>>>;
|
|
264
293
|
links: z.ZodNumber;
|
|
265
294
|
tags: z.ZodArray<z.ZodString>;
|
|
266
295
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -320,6 +349,17 @@ export declare const LayerRowsSchema: z.ZodObject<{
|
|
|
320
349
|
value: z.ZodNumber;
|
|
321
350
|
unit: z.ZodString;
|
|
322
351
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
352
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
353
|
+
from: z.ZodOptional<z.ZodString>;
|
|
354
|
+
to: z.ZodOptional<z.ZodString>;
|
|
355
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
356
|
+
from: z.ZodOptional<z.ZodString>;
|
|
357
|
+
to: z.ZodOptional<z.ZodString>;
|
|
358
|
+
}, z.core.$loose>>;
|
|
359
|
+
source: z.ZodOptional<z.ZodString>;
|
|
360
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
361
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
362
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
323
363
|
}, z.core.$loose>>;
|
|
324
364
|
testId: z.ZodNullable<z.ZodString>;
|
|
325
365
|
variant: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
@@ -329,6 +369,12 @@ export declare const LayerRowsSchema: z.ZodObject<{
|
|
|
329
369
|
steps: z.ZodNumber;
|
|
330
370
|
annotations: z.ZodNumber;
|
|
331
371
|
attempts: z.ZodNumber;
|
|
372
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
373
|
+
passed: "passed";
|
|
374
|
+
failed: "failed";
|
|
375
|
+
running: "running";
|
|
376
|
+
"not-run": "not-run";
|
|
377
|
+
}>>>;
|
|
332
378
|
links: z.ZodNumber;
|
|
333
379
|
tags: z.ZodArray<z.ZodString>;
|
|
334
380
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -390,6 +436,17 @@ export declare const LayerEvidenceSchema: z.ZodObject<{
|
|
|
390
436
|
value: z.ZodNumber;
|
|
391
437
|
unit: z.ZodString;
|
|
392
438
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
439
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
440
|
+
from: z.ZodOptional<z.ZodString>;
|
|
441
|
+
to: z.ZodOptional<z.ZodString>;
|
|
442
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
443
|
+
from: z.ZodOptional<z.ZodString>;
|
|
444
|
+
to: z.ZodOptional<z.ZodString>;
|
|
445
|
+
}, z.core.$loose>>;
|
|
446
|
+
source: z.ZodOptional<z.ZodString>;
|
|
447
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
448
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
449
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
393
450
|
}, z.core.$loose>>;
|
|
394
451
|
testId: z.ZodNullable<z.ZodString>;
|
|
395
452
|
variant: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
@@ -399,6 +456,12 @@ export declare const LayerEvidenceSchema: z.ZodObject<{
|
|
|
399
456
|
steps: z.ZodNumber;
|
|
400
457
|
annotations: z.ZodNumber;
|
|
401
458
|
attempts: z.ZodNumber;
|
|
459
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
460
|
+
passed: "passed";
|
|
461
|
+
failed: "failed";
|
|
462
|
+
running: "running";
|
|
463
|
+
"not-run": "not-run";
|
|
464
|
+
}>>>;
|
|
402
465
|
links: z.ZodNumber;
|
|
403
466
|
tags: z.ZodArray<z.ZodString>;
|
|
404
467
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -474,6 +537,12 @@ export declare const LayerEvidenceSchema: z.ZodObject<{
|
|
|
474
537
|
steps: z.ZodNumber;
|
|
475
538
|
annotations: z.ZodNumber;
|
|
476
539
|
attempts: z.ZodNumber;
|
|
540
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
541
|
+
passed: "passed";
|
|
542
|
+
failed: "failed";
|
|
543
|
+
running: "running";
|
|
544
|
+
"not-run": "not-run";
|
|
545
|
+
}>>>;
|
|
477
546
|
links: z.ZodNumber;
|
|
478
547
|
tags: z.ZodArray<z.ZodString>;
|
|
479
548
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -544,6 +613,17 @@ export declare const EffectiveEvidenceSchema: z.ZodObject<{
|
|
|
544
613
|
value: z.ZodNumber;
|
|
545
614
|
unit: z.ZodString;
|
|
546
615
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
616
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
617
|
+
from: z.ZodOptional<z.ZodString>;
|
|
618
|
+
to: z.ZodOptional<z.ZodString>;
|
|
619
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
620
|
+
from: z.ZodOptional<z.ZodString>;
|
|
621
|
+
to: z.ZodOptional<z.ZodString>;
|
|
622
|
+
}, z.core.$loose>>;
|
|
623
|
+
source: z.ZodOptional<z.ZodString>;
|
|
624
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
625
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
626
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
547
627
|
}, z.core.$loose>>;
|
|
548
628
|
testId: z.ZodNullable<z.ZodString>;
|
|
549
629
|
variant: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
@@ -553,6 +633,12 @@ export declare const EffectiveEvidenceSchema: z.ZodObject<{
|
|
|
553
633
|
steps: z.ZodNumber;
|
|
554
634
|
annotations: z.ZodNumber;
|
|
555
635
|
attempts: z.ZodNumber;
|
|
636
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
637
|
+
passed: "passed";
|
|
638
|
+
failed: "failed";
|
|
639
|
+
running: "running";
|
|
640
|
+
"not-run": "not-run";
|
|
641
|
+
}>>>;
|
|
556
642
|
links: z.ZodNumber;
|
|
557
643
|
tags: z.ZodArray<z.ZodString>;
|
|
558
644
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -628,6 +714,12 @@ export declare const EffectiveEvidenceSchema: z.ZodObject<{
|
|
|
628
714
|
steps: z.ZodNumber;
|
|
629
715
|
annotations: z.ZodNumber;
|
|
630
716
|
attempts: z.ZodNumber;
|
|
717
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
718
|
+
passed: "passed";
|
|
719
|
+
failed: "failed";
|
|
720
|
+
running: "running";
|
|
721
|
+
"not-run": "not-run";
|
|
722
|
+
}>>>;
|
|
631
723
|
links: z.ZodNumber;
|
|
632
724
|
tags: z.ZodArray<z.ZodString>;
|
|
633
725
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -719,6 +811,17 @@ export declare const EffectiveDeltaSchema: z.ZodObject<{
|
|
|
719
811
|
value: z.ZodNumber;
|
|
720
812
|
unit: z.ZodString;
|
|
721
813
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
814
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
815
|
+
from: z.ZodOptional<z.ZodString>;
|
|
816
|
+
to: z.ZodOptional<z.ZodString>;
|
|
817
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
818
|
+
from: z.ZodOptional<z.ZodString>;
|
|
819
|
+
to: z.ZodOptional<z.ZodString>;
|
|
820
|
+
}, z.core.$loose>>;
|
|
821
|
+
source: z.ZodOptional<z.ZodString>;
|
|
822
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
823
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
824
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
722
825
|
}, z.core.$loose>>;
|
|
723
826
|
testId: z.ZodNullable<z.ZodString>;
|
|
724
827
|
variant: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
@@ -728,6 +831,12 @@ export declare const EffectiveDeltaSchema: z.ZodObject<{
|
|
|
728
831
|
steps: z.ZodNumber;
|
|
729
832
|
annotations: z.ZodNumber;
|
|
730
833
|
attempts: z.ZodNumber;
|
|
834
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
835
|
+
passed: "passed";
|
|
836
|
+
failed: "failed";
|
|
837
|
+
running: "running";
|
|
838
|
+
"not-run": "not-run";
|
|
839
|
+
}>>>;
|
|
731
840
|
links: z.ZodNumber;
|
|
732
841
|
tags: z.ZodArray<z.ZodString>;
|
|
733
842
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -803,6 +912,12 @@ export declare const EffectiveDeltaSchema: z.ZodObject<{
|
|
|
803
912
|
steps: z.ZodNumber;
|
|
804
913
|
annotations: z.ZodNumber;
|
|
805
914
|
attempts: z.ZodNumber;
|
|
915
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
916
|
+
passed: "passed";
|
|
917
|
+
failed: "failed";
|
|
918
|
+
running: "running";
|
|
919
|
+
"not-run": "not-run";
|
|
920
|
+
}>>>;
|
|
806
921
|
links: z.ZodNumber;
|
|
807
922
|
tags: z.ZodArray<z.ZodString>;
|
|
808
923
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -906,6 +1021,12 @@ export declare const EvidencePageSchema: z.ZodObject<{
|
|
|
906
1021
|
steps: z.ZodNumber;
|
|
907
1022
|
annotations: z.ZodNumber;
|
|
908
1023
|
attempts: z.ZodNumber;
|
|
1024
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1025
|
+
passed: "passed";
|
|
1026
|
+
failed: "failed";
|
|
1027
|
+
running: "running";
|
|
1028
|
+
"not-run": "not-run";
|
|
1029
|
+
}>>>;
|
|
909
1030
|
links: z.ZodNumber;
|
|
910
1031
|
tags: z.ZodArray<z.ZodString>;
|
|
911
1032
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1312,6 +1433,17 @@ export declare const CheckDetailSchema: z.ZodObject<{
|
|
|
1312
1433
|
value: z.ZodNumber;
|
|
1313
1434
|
unit: z.ZodString;
|
|
1314
1435
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
1436
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
1437
|
+
from: z.ZodOptional<z.ZodString>;
|
|
1438
|
+
to: z.ZodOptional<z.ZodString>;
|
|
1439
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
1440
|
+
from: z.ZodOptional<z.ZodString>;
|
|
1441
|
+
to: z.ZodOptional<z.ZodString>;
|
|
1442
|
+
}, z.core.$loose>>;
|
|
1443
|
+
source: z.ZodOptional<z.ZodString>;
|
|
1444
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
1445
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
1446
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1315
1447
|
}, z.core.$loose>>>;
|
|
1316
1448
|
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
1317
1449
|
recordingExpectation: z.ZodOptional<z.ZodString>;
|
|
@@ -1459,11 +1591,18 @@ export declare const TestResultEntrySchema: z.ZodObject<{
|
|
|
1459
1591
|
layer: z.ZodString;
|
|
1460
1592
|
backend: z.ZodString;
|
|
1461
1593
|
detail: z.ZodString;
|
|
1594
|
+
specRevision: z.ZodOptional<z.ZodString>;
|
|
1462
1595
|
evidence: z.ZodOptional<z.ZodObject<{
|
|
1463
1596
|
attachments: z.ZodNumber;
|
|
1464
1597
|
steps: z.ZodNumber;
|
|
1465
1598
|
annotations: z.ZodNumber;
|
|
1466
1599
|
attempts: z.ZodNumber;
|
|
1600
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1601
|
+
passed: "passed";
|
|
1602
|
+
failed: "failed";
|
|
1603
|
+
running: "running";
|
|
1604
|
+
"not-run": "not-run";
|
|
1605
|
+
}>>>;
|
|
1467
1606
|
links: z.ZodNumber;
|
|
1468
1607
|
tags: z.ZodArray<z.ZodString>;
|
|
1469
1608
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1498,6 +1637,23 @@ export declare const TestResultEntrySchema: z.ZodObject<{
|
|
|
1498
1637
|
}, z.core.$loose>>;
|
|
1499
1638
|
}, z.core.$loose>>>;
|
|
1500
1639
|
}, z.core.$loose>>;
|
|
1640
|
+
latency: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1641
|
+
name: z.ZodString;
|
|
1642
|
+
value: z.ZodNumber;
|
|
1643
|
+
unit: z.ZodString;
|
|
1644
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
1645
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
1646
|
+
from: z.ZodOptional<z.ZodString>;
|
|
1647
|
+
to: z.ZodOptional<z.ZodString>;
|
|
1648
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
1649
|
+
from: z.ZodOptional<z.ZodString>;
|
|
1650
|
+
to: z.ZodOptional<z.ZodString>;
|
|
1651
|
+
}, z.core.$loose>>;
|
|
1652
|
+
source: z.ZodOptional<z.ZodString>;
|
|
1653
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
1654
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
1655
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1656
|
+
}, z.core.$loose>>>;
|
|
1501
1657
|
}, z.core.$loose>;
|
|
1502
1658
|
/** One test of the catalog: what it is, its current result per environment, and how it has gone over its recorded history. */
|
|
1503
1659
|
export declare const TestSummarySchema: z.ZodObject<{
|
|
@@ -1539,11 +1695,18 @@ export declare const TestSummarySchema: z.ZodObject<{
|
|
|
1539
1695
|
layer: z.ZodString;
|
|
1540
1696
|
backend: z.ZodString;
|
|
1541
1697
|
detail: z.ZodString;
|
|
1698
|
+
specRevision: z.ZodOptional<z.ZodString>;
|
|
1542
1699
|
evidence: z.ZodOptional<z.ZodObject<{
|
|
1543
1700
|
attachments: z.ZodNumber;
|
|
1544
1701
|
steps: z.ZodNumber;
|
|
1545
1702
|
annotations: z.ZodNumber;
|
|
1546
1703
|
attempts: z.ZodNumber;
|
|
1704
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1705
|
+
passed: "passed";
|
|
1706
|
+
failed: "failed";
|
|
1707
|
+
running: "running";
|
|
1708
|
+
"not-run": "not-run";
|
|
1709
|
+
}>>>;
|
|
1547
1710
|
links: z.ZodNumber;
|
|
1548
1711
|
tags: z.ZodArray<z.ZodString>;
|
|
1549
1712
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1578,6 +1741,23 @@ export declare const TestSummarySchema: z.ZodObject<{
|
|
|
1578
1741
|
}, z.core.$loose>>;
|
|
1579
1742
|
}, z.core.$loose>>>;
|
|
1580
1743
|
}, z.core.$loose>>;
|
|
1744
|
+
latency: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1745
|
+
name: z.ZodString;
|
|
1746
|
+
value: z.ZodNumber;
|
|
1747
|
+
unit: z.ZodString;
|
|
1748
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
1749
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
1750
|
+
from: z.ZodOptional<z.ZodString>;
|
|
1751
|
+
to: z.ZodOptional<z.ZodString>;
|
|
1752
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
1753
|
+
from: z.ZodOptional<z.ZodString>;
|
|
1754
|
+
to: z.ZodOptional<z.ZodString>;
|
|
1755
|
+
}, z.core.$loose>>;
|
|
1756
|
+
source: z.ZodOptional<z.ZodString>;
|
|
1757
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
1758
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
1759
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1760
|
+
}, z.core.$loose>>>;
|
|
1581
1761
|
}, z.core.$loose>>;
|
|
1582
1762
|
stats: z.ZodObject<{
|
|
1583
1763
|
results: z.ZodNumber;
|
|
@@ -1814,11 +1994,18 @@ export declare const TestCatalogSchema: z.ZodObject<{
|
|
|
1814
1994
|
layer: z.ZodString;
|
|
1815
1995
|
backend: z.ZodString;
|
|
1816
1996
|
detail: z.ZodString;
|
|
1997
|
+
specRevision: z.ZodOptional<z.ZodString>;
|
|
1817
1998
|
evidence: z.ZodOptional<z.ZodObject<{
|
|
1818
1999
|
attachments: z.ZodNumber;
|
|
1819
2000
|
steps: z.ZodNumber;
|
|
1820
2001
|
annotations: z.ZodNumber;
|
|
1821
2002
|
attempts: z.ZodNumber;
|
|
2003
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
2004
|
+
passed: "passed";
|
|
2005
|
+
failed: "failed";
|
|
2006
|
+
running: "running";
|
|
2007
|
+
"not-run": "not-run";
|
|
2008
|
+
}>>>;
|
|
1822
2009
|
links: z.ZodNumber;
|
|
1823
2010
|
tags: z.ZodArray<z.ZodString>;
|
|
1824
2011
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1853,6 +2040,23 @@ export declare const TestCatalogSchema: z.ZodObject<{
|
|
|
1853
2040
|
}, z.core.$loose>>;
|
|
1854
2041
|
}, z.core.$loose>>>;
|
|
1855
2042
|
}, z.core.$loose>>;
|
|
2043
|
+
latency: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2044
|
+
name: z.ZodString;
|
|
2045
|
+
value: z.ZodNumber;
|
|
2046
|
+
unit: z.ZodString;
|
|
2047
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
2048
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
2049
|
+
from: z.ZodOptional<z.ZodString>;
|
|
2050
|
+
to: z.ZodOptional<z.ZodString>;
|
|
2051
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
2052
|
+
from: z.ZodOptional<z.ZodString>;
|
|
2053
|
+
to: z.ZodOptional<z.ZodString>;
|
|
2054
|
+
}, z.core.$loose>>;
|
|
2055
|
+
source: z.ZodOptional<z.ZodString>;
|
|
2056
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
2057
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
2058
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2059
|
+
}, z.core.$loose>>>;
|
|
1856
2060
|
}, z.core.$loose>>;
|
|
1857
2061
|
stats: z.ZodObject<{
|
|
1858
2062
|
results: z.ZodNumber;
|
|
@@ -2016,11 +2220,18 @@ export declare const TestHistorySchema: z.ZodObject<{
|
|
|
2016
2220
|
layer: z.ZodString;
|
|
2017
2221
|
backend: z.ZodString;
|
|
2018
2222
|
detail: z.ZodString;
|
|
2223
|
+
specRevision: z.ZodOptional<z.ZodString>;
|
|
2019
2224
|
evidence: z.ZodOptional<z.ZodObject<{
|
|
2020
2225
|
attachments: z.ZodNumber;
|
|
2021
2226
|
steps: z.ZodNumber;
|
|
2022
2227
|
annotations: z.ZodNumber;
|
|
2023
2228
|
attempts: z.ZodNumber;
|
|
2229
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
2230
|
+
passed: "passed";
|
|
2231
|
+
failed: "failed";
|
|
2232
|
+
running: "running";
|
|
2233
|
+
"not-run": "not-run";
|
|
2234
|
+
}>>>;
|
|
2024
2235
|
links: z.ZodNumber;
|
|
2025
2236
|
tags: z.ZodArray<z.ZodString>;
|
|
2026
2237
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -2055,6 +2266,23 @@ export declare const TestHistorySchema: z.ZodObject<{
|
|
|
2055
2266
|
}, z.core.$loose>>;
|
|
2056
2267
|
}, z.core.$loose>>>;
|
|
2057
2268
|
}, z.core.$loose>>;
|
|
2269
|
+
latency: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2270
|
+
name: z.ZodString;
|
|
2271
|
+
value: z.ZodNumber;
|
|
2272
|
+
unit: z.ZodString;
|
|
2273
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
2274
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
2275
|
+
from: z.ZodOptional<z.ZodString>;
|
|
2276
|
+
to: z.ZodOptional<z.ZodString>;
|
|
2277
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
2278
|
+
from: z.ZodOptional<z.ZodString>;
|
|
2279
|
+
to: z.ZodOptional<z.ZodString>;
|
|
2280
|
+
}, z.core.$loose>>;
|
|
2281
|
+
source: z.ZodOptional<z.ZodString>;
|
|
2282
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
2283
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
2284
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2285
|
+
}, z.core.$loose>>>;
|
|
2058
2286
|
}, z.core.$loose>>;
|
|
2059
2287
|
stats: z.ZodObject<{
|
|
2060
2288
|
results: z.ZodNumber;
|
|
@@ -2115,11 +2343,18 @@ export declare const TestHistorySchema: z.ZodObject<{
|
|
|
2115
2343
|
layer: z.ZodString;
|
|
2116
2344
|
backend: z.ZodString;
|
|
2117
2345
|
detail: z.ZodString;
|
|
2346
|
+
specRevision: z.ZodOptional<z.ZodString>;
|
|
2118
2347
|
evidence: z.ZodOptional<z.ZodObject<{
|
|
2119
2348
|
attachments: z.ZodNumber;
|
|
2120
2349
|
steps: z.ZodNumber;
|
|
2121
2350
|
annotations: z.ZodNumber;
|
|
2122
2351
|
attempts: z.ZodNumber;
|
|
2352
|
+
attemptStatuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
2353
|
+
passed: "passed";
|
|
2354
|
+
failed: "failed";
|
|
2355
|
+
running: "running";
|
|
2356
|
+
"not-run": "not-run";
|
|
2357
|
+
}>>>;
|
|
2123
2358
|
links: z.ZodNumber;
|
|
2124
2359
|
tags: z.ZodArray<z.ZodString>;
|
|
2125
2360
|
artifactTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -2154,6 +2389,148 @@ export declare const TestHistorySchema: z.ZodObject<{
|
|
|
2154
2389
|
}, z.core.$loose>>;
|
|
2155
2390
|
}, z.core.$loose>>>;
|
|
2156
2391
|
}, z.core.$loose>>;
|
|
2392
|
+
latency: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2393
|
+
name: z.ZodString;
|
|
2394
|
+
value: z.ZodNumber;
|
|
2395
|
+
unit: z.ZodString;
|
|
2396
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
2397
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
2398
|
+
from: z.ZodOptional<z.ZodString>;
|
|
2399
|
+
to: z.ZodOptional<z.ZodString>;
|
|
2400
|
+
intended: z.ZodOptional<z.ZodObject<{
|
|
2401
|
+
from: z.ZodOptional<z.ZodString>;
|
|
2402
|
+
to: z.ZodOptional<z.ZodString>;
|
|
2403
|
+
}, z.core.$loose>>;
|
|
2404
|
+
source: z.ZodOptional<z.ZodString>;
|
|
2405
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
2406
|
+
instrumentation: z.ZodOptional<z.ZodString>;
|
|
2407
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2408
|
+
}, z.core.$loose>>>;
|
|
2409
|
+
}, z.core.$loose>>;
|
|
2410
|
+
}, z.core.$loose>;
|
|
2411
|
+
/**
|
|
2412
|
+
* `GET /api/reports/tests/reliability`: how reliable one test is inside a scope, and exactly how that figure was counted.
|
|
2413
|
+
* The snapshots one run recorded for one producer, environment and parameter set are one independent execution; only
|
|
2414
|
+
* `passed` and `failed` executions are trials; `notes` say when the sample is too small, pooled, selectively rerun or
|
|
2415
|
+
* bounded. It reads results and never changes a status. It is not a production failure probability.
|
|
2416
|
+
*/
|
|
2417
|
+
export declare const TestReliabilitySchema: z.ZodObject<{
|
|
2418
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
2419
|
+
key: z.ZodString;
|
|
2420
|
+
scope: z.ZodObject<{
|
|
2421
|
+
environment: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2422
|
+
producer: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2423
|
+
parameter: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2424
|
+
branch: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2425
|
+
sha: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2426
|
+
specRevision: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2427
|
+
revision: z.ZodOptional<z.ZodEnum<{
|
|
2428
|
+
any: "any";
|
|
2429
|
+
current: "current";
|
|
2430
|
+
}>>;
|
|
2431
|
+
since: z.ZodOptional<z.ZodNumber>;
|
|
2432
|
+
until: z.ZodOptional<z.ZodNumber>;
|
|
2433
|
+
}, z.core.$loose>;
|
|
2434
|
+
minimumExecutions: z.ZodNumber;
|
|
2435
|
+
sample: z.ZodEnum<{
|
|
2436
|
+
none: "none";
|
|
2437
|
+
insufficient: "insufficient";
|
|
2438
|
+
sufficient: "sufficient";
|
|
2439
|
+
}>;
|
|
2440
|
+
eventual: z.ZodObject<{
|
|
2441
|
+
executions: z.ZodNumber;
|
|
2442
|
+
passed: z.ZodNumber;
|
|
2443
|
+
failed: z.ZodNumber;
|
|
2444
|
+
rate: z.ZodNullable<z.ZodNumber>;
|
|
2445
|
+
}, z.core.$loose>;
|
|
2446
|
+
interval: z.ZodNullable<z.ZodObject<{
|
|
2447
|
+
method: z.ZodLiteral<"wilson">;
|
|
2448
|
+
level: z.ZodNumber;
|
|
2449
|
+
lower: z.ZodNumber;
|
|
2450
|
+
upper: z.ZodNumber;
|
|
2451
|
+
assumptions: z.ZodString;
|
|
2452
|
+
}, z.core.$loose>>;
|
|
2453
|
+
firstAttempt: z.ZodObject<{
|
|
2454
|
+
executions: z.ZodNumber;
|
|
2455
|
+
passed: z.ZodNumber;
|
|
2456
|
+
failed: z.ZodNumber;
|
|
2457
|
+
rate: z.ZodNullable<z.ZodNumber>;
|
|
2458
|
+
}, z.core.$loose>;
|
|
2459
|
+
unrecordedAttempts: z.ZodNumber;
|
|
2460
|
+
attempts: z.ZodObject<{
|
|
2461
|
+
total: z.ZodNumber;
|
|
2462
|
+
retried: z.ZodNumber;
|
|
2463
|
+
recovered: z.ZodNumber;
|
|
2464
|
+
}, z.core.$loose>;
|
|
2465
|
+
currentRevision: z.ZodNullable<z.ZodString>;
|
|
2466
|
+
historical: z.ZodObject<{
|
|
2467
|
+
executions: z.ZodNumber;
|
|
2468
|
+
passed: z.ZodNumber;
|
|
2469
|
+
failed: z.ZodNumber;
|
|
2470
|
+
revisions: z.ZodArray<z.ZodObject<{
|
|
2471
|
+
specRevision: z.ZodString;
|
|
2472
|
+
executions: z.ZodNumber;
|
|
2473
|
+
}, z.core.$loose>>;
|
|
2474
|
+
}, z.core.$loose>;
|
|
2475
|
+
excluded: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
2476
|
+
outsideScope: z.ZodNumber;
|
|
2477
|
+
snapshots: z.ZodNumber;
|
|
2478
|
+
cohorts: z.ZodArray<z.ZodObject<{
|
|
2479
|
+
executions: z.ZodNumber;
|
|
2480
|
+
passed: z.ZodNumber;
|
|
2481
|
+
failed: z.ZodNumber;
|
|
2482
|
+
rate: z.ZodNullable<z.ZodNumber>;
|
|
2483
|
+
environment: z.ZodNullable<z.ZodString>;
|
|
2484
|
+
producer: z.ZodString;
|
|
2485
|
+
parameters: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
2486
|
+
}, z.core.$loose>>;
|
|
2487
|
+
available: z.ZodObject<{
|
|
2488
|
+
environments: z.ZodArray<z.ZodObject<{
|
|
2489
|
+
value: z.ZodString;
|
|
2490
|
+
count: z.ZodNumber;
|
|
2491
|
+
}, z.core.$loose>>;
|
|
2492
|
+
producers: z.ZodArray<z.ZodObject<{
|
|
2493
|
+
value: z.ZodString;
|
|
2494
|
+
count: z.ZodNumber;
|
|
2495
|
+
}, z.core.$loose>>;
|
|
2496
|
+
branches: z.ZodArray<z.ZodObject<{
|
|
2497
|
+
value: z.ZodString;
|
|
2498
|
+
count: z.ZodNumber;
|
|
2499
|
+
}, z.core.$loose>>;
|
|
2500
|
+
specRevisions: z.ZodArray<z.ZodObject<{
|
|
2501
|
+
value: z.ZodString;
|
|
2502
|
+
count: z.ZodNumber;
|
|
2503
|
+
}, z.core.$loose>>;
|
|
2504
|
+
}, z.core.$loose>;
|
|
2505
|
+
notes: z.ZodArray<z.ZodObject<{
|
|
2506
|
+
code: z.ZodString;
|
|
2507
|
+
severity: z.ZodEnum<{
|
|
2508
|
+
info: "info";
|
|
2509
|
+
warning: "warning";
|
|
2510
|
+
}>;
|
|
2511
|
+
message: z.ZodString;
|
|
2512
|
+
}, z.core.$loose>>;
|
|
2513
|
+
executions: z.ZodArray<z.ZodObject<{
|
|
2514
|
+
run: z.ZodString;
|
|
2515
|
+
at: z.ZodNumber;
|
|
2516
|
+
status: z.ZodString;
|
|
2517
|
+
counted: z.ZodBoolean;
|
|
2518
|
+
excluded: z.ZodOptional<z.ZodString>;
|
|
2519
|
+
environment: z.ZodNullable<z.ZodString>;
|
|
2520
|
+
producer: z.ZodString;
|
|
2521
|
+
kind: z.ZodString;
|
|
2522
|
+
parameters: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
2523
|
+
branch: z.ZodNullable<z.ZodString>;
|
|
2524
|
+
sha: z.ZodNullable<z.ZodString>;
|
|
2525
|
+
runUrl: z.ZodNullable<z.ZodString>;
|
|
2526
|
+
layer: z.ZodString;
|
|
2527
|
+
backend: z.ZodString;
|
|
2528
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
2529
|
+
specRevision: z.ZodOptional<z.ZodString>;
|
|
2530
|
+
snapshots: z.ZodNumber;
|
|
2531
|
+
attempts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2532
|
+
firstAttempt: z.ZodOptional<z.ZodString>;
|
|
2533
|
+
republished: z.ZodBoolean;
|
|
2157
2534
|
}, z.core.$loose>>;
|
|
2158
2535
|
}, z.core.$loose>;
|
|
2159
2536
|
/** A run: the layers that name the same execution (else share a run URL, else a branch and commit), with what they recorded. */
|