(value: unknown)
| 375 | } |
| 376 | |
| 377 | function decodeVerification(value: unknown): ExecutorVerification { |
| 378 | const verification = exactRecord(value, ['status', 'score', 'failureReason', 'artifacts']); |
| 379 | if ( |
| 380 | verification.status !== 'completed' && |
| 381 | verification.status !== 'subject_failed' && |
| 382 | verification.status !== 'infra_failed' |
| 383 | ) { |
| 384 | throw new Error('verification status is invalid'); |
| 385 | } |
| 386 | const decoded = decodeEvalResult({ |
| 387 | score: verification.score, |
| 388 | usage: null, |
| 389 | costUsd: null, |
| 390 | durationMs: 0, |
| 391 | status: verification.status, |
| 392 | failureReason: verification.failureReason, |
| 393 | artifacts: verification.artifacts, |
| 394 | }); |
| 395 | return { |
| 396 | status: verification.status, |
| 397 | score: decoded.score, |
| 398 | failureReason: decoded.failureReason, |
| 399 | artifacts: decoded.artifacts, |
| 400 | }; |
| 401 | } |
| 402 | |
| 403 | function settledStatus( |
| 404 | subject: SubjectExecutionResult['status'], |
no test coverage detected