@jrpool/kilotest 59.1.3 → 60.0.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 (64) hide show
  1. package/README.md +2 -5
  2. package/api/awaitTest.test.ts +9 -9
  3. package/api/awaitTest.ts +12 -12
  4. package/api/getReport.test.ts +4 -4
  5. package/api/getReport.ts +9 -9
  6. package/api/listDiagnoses.test.ts +14 -14
  7. package/api/listDiagnoses.ts +8 -8
  8. package/api/listIssues.test.ts +15 -15
  9. package/api/listIssues.ts +18 -20
  10. package/api/listPages.test.ts +2 -2
  11. package/api/listPages.ts +4 -4
  12. package/api/listViolators.test.ts +10 -10
  13. package/api/listViolators.ts +10 -10
  14. package/api/orderNewTest.test.ts +1 -2
  15. package/api/orderNewTest.ts +3 -4
  16. package/api/orderRetest.test.ts +10 -10
  17. package/api/orderRetest.ts +13 -14
  18. package/api/requestRetest.test.ts +11 -11
  19. package/api/requestRetest.ts +11 -11
  20. package/api/routes.ts +9 -11
  21. package/api/schemas.ts +18 -28
  22. package/api/util.test.ts +2 -2
  23. package/api/util.ts +7 -7
  24. package/capability.md +4 -4
  25. package/docs/AI-TOOLS.md +45 -5
  26. package/docs/decisions/009-report-id.md +16 -0
  27. package/index.test.ts +91 -41
  28. package/index.ts +66 -15
  29. package/lhm.plugin.json +33 -119
  30. package/llms-full.txt +18 -24
  31. package/llms.txt +12 -12
  32. package/mcp.test.ts +11 -20
  33. package/mcp.ts +18 -18
  34. package/openapi-3.0.yaml +1847 -0
  35. package/openapi.yaml +38 -97
  36. package/package.json +8 -2
  37. package/routing.test.ts +1 -1
  38. package/scripts/generate-openapi.ts +83 -1
  39. package/scripts/postPR.ts +89 -0
  40. package/scripts/prePR.ts +64 -0
  41. package/server.json +1 -1
  42. package/util.test.ts +32 -33
  43. package/util.ts +47 -43
  44. package/web/hideReportForm/index.ts +5 -6
  45. package/web/listDiagnoses/index.ts +4 -5
  46. package/web/listDiagnoses/listDiagnoses.test.ts +13 -13
  47. package/web/listIssues/index.ts +11 -12
  48. package/web/listIssues/listIssues.test.ts +24 -24
  49. package/web/listPages/index.ts +2 -2
  50. package/web/listPages/listPages.test.ts +2 -2
  51. package/web/listTopIssues/index.ts +2 -2
  52. package/web/listViolators/index.ts +5 -6
  53. package/web/listViolators/listViolators.test.ts +12 -12
  54. package/web/reannotate/index.ts +3 -3
  55. package/web/reannotateForm/index.ts +1 -2
  56. package/web/reportDeletion.ts +9 -12
  57. package/web/requestRetest/index.ts +2 -2
  58. package/web/requestRetest/requestRetest.test.ts +7 -7
  59. package/web/requestRetestForm/index.html +2 -2
  60. package/web/requestRetestForm/index.ts +3 -4
  61. package/web/requestRetestForm/requestRetestForm.test.ts +7 -8
  62. package/web/unhideReportForm/index.ts +4 -6
  63. package/web/util.test.ts +29 -29
  64. package/web/util.ts +1 -1
