assertledger 1.3.1 → 1.5.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 (107) hide show
  1. package/README.fr.md +6 -3
  2. package/README.md +6 -3
  3. package/conformance/schema-extensions.json +15 -0
  4. package/dist/build-info.json +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +218 -8
  7. package/dist/cli.js.map +1 -1
  8. package/dist/contracts/index.d.ts +467 -4
  9. package/dist/contracts/index.d.ts.map +1 -1
  10. package/dist/contracts/index.js +256 -3
  11. package/dist/contracts/index.js.map +1 -1
  12. package/dist/contracts/qualification.d.ts +528 -0
  13. package/dist/contracts/qualification.d.ts.map +1 -0
  14. package/dist/contracts/qualification.js +357 -0
  15. package/dist/contracts/qualification.js.map +1 -0
  16. package/dist/core/index.d.ts +9 -0
  17. package/dist/core/index.d.ts.map +1 -1
  18. package/dist/core/index.js +46 -2
  19. package/dist/core/index.js.map +1 -1
  20. package/dist/core/qualification.d.ts +17 -0
  21. package/dist/core/qualification.d.ts.map +1 -0
  22. package/dist/core/qualification.js +571 -0
  23. package/dist/core/qualification.js.map +1 -0
  24. package/dist/diagnostics.d.ts.map +1 -1
  25. package/dist/diagnostics.js +81 -4
  26. package/dist/diagnostics.js.map +1 -1
  27. package/dist/engine/adapters/bun-native.d.ts +35 -0
  28. package/dist/engine/adapters/bun-native.d.ts.map +1 -0
  29. package/dist/engine/adapters/bun-native.js +179 -0
  30. package/dist/engine/adapters/bun-native.js.map +1 -0
  31. package/dist/engine/adapters/bun-test-designated-profile.d.ts +23 -0
  32. package/dist/engine/adapters/bun-test-designated-profile.d.ts.map +1 -0
  33. package/dist/engine/adapters/bun-test-designated-profile.js +24 -0
  34. package/dist/engine/adapters/bun-test-designated-profile.js.map +1 -0
  35. package/dist/engine/container.d.ts +7 -0
  36. package/dist/engine/container.d.ts.map +1 -1
  37. package/dist/engine/container.js +22 -7
  38. package/dist/engine/container.js.map +1 -1
  39. package/dist/engine/git-regression.d.ts.map +1 -1
  40. package/dist/engine/git-regression.js +9 -2
  41. package/dist/engine/git-regression.js.map +1 -1
  42. package/dist/engine/index.d.ts +14 -0
  43. package/dist/engine/index.d.ts.map +1 -1
  44. package/dist/engine/index.js +828 -97
  45. package/dist/engine/index.js.map +1 -1
  46. package/dist/engine/qualification.d.ts +154 -0
  47. package/dist/engine/qualification.d.ts.map +1 -0
  48. package/dist/engine/qualification.js +725 -0
  49. package/dist/engine/qualification.js.map +1 -0
  50. package/dist/engine/test-closure.d.ts +39 -0
  51. package/dist/engine/test-closure.d.ts.map +1 -0
  52. package/dist/engine/test-closure.js +513 -0
  53. package/dist/engine/test-closure.js.map +1 -0
  54. package/dist/engine/witness-import.d.ts +31 -0
  55. package/dist/engine/witness-import.d.ts.map +1 -0
  56. package/dist/engine/witness-import.js +224 -0
  57. package/dist/engine/witness-import.js.map +1 -0
  58. package/dist/index.d.ts +3 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +3 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/mcp/index.d.ts.map +1 -1
  63. package/dist/mcp/index.js +65 -0
  64. package/dist/mcp/index.js.map +1 -1
  65. package/dist/sdk/index.d.ts +292 -3
  66. package/dist/sdk/index.d.ts.map +1 -1
  67. package/dist/sdk/index.js +39 -1
  68. package/dist/sdk/index.js.map +1 -1
  69. package/docs/container-isolation.md +6 -0
  70. package/docs/migration-orchestration-qualification-v1.md +109 -0
  71. package/docs/migration-verification-v4.md +94 -0
  72. package/docs/orchestration-qualification.md +167 -0
  73. package/docs/reference.md +13 -0
  74. package/docs/witness-import.md +67 -0
  75. package/examples/orchestration/README.md +68 -0
  76. package/examples/orchestration/consumer-obligations.json +101 -0
  77. package/examples/orchestration/workspace/bitbucket-pipelines.yml +10 -0
  78. package/examples/orchestration/workspace/command-shape.test.mjs +25 -0
  79. package/examples/orchestration/workspace/commands.mjs +14 -0
  80. package/examples/orchestration/workspace/completion.mjs +39 -0
  81. package/examples/orchestration/workspace/faults.json +1 -0
  82. package/examples/orchestration/workspace/native.test.ts +4 -0
  83. package/examples/orchestration/workspace/package.json +6 -0
  84. package/examples/orchestration/workspace/packages/app/package.json +12 -0
  85. package/examples/orchestration/workspace/packages/app/verdict.txt +1 -0
  86. package/examples/orchestration/workspace/packages/leaf/package.json +9 -0
  87. package/examples/orchestration/workspace/packages/leaf/verdict.txt +1 -0
  88. package/examples/orchestration/workspace/pnpm-lock.yaml +170 -0
  89. package/examples/orchestration/workspace/pnpm-workspace.yaml +2 -0
  90. package/examples/orchestration/workspace/task.mjs +23 -0
  91. package/examples/orchestration/workspace/turbo.json +38 -0
  92. package/examples/orchestration/workspace/wrapper.mjs +45 -0
  93. package/integrations/bun/driver.d.mts +30 -1
  94. package/integrations/bun/driver.mjs +215 -6
  95. package/integrations/bun/preload.mjs +186 -5
  96. package/integrations/bun-native/README.md +86 -0
  97. package/integrations/bun-native/driver.mjs +396 -0
  98. package/integrations/bun-native/preload.mjs +375 -0
  99. package/integrations/skill/SKILL.md +25 -5
  100. package/package.json +1 -1
  101. package/schemas/evidence-manifest.v4.json +995 -0
  102. package/schemas/qualification-execution-request.v1.json +571 -0
  103. package/schemas/qualification-plan.v1.json +528 -0
  104. package/schemas/qualification-receipt.v1.json +821 -0
  105. package/schemas/qualification-replay-result.v1.json +37 -0
  106. package/schemas/verification-request.v4.json +590 -0
  107. package/schemas/witness-import-request.v1.json +231 -0
