Rulvar API reference / @rulvar/rulvar / FinishContract
Interface: FinishContract
Defined in: packages/core/dist/index.d.ts
What finishContract builds from a manifest. The whole bundle is DEEPLY frozen (cycle 74): the nested manifest objects, the sections array, the validators array, and each validator object, so a post construction mutation throws instead of silently diverging behavior from the journaled contract hash.
Properties
| Property | Modifier | Type | Description | Defined in |
|---|---|---|---|---|
goldenAccept | readonly | FinishValidationInput | A generated fixture every contract validator accepts. | packages/core/dist/index.d.ts |
goldenReject? | readonly | FinishValidationInput | A generated fixture at least one contract validator rejects. Absent when the manifest carries only upper bounds, because an empty result is then legitimately acceptable. | packages/core/dist/index.d.ts |
goldenRejects | readonly | readonly FinishContractGoldenReject[] | One reject golden PER contract validator (cycle 74), in validator order, each verified at construction; boundary sharp where a boundary is mechanically safe (the words fixture sits exactly one word outside the bound), the empty text otherwise. | packages/core/dist/index.d.ts |
hash | readonly | string | sha256 hex over the JCS serialization of the normalized manifest. | packages/core/dist/index.d.ts |
manifest | readonly | FinishContractManifest | The normalized manifest (defaults applied), deeply frozen. | packages/core/dist/index.d.ts |
promptLines | readonly | readonly string[] | The contract statement for the model, one demand per line. | packages/core/dist/index.d.ts |
validators | readonly | FinishValidator[] | The stock validators enforcing the manifest; names are 'contract-*'. The array and each validator object are frozen at runtime (the type stays mutable for source compatibility), so an in-place pop or a validate() swap throws instead of silently weakening what the hash promises. | packages/core/dist/index.d.ts |