import { SkillRecord } from "./contracts/skill-record.type.mjs"; import { SkillAnalyticsEvent, SkillReviewGate } from "./contracts/skills-config.type.mjs"; //#region ../ai/src/skills/review-gate.d.ts /** Outcome of running a candidate through the review gate. */ type ReviewOutcome = { promoted: true; record: SkillRecord; reason?: string; } | { promoted: false; reason?: string; }; /** * Run a candidate through the **default-DENY** review gate (Phase 2). * * The gate's `approve(candidate)` decides: only `{ approve: true }` * promotes the candidate to a new audited version via `gate.store.promote`. * Everything else — `{ approve: false }`, a malformed result, or a THROW * (fail-closed) — leaves the candidate inert and emits a `denied` event. * On approval, a `promoted` event fires with the new version. * * Analytics errors are swallowed by the supplied sink wrapper; this runner * never throws — a gate that throws is simply treated as a denial. * * @example * const outcome = await runReviewGate(candidate, gate, emit); * if (outcome.promoted) console.log("now at v" + outcome.record.version); */ declare function runReviewGate(candidate: SkillRecord, gate: SkillReviewGate, emit?: (event: SkillAnalyticsEvent) => void): Promise; //#endregion export { ReviewOutcome, runReviewGate }; //# sourceMappingURL=review-gate.d.mts.map