assertledger 1.1.0 → 1.2.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 (91) hide show
  1. package/README.fr.md +14 -4
  2. package/README.md +14 -4
  3. package/conformance/schema-extensions.json +25 -0
  4. package/dist/build-info.json +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +68 -20
  7. package/dist/cli.js.map +1 -1
  8. package/dist/contracts/index.d.ts +510 -4
  9. package/dist/contracts/index.d.ts.map +1 -1
  10. package/dist/contracts/index.js +230 -16
  11. package/dist/contracts/index.js.map +1 -1
  12. package/dist/contracts/runtime-doctor.d.ts +123 -0
  13. package/dist/contracts/runtime-doctor.d.ts.map +1 -1
  14. package/dist/contracts/runtime-doctor.js +64 -0
  15. package/dist/contracts/runtime-doctor.js.map +1 -1
  16. package/dist/core/index.d.ts.map +1 -1
  17. package/dist/core/index.js +16 -6
  18. package/dist/core/index.js.map +1 -1
  19. package/dist/diagnostics.d.ts.map +1 -1
  20. package/dist/diagnostics.js +26 -2
  21. package/dist/diagnostics.js.map +1 -1
  22. package/dist/engine/adapters/bun-test-profile.d.ts +17 -0
  23. package/dist/engine/adapters/bun-test-profile.d.ts.map +1 -0
  24. package/dist/engine/adapters/bun-test-profile.js +17 -0
  25. package/dist/engine/adapters/bun-test-profile.js.map +1 -0
  26. package/dist/engine/git-regression.d.ts +2 -2
  27. package/dist/engine/git-regression.d.ts.map +1 -1
  28. package/dist/engine/git-regression.js.map +1 -1
  29. package/dist/engine/index.d.ts +11 -5
  30. package/dist/engine/index.d.ts.map +1 -1
  31. package/dist/engine/index.js +454 -49
  32. package/dist/engine/index.js.map +1 -1
  33. package/dist/engine/runtime-doctor.d.ts +13 -4
  34. package/dist/engine/runtime-doctor.d.ts.map +1 -1
  35. package/dist/engine/runtime-doctor.js +80 -2
  36. package/dist/engine/runtime-doctor.js.map +1 -1
  37. package/dist/mcp/index.d.ts.map +1 -1
  38. package/dist/mcp/index.js +36 -6
  39. package/dist/mcp/index.js.map +1 -1
  40. package/dist/proof-planner/carry-over.d.ts +21 -0
  41. package/dist/proof-planner/carry-over.d.ts.map +1 -0
  42. package/dist/proof-planner/carry-over.js +212 -0
  43. package/dist/proof-planner/carry-over.js.map +1 -0
  44. package/dist/proof-planner/index.d.ts +11 -0
  45. package/dist/proof-planner/index.d.ts.map +1 -0
  46. package/dist/proof-planner/index.js +11 -0
  47. package/dist/proof-planner/index.js.map +1 -0
  48. package/dist/proof-planner/model.d.ts +272 -0
  49. package/dist/proof-planner/model.d.ts.map +1 -0
  50. package/dist/proof-planner/model.js +215 -0
  51. package/dist/proof-planner/model.js.map +1 -0
  52. package/dist/proof-planner/plan.d.ts +140 -0
  53. package/dist/proof-planner/plan.d.ts.map +1 -0
  54. package/dist/proof-planner/plan.js +1124 -0
  55. package/dist/proof-planner/plan.js.map +1 -0
  56. package/dist/proof-planner/policy.d.ts +100 -0
  57. package/dist/proof-planner/policy.d.ts.map +1 -0
  58. package/dist/proof-planner/policy.js +407 -0
  59. package/dist/proof-planner/policy.js.map +1 -0
  60. package/dist/proof-planner/render.d.ts +4 -0
  61. package/dist/proof-planner/render.d.ts.map +1 -0
  62. package/dist/proof-planner/render.js +73 -0
  63. package/dist/proof-planner/render.js.map +1 -0
  64. package/dist/sdk/index.d.ts +7 -6
  65. package/dist/sdk/index.d.ts.map +1 -1
  66. package/dist/sdk/index.js +20 -7
  67. package/dist/sdk/index.js.map +1 -1
  68. package/docs/adapter-protocol.md +61 -0
  69. package/docs/architecture.md +11 -1
  70. package/docs/developer-experience.md +7 -5
  71. package/docs/distribution.md +8 -3
  72. package/docs/migration-timeout-discovery-inconclusive.md +126 -0
  73. package/docs/migration-verification-v3.md +33 -0
  74. package/docs/project-intent.md +7 -5
  75. package/docs/proof-model.md +20 -2
  76. package/docs/proof-planner.md +368 -0
  77. package/docs/reference.md +9 -6
  78. package/docs/repository-init.md +38 -7
  79. package/docs/runtime-doctor.md +12 -9
  80. package/integrations/bun/assertions.d.mts +4 -0
  81. package/integrations/bun/assertions.mjs +25 -0
  82. package/integrations/bun/driver.d.mts +27 -0
  83. package/integrations/bun/driver.mjs +383 -0
  84. package/integrations/bun/preload.mjs +165 -0
  85. package/integrations/skill/SKILL.md +4 -1
  86. package/package.json +8 -4
  87. package/schemas/evidence-manifest.v3.json +897 -0
  88. package/schemas/repository-init-config.v2.json +210 -0
  89. package/schemas/repository-init-lock.v2.json +162 -0
  90. package/schemas/repository-init-result.v2.json +212 -0
  91. package/schemas/verification-request.v3.json +484 -0
