/** * The envelope claimed a feature activation that differs from replay by * more than `epsilon_applied`. */ export interface ThresholdDispute { kind: 'threshold'; feature_id: number; attested_value: number; claimed_value: number; delta: number; epsilon_applied: number; } /** * A feature active in replay was not present in the envelope's reported * activations. Reason distinguishes the aggregation-policy mechanism that * excluded it. */ export interface ExclusionDispute { kind: 'exclusion'; feature_id: number; claimed_activation: number; reason: 'missing_from_top_k' | 'below_threshold' | 'allowlist_violation'; } export type ComputationalDispute = ThresholdDispute | ExclusionDispute; /** * Claim that the dictionary's feature decomposition is inadequate to * describe the attested behavior. Resolved by governance, not math. */ export interface DecompositionAdequacyDispute { kind: 'decomposition_adequacy'; claim: string; /** IPFS CIDs, Zenodo DOIs, gateway artifact IDs, etc. SDK does not interpret. */ evidence_refs: string[]; annotator_did: string; } /** * Claim that a feature's conventional label misrepresents the concept it * detects in the attested context. Resolved by governance annotation. */ export interface FacetedReinterpretationDispute { kind: 'faceted_reinterpretation'; feature_id: number; original_label: string | null; proposed_reinterpretation: string; evidence_refs: string[]; annotator_did: string; } export type InterpretiveDispute = DecompositionAdequacyDispute | FacetedReinterpretationDispute; export type Dispute = ComputationalDispute | InterpretiveDispute; //# sourceMappingURL=disputes.d.ts.map