assertledger 1.4.0 → 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 +5 -2
  2. package/README.md +5 -2
  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 +213 -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 +7 -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,528 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": {
6
+ "type": "string",
7
+ "const": "1.0.0"
8
+ },
9
+ "profileId": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "maxLength": 128,
13
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
14
+ },
15
+ "subject": {
16
+ "type": "object",
17
+ "properties": {
18
+ "commit": {
19
+ "type": "string",
20
+ "minLength": 1,
21
+ "maxLength": 128
22
+ },
23
+ "baseCommit": {
24
+ "type": "string",
25
+ "minLength": 1,
26
+ "maxLength": 128
27
+ },
28
+ "candidateDigest": {
29
+ "type": "string",
30
+ "pattern": "^sha256:[a-f0-9]{64}$"
31
+ },
32
+ "inputDigest": {
33
+ "type": "string",
34
+ "pattern": "^sha256:[a-f0-9]{64}$"
35
+ }
36
+ },
37
+ "required": ["commit", "baseCommit", "candidateDigest", "inputDigest"],
38
+ "additionalProperties": false
39
+ },
40
+ "ciTrust": {
41
+ "type": "object",
42
+ "properties": {
43
+ "repositoryId": {
44
+ "type": "string",
45
+ "minLength": 1,
46
+ "maxLength": 512
47
+ },
48
+ "observerId": {
49
+ "type": "string",
50
+ "minLength": 1,
51
+ "maxLength": 128,
52
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
53
+ },
54
+ "publicKeyPem": {
55
+ "type": "string",
56
+ "minLength": 1,
57
+ "maxLength": 8192
58
+ },
59
+ "requiredSteps": {
60
+ "minItems": 1,
61
+ "maxItems": 1000,
62
+ "type": "array",
63
+ "items": {
64
+ "type": "object",
65
+ "properties": {
66
+ "id": {
67
+ "type": "string",
68
+ "minLength": 1,
69
+ "maxLength": 128,
70
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
71
+ },
72
+ "commandDigest": {
73
+ "type": "string",
74
+ "pattern": "^sha256:[a-f0-9]{64}$"
75
+ }
76
+ },
77
+ "required": ["id", "commandDigest"],
78
+ "additionalProperties": false
79
+ }
80
+ }
81
+ },
82
+ "required": ["repositoryId", "observerId", "publicKeyPem", "requiredSteps"],
83
+ "additionalProperties": false
84
+ },
85
+ "tools": {
86
+ "minItems": 1,
87
+ "maxItems": 100,
88
+ "type": "array",
89
+ "items": {
90
+ "type": "object",
91
+ "properties": {
92
+ "id": {
93
+ "type": "string",
94
+ "minLength": 1,
95
+ "maxLength": 128,
96
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
97
+ },
98
+ "version": {
99
+ "type": "string",
100
+ "minLength": 1,
101
+ "maxLength": 128
102
+ },
103
+ "digest": {
104
+ "type": "string",
105
+ "pattern": "^sha256:[a-f0-9]{64}$"
106
+ },
107
+ "identityPath": {
108
+ "type": "string",
109
+ "minLength": 1,
110
+ "maxLength": 4096
111
+ },
112
+ "versionCommand": {
113
+ "type": "object",
114
+ "properties": {
115
+ "executable": {
116
+ "type": "string",
117
+ "minLength": 1,
118
+ "maxLength": 4096
119
+ },
120
+ "arguments": {
121
+ "maxItems": 100,
122
+ "type": "array",
123
+ "items": {
124
+ "type": "string",
125
+ "maxLength": 8192
126
+ }
127
+ }
128
+ },
129
+ "required": ["executable", "arguments"],
130
+ "additionalProperties": false
131
+ }
132
+ },
133
+ "required": ["id", "version", "digest"],
134
+ "additionalProperties": false
135
+ }
136
+ },
137
+ "suites": {
138
+ "maxItems": 1000,
139
+ "type": "array",
140
+ "items": {
141
+ "type": "object",
142
+ "properties": {
143
+ "id": {
144
+ "type": "string",
145
+ "minLength": 1,
146
+ "maxLength": 128,
147
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
148
+ },
149
+ "files": {
150
+ "maxItems": 1000,
151
+ "type": "array",
152
+ "items": {
153
+ "type": "string",
154
+ "minLength": 1,
155
+ "maxLength": 512
156
+ }
157
+ },
158
+ "extraction": {
159
+ "type": "string",
160
+ "enum": ["COMPLETE", "UNAVAILABLE", "OMITTED"]
161
+ }
162
+ },
163
+ "required": ["id", "files", "extraction"],
164
+ "additionalProperties": false
165
+ }
166
+ },
167
+ "obligations": {
168
+ "minItems": 1,
169
+ "maxItems": 1000,
170
+ "type": "array",
171
+ "items": {
172
+ "type": "object",
173
+ "properties": {
174
+ "id": {
175
+ "type": "string",
176
+ "minLength": 1,
177
+ "maxLength": 128,
178
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
179
+ },
180
+ "kind": {
181
+ "type": "string",
182
+ "enum": [
183
+ "tests",
184
+ "selection",
185
+ "cache",
186
+ "propagation",
187
+ "wrapper",
188
+ "ci-config",
189
+ "ci-local",
190
+ "ci-live"
191
+ ]
192
+ },
193
+ "required": {
194
+ "type": "boolean"
195
+ },
196
+ "suiteIds": {
197
+ "maxItems": 1000,
198
+ "type": "array",
199
+ "items": {
200
+ "type": "string",
201
+ "minLength": 1,
202
+ "maxLength": 128,
203
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
204
+ }
205
+ },
206
+ "checks": {
207
+ "minItems": 1,
208
+ "maxItems": 1000,
209
+ "type": "array",
210
+ "items": {
211
+ "type": "object",
212
+ "properties": {
213
+ "id": {
214
+ "type": "string",
215
+ "minLength": 1,
216
+ "maxLength": 128,
217
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
218
+ },
219
+ "actionId": {
220
+ "type": "string",
221
+ "minLength": 1,
222
+ "maxLength": 128,
223
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
224
+ },
225
+ "field": {
226
+ "type": "string",
227
+ "minLength": 1,
228
+ "maxLength": 512
229
+ },
230
+ "expected": {
231
+ "$ref": "#/$defs/__schema0"
232
+ }
233
+ },
234
+ "required": ["id", "actionId", "field", "expected"],
235
+ "additionalProperties": false
236
+ }
237
+ },
238
+ "limits": {
239
+ "maxItems": 100,
240
+ "type": "array",
241
+ "items": {
242
+ "type": "string",
243
+ "minLength": 1,
244
+ "maxLength": 2048
245
+ }
246
+ }
247
+ },
248
+ "required": ["id", "kind", "required", "suiteIds", "checks", "limits"],
249
+ "additionalProperties": false
250
+ }
251
+ },
252
+ "actions": {
253
+ "minItems": 1,
254
+ "maxItems": 1000,
255
+ "type": "array",
256
+ "items": {
257
+ "type": "object",
258
+ "properties": {
259
+ "id": {
260
+ "type": "string",
261
+ "minLength": 1,
262
+ "maxLength": 128,
263
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
264
+ },
265
+ "adapter": {
266
+ "type": "string",
267
+ "enum": ["command", "turbo", "node-test", "bun-native", "ci-config"]
268
+ },
269
+ "executable": {
270
+ "type": "string",
271
+ "minLength": 1,
272
+ "maxLength": 1024
273
+ },
274
+ "arguments": {
275
+ "maxItems": 100,
276
+ "type": "array",
277
+ "items": {
278
+ "type": "string",
279
+ "maxLength": 8192
280
+ }
281
+ },
282
+ "environment": {
283
+ "type": "object",
284
+ "propertyNames": {
285
+ "type": "string",
286
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
287
+ },
288
+ "additionalProperties": {
289
+ "type": "string",
290
+ "maxLength": 8192
291
+ }
292
+ },
293
+ "prepareFiles": {
294
+ "maxItems": 1000,
295
+ "type": "array",
296
+ "items": {
297
+ "type": "object",
298
+ "properties": {
299
+ "path": {
300
+ "type": "string",
301
+ "minLength": 1,
302
+ "maxLength": 512
303
+ },
304
+ "content": {
305
+ "type": "string",
306
+ "maxLength": 1048576
307
+ }
308
+ },
309
+ "required": ["path", "content"],
310
+ "additionalProperties": false
311
+ }
312
+ },
313
+ "removePaths": {
314
+ "maxItems": 1000,
315
+ "type": "array",
316
+ "items": {
317
+ "type": "string",
318
+ "minLength": 1,
319
+ "maxLength": 512
320
+ }
321
+ },
322
+ "observe": {
323
+ "type": "object",
324
+ "properties": {
325
+ "trace": {
326
+ "type": "boolean"
327
+ },
328
+ "outputs": {
329
+ "maxItems": 1000,
330
+ "type": "array",
331
+ "items": {
332
+ "type": "string",
333
+ "minLength": 1,
334
+ "maxLength": 512
335
+ }
336
+ },
337
+ "report": {
338
+ "anyOf": [
339
+ {
340
+ "type": "string",
341
+ "minLength": 1,
342
+ "maxLength": 512
343
+ },
344
+ {
345
+ "type": "null"
346
+ }
347
+ ]
348
+ }
349
+ },
350
+ "required": ["trace", "outputs", "report"],
351
+ "additionalProperties": false
352
+ }
353
+ },
354
+ "required": [
355
+ "id",
356
+ "adapter",
357
+ "executable",
358
+ "arguments",
359
+ "environment",
360
+ "prepareFiles",
361
+ "removePaths",
362
+ "observe"
363
+ ],
364
+ "additionalProperties": false
365
+ }
366
+ },
367
+ "worlds": {
368
+ "minItems": 2,
369
+ "maxItems": 1000,
370
+ "type": "array",
371
+ "items": {
372
+ "type": "object",
373
+ "properties": {
374
+ "id": {
375
+ "type": "string",
376
+ "minLength": 1,
377
+ "maxLength": 128,
378
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
379
+ },
380
+ "kind": {
381
+ "type": "string",
382
+ "enum": ["REFERENCE", "TARGET", "NEUTRAL"]
383
+ },
384
+ "files": {
385
+ "maxItems": 1000,
386
+ "type": "array",
387
+ "items": {
388
+ "type": "object",
389
+ "properties": {
390
+ "path": {
391
+ "type": "string",
392
+ "minLength": 1,
393
+ "maxLength": 512
394
+ },
395
+ "content": {
396
+ "type": "string",
397
+ "maxLength": 1048576
398
+ }
399
+ },
400
+ "required": ["path", "content"],
401
+ "additionalProperties": false
402
+ }
403
+ },
404
+ "discriminants": {
405
+ "maxItems": 1000,
406
+ "type": "array",
407
+ "items": {
408
+ "type": "object",
409
+ "properties": {
410
+ "obligationId": {
411
+ "type": "string",
412
+ "minLength": 1,
413
+ "maxLength": 128,
414
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
415
+ },
416
+ "checkIds": {
417
+ "minItems": 1,
418
+ "maxItems": 1000,
419
+ "type": "array",
420
+ "items": {
421
+ "type": "string",
422
+ "minLength": 1,
423
+ "maxLength": 128,
424
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
425
+ }
426
+ }
427
+ },
428
+ "required": ["obligationId", "checkIds"],
429
+ "additionalProperties": false
430
+ }
431
+ }
432
+ },
433
+ "required": ["id", "kind", "files", "discriminants"],
434
+ "additionalProperties": false
435
+ }
436
+ },
437
+ "requiredAttempts": {
438
+ "type": "integer",
439
+ "minimum": 2,
440
+ "maximum": 10
441
+ },
442
+ "timeoutMs": {
443
+ "type": "integer",
444
+ "minimum": 1,
445
+ "maximum": 600000
446
+ },
447
+ "maximumOutputBytes": {
448
+ "type": "integer",
449
+ "minimum": 1,
450
+ "maximum": 16777216
451
+ },
452
+ "isolation": {
453
+ "type": "object",
454
+ "properties": {
455
+ "kind": {
456
+ "type": "string",
457
+ "const": "trusted-local"
458
+ },
459
+ "acknowledgedUnsafeExecution": {
460
+ "type": "boolean",
461
+ "const": true
462
+ }
463
+ },
464
+ "required": ["kind", "acknowledgedUnsafeExecution"],
465
+ "additionalProperties": false
466
+ },
467
+ "allowedCandidatePaths": {
468
+ "maxItems": 1000,
469
+ "type": "array",
470
+ "items": {
471
+ "type": "string",
472
+ "minLength": 1,
473
+ "maxLength": 512
474
+ }
475
+ }
476
+ },
477
+ "required": [
478
+ "schemaVersion",
479
+ "profileId",
480
+ "subject",
481
+ "tools",
482
+ "suites",
483
+ "obligations",
484
+ "actions",
485
+ "worlds",
486
+ "requiredAttempts",
487
+ "timeoutMs",
488
+ "maximumOutputBytes",
489
+ "isolation",
490
+ "allowedCandidatePaths"
491
+ ],
492
+ "additionalProperties": false,
493
+ "$defs": {
494
+ "__schema0": {
495
+ "anyOf": [
496
+ {
497
+ "type": "string"
498
+ },
499
+ {
500
+ "type": "number"
501
+ },
502
+ {
503
+ "type": "boolean"
504
+ },
505
+ {
506
+ "type": "null"
507
+ },
508
+ {
509
+ "type": "array",
510
+ "items": {
511
+ "$ref": "#/$defs/__schema0"
512
+ }
513
+ },
514
+ {
515
+ "type": "object",
516
+ "propertyNames": {
517
+ "type": "string"
518
+ },
519
+ "additionalProperties": {
520
+ "$ref": "#/$defs/__schema0"
521
+ }
522
+ }
523
+ ]
524
+ }
525
+ },
526
+ "$id": "https://testforge.dev/schemas/qualification-plan.v1.json",
527
+ "title": "Orchestration qualification plan v1"
528
+ }