/** * Report-panel advisories — the analytics half of the support taxonomy. A * verification run (heal/doctor/…) turns a *broken environment* into a ticket; * this turns `aih report`'s own panels (over-budget context, incomplete adoption) * into the same routable {@link Check}s, so they flow through `findingsFrom` into * copy-ready self-fix notes and the dashboard's Copy buttons. * * Two contracts are preserved exactly: * - `--gate` keeps the per-turn budget as the CI gate ("per-turn token budget": * a `fail` flips the exit code, unchanged — now also CODED so it produces a * finding). WITHOUT `--gate`, an over-budget footprint is a non-gating `skip` * under a DISTINCT name, so a bare `aih report` still exits 0 and grows no * gating probe. * - Adoption gaps are always advisory (`skip`, never gate) and only surface in a * repo that opted into the harness (a committed `.aih-config.json` marker), so * `aih report` on an unrelated repo never nags about adoption. * * Pure — no I/O, no clock. The caller supplies the model + adoption snapshot it * already computed for the panels. */ import type { Check } from "../internals/verify.js"; import type { VerificationResult } from "../verification/types.js"; import type { LoadGroupModel } from "./loadgroups.js"; /** The Configuration panel's adoption snapshot (present count + the absent artifact names). */ export interface AdoptionSnapshot { present: number; total: number; absent: string[]; } /** The Repo Contract panel's truth snapshot — non-portable-path + known-gap counts. */ export interface ContractSnapshot { unportable: number; knownGaps: number; } export interface AdvisoryInput { /** Per-turn load-group model (local scope only; absent for `--org`). */ model?: LoadGroupModel; /** Managed-artifact presence from the Configuration panel (local scope only). */ adoption?: AdoptionSnapshot; /** Repo Contract truth snapshot (local scope only; absent when no contract committed). */ contract?: ContractSnapshot; /** `--gate`: the per-turn budget becomes a CI gate (a `fail` flips the exit). */ gate: boolean; /** Repo opted into the harness (committed marker) — gates the adoption advisory. */ initialized: boolean; } /** Report-panel advisories as structured verification results, most-actionable first. */ export declare function reportAdvisoryResults(input: AdvisoryInput): VerificationResult[]; /** Report-panel advisories as coded legacy {@link Check}s, most-actionable first. */ export declare function reportAdvisories(input: AdvisoryInput): Check[];