opencode-longrun-harness 1.2.22

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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +390 -0
  3. package/docs/V1.2.20_EVIDENCE.md +114 -0
  4. package/docs/V1.2.21_EVIDENCE.md +68 -0
  5. package/docs/V1.2.22_EVIDENCE.md +52 -0
  6. package/harness/commissioning/README.md +16 -0
  7. package/harness/commissioning/inspect-copied-run.mjs +25 -0
  8. package/harness/commissioning/verify-copied-case.mjs +35 -0
  9. package/harness/plugin/longrun.js +677 -0
  10. package/harness/src/cli.mjs +40 -0
  11. package/harness/src/controller.js +1413 -0
  12. package/harness/src/evidence.mjs +135 -0
  13. package/harness/src/execution.mjs +217 -0
  14. package/harness/src/executor.mjs +21 -0
  15. package/harness/src/install.mjs +435 -0
  16. package/harness/src/maintenance.mjs +257 -0
  17. package/harness/src/memory.mjs +472 -0
  18. package/harness/test/candidates.test.mjs +73 -0
  19. package/harness/test/checkpoint.test.mjs +65 -0
  20. package/harness/test/controller.test.mjs +230 -0
  21. package/harness/test/evidence.test.mjs +57 -0
  22. package/harness/test/fixtures/durable-host.mjs +27 -0
  23. package/harness/test/fixtures/example-app-run.json +1375 -0
  24. package/harness/test/fixtures/notes-budget-exhausted-run.json +2070 -0
  25. package/harness/test/fixtures/notes-premature-complete-run.json +1496 -0
  26. package/harness/test/fixtures/notes-recovery-run.json +622 -0
  27. package/harness/test/fixtures/presets-readout-run.json +825 -0
  28. package/harness/test/fixtures/routing-worker.mjs +35 -0
  29. package/harness/test/fixtures/vitest-failed-receipt.json +33 -0
  30. package/harness/test/helper.mjs +41 -0
  31. package/harness/test/install.test.mjs +117 -0
  32. package/harness/test/lifecycle.test.mjs +102 -0
  33. package/harness/test/maintenance.test.mjs +204 -0
  34. package/harness/test/memory.test.mjs +145 -0
  35. package/harness/test/negative-control.test.mjs +91 -0
  36. package/harness/test/plugin.test.mjs +169 -0
  37. package/harness/test/recovery-runner.test.mjs +435 -0
  38. package/harness/test/recovery.test.mjs +68 -0
  39. package/harness/test/repair-mechanics.test.mjs +122 -0
  40. package/harness/test/toolbehavior.test.mjs +75 -0
  41. package/harness/test/v121-commissioning.test.mjs +177 -0
  42. package/harness/test/v1210-deadline.test.mjs +134 -0
  43. package/harness/test/v1211-pause.test.mjs +81 -0
  44. package/harness/test/v1212-maintenance-pause.test.mjs +76 -0
  45. package/harness/test/v1213-readout.test.mjs +82 -0
  46. package/harness/test/v1214-durable.test.mjs +121 -0
  47. package/harness/test/v1215-guidance.test.mjs +57 -0
  48. package/harness/test/v1216-test-summary.test.mjs +39 -0
  49. package/harness/test/v1217-discovery.test.mjs +73 -0
  50. package/harness/test/v1218-completion-review.test.mjs +203 -0
  51. package/harness/test/v1219-budget-pause.test.mjs +134 -0
  52. package/harness/test/v122-lifecycle-resolver.test.mjs +218 -0
  53. package/harness/test/v1220-budget-amendment.test.mjs +343 -0
  54. package/harness/test/v1221-negative-fixture-anchor.test.mjs +65 -0
  55. package/harness/test/v1222-default-evidence-class.test.mjs +75 -0
  56. package/harness/test/v123-plugin-e2e.test.mjs +120 -0
  57. package/harness/test/v123-receipt-model.test.mjs +185 -0
  58. package/harness/test/v124-canonical.test.mjs +147 -0
  59. package/harness/test/v124-installed.test.mjs +48 -0
  60. package/harness/test/v125-stability.test.mjs +183 -0
  61. package/harness/test/v126-execution.test.mjs +183 -0
  62. package/harness/test/v127-reconciliation.test.mjs +139 -0
  63. package/harness/test/v128-compaction.test.mjs +156 -0
  64. package/harness/test/v129-routing.test.mjs +165 -0
  65. package/harness/tools/audit-receipts.mjs +121 -0
  66. package/harness/tools/recovery-runner.mjs +499 -0
  67. package/package.json +49 -0
