@bf-meishijian/aip 0.0.31 → 0.0.33

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 (102) hide show
  1. package/README.md +17 -19
  2. package/dist/aip-submit-outcome/SKILL.md +20 -47
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +5 -3
  5. package/dist/cli.js.map +1 -1
  6. package/dist/coding-run-manager.d.ts +3 -3
  7. package/dist/coding-run-manager.d.ts.map +1 -1
  8. package/dist/coding-run-manager.js +63 -50
  9. package/dist/coding-run-manager.js.map +1 -1
  10. package/dist/daemon.d.ts.map +1 -1
  11. package/dist/daemon.js +8 -3
  12. package/dist/daemon.js.map +1 -1
  13. package/dist/delivery-tools.d.ts.map +1 -1
  14. package/dist/delivery-tools.js +4 -2
  15. package/dist/delivery-tools.js.map +1 -1
  16. package/dist/diagnostics.d.ts +1 -1
  17. package/dist/diagnostics.d.ts.map +1 -1
  18. package/dist/diagnostics.js +1 -1
  19. package/dist/diagnostics.js.map +1 -1
  20. package/dist/general-run-client.d.ts.map +1 -1
  21. package/dist/general-run-manager.d.ts.map +1 -1
  22. package/dist/general-run-manager.js +0 -1
  23. package/dist/general-run-manager.js.map +1 -1
  24. package/dist/general-run-tools.d.ts +1 -1
  25. package/dist/general-run-tools.d.ts.map +1 -1
  26. package/dist/general-run-tools.js +1 -1
  27. package/dist/general-run-tools.js.map +1 -1
  28. package/dist/generated/qa-schemas.js +1123 -0
  29. package/dist/handoff-cli.d.ts +2 -0
  30. package/dist/handoff-cli.d.ts.map +1 -0
  31. package/dist/handoff-cli.js +86 -0
  32. package/dist/handoff-cli.js.map +1 -0
  33. package/dist/host-log.d.ts +2 -0
  34. package/dist/host-log.d.ts.map +1 -1
  35. package/dist/host-log.js +5 -2
  36. package/dist/host-log.js.map +1 -1
  37. package/dist/host-shell.d.ts +2 -0
  38. package/dist/host-shell.d.ts.map +1 -0
  39. package/dist/host-shell.js +11 -0
  40. package/dist/host-shell.js.map +1 -0
  41. package/dist/host-status.d.ts.map +1 -1
  42. package/dist/live-employee.js +2 -2
  43. package/dist/live-employee.js.map +1 -1
  44. package/dist/local-employee-runtime.d.ts +1 -1
  45. package/dist/local-employee-runtime.d.ts.map +1 -1
  46. package/dist/local-employee-runtime.js +1 -1
  47. package/dist/local-employee-runtime.js.map +1 -1
  48. package/dist/local-handoff-workspace.d.ts +8 -1
  49. package/dist/local-handoff-workspace.d.ts.map +1 -1
  50. package/dist/local-handoff-workspace.js +14 -34
  51. package/dist/local-handoff-workspace.js.map +1 -1
  52. package/dist/merge-requests.d.ts +2 -0
  53. package/dist/merge-requests.d.ts.map +1 -1
  54. package/dist/merge-requests.js +60 -26
  55. package/dist/merge-requests.js.map +1 -1
  56. package/dist/outcome-cli.d.ts +1 -0
  57. package/dist/outcome-cli.d.ts.map +1 -1
  58. package/dist/outcome-cli.js +43 -54
  59. package/dist/outcome-cli.js.map +1 -1
  60. package/dist/pi-message-queue.d.ts +5 -0
  61. package/dist/pi-message-queue.d.ts.map +1 -1
  62. package/dist/pi-message-queue.js +21 -0
  63. package/dist/pi-message-queue.js.map +1 -1
  64. package/dist/pi-model-service.d.ts.map +1 -1
  65. package/dist/platform-client.d.ts +6 -0
  66. package/dist/platform-client.d.ts.map +1 -1
  67. package/dist/platform-client.js +18 -2
  68. package/dist/platform-client.js.map +1 -1
  69. package/dist/project-facts.d.ts.map +1 -1
  70. package/dist/project-facts.js +5 -0
  71. package/dist/project-facts.js.map +1 -1
  72. package/dist/qa-ajv.js +9 -0
  73. package/dist/qa-contract.d.ts +1 -1
  74. package/dist/qa-contract.d.ts.map +1 -1
  75. package/dist/qa-contract.js +18 -90
  76. package/dist/qa-contract.js.map +1 -1
  77. package/dist/qa-http-validation.js +5 -133
  78. package/dist/qa-project-checkout.d.ts +6 -2
  79. package/dist/qa-project-checkout.d.ts.map +1 -1
  80. package/dist/qa-project-checkout.js +19 -12
  81. package/dist/qa-project-checkout.js.map +1 -1
  82. package/dist/qa-session-manager.d.ts +3 -6
  83. package/dist/qa-session-manager.d.ts.map +1 -1
  84. package/dist/qa-session-manager.js +116 -90
  85. package/dist/qa-session-manager.js.map +1 -1
  86. package/dist/qa-tool-arguments.js +336 -0
  87. package/dist/stage-delivery.js +6 -4
  88. package/dist/state.d.ts +2 -2
  89. package/dist/state.js +2 -2
  90. package/dist/test-cli.d.ts.map +1 -1
  91. package/dist/test-cli.js +1 -3
  92. package/dist/test-cli.js.map +1 -1
  93. package/dist/test-executor.d.ts +2 -2
  94. package/dist/test-executor.d.ts.map +1 -1
  95. package/dist/test-executor.js +14 -9
  96. package/dist/test-executor.js.map +1 -1
  97. package/dist/test-reports.d.ts +13 -1
  98. package/dist/test-reports.d.ts.map +1 -1
  99. package/dist/tool-dispatch.d.ts.map +1 -1
  100. package/dist/tool-dispatch.js +3 -0
  101. package/dist/tool-dispatch.js.map +1 -1
  102. package/package.json +5 -4
