import type { PhaseId } from '../../domain/sdlc/phase-id'; import type { Verdict } from '../../domain/verdict/verdict'; import type { Evidence } from './quality-evidence'; import type { RepoFacts, SymbolBoundaryRule } from './repo-facts'; export declare const EVALUATION_CONTEXT_SCHEMA_VERSION = "1.0.0"; export type EvaluationKind = 'gate' | 'artifact' | 'evidence' | 'architecture' | 'blueprint' | 'topology' | 'checkpoint' | 'deployment' | 'rule' | 'compliance' | 'design' | 'phase-artifacts'; export type ExecutionMode = 'manual' | 'hybrid' | 'agentic'; export type RequesterActorType = 'human' | 'agent' | 'ci' | 'system'; export interface RequesterContext { readonly actorType: RequesterActorType; readonly actorId: string; readonly modelRef?: string; readonly sessionId?: string; readonly promptVersion?: string; readonly skillVersion?: string; } export interface RepositoryRevisionContext { readonly revision: string; readonly repositoryRef?: string; readonly branch?: string; readonly committedAt?: string; readonly dirty?: boolean; } export interface TenantContext { readonly tenantId: string; } export interface ProductContext { readonly productId: string; readonly tenantId?: string; readonly name?: string; readonly repositoryRef?: string; } export interface InitiativeContext { readonly initiativeId: string; readonly productId?: string; readonly tenantId?: string; readonly kind?: string; readonly title?: string; } export interface InitiativeGroupContext { readonly initiativeGroupId: string; readonly initiativeIds?: readonly string[]; } export interface ExternalReferenceContext { readonly system: string; readonly kind: string; readonly externalId: string; readonly url?: string; readonly contentHash?: string; readonly snapshotAt?: string; } export interface DeploymentContext { readonly environment: string; readonly releaseRef: string; readonly status?: string; } export interface ArchitectureContext { readonly style?: string; readonly components?: readonly string[]; readonly decisionRefs?: readonly string[]; readonly constraints?: readonly string[]; readonly symbolBoundaries?: readonly SymbolBoundaryRule[]; } export interface EvidenceContext { readonly evidenceId: string; readonly evidenceType: string; readonly schemaRef?: string; readonly producer?: { readonly actorType: 'human' | 'agent' | 'ci' | 'system'; readonly actorId: string; readonly modelRef?: string; readonly promptVersion?: string; readonly skillVersion?: string; }; readonly references?: readonly ExternalReferenceContext[]; readonly integrity?: { readonly contentHash: string; readonly capturedAt?: string; }; } export interface CheckpointContext { readonly checkpointId: string; readonly phaseId?: PhaseId; readonly status?: string; readonly metrics?: Readonly>; } export interface DesignBlockRef { readonly blockKind: string; readonly ref?: string; readonly scope?: 'core' | 'tenant'; readonly status?: string; } export interface DesignConcernContext { readonly concern: string; readonly topologies?: readonly string[]; readonly runtime?: string; readonly architecture?: string; readonly blueprintRef?: string; readonly blocks?: readonly DesignBlockRef[]; } export interface DesignContext { readonly topologyRecommendedRefs?: readonly string[]; readonly topologyConfirmedRefs?: readonly string[]; readonly blueprintRef?: string; readonly blocks?: readonly DesignBlockRef[]; readonly concerns?: readonly DesignConcernContext[]; readonly artifactRefs?: readonly string[]; readonly adrRefs?: readonly string[]; readonly tenantCollectionRefs?: readonly string[]; readonly iterationVersion?: number; } export interface ArtifactContext { readonly required?: readonly string[]; readonly presented?: readonly { readonly artifactId: string; readonly type?: string; readonly ref?: string; readonly schemaRef?: string; }[]; } export interface DecisionHistoryRef { readonly decisionId: string; readonly gateId?: string; readonly phaseId?: PhaseId; readonly verdict?: Verdict; } export interface EvaluationContext { readonly kinds: readonly EvaluationKind[]; readonly tenant?: TenantContext; readonly product?: ProductContext; readonly initiative?: InitiativeContext; readonly initiativeGroup?: InitiativeGroupContext; readonly phaseId?: PhaseId; readonly gateId?: string; readonly workspaceRef?: string; readonly artifacts?: ArtifactContext; readonly evidence?: readonly EvidenceContext[]; readonly qualitySignals?: readonly Evidence[]; readonly repoFacts?: RepoFacts; readonly baselineRepoFacts?: RepoFacts; readonly checkpoint?: CheckpointContext; readonly deployment?: DeploymentContext; readonly architecture?: ArchitectureContext; readonly design?: DesignContext; readonly externalReferences?: readonly ExternalReferenceContext[]; readonly sdlcConfig?: Readonly>; readonly customConstraints?: Readonly>; readonly rulesetRef?: string; readonly rulesetVersion?: string; readonly policyRefs?: readonly string[]; readonly blueprintRef?: string; readonly topologyRef?: string; readonly schemaRef?: string; readonly requester?: RequesterContext; readonly repositoryRevision?: RepositoryRevisionContext; readonly executionMode?: ExecutionMode; readonly decisionHistory?: readonly DecisionHistoryRef[]; readonly expectedResult?: Verdict; readonly correlationId?: string; readonly passthrough?: Readonly>; readonly schemaVersion?: string; } export declare function confirmedTopologies(ctx: EvaluationContext): readonly string[]; export declare function topologyRefIsShadowed(ctx: EvaluationContext): boolean; export declare const PROGRESSIVE_AXIS_TOPOLOGIES: readonly string[]; export declare function progressiveAxisMembers(topologies: readonly string[]): readonly string[];