/** * What a typed Initiative error says, independent of the wire carrying it. * * `http/handlers/initiative-record.ts` and `mcp/mcp-adapter.ts` each held a ~120-line * `instanceof` chain over these same eighteen classes. Only the HTTP STATUS is genuinely * transport-specific: the code, the message and the per-class detail fields are properties of * the error itself, and stating them twice is how they drifted — MCP reported * `cross_initiative_evidence_link` with `{ evidence_id, target_type, target_id }` and * `cross_initiative_verification` with `{ initiative_id, acceptance_criterion_id }` while HTTP * reported neither, so an HTTP caller debugging a cross-Initiative link got a message and no ids. * * A new error class added here reaches both wires at once; one added to a transport instead * degrades to `internal_error` on the other, which is what `initiative-error-transport-parity` * fails on. */ export interface InitiativeErrorReport { code: string; message: string; /** Omitted, not empty, when the class carries no fields beyond its message. */ details?: Record; /** HTTP status for this class. The one genuinely transport-specific value; MCP ignores it. */ status: number; } export declare function reportInitiativeError(err: unknown): InitiativeErrorReport; //# sourceMappingURL=initiative-error-report.d.ts.map