@crvouga/atlas 1.2.0 → 1.4.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 (50) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/reports/src/evidence-detail.d.ts +37 -3
  3. package/dist/reports/src/evidence-detail.js +52 -20
  4. package/dist/reports/src/evidence-scope.d.ts +83 -0
  5. package/dist/reports/src/evidence-scope.js +129 -0
  6. package/dist/reports/src/evidence-types.d.ts +3 -1
  7. package/dist/reports/src/explorer-types.d.ts +1 -1
  8. package/dist/reports/src/export-evidence.js +1 -1
  9. package/dist/reports/src/layer-merge.js +3 -2
  10. package/dist/reports/src/layer-types.d.ts +1 -1
  11. package/dist/reports/src/layers-route.d.ts +2 -1
  12. package/dist/reports/src/layers-route.js +8 -4
  13. package/dist/reports/src/publish-checks.js +1 -0
  14. package/dist/reports/src/reporter.d.ts +1 -1
  15. package/dist/reports/src/reports-explorer-route.d.ts +276 -0
  16. package/dist/reports/src/reports-route.d.ts +276 -0
  17. package/dist/reports/src/test-catalog.d.ts +34 -1
  18. package/dist/reports/src/test-catalog.js +23 -5
  19. package/dist/schema/src/api.d.ts +542 -0
  20. package/dist/schema/src/api.js +17 -5
  21. package/dist/schema/src/layer.d.ts +981 -0
  22. package/dist/schema/src/layer.js +43 -4
  23. package/dist/server/src/openapi.js +3 -2
  24. package/docs/extending.md +1 -0
  25. package/docs/reference/http-api.md +6 -4
  26. package/docs/reference/reports.md +243 -14
  27. package/docs/reference/schema.md +23 -0
  28. package/docs/rich-evidence.md +70 -0
  29. package/docs/ui.md +1 -1
  30. package/llms-full.txt +78 -5
  31. package/package.json +1 -1
  32. package/packages/schema/schemas/check-detail.schema.json +697 -1
  33. package/packages/schema/schemas/effective-delta.schema.json +192 -0
  34. package/packages/schema/schemas/effective-evidence.schema.json +192 -0
  35. package/packages/schema/schemas/evidence-page.schema.json +96 -0
  36. package/packages/schema/schemas/layer-rows.schema.json +96 -0
  37. package/packages/schema/schemas/layer.schema.json +1598 -62
  38. package/packages/schema/schemas/publish-checks.schema.json +768 -0
  39. package/packages/schema/schemas/report-run.schema.json +181 -0
  40. package/packages/schema/schemas/report-runs.schema.json +6 -0
  41. package/packages/schema/schemas/test-catalog.schema.json +128 -0
  42. package/packages/schema/schemas/test-history.schema.json +202 -0
  43. package/packages/server/openapi.json +2721 -48
  44. package/packages/visualizer/src/evidence/artifacts.tsx +77 -29
  45. package/packages/visualizer/src/evidence/evidence-scope.tsx +106 -0
  46. package/packages/visualizer/src/evidence/format.ts +11 -0
  47. package/packages/visualizer/src/explorer/Explorer.tsx +28 -5
  48. package/packages/visualizer/src/explorer/RunArtifacts.tsx +246 -0
  49. package/packages/visualizer/src/explorer/RunsView.tsx +40 -9
  50. package/packages/visualizer/src/explorer/search.ts +10 -3
@@ -67,6 +67,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
67
67
  } | null;