@@ -0,0 +1,1123 @@
1
+ // 由 OpenAPI 与 src/qa-repository-contract-schema.ts 生成,请勿直接修改。
2
+ export const qaContractSchema = {
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "contractVersion": {
7
+ "const": 1
8
+ },
9
+ "language": {
10
+ "type": "string",
11
+ "minLength": 1
12
+ },
13
+ "groups": {
14
+ "type": "array",
15
+ "minItems": 1,
16
+ "items": {
17
+ "$ref": "#/definitions/QaTestGroup"
18
+ }
19
+ },
20
+ "doctor": {
21
+ "type": "array",
22
+ "minItems": 1,
23
+ "items": {
24
+ "type": "string"
25
+ }
26
+ },
27
+ "collect": {
28
+ "type": "array",
29
+ "minItems": 1,
30
+ "items": {
31
+ "type": "string"
32
+ }
33
+ },
34
+ "check": {
35
+ "type": "array",
36
+ "minItems": 1,
37
+ "items": {
38
+ "type": "string"
39
+ }
40
+ },
41
+ "run": {
42
+ "type": "array",
43
+ "minItems": 1,
44
+ "items": {
45
+ "type": "string"
46
+ }
47
+ },
48
+ "reportDir": {
49
+ "type": "string",
50
+ "minLength": 1
51
+ }
52
+ },
53
+ "required": [
54
+ "groups",
55
+ "contractVersion",
56
+ "language",
57
+ "doctor",
58
+ "collect",
59
+ "check",
60
+ "run",
61
+ "reportDir"
62
+ ],
63
+ "definitions": {
64
+ "QaTestGroup": {
65
+ "type": "object",
66
+ "additionalProperties": false,
67
+ "properties": {
68
+ "id": {
69
+ "type": "string",
70
+ "minLength": 1
71
+ },
72
+ "name": {
73
+ "type": "string",
74
+ "minLength": 1
75
+ },
76
+ "environments": {
77
+ "type": "array",
78
+ "minItems": 1,
79
+ "uniqueItems": true,
80
+ "items": {
81
+ "type": "string",
82
+ "minLength": 1
83
+ }
84
+ }
85
+ },
86
+ "required": [
87
+ "id",
88
+ "name",
89
+ "environments"
90
+ ]
91
+ }
92
+ }
93
+ } ;
94
+ export const qaManifestSchema = {
95
+ "$ref": "#/definitions/QaManifest",
96
+ "definitions": {
97
+ "QaManifest": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "properties": {
101
+ "contractVersion": {
102
+ "enum": [
103
+ 1
104
+ ]
105
+ },
106
+ "language": {
107
+ "type": "string",
108
+ "minLength": 1
109
+ },
110
+ "cases": {
111
+ "type": "array",
112
+ "items": {
113
+ "$ref": "#/definitions/QaManifestCase"
114
+ },
115
+ "minItems": 1
116
+ }
117
+ },
118
+ "required": [
119
+ "contractVersion",
120
+ "language",
121
+ "cases"
122
+ ]
123
+ },
124
+ "QaManifestCase": {
125
+ "type": "object",
126
+ "additionalProperties": false,
127
+ "properties": {
128
+ "caseId": {
129
+ "type": "string",
130
+ "pattern": "^[a-zA-Z][\\w-]*\\.[a-zA-Z][\\w-]*\\.[a-zA-Z][\\w.-]*$"
131
+ },
132
+ "name": {
133
+ "type": "string",
134
+ "minLength": 1
135
+ },
136
+ "kind": {
137
+ "enum": [
138
+ "CASE",
139
+ "FLOW"
140
+ ]
141
+ },
142
+ "domain": {
143
+ "type": "string",
144
+ "minLength": 1
145
+ },
146
+ "file": {
147
+ "type": "string",
148
+ "minLength": 1
149
+ },
150
+ "selector": {
151
+ "type": "string",
152
+ "minLength": 1
153
+ },
154
+ "endpoint": {
155
+ "type": "string"
156
+ },
157
+ "stubs": {
158
+ "type": "array",
159
+ "items": {
160
+ "type": "string",
161
+ "minLength": 1
162
+ },
163
+ "uniqueItems": true
164
+ },
165
+ "covers": {
166
+ "type": "array",
167
+ "items": {
168
+ "type": "string",
169
+ "minLength": 1
170
+ },
171
+ "uniqueItems": true
172
+ },
173
+ "tags": {
174
+ "type": "array",
175
+ "items": {
176
+ "type": "string",
177
+ "minLength": 1
178
+ },
179
+ "uniqueItems": true
180
+ },
181
+ "suites": {
182
+ "type": "array",
183
+ "items": {
184
+ "type": "string",
185
+ "minLength": 1
186
+ },
187
+ "uniqueItems": true
188
+ }
189
+ },
190
+ "required": [
191
+ "caseId",
192
+ "kind",
193
+ "domain",
194
+ "file",
195
+ "selector",
196
+ "stubs"
197
+ ]
198
+ }
199
+ }
200
+ } ;
201
+ export const qaSelectionSchema = {
202
+ "$ref": "#/definitions/QaSelection",
203
+ "definitions": {
204
+ "QaSelection": {
205
+ "type": "object",
206
+ "additionalProperties": false,
207
+ "properties": {
208
+ "runId": {
209
+ "type": "string",
210
+ "minLength": 1
211
+ },
212
+ "caseIds": {
213
+ "type": "array",
214
+ "items": {
215
+ "type": "string",
216
+ "minLength": 1
217
+ },
218
+ "uniqueItems": true
219
+ },
220
+ "domains": {
221
+ "type": "array",
222
+ "items": {
223
+ "type": "string",
224
+ "minLength": 1
225
+ },
226
+ "uniqueItems": true
227
+ }
228
+ },
229
+ "required": [
230
+ "runId",
231
+ "caseIds",
232
+ "domains"
233
+ ]
234
+ }
235
+ }
236
+ } ;
237
+ export const qaTestGroupsSchema = {
238
+ "type": "array",
239
+ "minItems": 1,
240
+ "items": {
241
+ "$ref": "#/definitions/QaTestGroup"
242
+ },
243
+ "definitions": {
244
+ "QaTestGroup": {
245
+ "type": "object",
246
+ "additionalProperties": false,
247
+ "properties": {
248
+ "id": {
249
+ "type": "string",
250
+ "minLength": 1
251
+ },
252
+ "name": {
253
+ "type": "string",
254
+ "minLength": 1
255
+ },
256
+ "environments": {
257
+ "type": "array",
258
+ "minItems": 1,
259
+ "uniqueItems": true,
260
+ "items": {
261
+ "type": "string",
262
+ "minLength": 1
263
+ }
264
+ }
265
+ },
266
+ "required": [
267
+ "id",
268
+ "name",
269
+ "environments"
270
+ ]
271
+ }
272
+ }
273
+ } ;
274
+ export const qaHostResultSchema = {
275
+ "$ref": "#/definitions/QaHostResult",
276
+ "definitions": {
277
+ "QaCaseResult": {
278
+ "type": "object",
279
+ "additionalProperties": false,
280
+ "properties": {
281
+ "caseId": {
282
+ "type": "string"
283
+ },
284
+ "name": {
285
+ "type": "string"
286
+ },
287
+ "status": {
288
+ "type": "string",
289
+ "enum": [
290
+ "PASSED",
291
+ "FAILED",
292
+ "BLOCKED",
293
+ "NOT_EXECUTED"
294
+ ]
295
+ },
296
+ "durationMs": {
297
+ "type": "integer",
298
+ "minimum": 0
299
+ },
300
+ "checkpoints": {
301
+ "type": "array",
302
+ "items": {
303
+ "type": "object",
304
+ "additionalProperties": false,
305
+ "properties": {
306
+ "references": {
307
+ "type": "array",
308
+ "items": {
309
+ "$ref": "#/definitions/QaEvidenceReference"
310
+ }
311
+ },
312
+ "group": {
313
+ "type": "string"
314
+ },
315
+ "title": {
316
+ "type": "string"
317
+ },
318
+ "expected": {
319
+ "type": "string"
320
+ },
321
+ "actual": {
322
+ "type": "string"
323
+ }
324
+ },
325
+ "required": [
326
+ "group",
327
+ "title",
328
+ "expected",
329
+ "actual"
330
+ ]
331
+ }
332
+ },
333
+ "expected": {
334
+ "type": "string"
335
+ },
336
+ "actual": {
337
+ "type": "string"
338
+ },
339
+ "failureMessage": {
340
+ "type": "string"
341
+ },
342
+ "httpExchanges": {
343
+ "type": "array",
344
+ "items": {
345
+ "$ref": "#/definitions/QaHttpExchange"
346
+ }
347
+ }
348
+ },
349
+ "required": [
350
+ "caseId",
351
+ "name",
352
+ "status",
353
+ "durationMs"
354
+ ]
355
+ },
356
+ "QaCommandFact": {
357
+ "type": "object",
358
+ "additionalProperties": false,
359
+ "properties": {
360
+ "stage": {
361
+ "type": "string",
362
+ "enum": [
363
+ "doctor",
364
+ "collect",
365
+ "check",
366
+ "run"
367
+ ]
368
+ },
369
+ "command": {
370
+ "type": "array",
371
+ "items": {
372
+ "type": "string"
373
+ }
374
+ },
375
+ "cwd": {
376
+ "type": "string"
377
+ },
378
+ "exitCode": {
379
+ "type": [
380
+ "integer",
381
+ "null"
382
+ ]
383
+ },
384
+ "durationMs": {
385
+ "type": "integer",
386
+ "minimum": 0
387
+ },
388
+ "timedOut": {
389
+ "type": "boolean"
390
+ },
391
+ "output": {
392
+ "type": "string"
393
+ }
394
+ },
395
+ "required": [
396
+ "stage",
397
+ "command",
398
+ "cwd",
399
+ "exitCode",
400
+ "durationMs",
401
+ "output"
402
+ ]
403
+ },
404
+ "QaDeploymentRef": {
405
+ "type": "object",
406
+ "additionalProperties": false,
407
+ "properties": {
408
+ "id": {
409
+ "type": "string",
410
+ "format": "uuid"
411
+ },
412
+ "label": {
413
+ "type": "string"
414
+ }
415
+ },
416
+ "required": [
417
+ "label"
418
+ ]
419
+ },
420
+ "QaEvidenceReference": {
421
+ "oneOf": [
422
+ {
423
+ "type": "object",
424
+ "additionalProperties": false,
425
+ "required": [
426
+ "kind",
427
+ "exchangeId",
428
+ "side",
429
+ "label"
430
+ ],
431
+ "properties": {
432
+ "kind": {
433
+ "type": "string",
434
+ "enum": [
435
+ "http"
436
+ ]
437
+ },
438
+ "exchangeId": {
439
+ "type": "string",
440
+ "minLength": 1
441
+ },
442
+ "side": {
443
+ "type": "string",
444
+ "enum": [
445
+ "request",
446
+ "response"
447
+ ]
448
+ },
449
+ "label": {
450
+ "type": "string"
451
+ }
452
+ }
453
+ },
454
+ {
455
+ "type": "object",
456
+ "additionalProperties": false,
457
+ "required": [
458
+ "kind",
459
+ "filename",
460
+ "label"
461
+ ],
462
+ "properties": {
463
+ "kind": {
464
+ "type": "string",
465
+ "enum": [
466
+ "attachment"
467
+ ]
468
+ },
469
+ "filename": {
470
+ "type": "string",
471
+ "minLength": 1
472
+ },
473
+ "label": {
474
+ "type": "string"
475
+ }
476
+ }
477
+ }
478
+ ]
479
+ },
480
+ "QaHostResult": {
481
+ "type": "object",
482
+ "additionalProperties": false,
483
+ "properties": {
484
+ "runId": {
485
+ "type": "string",
486
+ "format": "uuid"
487
+ },
488
+ "commitSha": {
489
+ "type": [
490
+ "string",
491
+ "null"
492
+ ],
493
+ "pattern": "^[a-f0-9]{40}$"
494
+ },
495
+ "branch": {
496
+ "type": "string"
497
+ },
498
+ "environment": {
499
+ "type": "string"
500
+ },
501
+ "deploymentRef": {
502
+ "anyOf": [
503
+ {
504
+ "$ref": "#/definitions/QaDeploymentRef"
505
+ },
506
+ {
507
+ "type": "null"
508
+ }
509
+ ]
510
+ },
511
+ "environmentFingerprint": {
512
+ "type": "object",
513
+ "additionalProperties": false,
514
+ "properties": {
515
+ "location": {
516
+ "type": "string"
517
+ },
518
+ "tools": {
519
+ "type": "object",
520
+ "additionalProperties": {
521
+ "type": "string"
522
+ }
523
+ }
524
+ },
525
+ "required": [
526
+ "location",
527
+ "tools"
528
+ ]
529
+ },
530
+ "commands": {
531
+ "type": "array",
532
+ "items": {
533
+ "$ref": "#/definitions/QaCommandFact"
534
+ }
535
+ },
536
+ "manifest": {
537
+ "anyOf": [
538
+ {
539
+ "$ref": "#/definitions/QaManifest"
540
+ },
541
+ {
542
+ "type": "null"
543
+ }
544
+ ]
545
+ },
546
+ "selection": {
547
+ "$ref": "#/definitions/QaSelection"
548
+ },
549
+ "cases": {
550
+ "type": "array",
551
+ "items": {
552
+ "$ref": "#/definitions/QaCaseResult"
553
+ }
554
+ },
555
+ "reports": {
556
+ "type": "array",
557
+ "items": {
558
+ "$ref": "#/definitions/QaReportHash"
559
+ }
560
+ },
561
+ "check": {
562
+ "type": "object",
563
+ "additionalProperties": false,
564
+ "properties": {
565
+ "passed": {
566
+ "type": "boolean"
567
+ },
568
+ "output": {
569
+ "type": "string"
570
+ }
571
+ },
572
+ "required": [
573
+ "passed",
574
+ "output"
575
+ ]
576
+ },
577
+ "invariants": {
578
+ "type": "object",
579
+ "additionalProperties": false,
580
+ "properties": {
581
+ "trusted": {
582
+ "type": "boolean"
583
+ },
584
+ "errors": {
585
+ "type": "array",
586
+ "items": {
587
+ "type": "string"
588
+ }
589
+ }
590
+ },
591
+ "required": [
592
+ "trusted",
593
+ "errors"
594
+ ]
595
+ },
596
+ "status": {
597
+ "type": "string",
598
+ "enum": [
599
+ "PASSED",
600
+ "PRODUCT_FAILED",
601
+ "ENVIRONMENT_BLOCKED",
602
+ "EXECUTION_ERROR",
603
+ "NOT_EXECUTED"
604
+ ]
605
+ },
606
+ "failureMessage": {
607
+ "type": "string"
608
+ },
609
+ "attachments": {
610
+ "type": "array",
611
+ "items": {
612
+ "type": "object",
613
+ "additionalProperties": false,
614
+ "properties": {
615
+ "filename": {
616
+ "type": "string"
617
+ },
618
+ "mediaType": {
619
+ "type": "string"
620
+ },
621
+ "sha256": {
622
+ "type": "string"
623
+ },
624
+ "sizeBytes": {
625
+ "type": "integer",
626
+ "minimum": 0
627
+ },
628
+ "caseId": {
629
+ "type": "string"
630
+ }
631
+ },
632
+ "required": [
633
+ "filename",
634
+ "mediaType",
635
+ "sha256",
636
+ "sizeBytes"
637
+ ]
638
+ }
639
+ }
640
+ },
641
+ "required": [
642
+ "runId",
643
+ "commitSha",
644
+ "branch",
645
+ "environment",
646
+ "deploymentRef",
647
+ "environmentFingerprint",
648
+ "commands",
649
+ "manifest",
650
+ "selection",
651
+ "cases",
652
+ "reports",
653
+ "check",
654
+ "invariants",
655
+ "status",
656
+ "attachments"
657
+ ]
658
+ },
659
+ "QaHttpExchange": {
660
+ "type": "object",
661
+ "additionalProperties": false,
662
+ "properties": {
663
+ "step": {
664
+ "type": "string",
665
+ "minLength": 1
666
+ },
667
+ "id": {
668
+ "type": "string"
669
+ },
670
+ "sequence": {
671
+ "type": "integer",
672
+ "minimum": 1
673
+ },
674
+ "startedAt": {
675
+ "type": "string"
676
+ },
677
+ "durationMs": {
678
+ "type": "integer",
679
+ "minimum": 0
680
+ },
681
+ "request": {
682
+ "type": "object",
683
+ "additionalProperties": false,
684
+ "properties": {
685
+ "method": {
686
+ "type": "string"
687
+ },
688
+ "url": {
689
+ "type": "string"
690
+ },
691
+ "headers": {
692
+ "type": "object",
693
+ "additionalProperties": {
694
+ "type": "array",
695
+ "items": {
696
+ "type": "string"
697
+ }
698
+ }
699
+ },
700
+ "body": {
701
+ "anyOf": [
702
+ {
703
+ "type": "string"
704
+ },
705
+ {
706
+ "type": "null"
707
+ }
708
+ ]
709
+ },
710
+ "bodyAttachment": {
711
+ "type": "string"
712
+ }
713
+ },
714
+ "required": [
715
+ "method",
716
+ "url",
717
+ "headers",
718
+ "body"
719
+ ]
720
+ },
721
+ "response": {
722
+ "anyOf": [
723
+ {
724
+ "type": "object",
725
+ "additionalProperties": false,
726
+ "properties": {
727
+ "status": {
728
+ "type": "integer",
729
+ "minimum": 100,
730
+ "maximum": 599
731
+ },
732
+ "headers": {
733
+ "type": "object",
734
+ "additionalProperties": {
735
+ "type": "array",
736
+ "items": {
737
+ "type": "string"
738
+ }
739
+ }
740
+ },
741
+ "body": {
742
+ "anyOf": [
743
+ {
744
+ "type": "string"
745
+ },
746
+ {
747
+ "type": "null"
748
+ }
749
+ ]
750
+ },
751
+ "bodyAttachment": {
752
+ "type": "string"
753
+ }
754
+ },
755
+ "required": [
756
+ "status",
757
+ "headers",
758
+ "body"
759
+ ]
760
+ },
761
+ {
762
+ "type": "null"
763
+ }
764
+ ]
765
+ },
766
+ "error": {
767
+ "type": "string"
768
+ }
769
+ },
770
+ "required": [
771
+ "id",
772
+ "sequence",
773
+ "startedAt",
774
+ "durationMs",
775
+ "request",
776
+ "response"
777
+ ]
778
+ },
779
+ "QaManifest": {
780
+ "type": "object",
781
+ "additionalProperties": false,
782
+ "properties": {
783
+ "contractVersion": {
784
+ "enum": [
785
+ 1
786
+ ]
787
+ },
788
+ "language": {
789
+ "type": "string",
790
+ "minLength": 1
791
+ },
792
+ "cases": {
793
+ "type": "array",
794
+ "items": {
795
+ "$ref": "#/definitions/QaManifestCase"
796
+ },
797
+ "minItems": 1
798
+ }
799
+ },
800
+ "required": [
801
+ "contractVersion",
802
+ "language",
803
+ "cases"
804
+ ]
805
+ },
806
+ "QaManifestCase": {
807
+ "type": "object",
808
+ "additionalProperties": false,
809
+ "properties": {
810
+ "caseId": {
811
+ "type": "string",
812
+ "pattern": "^[a-zA-Z][\\w-]*\\.[a-zA-Z][\\w-]*\\.[a-zA-Z][\\w.-]*$"
813
+ },
814
+ "name": {
815
+ "type": "string",
816
+ "minLength": 1
817
+ },
818
+ "kind": {
819
+ "enum": [
820
+ "CASE",
821
+ "FLOW"
822
+ ]
823
+ },
824
+ "domain": {
825
+ "type": "string",
826
+ "minLength": 1
827
+ },
828
+ "file": {
829
+ "type": "string",
830
+ "minLength": 1
831
+ },
832
+ "selector": {
833
+ "type": "string",
834
+ "minLength": 1
835
+ },
836
+ "endpoint": {
837
+ "type": "string"
838
+ },
839
+ "stubs": {
840
+ "type": "array",
841
+ "items": {
842
+ "type": "string",
843
+ "minLength": 1
844
+ },
845
+ "uniqueItems": true
846
+ },
847
+ "covers": {
848
+ "type": "array",
849
+ "items": {
850
+ "type": "string",
851
+ "minLength": 1
852
+ },
853
+ "uniqueItems": true
854
+ },
855
+ "tags": {
856
+ "type": "array",
857
+ "items": {
858
+ "type": "string",
859
+ "minLength": 1
860
+ },
861
+ "uniqueItems": true
862
+ },
863
+ "suites": {
864
+ "type": "array",
865
+ "items": {
866
+ "type": "string",
867
+ "minLength": 1
868
+ },
869
+ "uniqueItems": true
870
+ }
871
+ },
872
+ "required": [
873
+ "caseId",
874
+ "kind",
875
+ "domain",
876
+ "file",
877
+ "selector",
878
+ "stubs"
879
+ ]
880
+ },
881
+ "QaReportHash": {
882
+ "type": "object",
883
+ "additionalProperties": false,
884
+ "properties": {
885
+ "path": {
886
+ "type": "string"
887
+ },
888
+ "sha256": {
889
+ "type": "string",
890
+ "pattern": "^[a-f0-9]{64}$"
891
+ }
892
+ },
893
+ "required": [
894
+ "path",
895
+ "sha256"
896
+ ]
897
+ },
898
+ "QaSelection": {
899
+ "type": "object",
900
+ "additionalProperties": false,
901
+ "properties": {
902
+ "runId": {
903
+ "type": "string",
904
+ "minLength": 1
905
+ },
906
+ "caseIds": {
907
+ "type": "array",
908
+ "items": {
909
+ "type": "string",
910
+ "minLength": 1
911
+ },
912
+ "uniqueItems": true
913
+ },
914
+ "domains": {
915
+ "type": "array",
916
+ "items": {
917
+ "type": "string",
918
+ "minLength": 1
919
+ },
920
+ "uniqueItems": true
921
+ }
922
+ },
923
+ "required": [
924
+ "runId",
925
+ "caseIds",
926
+ "domains"
927
+ ]
928
+ }
929
+ }
930
+ } ;
931
+ export const qaHttpExchangeSchema = {
932
+ "$ref": "#/definitions/QaHttpExchange",
933
+ "definitions": {
934
+ "QaHttpExchange": {
935
+ "type": "object",
936
+ "additionalProperties": false,
937
+ "properties": {
938
+ "step": {
939
+ "type": "string",
940
+ "minLength": 1
941
+ },
942
+ "id": {
943
+ "type": "string"
944
+ },
945
+ "sequence": {
946
+ "type": "integer",
947
+ "minimum": 1
948
+ },
949
+ "startedAt": {
950
+ "type": "string"
951
+ },
952
+ "durationMs": {
953
+ "type": "integer",
954
+ "minimum": 0
955
+ },
956
+ "request": {
957
+ "type": "object",
958
+ "additionalProperties": false,
959
+ "properties": {
960
+ "method": {
961
+ "type": "string"
962
+ },
963
+ "url": {
964
+ "type": "string"
965
+ },
966
+ "headers": {
967
+ "type": "object",
968
+ "additionalProperties": {
969
+ "type": "array",
970
+ "items": {
971
+ "type": "string"
972
+ }
973
+ }
974
+ },
975
+ "body": {
976
+ "anyOf": [
977
+ {
978
+ "type": "string"
979
+ },
980
+ {
981
+ "type": "null"
982
+ }
983
+ ]
984
+ },
985
+ "bodyAttachment": {
986
+ "type": "string"
987
+ }
988
+ },
989
+ "required": [
990
+ "method",
991
+ "url",
992
+ "headers",
993
+ "body"
994
+ ]
995
+ },
996
+ "response": {
997
+ "anyOf": [
998
+ {
999
+ "type": "object",
1000
+ "additionalProperties": false,
1001
+ "properties": {
1002
+ "status": {
1003
+ "type": "integer",
1004
+ "minimum": 100,
1005
+ "maximum": 599
1006
+ },
1007
+ "headers": {
1008
+ "type": "object",
1009
+ "additionalProperties": {
1010
+ "type": "array",
1011
+ "items": {
1012
+ "type": "string"
1013
+ }
1014
+ }
1015
+ },
1016
+ "body": {
1017
+ "anyOf": [
1018
+ {
1019
+ "type": "string"
1020
+ },
1021
+ {
1022
+ "type": "null"
1023
+ }
1024
+ ]
1025
+ },
1026
+ "bodyAttachment": {
1027
+ "type": "string"
1028
+ }
1029
+ },
1030
+ "required": [
1031
+ "status",
1032
+ "headers",
1033
+ "body"
1034
+ ]
1035
+ },
1036
+ {
1037
+ "type": "null"
1038
+ }
1039
+ ]
1040
+ },
1041
+ "error": {
1042
+ "type": "string"
1043
+ }
1044
+ },
1045
+ "required": [
1046
+ "id",
1047
+ "sequence",
1048
+ "startedAt",
1049
+ "durationMs",
1050
+ "request",
1051
+ "response"
1052
+ ]
1053
+ }
1054
+ }
1055
+ } ;
1056
+ export const qaEvidenceReferencesSchema = {
1057
+ "type": "array",
1058
+ "items": {
1059
+ "$ref": "#/definitions/QaEvidenceReference"
1060
+ },
1061
+ "definitions": {
1062
+ "QaEvidenceReference": {
1063
+ "oneOf": [
1064
+ {
1065
+ "type": "object",
1066
+ "additionalProperties": false,
1067
+ "required": [
1068
+ "kind",
1069
+ "exchangeId",
1070
+ "side",
1071
+ "label"
1072
+ ],
1073
+ "properties": {
1074
+ "kind": {
1075
+ "type": "string",
1076
+ "enum": [
1077
+ "http"
1078
+ ]
1079
+ },
1080
+ "exchangeId": {
1081
+ "type": "string",
1082
+ "minLength": 1
1083
+ },
1084
+ "side": {
1085
+ "type": "string",
1086
+ "enum": [
1087
+ "request",
1088
+ "response"
1089
+ ]
1090
+ },
1091
+ "label": {
1092
+ "type": "string"
1093
+ }
1094
+ }
1095
+ },
1096
+ {
1097
+ "type": "object",
1098
+ "additionalProperties": false,
1099
+ "required": [
1100
+ "kind",
1101
+ "filename",
1102
+ "label"
1103
+ ],
1104
+ "properties": {
1105
+ "kind": {
1106
+ "type": "string",
1107
+ "enum": [
1108
+ "attachment"
1109
+ ]
1110
+ },
1111
+ "filename": {
1112
+ "type": "string",
1113
+ "minLength": 1
1114
+ },
1115
+ "label": {
1116
+ "type": "string"
1117
+ }
1118
+ }
1119
+ }
1120
+ ]
1121
+ }
1122
+ }
1123
+ } ;