import { VerifiedReason } from './verified-constants.js'; /** * WHOSE problem an unproved verdict is. * * `verified` says whether the claim held. `verifiedReason` says which clause decided it. Neither * says who should act, and for `unknown` that is the only question the reader has. Three of the * reasons below arrive as the same word today - "the backend answered 202 and has not finished", * "the page SDK and the daemon are on different contracts", and "the capture was truncated" - and * they need three opposite next moves: wait, fix Reticle's setup, look again with better coverage. * * Four owners, because four are what the evidence can actually distinguish. A fifth would be a word * nobody could act on differently, and the whole point of this field is that each value implies a * different move. * * NOT `BugAttribution`, and the two must not be merged. That one answers "we found a defect — whose * defect is it?" over app/request/reticle/unclassified. This one answers "we could NOT decide — who * can act?", which is a question about the absence of a verdict rather than about a finding, and it * has to distinguish a thing that resolves by WAITING (`environment`) from a thing that resolves by * LOOKING AGAIN (`could-not-see`). `BugAttribution` has no member for either, because a bug is never * either of them. Named apart on purpose: one vocabulary stretched over two questions is how both * end up wrong. */ export declare const VerdictAttribution: { /** The app under test is wrong. The assertion failed, or two channels disagree about it. */ readonly CODE: "code"; /** * Nothing is wrong yet: something outside the app's own code has not finished or never settled. * * The one class that resolves by WAITING, which is why it must not read as a defect. An agent that * treats "the server is still working" as a failure re-drives a system that was fine. */ readonly ENVIRONMENT: "environment"; /** * Reticle, or how it was driven. Our own pieces disagreeing, a window we closed too early, a claim * the caller declared that could never have proved anything. * * Named honestly on purpose. A tool that reports its own failures as the app's is the confident * wrong answer this project exists to remove, and it is the class a user can most easily fix once * they are told it is theirs. */ readonly HARNESS: "harness"; /** * The evidence needed was missing. Not a failure of the app, and not a failure of the run - a gap * in what was observable, which is the one that says LOOK AGAIN rather than GO FIX SOMETHING. */ readonly COULD_NOT_SEE: "could-not-see"; /** The claim was proved. There is no owner to name, and the field is omitted rather than carrying this. */ readonly NONE: "none"; }; export type VerdictAttribution = (typeof VerdictAttribution)[keyof typeof VerdictAttribution]; /** Who owns this verdict reason, or `undefined` for a reason nobody has classified. */ export declare function verdictAttributionOf(reason: VerifiedReason): VerdictAttribution | undefined;