import type { GoalScope } from '@dsh-enhanced/assistant-goals'; import type { SkillDefinition } from './definition.js'; import { type BeginResult, type HoldoutReceipt } from './holdout-authority.js'; export interface HoldoutExecutionConfig { readonly image: string; readonly dockerPath: string; readonly stateRoot: string; readonly command: string; readonly artifactPath: string; readonly expiresAt: number; readonly repeats: number; readonly maxToolCalls: number; readonly maxBytes: number; readonly maxOutputBytes: number; readonly cellDurationMs: number; readonly verificationDurationMs: number; } export interface CanaryAdmission { readonly protocol: 'assistant-skills/canary-admission/v1'; readonly skillName: string; readonly parentDefinitionDigest: string; readonly candidateDefinitionDigest: string; readonly taskFamily: { readonly goalDefinitionDigest: string; readonly outcomeProfile: { readonly id: string; readonly version: number; readonly digest: string; }; }; } export interface HoldoutQualificationInput { readonly baseline: SkillDefinition; readonly candidate: SkillDefinition; readonly scope: GoalScope; readonly execution: HoldoutExecutionConfig; readonly inputs?: Readonly>; readonly files?: readonly { path: string; content: string; }[]; readonly pinnedPublicKey: string; readonly expectedDatasetDigest?: string; readonly expectedGeneratorDigest?: string; readonly canaryAdmission?: CanaryAdmission; readonly transport: { request(operation: 'begin' | 'manifest' | 'next' | 'record' | 'finish', value?: unknown, signal?: AbortSignal): Promise; }; readonly signal: AbortSignal; readonly authorize: () => void; } export interface HoldoutQualificationResult { readonly receipt: HoldoutReceipt; readonly quality: { candidateChecksPassed: boolean; evaluationGain: number | null; evaluationGainObserved: boolean; criticalRegressionsPassed: boolean; heldoutIndependence: 'unproven' | 'attested-after-freeze'; }; readonly modelCalls: 0; readonly promotionAuthorized: false; readonly execution: 'native-file-tools-and-isolated-artifact'; readonly prospectiveHoldout?: 'authority-attested-after-freeze'; readonly admissionDigest?: string; } /** Cells actually issued by the authority, keyed by cell id and bound arm digest. */ export type IssuedHoldoutCells = ReadonlyMap; /** Resolve every existing component while preserving a normalized suffix that does not exist yet. */ export declare function canonicalHoldoutPath(path: string): string; export declare function holdoutPathsOverlap(left: string, right: string): boolean; export declare function validateHoldoutExecution(value: HoldoutExecutionConfig): void; export declare function validateCanaryAdmission(value: unknown): asserts value is CanaryAdmission; export declare function canaryAdmissionMatches(value: unknown, baseline: SkillDefinition, candidate: SkillDefinition): value is CanaryAdmission; /** * Verifies the final signed authority receipt against a previously verified * begin response and the cells actually issued to the evaluator. The caller * supplies the authority public-key pin; the receipt key is never trusted. */ export declare function verifyHoldoutReceipt(value: unknown, begin: BeginResult, seen: IssuedHoldoutCells, pinnedPublicKey: string): value is HoldoutReceipt; export type ProspectiveQualificationContext = Pick & { readonly expectedGeneratorDigest: string; }; /** Reinspect a privately persisted qualification against the current exact profile and definitions. * The caller must obtain the result from its trusted comparison store, never model arguments. * Quality is recomputed from signed verdicts; the certificate attests generation order, not training history. */ export declare function inspectProspectiveQualification(value: unknown, input: ProspectiveQualificationContext): HoldoutQualificationResult | undefined; /** Host-only coordinator: the authority supplies signed private inputs and judges every submitted observation. */ export declare function qualifyHoldout(input: HoldoutQualificationInput): Promise; //# sourceMappingURL=holdout-qualification.d.ts.map