Rulvar API reference / @rulvar/core / RejectedFinishCandidate
Interface: RejectedFinishCandidate
Defined in: packages/core/src/engine/run-handle.ts:214
One finish candidate the declared contract did NOT accept (RV2507). The 1.226.0 comparison run rejected three syntheses; nothing on its terminal said so, nothing said whether the three differed from each other, and the only way to read them was an external script that re-parsed the whole agent transcript. The row is the artifact that dig produced, made first class.
hash is the sha256 over the canonical candidate: two rows with the same hash are the model serving the same document twice, which is a different failure from three genuine attempts and used to be invisible. ref is present exactly under finishValidation.retainRejectedCandidates, and points at a transcript blob holding the candidate verbatim; without it the row still identifies and sizes what was rejected, and names the validators that did it.
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
bytesUnavailableReason? | "hash-only-persistence" | "store-write-failed" | Why the bytes are not retained (RV4207), when the run declared a candidatePersistence: 'hash-only-persistence' is the policy saying so on purpose, 'store-write-failed' a declared retention the store refused. Absent on undeclared configs, whose rows keep their exact bytes. | packages/core/src/engine/run-handle.ts:234 |
callId | string | The finish tool call this candidate arrived on. | packages/core/src/engine/run-handle.ts:216 |
chars | number | The candidate's length in characters, honest whether or not the bytes were retained. | packages/core/src/engine/run-handle.ts:222 |
failed | { name: string; reasons: string[]; }[] | Each validator that rejected it, with its reasons: the diff. | packages/core/src/engine/run-handle.ts:224 |
hash | string | sha256 over the canonical candidate; identity, not location. | packages/core/src/engine/run-handle.ts:220 |
ref? | string | Transcript ref holding the bytes; absent unless retention is on and the write succeeded. | packages/core/src/engine/run-handle.ts:226 |
verdict | "rejected" | "repair" | 'repair' when another turn was granted, 'rejected' when this was the last. | packages/core/src/engine/run-handle.ts:218 |