@@ -0,0 +1,995 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": {
6
+ "$ref": "#/$defs/__schema0"
7
+ },
8
+ "repositoryDigest": {
9
+ "$ref": "#/$defs/__schema1"
10
+ },
11
+ "evidenceContext": {
12
+ "$ref": "#/$defs/__schema3"
13
+ },
14
+ "policy": {
15
+ "$ref": "#/$defs/__schema12"
16
+ },
17
+ "worlds": {
18
+ "$ref": "#/$defs/__schema15"
19
+ },
20
+ "candidates": {
21
+ "$ref": "#/$defs/__schema16"
22
+ },
23
+ "observations": {
24
+ "$ref": "#/$defs/__schema18"
25
+ },
26
+ "decision": {
27
+ "$ref": "#/$defs/__schema19"
28
+ },
29
+ "decisionDigest": {
30
+ "$ref": "#/$defs/__schema2"
31
+ },
32
+ "artifactDigest": {
33
+ "$ref": "#/$defs/__schema2"
34
+ },
35
+ "adapter": {
36
+ "$ref": "#/$defs/__schema20"
37
+ },
38
+ "isolation": {
39
+ "$ref": "#/$defs/__schema21"
40
+ },
41
+ "limitations": {
42
+ "$ref": "#/$defs/__schema23"
43
+ }
44
+ },
45
+ "required": [
46
+ "schemaVersion",
47
+ "repositoryDigest",
48
+ "evidenceContext",
49
+ "policy",
50
+ "worlds",
51
+ "candidates",
52
+ "observations",
53
+ "decision",
54
+ "decisionDigest",
55
+ "artifactDigest",
56
+ "adapter",
57
+ "isolation",
58
+ "limitations"
59
+ ],
60
+ "additionalProperties": false,
61
+ "title": "AssertLedger evidence manifest v4",
62
+ "description": "A replayable campaign artifact that records designated tests, the repository snapshot scope and the declared isolation level.",
63
+ "$defs": {
64
+ "__schema0": {
65
+ "type": "string",
66
+ "const": "4.0.0"
67
+ },
68
+ "__schema1": {
69
+ "anyOf": [
70
+ {
71
+ "$ref": "#/$defs/__schema2"
72
+ },
73
+ {
74
+ "type": "string",
75
+ "const": "invalid"
76
+ }
77
+ ]
78
+ },
79
+ "__schema2": {
80
+ "type": "string",
81
+ "pattern": "^sha256:[a-f0-9]{64}$"
82
+ },
83
+ "__schema3": {
84
+ "type": "object",
85
+ "properties": {
86
+ "engine": {
87
+ "type": "object",
88
+ "properties": {
89
+ "name": {
90
+ "type": "string",
91
+ "minLength": 1,
92
+ "maxLength": 128
93
+ },
94
+ "version": {
95
+ "type": "string",
96
+ "minLength": 1,
97
+ "maxLength": 128
98
+ }
99
+ },
100
+ "required": ["name", "version"],
101
+ "additionalProperties": false
102
+ },
103
+ "adapter": {
104
+ "type": "object",
105
+ "properties": {
106
+ "name": {
107
+ "type": "string",
108
+ "minLength": 1,
109
+ "maxLength": 128
110
+ },
111
+ "version": {
112
+ "type": "string",
113
+ "minLength": 1,
114
+ "maxLength": 128
115
+ },
116
+ "configuration": {
117
+ "$ref": "#/$defs/__schema4"
118
+ }
119
+ },
120
+ "required": ["name", "version", "configuration"],
121
+ "additionalProperties": false
122
+ },
123
+ "execution": {
124
+ "type": "object",
125
+ "properties": {
126
+ "isolation": {
127
+ "type": "string",
128
+ "minLength": 1,
129
+ "maxLength": 128
130
+ },
131
+ "environmentAllowlist": {
132
+ "maxItems": 100,
133
+ "type": "array",
134
+ "items": {
135
+ "$ref": "#/$defs/__schema5"
136
+ }
137
+ },
138
+ "budgets": {
139
+ "$ref": "#/$defs/__schema6"
140
+ },
141
+ "candidateRoots": {
142
+ "maxItems": 100,
143
+ "type": "array",
144
+ "items": {
145
+ "$ref": "#/$defs/__schema7"
146
+ }
147
+ },
148
+ "backend": {
149
+ "oneOf": [
150
+ {
151
+ "type": "object",
152
+ "properties": {
153
+ "kind": {
154
+ "type": "string",
155
+ "const": "trusted-local"
156
+ },
157
+ "level": {
158
+ "type": "string",
159
+ "const": "UNSANDBOXED"
160
+ }
161
+ },
162
+ "required": ["kind", "level"],
163
+ "additionalProperties": false
164
+ },
165
+ {
166
+ "type": "object",
167
+ "properties": {
168
+ "kind": {
169
+ "type": "string",
170
+ "const": "container"
171
+ },
172
+ "level": {
173
+ "type": "string",
174
+ "const": "CONTAINER"
175
+ },
176
+ "image": {
177
+ "type": "object",
178
+ "properties": {
179
+ "reference": {
180
+ "type": "string",
181
+ "maxLength": 512,
182
+ "pattern": "^(?:[A-Za-z0-9][A-Za-z0-9.-]*(?::[0-9]{1,5})?\\/)?[a-z0-9]+(?:(?:[._]|__|-+)[a-z0-9]+)*(?:\\/[a-z0-9]+(?:(?:[._]|__|-+)[a-z0-9]+)*)*(?::[A-Za-z0-9_][A-Za-z0-9._-]{0,127})?@sha256:[a-f0-9]{64}$"
183
+ },
184
+ "id": {
185
+ "$ref": "#/$defs/__schema2"
186
+ },
187
+ "os": {
188
+ "type": "string",
189
+ "const": "linux"
190
+ },
191
+ "architecture": {
192
+ "type": "string",
193
+ "minLength": 1,
194
+ "maxLength": 64
195
+ }
196
+ },
197
+ "required": ["reference", "id", "os", "architecture"],
198
+ "additionalProperties": false
199
+ },
200
+ "runtime": {
201
+ "type": "object",
202
+ "properties": {
203
+ "clientVersion": {
204
+ "type": "string",
205
+ "minLength": 1,
206
+ "maxLength": 128
207
+ },
208
+ "serverVersion": {
209
+ "type": "string",
210
+ "minLength": 1,
211
+ "maxLength": 128
212
+ },
213
+ "serverOs": {
214
+ "type": "string",
215
+ "const": "linux"
216
+ },
217
+ "serverArchitecture": {
218
+ "type": "string",
219
+ "minLength": 1,
220
+ "maxLength": 64
221
+ },
222
+ "cgroupVersion": {
223
+ "type": "string",
224
+ "maxLength": 16
225
+ },
226
+ "securityOptions": {
227
+ "maxItems": 64,
228
+ "type": "array",
229
+ "items": {
230
+ "$ref": "#/$defs/__schema8"
231
+ }
232
+ }
233
+ },
234
+ "required": [
235
+ "clientVersion",
236
+ "serverVersion",
237
+ "serverOs",
238
+ "serverArchitecture",
239
+ "cgroupVersion",
240
+ "securityOptions"
241
+ ],
242
+ "additionalProperties": false
243
+ },
244
+ "controls": {
245
+ "type": "object",
246
+ "properties": {
247
+ "network": {
248
+ "type": "string",
249
+ "const": "none"
250
+ },
251
+ "rootFilesystem": {
252
+ "type": "string",
253
+ "const": "read-only"
254
+ },
255
+ "hostMounts": {
256
+ "type": "string",
257
+ "const": "none"
258
+ },
259
+ "workspace": {
260
+ "type": "string",
261
+ "const": "anonymous-volume"
262
+ },
263
+ "user": {
264
+ "type": "string",
265
+ "const": "65534:65534"
266
+ },
267
+ "capabilities": {
268
+ "type": "string",
269
+ "const": "none"
270
+ },
271
+ "noNewPrivileges": {
272
+ "type": "boolean",
273
+ "const": true
274
+ },
275
+ "imagePull": {
276
+ "type": "string",
277
+ "const": "never"
278
+ },
279
+ "logDriver": {
280
+ "type": "string",
281
+ "const": "none"
282
+ },
283
+ "environment": {
284
+ "maxItems": 100,
285
+ "type": "array",
286
+ "items": {
287
+ "$ref": "#/$defs/__schema9"
288
+ }
289
+ },
290
+ "limits": {
291
+ "type": "object",
292
+ "properties": {
293
+ "memoryBytes": {
294
+ "type": "integer",
295
+ "minimum": 67108864,
296
+ "maximum": 68719476736
297
+ },
298
+ "cpuMillicores": {
299
+ "type": "integer",
300
+ "minimum": 100,
301
+ "maximum": 256000
302
+ },
303
+ "pids": {
304
+ "type": "integer",
305
+ "minimum": 16,
306
+ "maximum": 65536
307
+ },
308
+ "temporaryDirectoryBytes": {
309
+ "type": "integer",
310
+ "minimum": 1048576,
311
+ "maximum": 17179869184
312
+ }
313
+ },
314
+ "required": [
315
+ "memoryBytes",
316
+ "cpuMillicores",
317
+ "pids",
318
+ "temporaryDirectoryBytes"
319
+ ],
320
+ "additionalProperties": false
321
+ }
322
+ },
323
+ "required": [
324
+ "network",
325
+ "rootFilesystem",
326
+ "hostMounts",
327
+ "workspace",
328
+ "user",
329
+ "capabilities",
330
+ "noNewPrivileges",
331
+ "imagePull",
332
+ "logDriver",
333
+ "environment",
334
+ "limits"
335
+ ],
336
+ "additionalProperties": false
337
+ }
338
+ },
339
+ "required": ["kind", "level", "image", "runtime", "controls"],
340
+ "additionalProperties": false
341
+ },
342
+ {
343
+ "type": "object",
344
+ "properties": {
345
+ "kind": {
346
+ "type": "string",
347
+ "const": "windows-native"
348
+ },
349
+ "level": {
350
+ "type": "string",
351
+ "const": "WINDOWS_NATIVE_UNSANDBOXED"
352
+ },
353
+ "platform": {
354
+ "type": "string",
355
+ "const": "win32"
356
+ }
357
+ },
358
+ "required": ["kind", "level", "platform"],
359
+ "additionalProperties": false
360
+ }
361
+ ]
362
+ }
363
+ },
364
+ "required": ["isolation", "environmentAllowlist", "budgets", "candidateRoots", "backend"],
365
+ "additionalProperties": false
366
+ },
367
+ "worlds": {
368
+ "type": "array",
369
+ "items": {
370
+ "type": "object",
371
+ "properties": {
372
+ "id": {
373
+ "$ref": "#/$defs/__schema10"
374
+ },
375
+ "provenance": {
376
+ "type": "string",
377
+ "minLength": 1,
378
+ "maxLength": 1024
379
+ },
380
+ "digest": {
381
+ "$ref": "#/$defs/__schema2"
382
+ }
383
+ },
384
+ "required": ["id", "provenance", "digest"],
385
+ "additionalProperties": false
386
+ }
387
+ },
388
+ "repository": {
389
+ "type": "object",
390
+ "properties": {
391
+ "includeDependencies": {
392
+ "type": "boolean"
393
+ },
394
+ "omittedLinks": {
395
+ "maxItems": 10000,
396
+ "type": "array",
397
+ "items": {
398
+ "$ref": "#/$defs/__schema11"
399
+ }
400
+ },
401
+ "git": {
402
+ "anyOf": [
403
+ {
404
+ "type": "object",
405
+ "properties": {
406
+ "mode": {
407
+ "type": "string",
408
+ "const": "synthesized"
409
+ },
410
+ "treeId": {
411
+ "type": "string",
412
+ "pattern": "^(?:[a-f0-9]{40}|[a-f0-9]{64})$"
413
+ },
414
+ "gitVersion": {
415
+ "type": "string",
416
+ "minLength": 1,
417
+ "maxLength": 256
418
+ }
419
+ },
420
+ "required": ["mode", "treeId", "gitVersion"],
421
+ "additionalProperties": false
422
+ },
423
+ {
424
+ "type": "null"
425
+ }
426
+ ]
427
+ }
428
+ },
429
+ "required": ["includeDependencies", "omittedLinks", "git"],
430
+ "additionalProperties": false
431
+ }
432
+ },
433
+ "required": ["engine", "adapter", "execution", "worlds", "repository"],
434
+ "additionalProperties": false
435
+ },
436
+ "__schema4": {
437
+ "anyOf": [
438
+ {
439
+ "type": "string"
440
+ },
441
+ {
442
+ "type": "number"
443
+ },
444
+ {
445
+ "type": "boolean"
446
+ },
447
+ {
448
+ "type": "null"
449
+ },
450
+ {
451
+ "type": "array",
452
+ "items": {
453
+ "$ref": "#/$defs/__schema4"
454
+ }
455
+ },
456
+ {
457
+ "type": "object",
458
+ "propertyNames": {
459
+ "type": "string"
460
+ },
461
+ "additionalProperties": {
462
+ "$ref": "#/$defs/__schema4"
463
+ }
464
+ }
465
+ ]
466
+ },
467
+ "__schema5": {
468
+ "type": "string",
469
+ "minLength": 1,
470
+ "maxLength": 128
471
+ },
472
+ "__schema6": {
473
+ "anyOf": [
474
+ {
475
+ "type": "string"
476
+ },
477
+ {
478
+ "type": "number"
479
+ },
480
+ {
481
+ "type": "boolean"
482
+ },
483
+ {
484
+ "type": "null"
485
+ },
486
+ {
487
+ "type": "array",
488
+ "items": {
489
+ "$ref": "#/$defs/__schema6"
490
+ }
491
+ },
492
+ {
493
+ "type": "object",
494
+ "propertyNames": {
495
+ "type": "string"
496
+ },
497
+ "additionalProperties": {
498
+ "$ref": "#/$defs/__schema6"
499
+ }
500
+ }
501
+ ]
502
+ },
503
+ "__schema7": {
504
+ "type": "string",
505
+ "minLength": 1,
506
+ "maxLength": 512
507
+ },
508
+ "__schema8": {
509
+ "type": "string",
510
+ "minLength": 1,
511
+ "maxLength": 512
512
+ },
513
+ "__schema9": {
514
+ "type": "object",
515
+ "properties": {
516
+ "name": {
517
+ "type": "string",
518
+ "minLength": 1,
519
+ "maxLength": 128,
520
+ "pattern": "^(?!(?:[Nn][Oo][Dd][Ee]_[Oo][Pp][Tt][Ii][Oo][Nn][Ss]$|[Tt][Ee][Ss][Tt][Ff][Oo][Rr][Gg][Ee]_|[Nn][Oo][Dd][Ee]_[Tt][Ee][Ss][Tt]_)).+$"
521
+ },
522
+ "value": {
523
+ "type": "string",
524
+ "maxLength": 4096
525
+ }
526
+ },
527
+ "required": ["name", "value"],
528
+ "additionalProperties": false
529
+ },
530
+ "__schema10": {
531
+ "type": "string",
532
+ "minLength": 1,
533
+ "maxLength": 128,
534
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
535
+ },
536
+ "__schema11": {
537
+ "type": "string",
538
+ "minLength": 1,
539
+ "maxLength": 1024
540
+ },
541
+ "__schema12": {
542
+ "anyOf": [
543
+ {
544
+ "type": "object",
545
+ "properties": {
546
+ "policyVersion": {
547
+ "type": "string",
548
+ "const": "1.0.0"
549
+ },
550
+ "requiredAttempts": {
551
+ "type": "integer",
552
+ "minimum": 1,
553
+ "maximum": 1000
554
+ },
555
+ "minimumTargetWeightPermille": {
556
+ "type": "integer",
557
+ "minimum": 1,
558
+ "maximum": 1000
559
+ },
560
+ "maximumSelectedCandidates": {
561
+ "type": "integer",
562
+ "minimum": 1,
563
+ "maximum": 1000
564
+ },
565
+ "acceptedTargetOutcomes": {
566
+ "minItems": 1,
567
+ "maxItems": 1,
568
+ "type": "array",
569
+ "items": {
570
+ "$ref": "#/$defs/__schema13"
571
+ }
572
+ }
573
+ },
574
+ "required": [
575
+ "policyVersion",
576
+ "requiredAttempts",
577
+ "minimumTargetWeightPermille",
578
+ "maximumSelectedCandidates",
579
+ "acceptedTargetOutcomes"
580
+ ],
581
+ "additionalProperties": false
582
+ },
583
+ {
584
+ "type": "object",
585
+ "properties": {
586
+ "policyVersion": {
587
+ "type": "string",
588
+ "const": "invalid"
589
+ },
590
+ "requiredAttempts": {
591
+ "type": "number",
592
+ "const": 1
593
+ },
594
+ "minimumTargetWeightPermille": {
595
+ "type": "number",
596
+ "const": 1000
597
+ },
598
+ "maximumSelectedCandidates": {
599
+ "type": "number",
600
+ "const": 0
601
+ },
602
+ "acceptedTargetOutcomes": {
603
+ "maxItems": 0,
604
+ "type": "array",
605
+ "items": {
606
+ "$ref": "#/$defs/__schema14"
607
+ }
608
+ }
609
+ },
610
+ "required": [
611
+ "policyVersion",
612
+ "requiredAttempts",
613
+ "minimumTargetWeightPermille",
614
+ "maximumSelectedCandidates",
615
+ "acceptedTargetOutcomes"
616
+ ],
617
+ "additionalProperties": false
618
+ }
619
+ ]
620
+ },
621
+ "__schema13": {
622
+ "type": "string",
623
+ "const": "ASSERTION_FAILURE"
624
+ },
625
+ "__schema14": {
626
+ "type": "string",
627
+ "const": "ASSERTION_FAILURE"
628
+ },
629
+ "__schema15": {
630
+ "type": "array",
631
+ "items": {
632
+ "type": "object",
633
+ "properties": {
634
+ "id": {
635
+ "$ref": "#/$defs/__schema10"
636
+ },
637
+ "kind": {
638
+ "type": "string",
639
+ "enum": ["REFERENCE", "TARGET", "NEUTRAL"]
640
+ },
641
+ "required": {
642
+ "type": "boolean"
643
+ },
644
+ "weight": {
645
+ "type": "integer",
646
+ "minimum": 0,
647
+ "maximum": 1000000
648
+ }
649
+ },
650
+ "required": ["id", "kind", "required", "weight"],
651
+ "additionalProperties": false
652
+ }
653
+ },
654
+ "__schema16": {
655
+ "type": "array",
656
+ "items": {
657
+ "type": "object",
658
+ "properties": {
659
+ "id": {
660
+ "$ref": "#/$defs/__schema10"
661
+ },
662
+ "digest": {
663
+ "$ref": "#/$defs/__schema2"
664
+ },
665
+ "sizeBytes": {
666
+ "type": "integer",
667
+ "minimum": 0,
668
+ "maximum": 9007199254740991
669
+ },
670
+ "status": {
671
+ "type": "string",
672
+ "enum": ["ELIGIBLE", "UNSTABLE", "INCONCLUSIVE", "INVALID", "WEAK_ORACLE"]
673
+ },
674
+ "killedTargetIds": {
675
+ "type": "array",
676
+ "items": {
677
+ "$ref": "#/$defs/__schema10"
678
+ }
679
+ },
680
+ "targetWeightKilled": {
681
+ "type": "integer",
682
+ "minimum": 0,
683
+ "maximum": 9007199254740991
684
+ },
685
+ "gates": {
686
+ "type": "array",
687
+ "items": {
688
+ "type": "object",
689
+ "properties": {
690
+ "name": {
691
+ "type": "string",
692
+ "enum": [
693
+ "COMPLETENESS",
694
+ "STABILITY",
695
+ "DISCOVERY",
696
+ "REFERENCE",
697
+ "NEUTRAL",
698
+ "TARGET_STRENGTH"
699
+ ]
700
+ },
701
+ "status": {
702
+ "type": "string",
703
+ "enum": ["PASSED", "FAILED", "NOT_RUN"]
704
+ },
705
+ "evidenceRunIds": {
706
+ "type": "array",
707
+ "items": {
708
+ "type": "string",
709
+ "minLength": 1,
710
+ "maxLength": 512
711
+ }
712
+ },
713
+ "reasonCodes": {
714
+ "type": "array",
715
+ "items": {
716
+ "$ref": "#/$defs/__schema17"
717
+ }
718
+ }
719
+ },
720
+ "required": ["name", "status", "evidenceRunIds", "reasonCodes"],
721
+ "additionalProperties": false
722
+ }
723
+ },
724
+ "reasonCodes": {
725
+ "type": "array",
726
+ "items": {
727
+ "$ref": "#/$defs/__schema17"
728
+ }
729
+ }
730
+ },
731
+ "required": [
732
+ "id",
733
+ "digest",
734
+ "sizeBytes",
735
+ "status",
736
+ "killedTargetIds",
737
+ "targetWeightKilled",
738
+ "gates",
739
+ "reasonCodes"
740
+ ],
741
+ "additionalProperties": false
742
+ }
743
+ },
744
+ "__schema17": {
745
+ "type": "string",
746
+ "minLength": 1,
747
+ "maxLength": 128,
748
+ "pattern": "^[A-Z][A-Z0-9_]*$"
749
+ },
750
+ "__schema18": {
751
+ "type": "array",
752
+ "items": {
753
+ "type": "object",
754
+ "properties": {
755
+ "runId": {
756
+ "type": "string",
757
+ "minLength": 1,
758
+ "maxLength": 512
759
+ },
760
+ "candidateId": {
761
+ "anyOf": [
762
+ {
763
+ "$ref": "#/$defs/__schema10"
764
+ },
765
+ {
766
+ "type": "null"
767
+ }
768
+ ]
769
+ },
770
+ "worldId": {
771
+ "$ref": "#/$defs/__schema10"
772
+ },
773
+ "attempt": {
774
+ "type": "integer",
775
+ "minimum": 1,
776
+ "maximum": 9007199254740991
777
+ },
778
+ "outcome": {
779
+ "type": "string",
780
+ "enum": [
781
+ "PASS",
782
+ "ASSERTION_FAILURE",
783
+ "COLLECTION_FAILURE",
784
+ "COMPILE_FAILURE",
785
+ "PROCESS_CRASH",
786
+ "TIMEOUT",
787
+ "INFRA_ERROR",
788
+ "NO_TEST_DISCOVERED"
789
+ ]
790
+ },
791
+ "testsDiscovered": {
792
+ "type": "integer",
793
+ "minimum": 0,
794
+ "maximum": 9007199254740991
795
+ },
796
+ "candidateTestsDiscovered": {
797
+ "type": "integer",
798
+ "minimum": 0,
799
+ "maximum": 9007199254740991
800
+ },
801
+ "attributed": {
802
+ "type": "boolean"
803
+ },
804
+ "durationMs": {
805
+ "type": "number",
806
+ "minimum": 0
807
+ },
808
+ "exitCode": {
809
+ "anyOf": [
810
+ {
811
+ "type": "integer",
812
+ "minimum": 0,
813
+ "maximum": 9007199254740991
814
+ },
815
+ {
816
+ "type": "null"
817
+ }
818
+ ]
819
+ },
820
+ "stdoutDigest": {
821
+ "$ref": "#/$defs/__schema2"
822
+ },
823
+ "stderrDigest": {
824
+ "$ref": "#/$defs/__schema2"
825
+ }
826
+ },
827
+ "required": [
828
+ "runId",
829
+ "candidateId",
830
+ "worldId",
831
+ "attempt",
832
+ "outcome",
833
+ "testsDiscovered",
834
+ "candidateTestsDiscovered",
835
+ "attributed"
836
+ ],
837
+ "additionalProperties": false
838
+ }
839
+ },
840
+ "__schema19": {
841
+ "type": "object",
842
+ "properties": {
843
+ "status": {
844
+ "type": "string",
845
+ "enum": ["VERIFIED", "REJECTED", "INCONCLUSIVE", "ENGINE_ERROR"]
846
+ },
847
+ "selectedCandidateIds": {
848
+ "type": "array",
849
+ "items": {
850
+ "$ref": "#/$defs/__schema10"
851
+ }
852
+ },
853
+ "reasonCodes": {
854
+ "type": "array",
855
+ "items": {
856
+ "$ref": "#/$defs/__schema17"
857
+ }
858
+ }
859
+ },
860
+ "required": ["status", "selectedCandidateIds", "reasonCodes"],
861
+ "additionalProperties": false
862
+ },
863
+ "__schema20": {
864
+ "oneOf": [
865
+ {
866
+ "type": "object",
867
+ "properties": {
868
+ "kind": {
869
+ "type": "string",
870
+ "const": "node-test"
871
+ }
872
+ },
873
+ "required": ["kind"],
874
+ "additionalProperties": false
875
+ },
876
+ {
877
+ "type": "object",
878
+ "properties": {
879
+ "kind": {
880
+ "type": "string",
881
+ "const": "bun-test"
882
+ }
883
+ },
884
+ "required": ["kind"],
885
+ "additionalProperties": false
886
+ },
887
+ {
888
+ "type": "object",
889
+ "properties": {
890
+ "kind": {
891
+ "type": "string",
892
+ "const": "bun-test-designated"
893
+ }
894
+ },
895
+ "required": ["kind"],
896
+ "additionalProperties": false
897
+ },
898
+ {
899
+ "type": "object",
900
+ "properties": {
901
+ "kind": {
902
+ "type": "string",
903
+ "const": "testforge-command"
904
+ },
905
+ "protocolVersion": {
906
+ "type": "string",
907
+ "const": "1.0.0"
908
+ }
909
+ },
910
+ "required": ["kind", "protocolVersion"],
911
+ "additionalProperties": false
912
+ }
913
+ ]
914
+ },
915
+ "__schema21": {
916
+ "oneOf": [
917
+ {
918
+ "type": "object",
919
+ "properties": {
920
+ "kind": {
921
+ "type": "string",
922
+ "const": "trusted-local"
923
+ },
924
+ "level": {
925
+ "type": "string",
926
+ "const": "UNSANDBOXED"
927
+ },
928
+ "acknowledgedUnsafeExecution": {
929
+ "type": "boolean",
930
+ "const": true
931
+ }
932
+ },
933
+ "required": ["kind", "level", "acknowledgedUnsafeExecution"],
934
+ "additionalProperties": false
935
+ },
936
+ {
937
+ "type": "object",
938
+ "properties": {
939
+ "kind": {
940
+ "type": "string",
941
+ "const": "container"
942
+ },
943
+ "level": {
944
+ "type": "string",
945
+ "const": "CONTAINER"
946
+ },
947
+ "runtimeCommand": {
948
+ "minItems": 1,
949
+ "maxItems": 16,
950
+ "type": "array",
951
+ "items": {
952
+ "$ref": "#/$defs/__schema22"
953
+ }
954
+ }
955
+ },
956
+ "required": ["kind", "level", "runtimeCommand"],
957
+ "additionalProperties": false
958
+ },
959
+ {
960
+ "type": "object",
961
+ "properties": {
962
+ "kind": {
963
+ "type": "string",
964
+ "const": "windows-native"
965
+ },
966
+ "level": {
967
+ "type": "string",
968
+ "const": "WINDOWS_NATIVE_UNSANDBOXED"
969
+ },
970
+ "acknowledgedUnsafeExecution": {
971
+ "type": "boolean",
972
+ "const": true
973
+ }
974
+ },
975
+ "required": ["kind", "level", "acknowledgedUnsafeExecution"],
976
+ "additionalProperties": false
977
+ }
978
+ ]
979
+ },
980
+ "__schema22": {
981
+ "type": "string",
982
+ "minLength": 1,
983
+ "maxLength": 4096
984
+ },
985
+ "__schema23": {
986
+ "type": "array",
987
+ "items": {
988
+ "type": "string",
989
+ "minLength": 1,
990
+ "maxLength": 2048
991
+ }
992
+ }
993
+ },
994
+ "$id": "https://testforge.dev/schemas/evidence-manifest.v4.json"
995
+ }