@@ -0,0 +1,897 @@
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/__schema11"
16
+ },
17
+ "worlds": {
18
+ "$ref": "#/$defs/__schema14"
19
+ },
20
+ "candidates": {
21
+ "$ref": "#/$defs/__schema15"
22
+ },
23
+ "observations": {
24
+ "$ref": "#/$defs/__schema17"
25
+ },
26
+ "decision": {
27
+ "$ref": "#/$defs/__schema18"
28
+ },
29
+ "decisionDigest": {
30
+ "$ref": "#/$defs/__schema2"
31
+ },
32
+ "artifactDigest": {
33
+ "$ref": "#/$defs/__schema2"
34
+ },
35
+ "adapter": {
36
+ "$ref": "#/$defs/__schema19"
37
+ },
38
+ "isolation": {
39
+ "$ref": "#/$defs/__schema20"
40
+ },
41
+ "limitations": {
42
+ "$ref": "#/$defs/__schema22"
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 v3",
62
+ "description": "A replayable campaign artifact recording the official Bun test adapter and execution backend.",
63
+ "$defs": {
64
+ "__schema0": {
65
+ "type": "string",
66
+ "const": "3.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
+ }
344
+ },
345
+ "required": ["isolation", "environmentAllowlist", "budgets", "candidateRoots", "backend"],
346
+ "additionalProperties": false
347
+ },
348
+ "worlds": {
349
+ "type": "array",
350
+ "items": {
351
+ "type": "object",
352
+ "properties": {
353
+ "id": {
354
+ "$ref": "#/$defs/__schema10"
355
+ },
356
+ "provenance": {
357
+ "type": "string",
358
+ "minLength": 1,
359
+ "maxLength": 1024
360
+ },
361
+ "digest": {
362
+ "$ref": "#/$defs/__schema2"
363
+ }
364
+ },
365
+ "required": ["id", "provenance", "digest"],
366
+ "additionalProperties": false
367
+ }
368
+ }
369
+ },
370
+ "required": ["engine", "adapter", "execution", "worlds"],
371
+ "additionalProperties": false
372
+ },
373
+ "__schema4": {
374
+ "anyOf": [
375
+ {
376
+ "type": "string"
377
+ },
378
+ {
379
+ "type": "number"
380
+ },
381
+ {
382
+ "type": "boolean"
383
+ },
384
+ {
385
+ "type": "null"
386
+ },
387
+ {
388
+ "type": "array",
389
+ "items": {
390
+ "$ref": "#/$defs/__schema4"
391
+ }
392
+ },
393
+ {
394
+ "type": "object",
395
+ "propertyNames": {
396
+ "type": "string"
397
+ },
398
+ "additionalProperties": {
399
+ "$ref": "#/$defs/__schema4"
400
+ }
401
+ }
402
+ ]
403
+ },
404
+ "__schema5": {
405
+ "type": "string",
406
+ "minLength": 1,
407
+ "maxLength": 128
408
+ },
409
+ "__schema6": {
410
+ "anyOf": [
411
+ {
412
+ "type": "string"
413
+ },
414
+ {
415
+ "type": "number"
416
+ },
417
+ {
418
+ "type": "boolean"
419
+ },
420
+ {
421
+ "type": "null"
422
+ },
423
+ {
424
+ "type": "array",
425
+ "items": {
426
+ "$ref": "#/$defs/__schema6"
427
+ }
428
+ },
429
+ {
430
+ "type": "object",
431
+ "propertyNames": {
432
+ "type": "string"
433
+ },
434
+ "additionalProperties": {
435
+ "$ref": "#/$defs/__schema6"
436
+ }
437
+ }
438
+ ]
439
+ },
440
+ "__schema7": {
441
+ "type": "string",
442
+ "minLength": 1,
443
+ "maxLength": 512
444
+ },
445
+ "__schema8": {
446
+ "type": "string",
447
+ "minLength": 1,
448
+ "maxLength": 512
449
+ },
450
+ "__schema9": {
451
+ "type": "object",
452
+ "properties": {
453
+ "name": {
454
+ "type": "string",
455
+ "minLength": 1,
456
+ "maxLength": 128,
457
+ "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]_)).+$"
458
+ },
459
+ "value": {
460
+ "type": "string",
461
+ "maxLength": 4096
462
+ }
463
+ },
464
+ "required": ["name", "value"],
465
+ "additionalProperties": false
466
+ },
467
+ "__schema10": {
468
+ "type": "string",
469
+ "minLength": 1,
470
+ "maxLength": 128,
471
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
472
+ },
473
+ "__schema11": {
474
+ "anyOf": [
475
+ {
476
+ "type": "object",
477
+ "properties": {
478
+ "policyVersion": {
479
+ "type": "string",
480
+ "const": "1.0.0"
481
+ },
482
+ "requiredAttempts": {
483
+ "type": "integer",
484
+ "minimum": 1,
485
+ "maximum": 1000
486
+ },
487
+ "minimumTargetWeightPermille": {
488
+ "type": "integer",
489
+ "minimum": 1,
490
+ "maximum": 1000
491
+ },
492
+ "maximumSelectedCandidates": {
493
+ "type": "integer",
494
+ "minimum": 1,
495
+ "maximum": 1000
496
+ },
497
+ "acceptedTargetOutcomes": {
498
+ "minItems": 1,
499
+ "maxItems": 1,
500
+ "type": "array",
501
+ "items": {
502
+ "$ref": "#/$defs/__schema12"
503
+ }
504
+ }
505
+ },
506
+ "required": [
507
+ "policyVersion",
508
+ "requiredAttempts",
509
+ "minimumTargetWeightPermille",
510
+ "maximumSelectedCandidates",
511
+ "acceptedTargetOutcomes"
512
+ ],
513
+ "additionalProperties": false
514
+ },
515
+ {
516
+ "type": "object",
517
+ "properties": {
518
+ "policyVersion": {
519
+ "type": "string",
520
+ "const": "invalid"
521
+ },
522
+ "requiredAttempts": {
523
+ "type": "number",
524
+ "const": 1
525
+ },
526
+ "minimumTargetWeightPermille": {
527
+ "type": "number",
528
+ "const": 1000
529
+ },
530
+ "maximumSelectedCandidates": {
531
+ "type": "number",
532
+ "const": 0
533
+ },
534
+ "acceptedTargetOutcomes": {
535
+ "maxItems": 0,
536
+ "type": "array",
537
+ "items": {
538
+ "$ref": "#/$defs/__schema13"
539
+ }
540
+ }
541
+ },
542
+ "required": [
543
+ "policyVersion",
544
+ "requiredAttempts",
545
+ "minimumTargetWeightPermille",
546
+ "maximumSelectedCandidates",
547
+ "acceptedTargetOutcomes"
548
+ ],
549
+ "additionalProperties": false
550
+ }
551
+ ]
552
+ },
553
+ "__schema12": {
554
+ "type": "string",
555
+ "const": "ASSERTION_FAILURE"
556
+ },
557
+ "__schema13": {
558
+ "type": "string",
559
+ "const": "ASSERTION_FAILURE"
560
+ },
561
+ "__schema14": {
562
+ "type": "array",
563
+ "items": {
564
+ "type": "object",
565
+ "properties": {
566
+ "id": {
567
+ "$ref": "#/$defs/__schema10"
568
+ },
569
+ "kind": {
570
+ "type": "string",
571
+ "enum": ["REFERENCE", "TARGET", "NEUTRAL"]
572
+ },
573
+ "required": {
574
+ "type": "boolean"
575
+ },
576
+ "weight": {
577
+ "type": "integer",
578
+ "minimum": 0,
579
+ "maximum": 1000000
580
+ }
581
+ },
582
+ "required": ["id", "kind", "required", "weight"],
583
+ "additionalProperties": false
584
+ }
585
+ },
586
+ "__schema15": {
587
+ "type": "array",
588
+ "items": {
589
+ "type": "object",
590
+ "properties": {
591
+ "id": {
592
+ "$ref": "#/$defs/__schema10"
593
+ },
594
+ "digest": {
595
+ "$ref": "#/$defs/__schema2"
596
+ },
597
+ "sizeBytes": {
598
+ "type": "integer",
599
+ "minimum": 0,
600
+ "maximum": 9007199254740991
601
+ },
602
+ "status": {
603
+ "type": "string",
604
+ "enum": ["ELIGIBLE", "UNSTABLE", "INCONCLUSIVE", "INVALID", "WEAK_ORACLE"]
605
+ },
606
+ "killedTargetIds": {
607
+ "type": "array",
608
+ "items": {
609
+ "$ref": "#/$defs/__schema10"
610
+ }
611
+ },
612
+ "targetWeightKilled": {
613
+ "type": "integer",
614
+ "minimum": 0,
615
+ "maximum": 9007199254740991
616
+ },
617
+ "gates": {
618
+ "type": "array",
619
+ "items": {
620
+ "type": "object",
621
+ "properties": {
622
+ "name": {
623
+ "type": "string",
624
+ "enum": [
625
+ "COMPLETENESS",
626
+ "STABILITY",
627
+ "DISCOVERY",
628
+ "REFERENCE",
629
+ "NEUTRAL",
630
+ "TARGET_STRENGTH"
631
+ ]
632
+ },
633
+ "status": {
634
+ "type": "string",
635
+ "enum": ["PASSED", "FAILED", "NOT_RUN"]
636
+ },
637
+ "evidenceRunIds": {
638
+ "type": "array",
639
+ "items": {
640
+ "type": "string",
641
+ "minLength": 1,
642
+ "maxLength": 512
643
+ }
644
+ },
645
+ "reasonCodes": {
646
+ "type": "array",
647
+ "items": {
648
+ "$ref": "#/$defs/__schema16"
649
+ }
650
+ }
651
+ },
652
+ "required": ["name", "status", "evidenceRunIds", "reasonCodes"],
653
+ "additionalProperties": false
654
+ }
655
+ },
656
+ "reasonCodes": {
657
+ "type": "array",
658
+ "items": {
659
+ "$ref": "#/$defs/__schema16"
660
+ }
661
+ }
662
+ },
663
+ "required": [
664
+ "id",
665
+ "digest",
666
+ "sizeBytes",
667
+ "status",
668
+ "killedTargetIds",
669
+ "targetWeightKilled",
670
+ "gates",
671
+ "reasonCodes"
672
+ ],
673
+ "additionalProperties": false
674
+ }
675
+ },
676
+ "__schema16": {
677
+ "type": "string",
678
+ "minLength": 1,
679
+ "maxLength": 128,
680
+ "pattern": "^[A-Z][A-Z0-9_]*$"
681
+ },
682
+ "__schema17": {
683
+ "type": "array",
684
+ "items": {
685
+ "type": "object",
686
+ "properties": {
687
+ "runId": {
688
+ "type": "string",
689
+ "minLength": 1,
690
+ "maxLength": 512
691
+ },
692
+ "candidateId": {
693
+ "anyOf": [
694
+ {
695
+ "$ref": "#/$defs/__schema10"
696
+ },
697
+ {
698
+ "type": "null"
699
+ }
700
+ ]
701
+ },
702
+ "worldId": {
703
+ "$ref": "#/$defs/__schema10"
704
+ },
705
+ "attempt": {
706
+ "type": "integer",
707
+ "minimum": 1,
708
+ "maximum": 9007199254740991
709
+ },
710
+ "outcome": {
711
+ "type": "string",
712
+ "enum": [
713
+ "PASS",
714
+ "ASSERTION_FAILURE",
715
+ "COLLECTION_FAILURE",
716
+ "COMPILE_FAILURE",
717
+ "PROCESS_CRASH",
718
+ "TIMEOUT",
719
+ "INFRA_ERROR",
720
+ "NO_TEST_DISCOVERED"
721
+ ]
722
+ },
723
+ "testsDiscovered": {
724
+ "type": "integer",
725
+ "minimum": 0,
726
+ "maximum": 9007199254740991
727
+ },
728
+ "candidateTestsDiscovered": {
729
+ "type": "integer",
730
+ "minimum": 0,
731
+ "maximum": 9007199254740991
732
+ },
733
+ "attributed": {
734
+ "type": "boolean"
735
+ },
736
+ "durationMs": {
737
+ "type": "number",
738
+ "minimum": 0
739
+ },
740
+ "exitCode": {
741
+ "anyOf": [
742
+ {
743
+ "type": "integer",
744
+ "minimum": 0,
745
+ "maximum": 9007199254740991
746
+ },
747
+ {
748
+ "type": "null"
749
+ }
750
+ ]
751
+ },
752
+ "stdoutDigest": {
753
+ "$ref": "#/$defs/__schema2"
754
+ },
755
+ "stderrDigest": {
756
+ "$ref": "#/$defs/__schema2"
757
+ }
758
+ },
759
+ "required": [
760
+ "runId",
761
+ "candidateId",
762
+ "worldId",
763
+ "attempt",
764
+ "outcome",
765
+ "testsDiscovered",
766
+ "candidateTestsDiscovered",
767
+ "attributed"
768
+ ],
769
+ "additionalProperties": false
770
+ }
771
+ },
772
+ "__schema18": {
773
+ "type": "object",
774
+ "properties": {
775
+ "status": {
776
+ "type": "string",
777
+ "enum": ["VERIFIED", "REJECTED", "INCONCLUSIVE", "ENGINE_ERROR"]
778
+ },
779
+ "selectedCandidateIds": {
780
+ "type": "array",
781
+ "items": {
782
+ "$ref": "#/$defs/__schema10"
783
+ }
784
+ },
785
+ "reasonCodes": {
786
+ "type": "array",
787
+ "items": {
788
+ "$ref": "#/$defs/__schema16"
789
+ }
790
+ }
791
+ },
792
+ "required": ["status", "selectedCandidateIds", "reasonCodes"],
793
+ "additionalProperties": false
794
+ },
795
+ "__schema19": {
796
+ "oneOf": [
797
+ {
798
+ "type": "object",
799
+ "properties": {
800
+ "kind": {
801
+ "type": "string",
802
+ "const": "node-test"
803
+ }
804
+ },
805
+ "required": ["kind"],
806
+ "additionalProperties": false
807
+ },
808
+ {
809
+ "type": "object",
810
+ "properties": {
811
+ "kind": {
812
+ "type": "string",
813
+ "const": "bun-test"
814
+ }
815
+ },
816
+ "required": ["kind"],
817
+ "additionalProperties": false
818
+ },
819
+ {
820
+ "type": "object",
821
+ "properties": {
822
+ "kind": {
823
+ "type": "string",
824
+ "const": "testforge-command"
825
+ },
826
+ "protocolVersion": {
827
+ "type": "string",
828
+ "const": "1.0.0"
829
+ }
830
+ },
831
+ "required": ["kind", "protocolVersion"],
832
+ "additionalProperties": false
833
+ }
834
+ ]
835
+ },
836
+ "__schema20": {
837
+ "oneOf": [
838
+ {
839
+ "type": "object",
840
+ "properties": {
841
+ "kind": {
842
+ "type": "string",
843
+ "const": "trusted-local"
844
+ },
845
+ "level": {
846
+ "type": "string",
847
+ "const": "UNSANDBOXED"
848
+ },
849
+ "acknowledgedUnsafeExecution": {
850
+ "type": "boolean",
851
+ "const": true
852
+ }
853
+ },
854
+ "required": ["kind", "level", "acknowledgedUnsafeExecution"],
855
+ "additionalProperties": false
856
+ },
857
+ {
858
+ "type": "object",
859
+ "properties": {
860
+ "kind": {
861
+ "type": "string",
862
+ "const": "container"
863
+ },
864
+ "level": {
865
+ "type": "string",
866
+ "const": "CONTAINER"
867
+ },
868
+ "runtimeCommand": {
869
+ "minItems": 1,
870
+ "maxItems": 16,
871
+ "type": "array",
872
+ "items": {
873
+ "$ref": "#/$defs/__schema21"
874
+ }
875
+ }
876
+ },
877
+ "required": ["kind", "level", "runtimeCommand"],
878
+ "additionalProperties": false
879
+ }
880
+ ]
881
+ },
882
+ "__schema21": {
883
+ "type": "string",
884
+ "minLength": 1,
885
+ "maxLength": 4096
886
+ },
887
+ "__schema22": {
888
+ "type": "array",
889
+ "items": {
890
+ "type": "string",
891
+ "minLength": 1,
892
+ "maxLength": 2048
893
+ }
894
+ }
895
+ },
896
+ "$id": "https://testforge.dev/schemas/evidence-manifest.v3.json"
897
+ }