@@ -0,0 +1,1847 @@
1
+ openapi: 3.0.3
2
+ info:
3
+ title: Kilotest API
4
+ description: 'Kilotest is an ensemble testing and reporting service for front-end web quality. It uses an ensemble of 12 rule engines to test web pages for front-end quality (accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG). Kilotest acts as a web server for human users, an MCP server for AI platforms, and an API for programmatic access. With this API you can request that a page be tested or retested, discover available reports, incrementally retrieve facts from a report: from what reports are available, to what issues were reported in one report, to what elements violated one issue, to what diagnoses rule engines gave for one violation.'
5
+ version: 59.1.4
6
+ license:
7
+ name: MIT
8
+ url: https://github.com/jrpool/kilotest/blob/main/LICENSE
9
+ contact:
10
+ name: Kilotest
11
+ url: https://github.com/jrpool/kilotest
12
+ email: info@kilotest.com
13
+ servers:
14
+ - url: https://kilotest.com
15
+ description: Kilotest production server
16
+ security: []
17
+ paths:
18
+ /api/listPages:
19
+ get:
20
+ operationId: listPages
21
+ summary: List all tested pages
22
+ responses:
23
+ '200':
24
+ description: List all tested pages
25
+ content:
26
+ application/json:
27
+ schema:
28
+ type: object
29
+ properties:
30
+ tool collection:
31
+ $ref: '#/components/schemas/ToolsFacts'
32
+ tool name:
33
+ type: string
34
+ this request:
35
+ type: object
36
+ properties:
37
+ description:
38
+ type: string
39
+ method:
40
+ type: string
41
+ enum:
42
+ - GET
43
+ URL:
44
+ type: string
45
+ closest ancestor request:
46
+ allOf:
47
+ - $ref: '#/components/schemas/RequestReference'
48
+ type: object
49
+ nullable: true
50
+ required:
51
+ - description
52
+ - method
53
+ - URL
54
+ - closest ancestor request
55
+ additionalProperties: false
56
+ URLs of similar requests for web users:
57
+ $ref: '#/components/schemas/SimilarWebRequests'
58
+ response metadata:
59
+ $ref: '#/components/schemas/ResponseMetadata'
60
+ response content:
61
+ type: object
62
+ properties:
63
+ basics about all tested pages:
64
+ type: array
65
+ items:
66
+ type: object
67
+ properties:
68
+ tested web page:
69
+ type: object
70
+ properties:
71
+ description:
72
+ type: string
73
+ URL:
74
+ type: string
75
+ required:
76
+ - description
77
+ - URL
78
+ additionalProperties: false
79
+ number of reports about the page:
80
+ type: number
81
+ basics about the latest report:
82
+ type: object
83
+ properties:
84
+ identifier:
85
+ type: string
86
+ description: 'Identifier of the report (example: 260503T0432-x9z).'
87
+ completion date and time:
88
+ type: string
89
+ days since the report was completed:
90
+ type: number
91
+ nullable: true
92
+ required:
93
+ - identifier
94
+ - completion date and time
95
+ - days since the report was completed
96
+ additionalProperties: false
97
+ how to get details about the latest report:
98
+ type: object
99
+ properties:
100
+ method:
101
+ type: string
102
+ enum:
103
+ - GET
104
+ URL:
105
+ type: string
106
+ required:
107
+ - method
108
+ - URL
109
+ additionalProperties: false
110
+ web users can get details about the latest report at:
111
+ type: string
112
+ required:
113
+ - tested web page
114
+ - number of reports about the page
115
+ - basics about the latest report
116
+ - how to get details about the latest report
117
+ - web users can get details about the latest report at
118
+ additionalProperties: false
119
+ how to request that a page with no report be tested:
120
+ type: object
121
+ properties:
122
+ method:
123
+ type: string
124
+ enum:
125
+ - POST
126
+ URL:
127
+ type: string
128
+ request body:
129
+ type: object
130
+ properties:
131
+ description:
132
+ type: string
133
+ URL:
134
+ type: string
135
+ reason:
136
+ type: string
137
+ required:
138
+ - description
139
+ - URL
140
+ - reason
141
+ additionalProperties: false
142
+ how to check whether the request has been fulfilled:
143
+ type: string
144
+ required:
145
+ - method
146
+ - URL
147
+ - request body
148
+ - how to check whether the request has been fulfilled
149
+ additionalProperties: false
150
+ how a web user can request that the page be tested:
151
+ type: object
152
+ properties:
153
+ URL:
154
+ type: string
155
+ required:
156
+ - URL
157
+ additionalProperties: false
158
+ required:
159
+ - basics about all tested pages
160
+ - how to request that a page with no report be tested
161
+ - how a web user can request that the page be tested
162
+ additionalProperties: false
163
+ required:
164
+ - tool collection
165
+ - tool name
166
+ - this request
167
+ - URLs of similar requests for web users
168
+ - response metadata
169
+ - response content
170
+ additionalProperties: false
171
+ /api/listIssues/{reportID}:
172
+ get:
173
+ operationId: listIssues
174
+ summary: List basics about the issues in one report
175
+ parameters:
176
+ - in: path
177
+ name: reportID
178
+ schema:
179
+ type: string
180
+ description: 'Identifier of the report (example: 260503T0432-x9z)'
181
+ required: true
182
+ description: 'Identifier of the report (example: 260503T0432-x9z)'
183
+ responses:
184
+ '200':
185
+ description: List basics about the issues in one report
186
+ content:
187
+ application/json:
188
+ schema:
189
+ type: object
190
+ properties:
191
+ tool collection:
192
+ $ref: '#/components/schemas/ToolsFacts'
193
+ tool name:
194
+ type: string
195
+ this request:
196
+ type: object
197
+ properties:
198
+ description:
199
+ type: string
200
+ method:
201
+ type: string
202
+ enum:
203
+ - GET
204
+ URL:
205
+ type: string
206
+ closest ancestor request:
207
+ allOf:
208
+ - $ref: '#/components/schemas/RequestReference'
209
+ type: object
210
+ nullable: true
211
+ required:
212
+ - description
213
+ - method
214
+ - URL
215
+ - closest ancestor request
216
+ additionalProperties: false
217
+ URLs of similar requests for web users:
218
+ $ref: '#/components/schemas/SimilarWebRequests'
219
+ response metadata:
220
+ $ref: '#/components/schemas/ResponseMetadata'
221
+ response content:
222
+ type: object
223
+ properties:
224
+ basics about the report:
225
+ $ref: '#/components/schemas/ReportBasicsOrError'
226
+ history of reports about the page:
227
+ description: All reports about the same page, from oldest to latest, or null if the report is unavailable.
228
+ type: array
229
+ items:
230
+ type: object
231
+ properties:
232
+ identifier:
233
+ type: string
234
+ description: 'Identifier of the report (example: 260503T0432-x9z).'
235
+ completion date and time:
236
+ type: string
237
+ days since the report was completed:
238
+ type: number
239
+ nullable: true
240
+ whether it is the oldest report about the page:
241
+ type: boolean
242
+ whether it is the latest report about the page:
243
+ type: boolean
244
+ whether it is the report described in this response:
245
+ type: boolean
246
+ how to get details about the report:
247
+ type: object
248
+ properties:
249
+ method:
250
+ type: string
251
+ enum:
252
+ - GET
253
+ URL:
254
+ type: string
255
+ required:
256
+ - method
257
+ - URL
258
+ additionalProperties: false
259
+ web users can get details about the report at:
260
+ type: string
261
+ required:
262
+ - identifier
263
+ - completion date and time
264
+ - days since the report was completed
265
+ - whether it is the oldest report about the page
266
+ - whether it is the latest report about the page
267
+ - whether it is the report described in this response
268
+ - how to get details about the report
269
+ - web users can get details about the report at
270
+ additionalProperties: false
271
+ nullable: true
272
+ details about the report:
273
+ type: object
274
+ properties:
275
+ job definition:
276
+ type: object
277
+ properties:
278
+ whether the job prohibited redirection:
279
+ description: Copied from the report (strict); type not guaranteed.
280
+ whether the native results of rule engines are reported:
281
+ type: boolean
282
+ whether standardized results are reported:
283
+ type: boolean
284
+ device emulated by the job:
285
+ description: Device object copied verbatim from the report; shape may vary.
286
+ browser type used by the job:
287
+ description: Copied from the report (browserID); type not guaranteed.
288
+ required:
289
+ - whether the job prohibited redirection
290
+ - whether the native results of rule engines are reported
291
+ - whether standardized results are reported
292
+ - device emulated by the job
293
+ - browser type used by the job
294
+ additionalProperties: false
295
+ test results:
296
+ type: object
297
+ properties:
298
+ rule engines that tried to test the page:
299
+ type: array
300
+ items:
301
+ $ref: '#/components/schemas/RuleEngineFacts'
302
+ rule engines that could not test the page:
303
+ type: array
304
+ items:
305
+ type: object
306
+ properties:
307
+ name:
308
+ type: string
309
+ nullable: true
310
+ reason for failure:
311
+ description: Copied verbatim from the Testaro report; shape may vary.
312
+ required:
313
+ - name
314
+ - reason for failure
315
+ additionalProperties: false
316
+ names of rule engines that reported rule violations:
317
+ type: array
318
+ items:
319
+ type: string
320
+ nullable: true
321
+ counts of issues by priority:
322
+ type: object
323
+ properties:
324
+ highest:
325
+ type: number
326
+ high:
327
+ type: number
328
+ low:
329
+ type: number
330
+ lowest:
331
+ type: number
332
+ required:
333
+ - highest
334
+ - high
335
+ - low
336
+ - lowest
337
+ additionalProperties: false
338
+ number of elements reported as violators:
339
+ type: number
340
+ required:
341
+ - rule engines that tried to test the page
342
+ - rule engines that could not test the page
343
+ - names of rule engines that reported rule violations
344
+ - counts of issues by priority
345
+ - number of elements reported as violators
346
+ additionalProperties: false
347
+ required:
348
+ - job definition
349
+ - test results
350
+ additionalProperties: false
351
+ nullable: true
352
+ how to request that the page be retested:
353
+ anyOf:
354
+ - anyOf:
355
+ - type: object
356
+ properties:
357
+ notice:
358
+ type: string
359
+ required:
360
+ - notice
361
+ additionalProperties: false
362
+ - type: object
363
+ properties:
364
+ method:
365
+ type: string
366
+ enum:
367
+ - POST
368
+ URL:
369
+ type: string
370
+ request body:
371
+ type: object
372
+ properties:
373
+ reason:
374
+ type: string
375
+ required:
376
+ - reason
377
+ additionalProperties: false
378
+ how to check whether the request has been fulfilled:
379
+ type: string
380
+ required:
381
+ - method
382
+ - URL
383
+ - request body
384
+ - how to check whether the request has been fulfilled
385
+ additionalProperties: false
386
+ - type: object
387
+ nullable: true
388
+ how a web user can request that the page be retested:
389
+ type: object
390
+ properties:
391
+ URL:
392
+ type: string
393
+ required:
394
+ - URL
395
+ additionalProperties: false
396
+ nullable: true
397
+ how to get the full report in JSON:
398
+ type: object
399
+ properties:
400
+ size of the report in bytes:
401
+ type: number
402
+ method:
403
+ type: string
404
+ enum:
405
+ - GET
406
+ URL:
407
+ type: string
408
+ required:
409
+ - size of the report in bytes
410
+ - method
411
+ - URL
412
+ additionalProperties: false
413
+ nullable: true
414
+ how a web user can get the full report in JSON:
415
+ type: object
416
+ properties:
417
+ URL:
418
+ type: string
419
+ required:
420
+ - URL
421
+ additionalProperties: false
422
+ nullable: true
423
+ basics about all issues reported in the report:
424
+ type: array
425
+ items:
426
+ type: object
427
+ properties:
428
+ identifier:
429
+ type: string
430
+ summary:
431
+ type: string
432
+ impact on a user:
433
+ type: string
434
+ priority:
435
+ type: string
436
+ enum:
437
+ - lowest
438
+ - low
439
+ - high
440
+ - highest
441
+ rule engines with any violations belonging to the issue:
442
+ type: array
443
+ items:
444
+ type: string
445
+ nullable: true
446
+ how to get details about the issue:
447
+ type: object
448
+ properties:
449
+ method:
450
+ type: string
451
+ enum:
452
+ - GET
453
+ URL:
454
+ type: string
455
+ required:
456
+ - method
457
+ - URL
458
+ additionalProperties: false
459
+ web users can get details about the issue at:
460
+ type: string
461
+ required:
462
+ - identifier
463
+ - summary
464
+ - impact on a user
465
+ - priority
466
+ - rule engines with any violations belonging to the issue
467
+ - how to get details about the issue
468
+ - web users can get details about the issue at
469
+ additionalProperties: false
470
+ nullable: true
471
+ required:
472
+ - basics about the report
473
+ - history of reports about the page
474
+ - details about the report
475
+ - how to request that the page be retested
476
+ - how a web user can request that the page be retested
477
+ - how to get the full report in JSON
478
+ - how a web user can get the full report in JSON
479
+ - basics about all issues reported in the report
480
+ additionalProperties: false
481
+ required:
482
+ - tool collection
483
+ - tool name
484
+ - this request
485
+ - URLs of similar requests for web users
486
+ - response metadata
487
+ - response content
488
+ additionalProperties: false
489
+ /api/listViolators/{issueID}/{reportID}:
490
+ get:
491
+ operationId: listViolators
492
+ summary: List elements reported as exhibiting one issue
493
+ parameters:
494
+ - in: path
495
+ name: issueID
496
+ schema:
497
+ type: string
498
+ description: 'Issue identifier (example: contrastPoor)'
499
+ required: true
500
+ description: 'Issue identifier (example: contrastPoor)'
501
+ - in: path
502
+ name: reportID
503
+ schema:
504
+ type: string
505
+ description: 'Identifier of the report (example: 260503T0432-x9z)'
506
+ required: true
507
+ description: 'Identifier of the report (example: 260503T0432-x9z)'
508
+ responses:
509
+ '200':
510
+ description: List elements reported as exhibiting one issue
511
+ content:
512
+ application/json:
513
+ schema:
514
+ type: object
515
+ properties:
516
+ tool collection:
517
+ $ref: '#/components/schemas/ToolsFacts'
518
+ tool name:
519
+ type: string
520
+ this request:
521
+ type: object
522
+ properties:
523
+ description:
524
+ type: string
525
+ method:
526
+ type: string
527
+ enum:
528
+ - GET
529
+ URL:
530
+ type: string
531
+ closest ancestor request:
532
+ allOf:
533
+ - $ref: '#/components/schemas/RequestReference'
534
+ type: object
535
+ nullable: true
536
+ required:
537
+ - description
538
+ - method
539
+ - URL
540
+ - closest ancestor request
541
+ additionalProperties: false
542
+ URLs of similar requests for web users:
543
+ $ref: '#/components/schemas/SimilarWebRequests'
544
+ response metadata:
545
+ $ref: '#/components/schemas/ResponseMetadata'
546
+ response content:
547
+ type: object
548
+ properties:
549
+ basics about the report:
550
+ $ref: '#/components/schemas/ReportBasicsOrError'
551
+ basics about the issue:
552
+ $ref: '#/components/schemas/IssueBasicsOrError'
553
+ details about the issue:
554
+ type: object
555
+ properties:
556
+ rule engines reporting violations belonging to the issue:
557
+ type: array
558
+ items:
559
+ $ref: '#/components/schemas/RuleEngineFacts'
560
+ required:
561
+ - rule engines reporting violations belonging to the issue
562
+ additionalProperties: false
563
+ nullable: true
564
+ basics about all elements exhibiting the issue:
565
+ type: array
566
+ items:
567
+ type: object
568
+ properties:
569
+ identifier:
570
+ description: Catalog index of the element in the report; a string or number, copied verbatim.
571
+ oneOf:
572
+ - type: string
573
+ - type: number
574
+ tag name:
575
+ description: Copied from the report catalog entry; type not guaranteed.
576
+ inner text:
577
+ description: Copied from the report catalog entry; type not guaranteed.
578
+ count of rule engines reporting that the element exhibited the issue:
579
+ type: number
580
+ how to get details about the element:
581
+ type: object
582
+ properties:
583
+ URL:
584
+ type: string
585
+ request method:
586
+ type: string
587
+ enum:
588
+ - GET
589
+ required:
590
+ - URL
591
+ - request method
592
+ additionalProperties: false
593
+ web users can get details about the element at:
594
+ type: string
595
+ required:
596
+ - identifier
597
+ - tag name
598
+ - inner text
599
+ - count of rule engines reporting that the element exhibited the issue
600
+ - how to get details about the element
601
+ - web users can get details about the element at
602
+ additionalProperties: false
603
+ nullable: true
604
+ required:
605
+ - basics about the report
606
+ - basics about the issue
607
+ - details about the issue
608
+ - basics about all elements exhibiting the issue
609
+ additionalProperties: false
610
+ required:
611
+ - tool collection
612
+ - tool name
613
+ - this request
614
+ - URLs of similar requests for web users
615
+ - response metadata
616
+ - response content
617
+ additionalProperties: false
618
+ /api/listDiagnoses/{catalogIndex}/{issueID}/{reportID}:
619
+ get:
620
+ operationId: listDiagnoses
621
+ summary: List diagnoses of how one element exhibited one issue
622
+ parameters:
623
+ - in: path
624
+ name: catalogIndex
625
+ schema:
626
+ type: string
627
+ description: 'Identifier of the issue-exhibiting element in the catalog of elements on the page (example: 372)'
628
+ required: true
629
+ description: 'Identifier of the issue-exhibiting element in the catalog of elements on the page (example: 372)'
630
+ - in: path
631
+ name: issueID
632
+ schema:
633
+ type: string
634
+ description: 'Issue identifier (example: contrastPoor)'
635
+ required: true
636
+ description: 'Issue identifier (example: contrastPoor)'
637
+ - in: path
638
+ name: reportID
639
+ schema:
640
+ type: string
641
+ description: 'Identifier of the report (example: 260503T0432-x9z)'
642
+ required: true
643
+ description: 'Identifier of the report (example: 260503T0432-x9z)'
644
+ responses:
645
+ '200':
646
+ description: List diagnoses of how one element exhibited one issue
647
+ content:
648
+ application/json:
649
+ schema:
650
+ type: object
651
+ properties:
652
+ tool collection:
653
+ $ref: '#/components/schemas/ToolsFacts'
654
+ tool name:
655
+ type: string
656
+ this request:
657
+ type: object
658
+ properties:
659
+ description:
660
+ type: string
661
+ method:
662
+ type: string
663
+ enum:
664
+ - GET
665
+ URL:
666
+ type: string
667
+ closest ancestor request:
668
+ allOf:
669
+ - $ref: '#/components/schemas/RequestReference'
670
+ type: object
671
+ nullable: true
672
+ required:
673
+ - description
674
+ - method
675
+ - URL
676
+ - closest ancestor request
677
+ additionalProperties: false
678
+ URLs of similar requests for web users:
679
+ $ref: '#/components/schemas/SimilarWebRequests'
680
+ response metadata:
681
+ $ref: '#/components/schemas/ResponseMetadata'
682
+ response content:
683
+ type: object
684
+ properties:
685
+ basics about the report:
686
+ $ref: '#/components/schemas/ReportBasicsOrError'
687
+ basics about the issue:
688
+ $ref: '#/components/schemas/IssueBasicsOrError'
689
+ basics about the element:
690
+ anyOf:
691
+ - anyOf:
692
+ - type: object
693
+ properties:
694
+ identifier:
695
+ type: string
696
+ tag name:
697
+ description: Copied from the report catalog entry; type not guaranteed.
698
+ inner text:
699
+ description: Copied from the report catalog entry; type not guaranteed.
700
+ required:
701
+ - identifier
702
+ - tag name
703
+ - inner text
704
+ additionalProperties: false
705
+ - type: object
706
+ properties:
707
+ error:
708
+ type: string
709
+ required:
710
+ - error
711
+ additionalProperties: false
712
+ - type: object
713
+ nullable: true
714
+ details about the element:
715
+ type: object
716
+ properties:
717
+ start tag:
718
+ description: Copied from the report catalog entry; type not guaranteed.
719
+ XPath:
720
+ description: Copied from the report catalog entry; type not guaranteed.
721
+ x, y, width, and height of bounding box:
722
+ description: Copied from the report catalog entry; type not guaranteed.
723
+ required:
724
+ - start tag
725
+ - XPath
726
+ - x, y, width, and height of bounding box
727
+ additionalProperties: false
728
+ nullable: true
729
+ diagnoses of how the element exhibited the issue:
730
+ anyOf:
731
+ - anyOf:
732
+ - type: array
733
+ items:
734
+ type: object
735
+ properties:
736
+ identifier of the violated rule:
737
+ description: Copied from the report instance (ruleID); type not guaranteed.
738
+ description of the violation:
739
+ description: Copied from the report instance (what); type not guaranteed.
740
+ severity of the violation on a 0-to-3 scale:
741
+ description: Copied from the report instance (ordinalSeverity); type not guaranteed.
742
+ count of violations of the rule by the element:
743
+ type: number
744
+ required:
745
+ - identifier of the violated rule
746
+ - description of the violation
747
+ - severity of the violation on a 0-to-3 scale
748
+ - count of violations of the rule by the element
749
+ additionalProperties: false
750
+ - type: object
751
+ properties:
752
+ error:
753
+ type: string
754
+ required:
755
+ - error
756
+ additionalProperties: false
757
+ - type: object
758
+ nullable: true
759
+ required:
760
+ - basics about the report
761
+ - basics about the issue
762
+ - basics about the element
763
+ - details about the element
764
+ - diagnoses of how the element exhibited the issue
765
+ additionalProperties: false
766
+ required:
767
+ - tool collection
768
+ - tool name
769
+ - this request
770
+ - URLs of similar requests for web users
771
+ - response metadata
772
+ - response content
773
+ additionalProperties: false
774
+ /api/getReport/{reportID}:
775
+ get:
776
+ operationId: getReport
777
+ summary: Get one full report in JSON
778
+ parameters:
779
+ - in: path
780
+ name: reportID
781
+ schema:
782
+ type: string
783
+ description: 'Identifier of the report (example: 260503T0432-x9z)'
784
+ required: true
785
+ description: 'Identifier of the report (example: 260503T0432-x9z)'
786
+ responses:
787
+ '200':
788
+ description: Get one full report in JSON
789
+ content:
790
+ application/json:
791
+ schema:
792
+ type: object
793
+ properties:
794
+ tool collection:
795
+ $ref: '#/components/schemas/ToolsFacts'
796
+ tool name:
797
+ type: string
798
+ this request:
799
+ type: object
800
+ properties:
801
+ description:
802
+ type: string
803
+ method:
804
+ type: string
805
+ enum:
806
+ - GET
807
+ URL:
808
+ type: string
809
+ closest ancestor request:
810
+ allOf:
811
+ - $ref: '#/components/schemas/RequestReference'
812
+ type: object
813
+ nullable: true
814
+ required:
815
+ - description
816
+ - method
817
+ - URL
818
+ - closest ancestor request
819
+ additionalProperties: false
820
+ URLs of similar requests for web users:
821
+ $ref: '#/components/schemas/SimilarWebRequests'
822
+ response metadata:
823
+ $ref: '#/components/schemas/ResponseMetadata'
824
+ response content:
825
+ type: object
826
+ properties:
827
+ size of the report in bytes:
828
+ oneOf:
829
+ - type: number
830
+ - type: string
831
+ full report:
832
+ description: The full raw Testaro/Testilo report JSON, copied verbatim, or an error object if it could not be retrieved.
833
+ required:
834
+ - size of the report in bytes
835
+ - full report
836
+ additionalProperties: false
837
+ required:
838
+ - tool collection
839
+ - tool name
840
+ - this request
841
+ - URLs of similar requests for web users
842
+ - response metadata
843
+ - response content
844
+ additionalProperties: false
845
+ /api/requestNewTest:
846
+ post:
847
+ operationId: requestNewTest
848
+ summary: Request that a page be tested
849
+ requestBody:
850
+ content:
851
+ application/json:
852
+ schema:
853
+ type: object
854
+ properties:
855
+ description:
856
+ type: string
857
+ description: 1- to 100-character description of the page conforming to the naming convention used in the listPages output
858
+ URL:
859
+ type: string
860
+ description: 12- to 300-character URL of the page, including the https:// scheme and any query
861
+ reason:
862
+ type: string
863
+ description: 20- to 100-character reason why the page should be tested
864
+ required:
865
+ - description
866
+ - URL
867
+ - reason
868
+ responses:
869
+ '200':
870
+ description: Request that a page be tested
871
+ content:
872
+ application/json:
873
+ schema:
874
+ type: object
875
+ properties:
876
+ tool collection:
877
+ $ref: '#/components/schemas/ToolsFacts'
878
+ tool name:
879
+ type: string
880
+ this request:
881
+ type: object
882
+ properties:
883
+ description:
884
+ type: string
885
+ method:
886
+ type: string
887
+ enum:
888
+ - POST
889
+ URL:
890
+ type: string
891
+ body:
892
+ type: object
893
+ properties:
894
+ description:
895
+ type: string
896
+ description: 1- to 100-character description of the page conforming to the naming convention used in the listPages output
897
+ URL:
898
+ type: string
899
+ description: 12- to 300-character URL of the page, including the https:// scheme and any query
900
+ reason:
901
+ type: string
902
+ description: 20- to 100-character reason why the page should be tested
903
+ required:
904
+ - description
905
+ - URL
906
+ - reason
907
+ additionalProperties: false
908
+ closest ancestor request:
909
+ allOf:
910
+ - $ref: '#/components/schemas/RequestReference'
911
+ type: object
912
+ nullable: true
913
+ required:
914
+ - description
915
+ - method
916
+ - URL
917
+ - body
918
+ - closest ancestor request
919
+ additionalProperties: false
920
+ URLs of similar requests for web users:
921
+ $ref: '#/components/schemas/SimilarWebRequests'
922
+ response metadata:
923
+ $ref: '#/components/schemas/ResponseMetadata'
924
+ response content:
925
+ type: object
926
+ properties:
927
+ details about your request:
928
+ anyOf:
929
+ - type: object
930
+ properties:
931
+ error:
932
+ type: string
933
+ required:
934
+ - error
935
+ additionalProperties: false
936
+ - type: object
937
+ properties:
938
+ date and time received:
939
+ type: string
940
+ page to be tested:
941
+ type: object
942
+ properties:
943
+ description:
944
+ type: string
945
+ URL:
946
+ type: string
947
+ required:
948
+ - description
949
+ - URL
950
+ additionalProperties: false
951
+ reason why the page should be tested:
952
+ type: string
953
+ required:
954
+ - date and time received
955
+ - page to be tested
956
+ - reason why the page should be tested
957
+ additionalProperties: false
958
+ disposition of your request:
959
+ type: object
960
+ properties:
961
+ what happens next:
962
+ type: string
963
+ how you can check for completion:
964
+ type: string
965
+ how a web user can check for completion:
966
+ type: string
967
+ required:
968
+ - what happens next
969
+ - how you can check for completion
970
+ - how a web user can check for completion
971
+ additionalProperties: false
972
+ nullable: true
973
+ required:
974
+ - details about your request
975
+ - disposition of your request
976
+ additionalProperties: false
977
+ required:
978
+ - tool collection
979
+ - tool name
980
+ - this request
981
+ - URLs of similar requests for web users
982
+ - response metadata
983
+ - response content
984
+ additionalProperties: false
985
+ /api/requestRetest/{reportID}:
986
+ post:
987
+ operationId: requestRetest
988
+ summary: Request that a page be retested
989
+ parameters:
990
+ - in: path
991
+ name: reportID
992
+ schema:
993
+ type: string
994
+ description: 'Identifier of the latest report about the page (example: 260503T0432-x9z)'
995
+ required: true
996
+ description: 'Identifier of the latest report about the page (example: 260503T0432-x9z)'
997
+ requestBody:
998
+ content:
999
+ application/json:
1000
+ schema:
1001
+ type: object
1002
+ properties:
1003
+ reason:
1004
+ type: string
1005
+ description: 20- to 100-character reason why the page should be retested
1006
+ required:
1007
+ - reason
1008
+ responses:
1009
+ '200':
1010
+ description: Request that a page be retested
1011
+ content:
1012
+ application/json:
1013
+ schema:
1014
+ type: object
1015
+ properties:
1016
+ tool collection:
1017
+ $ref: '#/components/schemas/ToolsFacts'
1018
+ tool name:
1019
+ type: string
1020
+ this request:
1021
+ type: object
1022
+ properties:
1023
+ description:
1024
+ type: string
1025
+ method:
1026
+ type: string
1027
+ enum:
1028
+ - POST
1029
+ URL:
1030
+ type: string
1031
+ body:
1032
+ type: object
1033
+ properties:
1034
+ reason:
1035
+ type: string
1036
+ description: 20- to 100-character reason why the page should be retested
1037
+ required:
1038
+ - reason
1039
+ additionalProperties: false
1040
+ closest ancestor request:
1041
+ allOf:
1042
+ - $ref: '#/components/schemas/RequestReference'
1043
+ type: object
1044
+ nullable: true
1045
+ required:
1046
+ - description
1047
+ - method
1048
+ - URL
1049
+ - body
1050
+ - closest ancestor request
1051
+ additionalProperties: false
1052
+ URLs of similar requests for web users:
1053
+ $ref: '#/components/schemas/SimilarWebRequests'
1054
+ response metadata:
1055
+ $ref: '#/components/schemas/ResponseMetadata'
1056
+ response content:
1057
+ type: object
1058
+ properties:
1059
+ details about your request:
1060
+ anyOf:
1061
+ - type: object
1062
+ properties:
1063
+ error:
1064
+ type: string
1065
+ required:
1066
+ - error
1067
+ additionalProperties: false
1068
+ - type: object
1069
+ properties:
1070
+ date and time received:
1071
+ type: string
1072
+ page to be retested:
1073
+ type: object
1074
+ properties:
1075
+ description:
1076
+ type: string
1077
+ URL:
1078
+ type: string
1079
+ required:
1080
+ - description
1081
+ - URL
1082
+ additionalProperties: false
1083
+ reason why the page should be retested:
1084
+ type: string
1085
+ required:
1086
+ - date and time received
1087
+ - page to be retested
1088
+ - reason why the page should be retested
1089
+ additionalProperties: false
1090
+ disposition of your request:
1091
+ type: object
1092
+ properties:
1093
+ what happens next:
1094
+ type: string
1095
+ how you can check for completion:
1096
+ type: string
1097
+ how a web user can check for completion:
1098
+ type: string
1099
+ required:
1100
+ - what happens next
1101
+ - how you can check for completion
1102
+ - how a web user can check for completion
1103
+ additionalProperties: false
1104
+ nullable: true
1105
+ required:
1106
+ - details about your request
1107
+ - disposition of your request
1108
+ additionalProperties: false
1109
+ required:
1110
+ - tool collection
1111
+ - tool name
1112
+ - this request
1113
+ - URLs of similar requests for web users
1114
+ - response metadata
1115
+ - response content
1116
+ additionalProperties: false
1117
+ /api/requestFeature:
1118
+ post:
1119
+ operationId: requestFeature
1120
+ summary: Request a feature improvement or new feature
1121
+ requestBody:
1122
+ content:
1123
+ application/json:
1124
+ schema:
1125
+ type: object
1126
+ properties:
1127
+ feature:
1128
+ type: string
1129
+ description: 20- to 1000-character description of requested feature improvement or new feature
1130
+ required:
1131
+ - feature
1132
+ responses:
1133
+ '200':
1134
+ description: Request a feature improvement or new feature
1135
+ content:
1136
+ application/json:
1137
+ schema:
1138
+ type: object
1139
+ properties:
1140
+ tool collection:
1141
+ $ref: '#/components/schemas/ToolsFacts'
1142
+ tool name:
1143
+ type: string
1144
+ this request:
1145
+ type: object
1146
+ properties:
1147
+ description:
1148
+ type: string
1149
+ method:
1150
+ type: string
1151
+ enum:
1152
+ - POST
1153
+ URL:
1154
+ type: string
1155
+ body:
1156
+ type: object
1157
+ properties:
1158
+ feature:
1159
+ type: string
1160
+ description: 20- to 1000-character description of requested feature improvement or new feature
1161
+ required:
1162
+ - feature
1163
+ additionalProperties: false
1164
+ closest ancestor request:
1165
+ allOf:
1166
+ - $ref: '#/components/schemas/RequestReference'
1167
+ type: object
1168
+ nullable: true
1169
+ required:
1170
+ - description
1171
+ - method
1172
+ - URL
1173
+ - body
1174
+ - closest ancestor request
1175
+ additionalProperties: false
1176
+ URLs of similar requests for web users:
1177
+ type: object
1178
+ nullable: true
1179
+ response metadata:
1180
+ $ref: '#/components/schemas/ResponseMetadata'
1181
+ response content:
1182
+ type: object
1183
+ properties:
1184
+ details about your request:
1185
+ anyOf:
1186
+ - type: object
1187
+ properties:
1188
+ error:
1189
+ type: string
1190
+ required:
1191
+ - error
1192
+ additionalProperties: false
1193
+ - type: object
1194
+ properties:
1195
+ date and time received:
1196
+ type: string
1197
+ disposition:
1198
+ type: string
1199
+ required:
1200
+ - date and time received
1201
+ - disposition
1202
+ additionalProperties: false
1203
+ required:
1204
+ - details about your request
1205
+ additionalProperties: false
1206
+ required:
1207
+ - tool collection
1208
+ - tool name
1209
+ - this request
1210
+ - URLs of similar requests for web users
1211
+ - response metadata
1212
+ - response content
1213
+ additionalProperties: false
1214
+ /api/orderNewTest:
1215
+ post:
1216
+ operationId: orderNewTest
1217
+ summary: Order that a page be tested immediately, without manual approval
1218
+ requestBody:
1219
+ content:
1220
+ application/json:
1221
+ schema:
1222
+ type: object
1223
+ properties:
1224
+ description:
1225
+ type: string
1226
+ description: 1- to 100-character description of the page conforming to the naming convention used in the listPages output
1227
+ URL:
1228
+ type: string
1229
+ description: 12- to 300-character URL of the page, including the https:// scheme and any query
1230
+ reason:
1231
+ type: string
1232
+ description: 20- to 100-character reason why the page should be tested
1233
+ required:
1234
+ - description
1235
+ - URL
1236
+ - reason
1237
+ responses:
1238
+ '200':
1239
+ description: Order that a page be tested immediately, without manual approval
1240
+ content:
1241
+ application/json:
1242
+ schema:
1243
+ type: object
1244
+ properties:
1245
+ tool collection:
1246
+ $ref: '#/components/schemas/ToolsFacts'
1247
+ tool name:
1248
+ type: string
1249
+ this request:
1250
+ type: object
1251
+ properties:
1252
+ description:
1253
+ type: string
1254
+ method:
1255
+ type: string
1256
+ enum:
1257
+ - POST
1258
+ URL:
1259
+ type: string
1260
+ body:
1261
+ type: object
1262
+ properties:
1263
+ description:
1264
+ type: string
1265
+ description: 1- to 100-character description of the page conforming to the naming convention used in the listPages output
1266
+ URL:
1267
+ type: string
1268
+ description: 12- to 300-character URL of the page, including the https:// scheme and any query
1269
+ reason:
1270
+ type: string
1271
+ description: 20- to 100-character reason why the page should be tested
1272
+ required:
1273
+ - description
1274
+ - URL
1275
+ - reason
1276
+ additionalProperties: false
1277
+ closest ancestor request:
1278
+ allOf:
1279
+ - $ref: '#/components/schemas/RequestReference'
1280
+ type: object
1281
+ nullable: true
1282
+ required:
1283
+ - description
1284
+ - method
1285
+ - URL
1286
+ - body
1287
+ - closest ancestor request
1288
+ additionalProperties: false
1289
+ URLs of similar requests for web users:
1290
+ type: object
1291
+ properties:
1292
+ this request:
1293
+ type: object
1294
+ nullable: true
1295
+ closest ancestor request:
1296
+ type: string
1297
+ nullable: true
1298
+ required:
1299
+ - this request
1300
+ - closest ancestor request
1301
+ additionalProperties: false
1302
+ response metadata:
1303
+ $ref: '#/components/schemas/ResponseMetadata'
1304
+ response content:
1305
+ type: object
1306
+ properties:
1307
+ details about your order:
1308
+ anyOf:
1309
+ - type: object
1310
+ properties:
1311
+ error:
1312
+ type: string
1313
+ required:
1314
+ - error
1315
+ additionalProperties: false
1316
+ - type: object
1317
+ properties:
1318
+ date and time received:
1319
+ type: string
1320
+ page to be tested:
1321
+ type: object
1322
+ properties:
1323
+ description:
1324
+ type: string
1325
+ URL:
1326
+ type: string
1327
+ required:
1328
+ - description
1329
+ - URL
1330
+ additionalProperties: false
1331
+ reason why the page should be tested:
1332
+ type: string
1333
+ required:
1334
+ - date and time received
1335
+ - page to be tested
1336
+ - reason why the page should be tested
1337
+ additionalProperties: false
1338
+ disposition of your order:
1339
+ type: object
1340
+ properties:
1341
+ what happens next:
1342
+ type: string
1343
+ report identifier:
1344
+ type: string
1345
+ description: 'Identifier of the report, to pass to listIssues once the report is ready (example: 260503T0432-x9z).'
1346
+ nullable: true
1347
+ how you can check for completion:
1348
+ type: string
1349
+ do you want to wait for completion:
1350
+ type: string
1351
+ required:
1352
+ - what happens next
1353
+ - report identifier
1354
+ - how you can check for completion
1355
+ - do you want to wait for completion
1356
+ additionalProperties: false
1357
+ nullable: true
1358
+ required:
1359
+ - details about your order
1360
+ - disposition of your order
1361
+ additionalProperties: false
1362
+ required:
1363
+ - tool collection
1364
+ - tool name
1365
+ - this request
1366
+ - URLs of similar requests for web users
1367
+ - response metadata
1368
+ - response content
1369
+ additionalProperties: false
1370
+ /api/orderRetest/{reportID}:
1371
+ post:
1372
+ operationId: orderRetest
1373
+ summary: Order that a page be retested immediately, without manual approval
1374
+ parameters:
1375
+ - in: path
1376
+ name: reportID
1377
+ schema:
1378
+ type: string
1379
+ description: 'Identifier of the latest report about the page (example: 260503T0432-x9z)'
1380
+ required: true
1381
+ description: 'Identifier of the latest report about the page (example: 260503T0432-x9z)'
1382
+ requestBody:
1383
+ content:
1384
+ application/json:
1385
+ schema:
1386
+ type: object
1387
+ properties:
1388
+ reason:
1389
+ type: string
1390
+ description: 20- to 100-character reason why the page should be retested
1391
+ required:
1392
+ - reason
1393
+ responses:
1394
+ '200':
1395
+ description: Order that a page be retested immediately, without manual approval
1396
+ content:
1397
+ application/json:
1398
+ schema:
1399
+ type: object
1400
+ properties:
1401
+ tool collection:
1402
+ $ref: '#/components/schemas/ToolsFacts'
1403
+ tool name:
1404
+ type: string
1405
+ this request:
1406
+ type: object
1407
+ properties:
1408
+ description:
1409
+ type: string
1410
+ method:
1411
+ type: string
1412
+ enum:
1413
+ - POST
1414
+ URL:
1415
+ type: string
1416
+ body:
1417
+ type: object
1418
+ properties:
1419
+ reason:
1420
+ type: string
1421
+ description: 20- to 100-character reason why the page should be retested
1422
+ required:
1423
+ - reason
1424
+ additionalProperties: false
1425
+ closest ancestor request:
1426
+ allOf:
1427
+ - $ref: '#/components/schemas/RequestReference'
1428
+ type: object
1429
+ nullable: true
1430
+ required:
1431
+ - description
1432
+ - method
1433
+ - URL
1434
+ - body
1435
+ - closest ancestor request
1436
+ additionalProperties: false
1437
+ URLs of similar requests for web users:
1438
+ type: object
1439
+ properties:
1440
+ this request:
1441
+ type: object
1442
+ nullable: true
1443
+ closest ancestor request:
1444
+ type: string
1445
+ nullable: true
1446
+ required:
1447
+ - this request
1448
+ - closest ancestor request
1449
+ additionalProperties: false
1450
+ response metadata:
1451
+ $ref: '#/components/schemas/ResponseMetadata'
1452
+ response content:
1453
+ type: object
1454
+ properties:
1455
+ details about your order:
1456
+ anyOf:
1457
+ - type: object
1458
+ properties:
1459
+ error:
1460
+ type: string
1461
+ required:
1462
+ - error
1463
+ additionalProperties: false
1464
+ - type: object
1465
+ properties:
1466
+ date and time received:
1467
+ type: string
1468
+ page to be retested:
1469
+ type: object
1470
+ properties:
1471
+ description:
1472
+ type: string
1473
+ URL:
1474
+ type: string
1475
+ required:
1476
+ - description
1477
+ - URL
1478
+ additionalProperties: false
1479
+ reason why the page should be retested:
1480
+ type: string
1481
+ required:
1482
+ - date and time received
1483
+ - page to be retested
1484
+ - reason why the page should be retested
1485
+ additionalProperties: false
1486
+ disposition of your order:
1487
+ type: object
1488
+ properties:
1489
+ what happens next:
1490
+ type: string
1491
+ report identifier:
1492
+ type: string
1493
+ description: 'Identifier of the report, to pass to listIssues once the report is ready (example: 260503T0432-x9z).'
1494
+ nullable: true
1495
+ how you can check for completion:
1496
+ type: string
1497
+ do you want to wait for completion:
1498
+ type: string
1499
+ required:
1500
+ - what happens next
1501
+ - report identifier
1502
+ - how you can check for completion
1503
+ - do you want to wait for completion
1504
+ additionalProperties: false
1505
+ nullable: true
1506
+ required:
1507
+ - details about your order
1508
+ - disposition of your order
1509
+ additionalProperties: false
1510
+ required:
1511
+ - tool collection
1512
+ - tool name
1513
+ - this request
1514
+ - URLs of similar requests for web users
1515
+ - response metadata
1516
+ - response content
1517
+ additionalProperties: false
1518
+ /api/awaitTest/{reportID}:
1519
+ post:
1520
+ operationId: awaitTest
1521
+ summary: Wait for a job ordered via orderNewTest or orderRetest to complete
1522
+ parameters:
1523
+ - in: path
1524
+ name: reportID
1525
+ schema:
1526
+ type: string
1527
+ description: 'Report identifier returned by orderNewTest or orderRetest (example: 260503T0432-x9z)'
1528
+ required: true
1529
+ description: 'Report identifier returned by orderNewTest or orderRetest (example: 260503T0432-x9z)'
1530
+ requestBody:
1531
+ content:
1532
+ application/json:
1533
+ schema:
1534
+ type: object
1535
+ properties: {}
1536
+ responses:
1537
+ '200':
1538
+ description: Wait for a job ordered via orderNewTest or orderRetest to complete
1539
+ content:
1540
+ application/json:
1541
+ schema:
1542
+ type: object
1543
+ properties:
1544
+ tool collection:
1545
+ $ref: '#/components/schemas/ToolsFacts'
1546
+ tool name:
1547
+ type: string
1548
+ this request:
1549
+ type: object
1550
+ properties:
1551
+ description:
1552
+ type: string
1553
+ method:
1554
+ type: string
1555
+ enum:
1556
+ - POST
1557
+ URL:
1558
+ type: string
1559
+ closest ancestor request:
1560
+ minItems: 2
1561
+ maxItems: 2
1562
+ type: array
1563
+ items:
1564
+ $ref: '#/components/schemas/RequestReference'
1565
+ required:
1566
+ - description
1567
+ - method
1568
+ - URL
1569
+ - closest ancestor request
1570
+ additionalProperties: false
1571
+ URLs of similar requests for web users:
1572
+ type: object
1573
+ properties:
1574
+ this request:
1575
+ type: object
1576
+ nullable: true
1577
+ closest ancestor request:
1578
+ type: object
1579
+ nullable: true
1580
+ required:
1581
+ - this request
1582
+ - closest ancestor request
1583
+ additionalProperties: false
1584
+ response metadata:
1585
+ $ref: '#/components/schemas/ResponseMetadata'
1586
+ response content:
1587
+ type: object
1588
+ properties:
1589
+ details about your wait:
1590
+ anyOf:
1591
+ - type: object
1592
+ properties:
1593
+ error:
1594
+ type: string
1595
+ required:
1596
+ - error
1597
+ additionalProperties: false
1598
+ - type: object
1599
+ properties:
1600
+ report identifier:
1601
+ type: string
1602
+ description: 'Identifier of the report, to pass to listIssues once the report is ready (example: 260503T0432-x9z).'
1603
+ required:
1604
+ - report identifier
1605
+ additionalProperties: false
1606
+ disposition of your wait:
1607
+ type: object
1608
+ properties:
1609
+ outcome:
1610
+ type: string
1611
+ enum:
1612
+ - completed
1613
+ - failed
1614
+ - timedOut
1615
+ what happened:
1616
+ type: string
1617
+ how you can check for completion:
1618
+ type: string
1619
+ required:
1620
+ - outcome
1621
+ - what happened
1622
+ - how you can check for completion
1623
+ additionalProperties: false
1624
+ nullable: true
1625
+ required:
1626
+ - details about your wait
1627
+ - disposition of your wait
1628
+ additionalProperties: false
1629
+ required:
1630
+ - tool collection
1631
+ - tool name
1632
+ - this request
1633
+ - URLs of similar requests for web users
1634
+ - response metadata
1635
+ - response content
1636
+ additionalProperties: false
1637
+ components:
1638
+ schemas:
1639
+ ToolsFacts:
1640
+ type: object
1641
+ properties:
1642
+ name:
1643
+ type: string
1644
+ description:
1645
+ type: object
1646
+ properties:
1647
+ what Kilotest does:
1648
+ type: string
1649
+ how to retrieve findings:
1650
+ type: object
1651
+ properties:
1652
+ level 1:
1653
+ type: string
1654
+ level 2:
1655
+ type: string
1656
+ level 3:
1657
+ type: string
1658
+ level 4:
1659
+ type: string
1660
+ required:
1661
+ - level 1
1662
+ - level 2
1663
+ - level 3
1664
+ - level 4
1665
+ additionalProperties: false
1666
+ how to generate more findings:
1667
+ type: object
1668
+ properties:
1669
+ new testing:
1670
+ type: string
1671
+ retesting:
1672
+ type: string
1673
+ latency:
1674
+ type: string
1675
+ confirmation:
1676
+ type: string
1677
+ required:
1678
+ - new testing
1679
+ - retesting
1680
+ - latency
1681
+ - confirmation
1682
+ additionalProperties: false
1683
+ required:
1684
+ - what Kilotest does
1685
+ - how to retrieve findings
1686
+ - how to generate more findings
1687
+ additionalProperties: false
1688
+ description: Explanation of what Kilotest does and how to use its tools.
1689
+ URL:
1690
+ type: string
1691
+ description: URL of the Kilotest MCP server.
1692
+ web users can obtain similar functionalities at:
1693
+ type: string
1694
+ required:
1695
+ - name
1696
+ - description
1697
+ - URL
1698
+ - web users can obtain similar functionalities at
1699
+ additionalProperties: false
1700
+ RequestReference:
1701
+ type: object
1702
+ properties:
1703
+ tool name:
1704
+ type: string
1705
+ description:
1706
+ type: string
1707
+ method:
1708
+ type: string
1709
+ enum:
1710
+ - GET
1711
+ - POST
1712
+ URL:
1713
+ type: string
1714
+ required:
1715
+ - tool name
1716
+ - description
1717
+ - method
1718
+ - URL
1719
+ additionalProperties: false
1720
+ SimilarWebRequests:
1721
+ type: object
1722
+ properties:
1723
+ this request:
1724
+ type: string
1725
+ description: URL of the equivalent web UI page for this request.
1726
+ closest ancestor request:
1727
+ type: string
1728
+ nullable: true
1729
+ required:
1730
+ - this request
1731
+ - closest ancestor request
1732
+ additionalProperties: false
1733
+ ResponseMetadata:
1734
+ type: object
1735
+ properties:
1736
+ identifier:
1737
+ type: string
1738
+ description: Unique identifier of this response (timestamp and random suffix).
1739
+ date and time:
1740
+ type: string
1741
+ description: UTC date and time when the response was generated, in ISO 8601 format.
1742
+ required:
1743
+ - identifier
1744
+ - date and time
1745
+ additionalProperties: false
1746
+ ReportBasicsOrError:
1747
+ anyOf:
1748
+ - $ref: '#/components/schemas/ReportBasics'
1749
+ - type: object
1750
+ properties:
1751
+ error:
1752
+ type: string
1753
+ required:
1754
+ - error
1755
+ additionalProperties: false
1756
+ ReportBasics:
1757
+ type: object
1758
+ properties:
1759
+ identifier:
1760
+ type: string
1761
+ description: 'Identifier of the report (example: 260503T0432-x9z).'
1762
+ completion date and time:
1763
+ type: string
1764
+ days since the report was completed:
1765
+ type: number
1766
+ nullable: true
1767
+ tested web page:
1768
+ type: object
1769
+ properties:
1770
+ description:
1771
+ type: string
1772
+ URL:
1773
+ type: string
1774
+ required:
1775
+ - description
1776
+ - URL
1777
+ additionalProperties: false
1778
+ whether a later report about the same page exists:
1779
+ type: boolean
1780
+ required:
1781
+ - identifier
1782
+ - completion date and time
1783
+ - days since the report was completed
1784
+ - tested web page
1785
+ - whether a later report about the same page exists
1786
+ additionalProperties: false
1787
+ RuleEngineFacts:
1788
+ type: object
1789
+ properties:
1790
+ identifier:
1791
+ type: string
1792
+ name:
1793
+ type: string
1794
+ nullable: true
1795
+ sponsor:
1796
+ type: string
1797
+ nullable: true
1798
+ required:
1799
+ - identifier
1800
+ - name
1801
+ - sponsor
1802
+ additionalProperties: false
1803
+ IssueBasicsOrError:
1804
+ anyOf:
1805
+ - type: object
1806
+ properties:
1807
+ identifier:
1808
+ type: string
1809
+ summary:
1810
+ type: string
1811
+ impact on a user:
1812
+ type: string
1813
+ priority:
1814
+ type: string
1815
+ enum:
1816
+ - lowest
1817
+ - low
1818
+ - high
1819
+ - highest
1820
+ related WCAG standard:
1821
+ type: object
1822
+ properties:
1823
+ layer:
1824
+ type: string
1825
+ enum:
1826
+ - success criterion
1827
+ - guideline
1828
+ identifier:
1829
+ type: string
1830
+ required:
1831
+ - layer
1832
+ - identifier
1833
+ additionalProperties: false
1834
+ required:
1835
+ - identifier
1836
+ - summary
1837
+ - impact on a user
1838
+ - priority
1839
+ - related WCAG standard
1840
+ additionalProperties: false
1841
+ - type: object
1842
+ properties:
1843
+ error:
1844
+ type: string
1845
+ required:
1846
+ - error
1847
+ additionalProperties: false