68
68
  parts: readonly {
69
69
  tags?: string[] | undefined;
70
+ scope?: {
71
+ [x: string]: import("hono/utils/types").JSONValue;
72
+ surface?: string | undefined;
73
+ deviceKind?: string | undefined;
74
+ syntheticData?: boolean | undefined;
75
+ dependencies?: string | undefined;
76
+ audioCaptured?: boolean | undefined;
77
+ pacing?: string | undefined;
78
+ asserted?: string[] | undefined;
79
+ limitations?: string[] | undefined;
80
+ declaredBy?: string | undefined;
81
+ verified?: string[] | undefined;
82
+ verifiedBy?: string | undefined;
83
+ provenance?: {
84
+ [x: string]: import("hono/utils/types").JSONValue;
85
+ url: string;
86
+ name?: string | undefined;
87
+ rel?: string | undefined;
88
+ }[] | undefined;
89
+ extensions?: {
90
+ [x: string]: import("hono/utils/types").JSONValue;
91
+ } | undefined;
92
+ } | undefined;
70
93
  attachments?: {
71
94
  [x: string]: import("hono/utils/types").JSONValue;
72
95
  name: string;
@@ -83,6 +106,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
83
106
  durationMs?: number | undefined;
84
107
  description?: string | undefined;
85
108
  omitted?: string | undefined;
109
+ scope?: {
110
+ [x: string]: import("hono/utils/types").JSONValue;
111
+ surface?: string | undefined;
112
+ deviceKind?: string | undefined;
113
+ syntheticData?: boolean | undefined;
114
+ dependencies?: string | undefined;
115
+ audioCaptured?: boolean | undefined;
116
+ pacing?: string | undefined;
117
+ asserted?: string[] | undefined;
118
+ limitations?: string[] | undefined;
119
+ declaredBy?: string | undefined;
120
+ verified?: string[] | undefined;
121
+ verifiedBy?: string | undefined;
122
+ provenance?: {
123
+ [x: string]: import("hono/utils/types").JSONValue;
124
+ url: string;
125
+ name?: string | undefined;
126
+ rel?: string | undefined;
127
+ }[] | undefined;
128
+ extensions?: {
129
+ [x: string]: import("hono/utils/types").JSONValue;
130
+ } | undefined;
131
+ } | undefined;
86
132
  tags?: string[] | undefined;
87
133
  at?: {
88
134
  [x: string]: import("hono/utils/types").JSONValue;
@@ -102,6 +148,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
102
148
  durationMs?: number | undefined;
103
149
  startedAtMs?: number | undefined;
104
150
  detail?: string | undefined;
151
+ scope?: {
152
+ [x: string]: import("hono/utils/types").JSONValue;
153
+ surface?: string | undefined;
154
+ deviceKind?: string | undefined;
155
+ syntheticData?: boolean | undefined;
156
+ dependencies?: string | undefined;
157
+ audioCaptured?: boolean | undefined;
158
+ pacing?: string | undefined;
159
+ asserted?: string[] | undefined;
160
+ limitations?: string[] | undefined;
161
+ declaredBy?: string | undefined;
162
+ verified?: string[] | undefined;
163
+ verifiedBy?: string | undefined;
164
+ provenance?: {
165
+ [x: string]: import("hono/utils/types").JSONValue;
166
+ url: string;
167
+ name?: string | undefined;
168
+ rel?: string | undefined;
169
+ }[] | undefined;
170
+ extensions?: {
171
+ [x: string]: import("hono/utils/types").JSONValue;
172
+ } | undefined;
173
+ } | undefined;
105
174
  steps?: {
106
175
  [x: string]: import("hono/utils/types").JSONValue;
107
176
  name: string;
@@ -128,6 +197,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
128
197
  durationMs?: number | undefined;
129
198
  description?: string | undefined;
130
199
  omitted?: string | undefined;
200
+ scope?: {
201
+ [x: string]: import("hono/utils/types").JSONValue;
202
+ surface?: string | undefined;
203
+ deviceKind?: string | undefined;
204
+ syntheticData?: boolean | undefined;
205
+ dependencies?: string | undefined;
206
+ audioCaptured?: boolean | undefined;
207
+ pacing?: string | undefined;
208
+ asserted?: string[] | undefined;
209
+ limitations?: string[] | undefined;
210
+ declaredBy?: string | undefined;
211
+ verified?: string[] | undefined;
212
+ verifiedBy?: string | undefined;
213
+ provenance?: {
214
+ [x: string]: import("hono/utils/types").JSONValue;
215
+ url: string;
216
+ name?: string | undefined;
217
+ rel?: string | undefined;
218
+ }[] | undefined;
219
+ extensions?: {
220
+ [x: string]: import("hono/utils/types").JSONValue;
221
+ } | undefined;
222
+ } | undefined;
131
223
  tags?: string[] | undefined;
132
224
  at?: {
133
225
  [x: string]: import("hono/utils/types").JSONValue;
@@ -186,6 +278,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
186
278
  durationMs?: number | undefined;
187
279
  description?: string | undefined;
188
280
  omitted?: string | undefined;
281
+ scope?: {
282
+ [x: string]: import("hono/utils/types").JSONValue;
283
+ surface?: string | undefined;
284
+ deviceKind?: string | undefined;
285
+ syntheticData?: boolean | undefined;
286
+ dependencies?: string | undefined;
287
+ audioCaptured?: boolean | undefined;
288
+ pacing?: string | undefined;
289
+ asserted?: string[] | undefined;
290
+ limitations?: string[] | undefined;
291
+ declaredBy?: string | undefined;
292
+ verified?: string[] | undefined;
293
+ verifiedBy?: string | undefined;
294
+ provenance?: {
295
+ [x: string]: import("hono/utils/types").JSONValue;
296
+ url: string;
297
+ name?: string | undefined;
298
+ rel?: string | undefined;
299
+ }[] | undefined;
300
+ extensions?: {
301
+ [x: string]: import("hono/utils/types").JSONValue;
302
+ } | undefined;
303
+ } | undefined;
189
304
  tags?: string[] | undefined;
190
305
  at?: {
191
306
  [x: string]: import("hono/utils/types").JSONValue;
@@ -254,6 +369,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
254
369
  durationMs?: number | undefined;
255
370
  description?: string | undefined;
256
371
  omitted?: string | undefined;
372
+ scope?: {
373
+ [x: string]: import("hono/utils/types").JSONValue;
374
+ surface?: string | undefined;
375
+ deviceKind?: string | undefined;
376
+ syntheticData?: boolean | undefined;
377
+ dependencies?: string | undefined;
378
+ audioCaptured?: boolean | undefined;
379
+ pacing?: string | undefined;
380
+ asserted?: string[] | undefined;
381
+ limitations?: string[] | undefined;
382
+ declaredBy?: string | undefined;
383
+ verified?: string[] | undefined;
384
+ verifiedBy?: string | undefined;
385
+ provenance?: {
386
+ [x: string]: import("hono/utils/types").JSONValue;
387
+ url: string;
388
+ name?: string | undefined;
389
+ rel?: string | undefined;
390
+ }[] | undefined;
391
+ extensions?: {
392
+ [x: string]: import("hono/utils/types").JSONValue;
393
+ } | undefined;
394
+ } | undefined;
257
395
  tags?: string[] | undefined;
258
396
  at?: {
259
397
  [x: string]: import("hono/utils/types").JSONValue;
@@ -345,6 +483,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
345
483
  readonly recordedAtMs: number;
346
484
  readonly checks: readonly {
347
485
  tags?: string[] | undefined;
486
+ scope?: {
487
+ [x: string]: import("hono/utils/types").JSONValue;
488
+ surface?: string | undefined;
489
+ deviceKind?: string | undefined;
490
+ syntheticData?: boolean | undefined;
491
+ dependencies?: string | undefined;
492
+ audioCaptured?: boolean | undefined;
493
+ pacing?: string | undefined;
494
+ asserted?: string[] | undefined;
495
+ limitations?: string[] | undefined;
496
+ declaredBy?: string | undefined;
497
+ verified?: string[] | undefined;
498
+ verifiedBy?: string | undefined;
499
+ provenance?: {
500
+ [x: string]: import("hono/utils/types").JSONValue;
501
+ url: string;
502
+ name?: string | undefined;
503
+ rel?: string | undefined;
504
+ }[] | undefined;
505
+ extensions?: {
506
+ [x: string]: import("hono/utils/types").JSONValue;
507
+ } | undefined;
508
+ } | undefined;
348
509
  attachments?: {
349
510
  [x: string]: import("hono/utils/types").JSONValue;
350
511
  name: string;
@@ -361,6 +522,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
361
522
  durationMs?: number | undefined;
362
523
  description?: string | undefined;
363
524
  omitted?: string | undefined;
525
+ scope?: {
526
+ [x: string]: import("hono/utils/types").JSONValue;
527
+ surface?: string | undefined;
528
+ deviceKind?: string | undefined;
529
+ syntheticData?: boolean | undefined;
530
+ dependencies?: string | undefined;
531
+ audioCaptured?: boolean | undefined;
532
+ pacing?: string | undefined;
533
+ asserted?: string[] | undefined;
534
+ limitations?: string[] | undefined;
535
+ declaredBy?: string | undefined;
536
+ verified?: string[] | undefined;
537
+ verifiedBy?: string | undefined;
538
+ provenance?: {
539
+ [x: string]: import("hono/utils/types").JSONValue;
540
+ url: string;
541
+ name?: string | undefined;
542
+ rel?: string | undefined;
543
+ }[] | undefined;
544
+ extensions?: {
545
+ [x: string]: import("hono/utils/types").JSONValue;
546
+ } | undefined;
547
+ } | undefined;
364
548
  tags?: string[] | undefined;
365
549
  at?: {
366
550
  [x: string]: import("hono/utils/types").JSONValue;
@@ -380,6 +564,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
380
564
  durationMs?: number | undefined;
381
565
  startedAtMs?: number | undefined;
382
566
  detail?: string | undefined;
567
+ scope?: {
568
+ [x: string]: import("hono/utils/types").JSONValue;
569
+ surface?: string | undefined;
570
+ deviceKind?: string | undefined;
571
+ syntheticData?: boolean | undefined;
572
+ dependencies?: string | undefined;
573
+ audioCaptured?: boolean | undefined;
574
+ pacing?: string | undefined;
575
+ asserted?: string[] | undefined;
576
+ limitations?: string[] | undefined;
577
+ declaredBy?: string | undefined;
578
+ verified?: string[] | undefined;
579
+ verifiedBy?: string | undefined;
580
+ provenance?: {
581
+ [x: string]: import("hono/utils/types").JSONValue;
582
+ url: string;
583
+ name?: string | undefined;
584
+ rel?: string | undefined;
585
+ }[] | undefined;
586
+ extensions?: {
587
+ [x: string]: import("hono/utils/types").JSONValue;
588
+ } | undefined;
589
+ } | undefined;
383
590
  steps?: {
384
591
  [x: string]: import("hono/utils/types").JSONValue;
385
592
  name: string;
@@ -406,6 +613,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
406
613
  durationMs?: number | undefined;
407
614
  description?: string | undefined;
408
615
  omitted?: string | undefined;
616
+ scope?: {
617
+ [x: string]: import("hono/utils/types").JSONValue;
618
+ surface?: string | undefined;
619
+ deviceKind?: string | undefined;
620
+ syntheticData?: boolean | undefined;
621
+ dependencies?: string | undefined;
622
+ audioCaptured?: boolean | undefined;
623
+ pacing?: string | undefined;
624
+ asserted?: string[] | undefined;
625
+ limitations?: string[] | undefined;
626
+ declaredBy?: string | undefined;
627
+ verified?: string[] | undefined;
628
+ verifiedBy?: string | undefined;
629
+ provenance?: {
630
+ [x: string]: import("hono/utils/types").JSONValue;
631
+ url: string;
632
+ name?: string | undefined;
633
+ rel?: string | undefined;
634
+ }[] | undefined;
635
+ extensions?: {
636
+ [x: string]: import("hono/utils/types").JSONValue;
637
+ } | undefined;
638
+ } | undefined;
409
639
  tags?: string[] | undefined;
410
640
  at?: {
411
641
  [x: string]: import("hono/utils/types").JSONValue;
@@ -464,6 +694,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
464
694
  durationMs?: number | undefined;
465
695
  description?: string | undefined;
466
696
  omitted?: string | undefined;
697
+ scope?: {
698
+ [x: string]: import("hono/utils/types").JSONValue;
699
+ surface?: string | undefined;
700
+ deviceKind?: string | undefined;
701
+ syntheticData?: boolean | undefined;
702
+ dependencies?: string | undefined;
703
+ audioCaptured?: boolean | undefined;
704
+ pacing?: string | undefined;
705
+ asserted?: string[] | undefined;
706
+ limitations?: string[] | undefined;
707
+ declaredBy?: string | undefined;
708
+ verified?: string[] | undefined;
709
+ verifiedBy?: string | undefined;
710
+ provenance?: {
711
+ [x: string]: import("hono/utils/types").JSONValue;
712
+ url: string;
713
+ name?: string | undefined;
714
+ rel?: string | undefined;
715
+ }[] | undefined;
716
+ extensions?: {
717
+ [x: string]: import("hono/utils/types").JSONValue;
718
+ } | undefined;
719
+ } | undefined;
467
720
  tags?: string[] | undefined;
468
721
  at?: {
469
722
  [x: string]: import("hono/utils/types").JSONValue;
@@ -532,6 +785,29 @@ export declare function createReportsExplorerApp(deps: ReportsExplorerDeps): imp
532
785
  durationMs?: number | undefined;
533
786
  description?: string | undefined;
534
787
  omitted?: string | undefined;
788
+ scope?: {
789
+ [x: string]: import("hono/utils/types").JSONValue;
790
+ surface?: string | undefined;
791
+ deviceKind?: string | undefined;
792
+ syntheticData?: boolean | undefined;
793
+ dependencies?: string | undefined;
794
+ audioCaptured?: boolean | undefined;
795
+ pacing?: string | undefined;
796
+ asserted?: string[] | undefined;
797
+ limitations?: string[] | undefined;
798
+ declaredBy?: string | undefined;
799
+ verified?: string[] | undefined;
800
+ verifiedBy?: string | undefined;
801
+ provenance?: {
802
+ [x: string]: import("hono/utils/types").JSONValue;
803
+ url: string;
804
+ name?: string | undefined;
805
+ rel?: string | undefined;
806
+ }[] | undefined;
807
+ extensions?: {
808
+ [x: string]: import("hono/utils/types").JSONValue;
809
+ } | undefined;
810
+ } | undefined;
535
811
  tags?: string[] | undefined;
536
812
  at?: {
537
813
  [x: string]: import("hono/utils/types").JSONValue;