import { type Static } from '@sinclair/typebox'; export interface RolloutReviewerReview { readonly decision: 'approve_rollout' | 'needs_revision' | 'reject'; readonly summary: string; readonly confidence: number; readonly requiredChanges: readonly string[]; readonly rolloutRisks: readonly string[]; readonly safetyChecks: readonly string[]; } export interface RolloutReviewerSourceTrace { /** * Code-chain reviews only (PRI-720): the reviewed evaluator artifact. * Optional at the schema/contract level — which trace id is REQUIRED is * enforced per review mode by DefaultRolloutReviewerValidator (code_chain * ⇔ evaluatorArtifactId, principle_semantic ⇔ scribeArtifactId), so the * real LLM output path (tool-call/JSON-mode validation against the * registered `rollout-reviewer-output-v1` schema) accepts both modes. */ readonly evaluatorArtifactId?: string; readonly artificerArtifactId?: string; readonly scribeArtifactId?: string; readonly philosopherArtifactId?: string; readonly dreamerArtifactId?: string; } export interface RolloutReviewerOutputV1 { readonly taskId: string; /** Code-chain reviews: the reviewed evaluator artifact (validator-enforced). */ readonly sourceEvaluatorArtifactId?: string; /** * PRI-720 principle semantic mode: the reviewed source is the SCRIBE * principle artifact. Required (and validated against the runner-owned * authority) when the review runs in principle semantic mode; absent on * code-chain reviews. */ readonly sourceScribeArtifactId?: string; readonly review: RolloutReviewerReview; readonly sourceTrace: RolloutReviewerSourceTrace; readonly risks: readonly string[]; readonly generatedAt: string; } /** PRI-720: which contract the rollout review runs under. */ export type RolloutReviewMode = 'principle_semantic' | 'code_chain'; export declare const ROLLOUT_REVIEWER_DECISIONS: readonly ['approve_rollout', 'needs_revision', 'reject']; export declare const RolloutReviewerReviewSchema: import("@sinclair/typebox").TObject<{ decision: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"approve_rollout">, import("@sinclair/typebox").TLiteral<"needs_revision">, import("@sinclair/typebox").TLiteral<"reject">]>; summary: import("@sinclair/typebox").TString; confidence: import("@sinclair/typebox").TNumber; requiredChanges: import("@sinclair/typebox").TArray; rolloutRisks: import("@sinclair/typebox").TArray; safetyChecks: import("@sinclair/typebox").TArray; }>; export declare const RolloutReviewerSourceTraceSchema: import("@sinclair/typebox").TObject<{ evaluatorArtifactId: import("@sinclair/typebox").TOptional; artificerArtifactId: import("@sinclair/typebox").TOptional; scribeArtifactId: import("@sinclair/typebox").TOptional; philosopherArtifactId: import("@sinclair/typebox").TOptional; dreamerArtifactId: import("@sinclair/typebox").TOptional; }>; export declare const RolloutReviewerOutputV1Schema: import("@sinclair/typebox").TObject<{ taskId: import("@sinclair/typebox").TString; sourceEvaluatorArtifactId: import("@sinclair/typebox").TOptional; sourceScribeArtifactId: import("@sinclair/typebox").TOptional; review: import("@sinclair/typebox").TObject<{ decision: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"approve_rollout">, import("@sinclair/typebox").TLiteral<"needs_revision">, import("@sinclair/typebox").TLiteral<"reject">]>; summary: import("@sinclair/typebox").TString; confidence: import("@sinclair/typebox").TNumber; requiredChanges: import("@sinclair/typebox").TArray; rolloutRisks: import("@sinclair/typebox").TArray; safetyChecks: import("@sinclair/typebox").TArray; }>; sourceTrace: import("@sinclair/typebox").TObject<{ evaluatorArtifactId: import("@sinclair/typebox").TOptional; artificerArtifactId: import("@sinclair/typebox").TOptional; scribeArtifactId: import("@sinclair/typebox").TOptional; philosopherArtifactId: import("@sinclair/typebox").TOptional; dreamerArtifactId: import("@sinclair/typebox").TOptional; }>; risks: import("@sinclair/typebox").TArray; generatedAt: import("@sinclair/typebox").TString; }>; export type RolloutReviewerOutputV1TB = Static; export interface RolloutReviewerValidationResult { readonly valid: boolean; readonly errors: readonly string[]; readonly errorCategory?: string; } export interface RolloutReviewerValidatorOptions { /** Runner-owned source artifact id the output must echo exactly (rc-6). */ expectedSourceArtifactId?: string; /** PRI-720: review contract mode; defaults to the legacy code_chain. */ reviewMode?: RolloutReviewMode; } export interface RolloutReviewerValidator { validate(output: RolloutReviewerOutputV1, taskId: string, options?: RolloutReviewerValidatorOptions): Promise; } export declare class DefaultRolloutReviewerValidator implements RolloutReviewerValidator { validate(output: RolloutReviewerOutputV1, taskId: string, options?: RolloutReviewerValidatorOptions): Promise; } //# sourceMappingURL=rollout-reviewer-output.d.ts.map