import { type CapabilityClaim, type CapabilityResolution } from './schema.js'; /** The injected port's output — one mined review finding per review comment. */ export interface MinedReviewFinding { /** GitHub review-comment numeric id (REST exposes no GraphQL node_id) — the nativeKey source. */ commentId: number; /** GitHub author login (a review-bot or a cohort seat). */ author: string; /** Provenance ref of the thread/PR, e.g. `mmnto-ai/totem#2205`. */ prRef: string; /** The commit the finding was asserted against (lowercase 40-hex). */ commitSha: string; /** When the finding was posted (ISO). */ assertedAt: string; /** * The deterministic disposition read (reusing `bot-review-parser`'s taxonomy): * `accepted` → held → `correct`; `declined` → wrong → `wrong`; `undefined` = silence * (no disposition, no fix) → NO resolution row → the regenerator derives `unresolved` * (strategy pin: never count silence as a miss). */ disposition?: 'accepted' | 'declined'; /** The disposition comment id / fix-commit ref the read was grounded in. */ dispositionEvidenceRef?: string; /** When the disposition was made (ISO); falls back to `assertedAt`. */ resolvedAt?: string; } export interface ReviewCatchMineResult { claims: CapabilityClaim[]; resolutions: CapabilityResolution[]; } /** * Resolve a GitHub author login to a stable Layer-B actor-id, COUPLING to existing * actors rather than minting a parallel scheme (#697 fold 5, corrected c.4755848293). * The namespace is `{ cohort agent-seats } ∪ { coderabbit, gemini-code-assist, greptile }`: * the three ACTIVE paid review bots (de-facto home: `doctrine/bot-protocols.md` + the * parity-manifest `bot-review-configs` dimension) + the cohort seats (a cohort dispatch * login already IS its `cohort-roles.md` id). `pr-agent`/`qodo` are research-only/dropped * (no shipped #670 backend registry to couple to — forward-couple only IF #670 ships), so * they are NOT specially mapped. Model/backend identity is intentionally NOT folded into * the id (so the hit-rate aggregates across model swaps). * * @param author - the GitHub login of the finding's author (bot or cohort seat). * @returns the stable actor-id — a known bot's canonical id, else the trimmed login. * @throws if `author` is empty or whitespace-only (no silent empty actor-id). */ export declare function resolveActorId(author: string): string; /** * Mine the review-catch column from a list of findings. One claim per finding; a * resolution only when the finding carries a disposition (silence → unresolved by * absence). Deterministic: `claimId`/`resolutionId` derive from the finding's stable * `commentId`, so re-mining identical history yields identical rows. */ export declare function mineReviewCatch(findings: readonly MinedReviewFinding[]): ReviewCatchMineResult; //# sourceMappingURL=review-catch.d.ts.map