import type { ContractIssue, ContractReplay } from "./types.js"; export class ContractError extends Error { readonly replay: ContractReplay; readonly issues: ContractIssue[]; constructor(message: string, replay: ContractReplay, issues: ContractIssue[] = []) { super(message); this.name = "ContractError"; this.replay = replay; this.issues = issues; } } export class ContractParseError extends ContractError { constructor(replay: ContractReplay) { super("Model response was not valid JSON.", replay); this.name = "ContractParseError"; } } export class ContractValidationError extends ContractError { constructor(replay: ContractReplay, issues: ContractIssue[]) { super("Model response did not satisfy the contract schema.", replay, issues); this.name = "ContractValidationError"; } }