@@ -0,0 +1,1375 @@
1
+ {
2
+ "runId": "lr-00000000e5f6",
3
+ "status": "PAUSED",
4
+ "originalRequest": "Example App expansion: implement the requested feature end to end in this copy only, keep every existing subsystem and test intact, and prove the result with the declared checks.",
5
+ "contract": {
6
+ "criteria": [
7
+ {
8
+ "id": "FOG",
9
+ "required": true,
10
+ "weight": 1,
11
+ "checks": [
12
+ "c-fog-unit",
13
+ "c-fog-e2e"
14
+ ],
15
+ "evidenceClass": "INTEGRATION",
16
+ "visual": false,
17
+ "status": "PASS"
18
+ },
19
+ {
20
+ "id": "DETECT",
21
+ "required": true,
22
+ "weight": 1,
23
+ "checks": [
24
+ "c-detect-unit",
25
+ "c-detect-e2e"
26
+ ],
27
+ "evidenceClass": "UNIT",
28
+ "visual": false,
29
+ "status": "PASS"
30
+ },
31
+ {
32
+ "id": "SECNET",
33
+ "required": true,
34
+ "weight": 1,
35
+ "checks": [
36
+ "c-sec-unit",
37
+ "c-sec-e2e"
38
+ ],
39
+ "evidenceClass": "UNIT",
40
+ "visual": false,
41
+ "status": "PASS"
42
+ },
43
+ {
44
+ "id": "AI",
45
+ "required": true,
46
+ "weight": 1,
47
+ "checks": [
48
+ "c-ai-unit",
49
+ "c-ai-e2e"
50
+ ],
51
+ "evidenceClass": "UNIT",
52
+ "visual": false,
53
+ "status": "PASS"
54
+ },
55
+ {
56
+ "id": "MISS",
57
+ "required": true,
58
+ "weight": 1,
59
+ "checks": [
60
+ "c-mission-win",
61
+ "c-mission-e2e"
62
+ ],
63
+ "evidenceClass": "INTEGRATION",
64
+ "visual": false,
65
+ "status": "PASS"
66
+ },
67
+ {
68
+ "id": "DETERM",
69
+ "required": true,
70
+ "weight": 1,
71
+ "checks": [
72
+ "c-replay-determ",
73
+ "c-save-migration",
74
+ "nc-replay"
75
+ ],
76
+ "evidenceClass": "INTEGRATION",
77
+ "visual": false,
78
+ "status": "PASS"
79
+ },
80
+ {
81
+ "id": "LEADER",
82
+ "required": true,
83
+ "weight": 1,
84
+ "checks": [
85
+ "c-server-tests",
86
+ "c-leaderboard-e2e",
87
+ "nc-tamper"
88
+ ],
89
+ "evidenceClass": "SYSTEM",
90
+ "visual": false,
91
+ "status": "PASS"
92
+ },
93
+ {
94
+ "id": "CHAR",
95
+ "required": true,
96
+ "weight": 1,
97
+ "checks": [
98
+ "c-char-visual"
99
+ ],
100
+ "evidenceClass": "VISION",
101
+ "visual": false,
102
+ "status": "PASS"
103
+ },
104
+ {
105
+ "id": "ENV",
106
+ "required": true,
107
+ "weight": 1,
108
+ "checks": [
109
+ "c-env-visual"
110
+ ],
111
+ "evidenceClass": "VISION",
112
+ "visual": false,
113
+ "status": "PASS"
114
+ },
115
+ {
116
+ "id": "UI",
117
+ "required": true,
118
+ "weight": 1,
119
+ "checks": [
120
+ "c-ui-e2e"
121
+ ],
122
+ "evidenceClass": "SYSTEM",
123
+ "visual": false,
124
+ "status": "PASS"
125
+ },
126
+ {
127
+ "id": "ENG",
128
+ "required": true,
129
+ "weight": 1,
130
+ "checks": [
131
+ "c-typecheck",
132
+ "c-build",
133
+ "c-verify-all"
134
+ ],
135
+ "evidenceClass": "INTEGRATION",
136
+ "visual": false,
137
+ "status": "PASS"
138
+ }
139
+ ],
140
+ "gates": [
141
+ {
142
+ "id": "c-typecheck",
143
+ "required": true,
144
+ "status": "FAIL"
145
+ },
146
+ {
147
+ "id": "c-build",
148
+ "required": true,
149
+ "status": "FAIL"
150
+ },
151
+ {
152
+ "id": "c-verify-all",
153
+ "required": true,
154
+ "status": "FAIL"
155
+ }
156
+ ],
157
+ "lossTarget": 0
158
+ },
159
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
160
+ "evaluatorHash": null,
161
+ "sourceFingerprint": "96c236c2d720c5bc448b68c72461d82e6050a761be1d7302910fac9d572ef82d",
162
+ "loss": 1,
163
+ "budget": {
164
+ "iterations": 60,
165
+ "activeSeconds": 14400,
166
+ "deadlineSeconds": 28800,
167
+ "sameFailureLimit": 3,
168
+ "noProgressLimit": 5,
169
+ "autoDispatchCap": 40,
170
+ "toolActionCap": 200
171
+ },
172
+ "autoEnabled": false,
173
+ "runMode": "tracked",
174
+ "memoryStatus": "FRESH",
175
+ "state": {
176
+ "iterations": 0,
177
+ "noProgressStreak": 0,
178
+ "sameFailureStreak": 0,
179
+ "candidates": [
180
+ {
181
+ "n": 1,
182
+ "runId": "lr-00000000e5f6",
183
+ "fingerprint": "dd470f7cd39b23ca3c2fa975a0be0f6ba1085074e555b97e4e87934846200c78",
184
+ "ts": 1789834367565,
185
+ "hypothesis": null,
186
+ "receiptIds": [
187
+ "c-fog-unit"
188
+ ],
189
+ "criteriaChanged": [],
190
+ "lossBefore": 0.6363636363636364,
191
+ "lossAfter": 0.6363636363636364,
192
+ "bestLoss": null,
193
+ "result": "PASS",
194
+ "diagnosticOnly": false,
195
+ "elapsedMs": 623,
196
+ "counted": true,
197
+ "reason": "evaluated_new_source_state"
198
+ },
199
+ {
200
+ "n": 2,
201
+ "runId": "lr-00000000e5f6",
202
+ "fingerprint": "247460900e8cfe476ecf705fe1b71a428651ea0fd2c26e49d9f6e713aa80405b",
203
+ "ts": 1789834675830,
204
+ "hypothesis": null,
205
+ "receiptIds": [
206
+ "c-server-tests"
207
+ ],
208
+ "criteriaChanged": [
209
+ "LEADER"
210
+ ],
211
+ "lossBefore": 0.45454545454545453,
212
+ "lossAfter": 0.45454545454545453,
213
+ "result": "PASS",
214
+ "diagnosticOnly": false,
215
+ "elapsedMs": 660,
216
+ "counted": true,
217
+ "reason": "evaluated_new_source_state"
218
+ },
219
+ {
220
+ "n": 3,
221
+ "runId": "lr-00000000e5f6",
222
+ "fingerprint": "67a84eeaa93d1d63c1a80f893256f2531b9806c846607d83068585f881834727",
223
+ "ts": 1789836414781,
224
+ "hypothesis": null,
225
+ "receiptIds": [
226
+ "c-char-visual"
227
+ ],
228
+ "criteriaChanged": [
229
+ "CHAR"
230
+ ],
231
+ "lossBefore": 0.36363636363636365,
232
+ "lossAfter": 0.36363636363636365,
233
+ "result": "PASS",
234
+ "diagnosticOnly": false,
235
+ "elapsedMs": 12503,
236
+ "counted": true,
237
+ "reason": "evaluated_new_source_state"
238
+ },
239
+ {
240
+ "n": 4,
241
+ "runId": "lr-00000000e5f6",
242
+ "fingerprint": "bbe24e95714f2e67ea38989c2468a4bf299d759c0e24adb676c33fd1e590daeb",
243
+ "ts": 1789836433549,
244
+ "hypothesis": null,
245
+ "receiptIds": [
246
+ "c-env-visual"
247
+ ],
248
+ "criteriaChanged": [
249
+ "ENV"
250
+ ],
251
+ "lossBefore": 0.2727272727272727,
252
+ "lossAfter": 0.2727272727272727,
253
+ "result": "PASS",
254
+ "diagnosticOnly": false,
255
+ "elapsedMs": 13295,
256
+ "counted": true,
257
+ "reason": "evaluated_new_source_state"
258
+ },
259
+ {
260
+ "n": 5,
261
+ "runId": "lr-00000000e5f6",
262
+ "fingerprint": "d8b88d9251a2835044669fc1b5411b599256de53b5bd9ce47480806f6d731d77",
263
+ "ts": 1789836441372,
264
+ "hypothesis": null,
265
+ "receiptIds": [
266
+ "c-ui-e2e"
267
+ ],
268
+ "criteriaChanged": [],
269
+ "lossBefore": 0.2727272727272727,
270
+ "lossAfter": 0.2727272727272727,
271
+ "result": "FAIL",
272
+ "diagnosticOnly": false,
273
+ "elapsedMs": 1161,
274
+ "counted": true,
275
+ "reason": "evaluated_new_source_state"
276
+ },
277
+ {
278
+ "n": 6,
279
+ "runId": "lr-00000000e5f6",
280
+ "fingerprint": "b78f98e5ae6201aa340ad28e3b7c291abd52eedf8092c1d8898f5de925826062",
281
+ "ts": 1789836649193,
282
+ "hypothesis": null,
283
+ "receiptIds": [
284
+ "c-ui-e2e"
285
+ ],
286
+ "criteriaChanged": [
287
+ "UI"
288
+ ],
289
+ "lossBefore": 0.18181818181818182,
290
+ "lossAfter": 0.18181818181818182,
291
+ "result": "PASS",
292
+ "diagnosticOnly": false,
293
+ "elapsedMs": 2237,
294
+ "counted": true,
295
+ "reason": "evaluated_new_source_state"
296
+ },
297
+ {
298
+ "n": 7,
299
+ "runId": "lr-00000000e5f6",
300
+ "fingerprint": "c942d4ada02cb12a3c4527f2c9363616649727fd85ad9ad77b87a5bf43f2b8b2",
301
+ "ts": 1789836728067,
302
+ "hypothesis": null,
303
+ "receiptIds": [
304
+ "c-build"
305
+ ],
306
+ "criteriaChanged": [
307
+ "ENG"
308
+ ],
309
+ "lossBefore": 0,
310
+ "lossAfter": 0,
311
+ "result": "PASS",
312
+ "diagnosticOnly": false,
313
+ "elapsedMs": 1127,
314
+ "counted": true,
315
+ "reason": "evaluated_new_source_state"
316
+ },
317
+ {
318
+ "n": 8,
319
+ "runId": "lr-00000000e5f6",
320
+ "fingerprint": "e365be42aff4b02f68cdeeecf347360dda81137d84b7fe4b927e3ba0255d3646",
321
+ "ts": 1789836808822,
322
+ "hypothesis": null,
323
+ "receiptIds": [
324
+ "c-verify-all"
325
+ ],
326
+ "criteriaChanged": [
327
+ "ENG"
328
+ ],
329
+ "lossBefore": 0.09090909090909091,
330
+ "lossAfter": 0.09090909090909091,
331
+ "result": "PASS",
332
+ "diagnosticOnly": false,
333
+ "elapsedMs": 77389,
334
+ "counted": true,
335
+ "reason": "evaluated_new_source_state"
336
+ },
337
+ {
338
+ "n": 9,
339
+ "runId": "lr-00000000e5f6",
340
+ "fingerprint": "a681be07794882632780cd219cc23b20805b61c74e85bbdfe963b02794212344",
341
+ "ts": 1789836931746,
342
+ "hypothesis": null,
343
+ "receiptIds": [
344
+ "c-verify-all"
345
+ ],
346
+ "criteriaChanged": [
347
+ "ENG"
348
+ ],
349
+ "lossBefore": 0,
350
+ "lossAfter": 0,
351
+ "result": "PASS",
352
+ "diagnosticOnly": false,
353
+ "elapsedMs": 79523,
354
+ "counted": true,
355
+ "reason": "evaluated_new_source_state"
356
+ },
357
+ {
358
+ "n": 10,
359
+ "runId": "lr-00000000e5f6",
360
+ "fingerprint": "70ad91315c8ea57a4a62c29c3abf77a1a86a44a9a3a309def2417b7c03bec5ba",
361
+ "ts": 1789837040391,
362
+ "hypothesis": null,
363
+ "receiptIds": [
364
+ "c-verify-all"
365
+ ],
366
+ "criteriaChanged": [
367
+ "ENG"
368
+ ],
369
+ "lossBefore": 0.09090909090909091,
370
+ "lossAfter": 0.09090909090909091,
371
+ "result": "PASS",
372
+ "diagnosticOnly": false,
373
+ "elapsedMs": 79381,
374
+ "counted": true,
375
+ "reason": "evaluated_new_source_state"
376
+ },
377
+ {
378
+ "n": 11,
379
+ "runId": "lr-00000000e5f6",
380
+ "fingerprint": "f9604d467ba6b6269845f0009df85506736cb37db50d80e8dfbe3c042b20e3c7",
381
+ "ts": 1789837151154,
382
+ "hypothesis": null,
383
+ "receiptIds": [
384
+ "c-verify-all"
385
+ ],
386
+ "criteriaChanged": [
387
+ "ENG"
388
+ ],
389
+ "lossBefore": 0,
390
+ "lossAfter": 0,
391
+ "result": "PASS",
392
+ "diagnosticOnly": false,
393
+ "elapsedMs": 78892,
394
+ "counted": true,
395
+ "reason": "evaluated_new_source_state"
396
+ },
397
+ {
398
+ "n": 12,
399
+ "runId": "lr-00000000e5f6",
400
+ "fingerprint": "982f5899db5e1ca192d30fefb2c30982cdf88e9699dd30e396ca397601ed4d90",
401
+ "ts": 1789837281933,
402
+ "hypothesis": null,
403
+ "receiptIds": [
404
+ "c-verify-all"
405
+ ],
406
+ "criteriaChanged": [],
407
+ "lossBefore": 0.09090909090909091,
408
+ "lossAfter": 0.09090909090909091,
409
+ "result": "FAIL",
410
+ "diagnosticOnly": false,
411
+ "elapsedMs": 78987,
412
+ "counted": true,
413
+ "reason": "evaluated_new_source_state"
414
+ },
415
+ {
416
+ "n": 13,
417
+ "runId": "lr-00000000e5f6",
418
+ "fingerprint": "96c236c2d720c5bc448b68c72461d82e6050a761be1d7302910fac9d572ef82d",
419
+ "ts": 1789837384691,
420
+ "hypothesis": null,
421
+ "receiptIds": [
422
+ "c-verify-all"
423
+ ],
424
+ "criteriaChanged": [
425
+ "ENG"
426
+ ],
427
+ "lossBefore": 0,
428
+ "lossAfter": 0,
429
+ "result": "PASS",
430
+ "diagnosticOnly": false,
431
+ "elapsedMs": 78507,
432
+ "counted": true,
433
+ "reason": "evaluated_new_source_state"
434
+ }
435
+ ],
436
+ "lastEvalFingerprint": "96c236c2d720c5bc448b68c72461d82e6050a761be1d7302910fac9d572ef82d",
437
+ "memoryNodes": [
438
+ "AGENTS.md"
439
+ ],
440
+ "best": {
441
+ "n": 1,
442
+ "runId": "lr-00000000e5f6",
443
+ "fingerprint": "dd470f7cd39b23ca3c2fa975a0be0f6ba1085074e555b97e4e87934846200c78",
444
+ "ts": 1789834367565,
445
+ "hypothesis": null,
446
+ "receiptIds": [
447
+ "c-fog-unit"
448
+ ],
449
+ "criteriaChanged": [],
450
+ "lossBefore": 0.6363636363636364,
451
+ "lossAfter": 0.6363636363636364,
452
+ "bestLoss": null,
453
+ "result": "PASS",
454
+ "diagnosticOnly": false,
455
+ "elapsedMs": 623,
456
+ "counted": true,
457
+ "reason": "evaluated_new_source_state"
458
+ },
459
+ "current": {
460
+ "n": 13,
461
+ "runId": "lr-00000000e5f6",
462
+ "fingerprint": "96c236c2d720c5bc448b68c72461d82e6050a761be1d7302910fac9d572ef82d",
463
+ "ts": 1789837384691,
464
+ "hypothesis": null,
465
+ "receiptIds": [
466
+ "c-verify-all"
467
+ ],
468
+ "criteriaChanged": [
469
+ "ENG"
470
+ ],
471
+ "lossBefore": 0,
472
+ "lossAfter": 0,
473
+ "result": "PASS",
474
+ "diagnosticOnly": false,
475
+ "elapsedMs": 78507,
476
+ "counted": true,
477
+ "reason": "evaluated_new_source_state"
478
+ }
479
+ },
480
+ "receipts": [
481
+ {
482
+ "checkId": "c-detect-unit",
483
+ "command": "npx vitest run packages/sim/test/detect.test.ts",
484
+ "status": "NOT_RUN",
485
+ "exitCode": 0,
486
+ "testCount": null,
487
+ "startedAt": 1789833222140,
488
+ "finishedAt": 1789833222798,
489
+ "versions": {
490
+ "node": "v24.15.0"
491
+ },
492
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
493
+ "evaluatorHash": null,
494
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
495
+ "evidenceClass": "UNIT",
496
+ "class": "UNIT",
497
+ "proxyOnly": false
498
+ },
499
+ {
500
+ "checkId": "c-sec-unit",
501
+ "command": "npx vitest run packages/sim/test/security.test.ts",
502
+ "status": "NOT_RUN",
503
+ "exitCode": 0,
504
+ "testCount": null,
505
+ "startedAt": 1789833222838,
506
+ "finishedAt": 1789833223373,
507
+ "versions": {
508
+ "node": "v24.15.0"
509
+ },
510
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
511
+ "evaluatorHash": null,
512
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
513
+ "evidenceClass": "UNIT",
514
+ "class": "UNIT",
515
+ "proxyOnly": false
516
+ },
517
+ {
518
+ "checkId": "c-ai-unit",
519
+ "command": "npx vitest run packages/sim/test/ai.test.ts",
520
+ "status": "NOT_RUN",
521
+ "exitCode": 0,
522
+ "testCount": null,
523
+ "startedAt": 1789833223413,
524
+ "finishedAt": 1789833223958,
525
+ "versions": {
526
+ "node": "v24.15.0"
527
+ },
528
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
529
+ "evaluatorHash": null,
530
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
531
+ "evidenceClass": "UNIT",
532
+ "class": "UNIT",
533
+ "proxyOnly": false
534
+ },
535
+ {
536
+ "checkId": "c-mission-win",
537
+ "command": "npx vitest run packages/sim/test/missions23.test.ts",
538
+ "status": "NOT_RUN",
539
+ "exitCode": 0,
540
+ "testCount": null,
541
+ "startedAt": 1789833223998,
542
+ "finishedAt": 1789833224585,
543
+ "versions": {
544
+ "node": "v24.15.0"
545
+ },
546
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
547
+ "evaluatorHash": null,
548
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
549
+ "evidenceClass": "INTEGRATION",
550
+ "class": "INTEGRATION",
551
+ "proxyOnly": false
552
+ },
553
+ {
554
+ "checkId": "c-detect-unit",
555
+ "command": "npx vitest run packages/sim/test/detect.test.ts",
556
+ "status": "PASS",
557
+ "exitCode": 0,
558
+ "testCount": null,
559
+ "startedAt": 1789833265283,
560
+ "finishedAt": 1789833265927,
561
+ "versions": {
562
+ "node": "v24.15.0"
563
+ },
564
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
565
+ "evaluatorHash": null,
566
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
567
+ "evidenceClass": "UNIT",
568
+ "class": "UNIT",
569
+ "proxyOnly": false
570
+ },
571
+ {
572
+ "checkId": "c-sec-unit",
573
+ "command": "npx vitest run packages/sim/test/security.test.ts",
574
+ "status": "PASS",
575
+ "exitCode": 0,
576
+ "testCount": null,
577
+ "startedAt": 1789833265977,
578
+ "finishedAt": 1789833266475,
579
+ "versions": {
580
+ "node": "v24.15.0"
581
+ },
582
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
583
+ "evaluatorHash": null,
584
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
585
+ "evidenceClass": "UNIT",
586
+ "class": "UNIT",
587
+ "proxyOnly": false
588
+ },
589
+ {
590
+ "checkId": "c-ai-unit",
591
+ "command": "npx vitest run packages/sim/test/ai.test.ts",
592
+ "status": "PASS",
593
+ "exitCode": 0,
594
+ "testCount": null,
595
+ "startedAt": 1789833266513,
596
+ "finishedAt": 1789833267050,
597
+ "versions": {
598
+ "node": "v24.15.0"
599
+ },
600
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
601
+ "evaluatorHash": null,
602
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
603
+ "evidenceClass": "UNIT",
604
+ "class": "UNIT",
605
+ "proxyOnly": false
606
+ },
607
+ {
608
+ "checkId": "c-mission-win",
609
+ "command": "npx vitest run packages/sim/test/missions23.test.ts",
610
+ "status": "PASS",
611
+ "exitCode": 0,
612
+ "testCount": null,
613
+ "startedAt": 1789833267092,
614
+ "finishedAt": 1789833267725,
615
+ "versions": {
616
+ "node": "v24.15.0"
617
+ },
618
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
619
+ "evaluatorHash": null,
620
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
621
+ "evidenceClass": "INTEGRATION",
622
+ "class": "INTEGRATION",
623
+ "proxyOnly": false
624
+ },
625
+ {
626
+ "checkId": "c-replay-determ",
627
+ "command": "npx vitest run packages/sim/test/replay2.test.ts",
628
+ "status": "PASS",
629
+ "exitCode": 0,
630
+ "testCount": null,
631
+ "startedAt": 1789833287138,
632
+ "finishedAt": 1789833287692,
633
+ "versions": {
634
+ "node": "v24.15.0"
635
+ },
636
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
637
+ "evaluatorHash": null,
638
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
639
+ "evidenceClass": "INTEGRATION",
640
+ "class": "INTEGRATION",
641
+ "proxyOnly": false
642
+ },
643
+ {
644
+ "checkId": "c-save-migration",
645
+ "command": "npx vitest run packages/sim/test/save.test.ts",
646
+ "status": "PASS",
647
+ "exitCode": 0,
648
+ "testCount": null,
649
+ "startedAt": 1789833287739,
650
+ "finishedAt": 1789833288256,
651
+ "versions": {
652
+ "node": "v24.15.0"
653
+ },
654
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
655
+ "evaluatorHash": null,
656
+ "sourceFingerprint": "34fc0f0fda9d1ddf58697c0e837332b617a3815bff6f3beae8c07850edb417e8",
657
+ "evidenceClass": "INTEGRATION",
658
+ "class": "INTEGRATION",
659
+ "proxyOnly": false
660
+ },
661
+ {
662
+ "checkId": "c-fog-unit",
663
+ "command": "npx vitest run packages/sim/test/fog.test.ts",
664
+ "status": "PASS",
665
+ "exitCode": 0,
666
+ "testCount": null,
667
+ "startedAt": 1789834366916,
668
+ "finishedAt": 1789834367539,
669
+ "versions": {
670
+ "node": "v24.15.0"
671
+ },
672
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
673
+ "evaluatorHash": null,
674
+ "sourceFingerprint": "dd470f7cd39b23ca3c2fa975a0be0f6ba1085074e555b97e4e87934846200c78",
675
+ "evidenceClass": "UNIT",
676
+ "class": "UNIT",
677
+ "proxyOnly": false
678
+ },
679
+ {
680
+ "checkId": "c-fog-e2e",
681
+ "command": "npx playwright test e2e/fog.spec.ts",
682
+ "status": "PASS",
683
+ "exitCode": 0,
684
+ "testCount": null,
685
+ "startedAt": 1789834367591,
686
+ "finishedAt": 1789834381229,
687
+ "versions": {
688
+ "node": "v24.15.0"
689
+ },
690
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
691
+ "evaluatorHash": null,
692
+ "sourceFingerprint": "dd470f7cd39b23ca3c2fa975a0be0f6ba1085074e555b97e4e87934846200c78",
693
+ "evidenceClass": "INTEGRATION",
694
+ "class": "INTEGRATION",
695
+ "proxyOnly": false
696
+ },
697
+ {
698
+ "checkId": "c-server-tests",
699
+ "command": "npx vitest run packages/server/test",
700
+ "status": "PASS",
701
+ "exitCode": 0,
702
+ "testCount": null,
703
+ "startedAt": 1789834675145,
704
+ "finishedAt": 1789834675805,
705
+ "versions": {
706
+ "node": "v24.15.0"
707
+ },
708
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
709
+ "evaluatorHash": null,
710
+ "sourceFingerprint": "247460900e8cfe476ecf705fe1b71a428651ea0fd2c26e49d9f6e713aa80405b",
711
+ "evidenceClass": "SYSTEM",
712
+ "class": "SYSTEM",
713
+ "proxyOnly": false
714
+ },
715
+ {
716
+ "checkId": "c-leaderboard-e2e",
717
+ "command": "npx playwright test e2e/leaderboard.spec.ts",
718
+ "status": "PASS",
719
+ "exitCode": 0,
720
+ "testCount": null,
721
+ "startedAt": 1789834675853,
722
+ "finishedAt": 1789834682914,
723
+ "versions": {
724
+ "node": "v24.15.0"
725
+ },
726
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
727
+ "evaluatorHash": null,
728
+ "sourceFingerprint": "247460900e8cfe476ecf705fe1b71a428651ea0fd2c26e49d9f6e713aa80405b",
729
+ "evidenceClass": "SYSTEM",
730
+ "class": "SYSTEM",
731
+ "proxyOnly": false
732
+ },
733
+ {
734
+ "checkId": "nc-tamper",
735
+ "command": "npx playwright test e2e/tamper.spec.ts",
736
+ "status": "PASS",
737
+ "exitCode": 0,
738
+ "testCount": null,
739
+ "startedAt": 1789834682957,
740
+ "finishedAt": 1789834687633,
741
+ "versions": {
742
+ "node": "v24.15.0"
743
+ },
744
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
745
+ "evaluatorHash": null,
746
+ "sourceFingerprint": "247460900e8cfe476ecf705fe1b71a428651ea0fd2c26e49d9f6e713aa80405b",
747
+ "evidenceClass": "SYSTEM",
748
+ "class": "SYSTEM",
749
+ "proxyOnly": false
750
+ },
751
+ {
752
+ "checkId": "c-char-visual",
753
+ "command": "npx playwright test e2e/chars.spec.ts",
754
+ "status": "PASS",
755
+ "exitCode": 0,
756
+ "testCount": null,
757
+ "startedAt": 1789836402250,
758
+ "finishedAt": 1789836414753,
759
+ "versions": {
760
+ "node": "v24.15.0"
761
+ },
762
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
763
+ "evaluatorHash": null,
764
+ "sourceFingerprint": "67a84eeaa93d1d63c1a80f893256f2531b9806c846607d83068585f881834727",
765
+ "evidenceClass": "VISION",
766
+ "class": "VISION",
767
+ "proxyOnly": false
768
+ },
769
+ {
770
+ "checkId": "c-env-visual",
771
+ "command": "npx playwright test e2e/environment.spec.ts",
772
+ "status": "PASS",
773
+ "exitCode": 0,
774
+ "testCount": null,
775
+ "startedAt": 1789836420236,
776
+ "finishedAt": 1789836433531,
777
+ "versions": {
778
+ "node": "v24.15.0"
779
+ },
780
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
781
+ "evaluatorHash": null,
782
+ "sourceFingerprint": "bbe24e95714f2e67ea38989c2468a4bf299d759c0e24adb676c33fd1e590daeb",
783
+ "evidenceClass": "VISION",
784
+ "class": "VISION",
785
+ "proxyOnly": false
786
+ },
787
+ {
788
+ "checkId": "c-ui-e2e",
789
+ "command": "npx playwright test e2e/ui.spec.ts",
790
+ "status": "FAIL",
791
+ "exitCode": 1,
792
+ "testCount": null,
793
+ "startedAt": 1789836440192,
794
+ "finishedAt": 1789836441353,
795
+ "versions": {
796
+ "node": "v24.15.0"
797
+ },
798
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
799
+ "evaluatorHash": null,
800
+ "sourceFingerprint": "d8b88d9251a2835044669fc1b5411b599256de53b5bd9ce47480806f6d731d77",
801
+ "evidenceClass": "SYSTEM",
802
+ "class": "SYSTEM",
803
+ "proxyOnly": false
804
+ },
805
+ {
806
+ "checkId": "c-ui-e2e",
807
+ "command": "npx playwright test e2e/ui.spec.ts",
808
+ "status": "PASS",
809
+ "exitCode": 0,
810
+ "testCount": null,
811
+ "startedAt": 1789836646928,
812
+ "finishedAt": 1789836649165,
813
+ "versions": {
814
+ "node": "v24.15.0"
815
+ },
816
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
817
+ "evaluatorHash": null,
818
+ "sourceFingerprint": "b78f98e5ae6201aa340ad28e3b7c291abd52eedf8092c1d8898f5de925826062",
819
+ "evidenceClass": "SYSTEM",
820
+ "class": "SYSTEM",
821
+ "proxyOnly": false
822
+ },
823
+ {
824
+ "checkId": "c-typecheck",
825
+ "command": "npx tsc -p tsconfig.json --noEmit",
826
+ "status": "PASS",
827
+ "exitCode": 0,
828
+ "testCount": null,
829
+ "startedAt": 1789836658123,
830
+ "finishedAt": 1789836659219,
831
+ "versions": {
832
+ "node": "v24.15.0"
833
+ },
834
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
835
+ "evaluatorHash": null,
836
+ "sourceFingerprint": "b78f98e5ae6201aa340ad28e3b7c291abd52eedf8092c1d8898f5de925826062",
837
+ "evidenceClass": "INTEGRATION",
838
+ "class": "INTEGRATION",
839
+ "proxyOnly": false
840
+ },
841
+ {
842
+ "checkId": "c-replay-determ",
843
+ "command": "npx vitest run packages/sim/test/replay2.test.ts",
844
+ "status": "PASS",
845
+ "exitCode": 0,
846
+ "testCount": null,
847
+ "startedAt": 1789836675924,
848
+ "finishedAt": 1789836676630,
849
+ "versions": {
850
+ "node": "v24.15.0"
851
+ },
852
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
853
+ "evaluatorHash": null,
854
+ "sourceFingerprint": "b78f98e5ae6201aa340ad28e3b7c291abd52eedf8092c1d8898f5de925826062",
855
+ "evidenceClass": "INTEGRATION",
856
+ "class": "INTEGRATION",
857
+ "proxyOnly": false
858
+ },
859
+ {
860
+ "checkId": "c-save-migration",
861
+ "command": "npx vitest run packages/sim/test/save.test.ts",
862
+ "status": "PASS",
863
+ "exitCode": 0,
864
+ "testCount": null,
865
+ "startedAt": 1789836682731,
866
+ "finishedAt": 1789836683324,
867
+ "versions": {
868
+ "node": "v24.15.0"
869
+ },
870
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
871
+ "evaluatorHash": null,
872
+ "sourceFingerprint": "b78f98e5ae6201aa340ad28e3b7c291abd52eedf8092c1d8898f5de925826062",
873
+ "evidenceClass": "INTEGRATION",
874
+ "class": "INTEGRATION",
875
+ "proxyOnly": false
876
+ },
877
+ {
878
+ "checkId": "nc-replay",
879
+ "command": "npx vitest run packages/sim/test/neg-replay.test.ts",
880
+ "status": "PASS",
881
+ "exitCode": 0,
882
+ "testCount": null,
883
+ "startedAt": 1789836703565,
884
+ "finishedAt": 1789836704336,
885
+ "versions": {
886
+ "node": "v24.15.0"
887
+ },
888
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
889
+ "evaluatorHash": null,
890
+ "sourceFingerprint": "b78f98e5ae6201aa340ad28e3b7c291abd52eedf8092c1d8898f5de925826062",
891
+ "evidenceClass": "INTEGRATION",
892
+ "class": "INTEGRATION",
893
+ "proxyOnly": false
894
+ },
895
+ {
896
+ "checkId": "c-typecheck",
897
+ "command": "npx tsc -p tsconfig.json --noEmit",
898
+ "status": "PASS",
899
+ "exitCode": 0,
900
+ "testCount": null,
901
+ "startedAt": 1789836722595,
902
+ "finishedAt": 1789836723681,
903
+ "versions": {
904
+ "node": "v24.15.0"
905
+ },
906
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
907
+ "evaluatorHash": null,
908
+ "sourceFingerprint": "b78f98e5ae6201aa340ad28e3b7c291abd52eedf8092c1d8898f5de925826062",
909
+ "proxyOnly": false
910
+ },
911
+ {
912
+ "checkId": "c-build",
913
+ "command": "npm run build -w @sb/web",
914
+ "status": "PASS",
915
+ "exitCode": 0,
916
+ "testCount": null,
917
+ "startedAt": 1789836726924,
918
+ "finishedAt": 1789836728051,
919
+ "versions": {
920
+ "node": "v24.15.0"
921
+ },
922
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
923
+ "evaluatorHash": null,
924
+ "sourceFingerprint": "c942d4ada02cb12a3c4527f2c9363616649727fd85ad9ad77b87a5bf43f2b8b2",
925
+ "proxyOnly": false
926
+ },
927
+ {
928
+ "checkId": "c-verify-all",
929
+ "command": "bash scripts/verify-all.sh",
930
+ "status": "PASS",
931
+ "exitCode": 0,
932
+ "testCount": null,
933
+ "startedAt": 1789836731406,
934
+ "finishedAt": 1789836808795,
935
+ "versions": {
936
+ "node": "v24.15.0"
937
+ },
938
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
939
+ "evaluatorHash": null,
940
+ "sourceFingerprint": "e365be42aff4b02f68cdeeecf347360dda81137d84b7fe4b927e3ba0255d3646",
941
+ "proxyOnly": false
942
+ },
943
+ {
944
+ "checkId": "c-typecheck",
945
+ "command": "npx tsc -p tsconfig.json --noEmit",
946
+ "status": "PASS",
947
+ "exitCode": 0,
948
+ "testCount": null,
949
+ "startedAt": 1789836819608,
950
+ "finishedAt": 1789836820563,
951
+ "versions": {
952
+ "node": "v24.15.0"
953
+ },
954
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
955
+ "evaluatorHash": null,
956
+ "sourceFingerprint": "e365be42aff4b02f68cdeeecf347360dda81137d84b7fe4b927e3ba0255d3646",
957
+ "evidenceClass": "GATE",
958
+ "class": "GATE",
959
+ "proxyOnly": false
960
+ },
961
+ {
962
+ "checkId": "c-typecheck",
963
+ "command": "npx tsc -p tsconfig.json --noEmit",
964
+ "status": "PASS",
965
+ "exitCode": 0,
966
+ "testCount": null,
967
+ "startedAt": 1789836835260,
968
+ "finishedAt": 1789836836099,
969
+ "versions": {
970
+ "node": "v24.15.0"
971
+ },
972
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
973
+ "evaluatorHash": null,
974
+ "sourceFingerprint": "e365be42aff4b02f68cdeeecf347360dda81137d84b7fe4b927e3ba0255d3646",
975
+ "evidenceClass": "STATIC",
976
+ "class": "STATIC",
977
+ "proxyOnly": false
978
+ },
979
+ {
980
+ "checkId": "c-verify-all",
981
+ "command": "bash scripts/verify-all.sh",
982
+ "status": "PASS",
983
+ "exitCode": 0,
984
+ "testCount": null,
985
+ "startedAt": 1789836852195,
986
+ "finishedAt": 1789836931718,
987
+ "versions": {
988
+ "node": "v24.15.0"
989
+ },
990
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
991
+ "evaluatorHash": null,
992
+ "sourceFingerprint": "a681be07794882632780cd219cc23b20805b61c74e85bbdfe963b02794212344",
993
+ "evidenceClass": "SYSTEM",
994
+ "class": "SYSTEM",
995
+ "proxyOnly": false
996
+ },
997
+ {
998
+ "checkId": "c-typecheck",
999
+ "command": "npx tsc -p tsconfig.json --noEmit",
1000
+ "status": "PASS",
1001
+ "exitCode": 0,
1002
+ "testCount": null,
1003
+ "startedAt": 1789836946802,
1004
+ "finishedAt": 1789836947969,
1005
+ "versions": {
1006
+ "node": "v24.15.0"
1007
+ },
1008
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
1009
+ "evaluatorHash": null,
1010
+ "sourceFingerprint": "a681be07794882632780cd219cc23b20805b61c74e85bbdfe963b02794212344",
1011
+ "proxyOnly": false
1012
+ },
1013
+ {
1014
+ "checkId": "c-build",
1015
+ "command": "npm run build -w @sb/web",
1016
+ "status": "PASS",
1017
+ "exitCode": 0,
1018
+ "testCount": null,
1019
+ "startedAt": 1789836955537,
1020
+ "finishedAt": 1789836956782,
1021
+ "versions": {
1022
+ "node": "v24.15.0"
1023
+ },
1024
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
1025
+ "evaluatorHash": null,
1026
+ "sourceFingerprint": "a681be07794882632780cd219cc23b20805b61c74e85bbdfe963b02794212344",
1027
+ "proxyOnly": false
1028
+ },
1029
+ {
1030
+ "checkId": "c-verify-all",
1031
+ "command": "bash scripts/verify-all.sh",
1032
+ "status": "PASS",
1033
+ "exitCode": 0,
1034
+ "testCount": null,
1035
+ "startedAt": 1789836960982,
1036
+ "finishedAt": 1789837040363,
1037
+ "versions": {
1038
+ "node": "v24.15.0"
1039
+ },
1040
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
1041
+ "evaluatorHash": null,
1042
+ "sourceFingerprint": "70ad91315c8ea57a4a62c29c3abf77a1a86a44a9a3a309def2417b7c03bec5ba",
1043
+ "proxyOnly": false
1044
+ },
1045
+ {
1046
+ "checkId": "c-verify-all",
1047
+ "command": "bash scripts/verify-all.sh",
1048
+ "status": "PASS",
1049
+ "exitCode": 0,
1050
+ "testCount": null,
1051
+ "startedAt": 1789837072238,
1052
+ "finishedAt": 1789837151130,
1053
+ "versions": {
1054
+ "node": "v24.15.0"
1055
+ },
1056
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
1057
+ "evaluatorHash": null,
1058
+ "sourceFingerprint": "f9604d467ba6b6269845f0009df85506736cb37db50d80e8dfbe3c042b20e3c7",
1059
+ "evidenceClass": "INTEGRATION",
1060
+ "class": "INTEGRATION",
1061
+ "proxyOnly": false
1062
+ },
1063
+ {
1064
+ "checkId": "c-typecheck",
1065
+ "command": "npx tsc -p tsconfig.json --noEmit",
1066
+ "status": "PASS",
1067
+ "exitCode": 0,
1068
+ "testCount": null,
1069
+ "startedAt": 1789837171694,
1070
+ "finishedAt": 1789837172814,
1071
+ "versions": {
1072
+ "node": "v24.15.0"
1073
+ },
1074
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
1075
+ "evaluatorHash": null,
1076
+ "sourceFingerprint": "f9604d467ba6b6269845f0009df85506736cb37db50d80e8dfbe3c042b20e3c7",
1077
+ "evidenceClass": "STATIC",
1078
+ "class": "STATIC",
1079
+ "proxyOnly": false
1080
+ },
1081
+ {
1082
+ "checkId": "c-verify-all",
1083
+ "command": "bash scripts/verify-all.sh",
1084
+ "status": "FAIL",
1085
+ "exitCode": 1,
1086
+ "testCount": null,
1087
+ "startedAt": 1789837202930,
1088
+ "finishedAt": 1789837281917,
1089
+ "versions": {
1090
+ "node": "v24.15.0"
1091
+ },
1092
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
1093
+ "evaluatorHash": null,
1094
+ "sourceFingerprint": "982f5899db5e1ca192d30fefb2c30982cdf88e9699dd30e396ca397601ed4d90",
1095
+ "proxyOnly": false
1096
+ },
1097
+ {
1098
+ "checkId": "c-verify-all",
1099
+ "command": "bash scripts/verify-all.sh",
1100
+ "status": "PASS",
1101
+ "exitCode": 0,
1102
+ "testCount": null,
1103
+ "startedAt": 1789837306145,
1104
+ "finishedAt": 1789837384652,
1105
+ "versions": {
1106
+ "node": "v24.15.0"
1107
+ },
1108
+ "contractHash": "d68eaeec2f591551d95ddfc0c18f74211e92edd804e66e4e4e43c50d0e69ce17",
1109
+ "evaluatorHash": null,
1110
+ "sourceFingerprint": "96c236c2d720c5bc448b68c72461d82e6050a761be1d7302910fac9d572ef82d",
1111
+ "evidenceClass": "INTEGRATION",
1112
+ "class": "INTEGRATION",
1113
+ "proxyOnly": false
1114
+ }
1115
+ ],
1116
+ "faults": [],
1117
+ "directory": "/home/example/project",
1118
+ "checkCatalogue": {
1119
+ "c-fog-unit": {
1120
+ "kind": "cmd",
1121
+ "command": [
1122
+ "npx",
1123
+ "vitest",
1124
+ "run",
1125
+ "packages/sim/test/fog.test.ts"
1126
+ ],
1127
+ "countTests": true,
1128
+ "timeoutMs": 120000
1129
+ },
1130
+ "c-fog-e2e": {
1131
+ "kind": "cmd",
1132
+ "command": [
1133
+ "npx",
1134
+ "playwright",
1135
+ "test",
1136
+ "e2e/fog.spec.ts"
1137
+ ],
1138
+ "countTests": true,
1139
+ "integration": true,
1140
+ "timeoutMs": 180000
1141
+ },
1142
+ "c-detect-unit": {
1143
+ "kind": "cmd",
1144
+ "command": [
1145
+ "npx",
1146
+ "vitest",
1147
+ "run",
1148
+ "packages/sim/test/detect.test.ts"
1149
+ ],
1150
+ "countTests": true,
1151
+ "timeoutMs": 120000
1152
+ },
1153
+ "c-detect-e2e": {
1154
+ "kind": "cmd",
1155
+ "command": [
1156
+ "npx",
1157
+ "playwright",
1158
+ "test",
1159
+ "e2e/detect.spec.ts"
1160
+ ],
1161
+ "countTests": true,
1162
+ "integration": true,
1163
+ "timeoutMs": 180000
1164
+ },
1165
+ "c-sec-unit": {
1166
+ "kind": "cmd",
1167
+ "command": [
1168
+ "npx",
1169
+ "vitest",
1170
+ "run",
1171
+ "packages/sim/test/security.test.ts"
1172
+ ],
1173
+ "countTests": true,
1174
+ "timeoutMs": 120000
1175
+ },
1176
+ "c-sec-e2e": {
1177
+ "kind": "cmd",
1178
+ "command": [
1179
+ "npx",
1180
+ "playwright",
1181
+ "test",
1182
+ "e2e/security.spec.ts"
1183
+ ],
1184
+ "countTests": true,
1185
+ "integration": true,
1186
+ "timeoutMs": 180000
1187
+ },
1188
+ "c-ai-unit": {
1189
+ "kind": "cmd",
1190
+ "command": [
1191
+ "npx",
1192
+ "vitest",
1193
+ "run",
1194
+ "packages/sim/test/ai.test.ts"
1195
+ ],
1196
+ "countTests": true,
1197
+ "timeoutMs": 120000
1198
+ },
1199
+ "c-ai-e2e": {
1200
+ "kind": "cmd",
1201
+ "command": [
1202
+ "npx",
1203
+ "playwright",
1204
+ "test",
1205
+ "e2e/ai.spec.ts"
1206
+ ],
1207
+ "countTests": true,
1208
+ "integration": true,
1209
+ "timeoutMs": 180000
1210
+ },
1211
+ "c-mission-win": {
1212
+ "kind": "cmd",
1213
+ "command": [
1214
+ "npx",
1215
+ "vitest",
1216
+ "run",
1217
+ "packages/sim/test/missions23.test.ts"
1218
+ ],
1219
+ "countTests": true,
1220
+ "integration": true,
1221
+ "timeoutMs": 120000
1222
+ },
1223
+ "c-mission-e2e": {
1224
+ "kind": "cmd",
1225
+ "command": [
1226
+ "npx",
1227
+ "playwright",
1228
+ "test",
1229
+ "e2e/missions.spec.ts"
1230
+ ],
1231
+ "countTests": true,
1232
+ "integration": true,
1233
+ "timeoutMs": 180000
1234
+ },
1235
+ "c-replay-determ": {
1236
+ "kind": "cmd",
1237
+ "command": [
1238
+ "npx",
1239
+ "vitest",
1240
+ "run",
1241
+ "packages/sim/test/replay2.test.ts"
1242
+ ],
1243
+ "countTests": true,
1244
+ "determinism": true,
1245
+ "timeoutMs": 120000
1246
+ },
1247
+ "c-save-migration": {
1248
+ "kind": "cmd",
1249
+ "command": [
1250
+ "npx",
1251
+ "vitest",
1252
+ "run",
1253
+ "packages/sim/test/save.test.ts"
1254
+ ],
1255
+ "countTests": true,
1256
+ "integration": true,
1257
+ "timeoutMs": 120000
1258
+ },
1259
+ "c-server-tests": {
1260
+ "kind": "cmd",
1261
+ "command": [
1262
+ "npx",
1263
+ "vitest",
1264
+ "run",
1265
+ "packages/server/test"
1266
+ ],
1267
+ "countTests": true,
1268
+ "timeoutMs": 180000
1269
+ },
1270
+ "c-leaderboard-e2e": {
1271
+ "kind": "cmd",
1272
+ "command": [
1273
+ "npx",
1274
+ "playwright",
1275
+ "test",
1276
+ "e2e/leaderboard.spec.ts"
1277
+ ],
1278
+ "countTests": true,
1279
+ "timeoutMs": 240000
1280
+ },
1281
+ "nc-tamper": {
1282
+ "kind": "cmd",
1283
+ "command": [
1284
+ "npx",
1285
+ "playwright",
1286
+ "test",
1287
+ "e2e/tamper.spec.ts"
1288
+ ],
1289
+ "countTests": true,
1290
+ "security": true,
1291
+ "negativeControl": true,
1292
+ "timeoutMs": 180000
1293
+ },
1294
+ "c-char-visual": {
1295
+ "kind": "cmd",
1296
+ "command": [
1297
+ "npx",
1298
+ "playwright",
1299
+ "test",
1300
+ "e2e/chars.spec.ts"
1301
+ ],
1302
+ "countTests": true,
1303
+ "visual": true,
1304
+ "timeoutMs": 240000
1305
+ },
1306
+ "c-env-visual": {
1307
+ "kind": "cmd",
1308
+ "command": [
1309
+ "npx",
1310
+ "playwright",
1311
+ "test",
1312
+ "e2e/environment.spec.ts"
1313
+ ],
1314
+ "countTests": true,
1315
+ "visual": true,
1316
+ "timeoutMs": 240000
1317
+ },
1318
+ "c-ui-e2e": {
1319
+ "kind": "cmd",
1320
+ "command": [
1321
+ "npx",
1322
+ "playwright",
1323
+ "test",
1324
+ "e2e/ui.spec.ts"
1325
+ ],
1326
+ "countTests": true,
1327
+ "timeoutMs": 240000
1328
+ },
1329
+ "c-typecheck": {
1330
+ "kind": "cmd",
1331
+ "command": [
1332
+ "npx",
1333
+ "tsc",
1334
+ "-p",
1335
+ "tsconfig.json",
1336
+ "--noEmit"
1337
+ ],
1338
+ "timeoutMs": 180000
1339
+ },
1340
+ "c-build": {
1341
+ "kind": "cmd",
1342
+ "command": [
1343
+ "npm",
1344
+ "run",
1345
+ "build",
1346
+ "-w",
1347
+ "@sb/web"
1348
+ ],
1349
+ "timeoutMs": 300000
1350
+ },
1351
+ "c-verify-all": {
1352
+ "kind": "cmd",
1353
+ "command": [
1354
+ "bash",
1355
+ "scripts/verify-all.sh"
1356
+ ],
1357
+ "gate": true,
1358
+ "timeoutMs": 600000
1359
+ },
1360
+ "nc-replay": {
1361
+ "kind": "cmd",
1362
+ "command": [
1363
+ "npx",
1364
+ "vitest",
1365
+ "run",
1366
+ "packages/sim/test/neg-replay.test.ts"
1367
+ ],
1368
+ "countTests": true,
1369
+ "determinism": true,
1370
+ "negativeControl": true,
1371
+ "timeoutMs": 120000
1372
+ }
1373
+ },
1374
+ "createdAt": 1789833197692
1375
+ }