import type { PolicyVerdict } from './policy.js'; import type { EvaluationMethod } from './execution-envelope.js'; export type { EvaluationMethod } from './execution-envelope.js'; export type ScopeInterpretation = 'exact' | 'glob' | 'hierarchical'; export type ContentHashAlgorithm = 'sha256'; export interface ContentHash { algorithm: ContentHashAlgorithm; hash: string; canonicalForm: string; /** Identity boundary: sorted list of top-level field names included in the hash. * Part of the committed content — changing the boundary changes the hash. * Enables portable identity: any engine can verify which fields define identity * without depending on external spec projection rules. */ identityBoundary?: string[]; } export interface DecisionSemantics { structuralVerdict: PolicyVerdict; trustVerdict: PolicyVerdict | null; override?: { active: boolean; phase: string; wouldHaveBeen: PolicyVerdict; }; finalVerdictRule: string; reproducibility: string; } export interface DecisionArtifact { artifactId: string; artifactType: 'decision'; version: string; engine: string; timestamp: string; intent: { intentId: string; agentId: string; action: { type: string; target: string; scopeRequired: string; }; contentHash: ContentHash; }; evaluation: { verdict: PolicyVerdict; evaluationMethod: EvaluationMethod; principlesChecked: string[]; evaluatorId: string; decisionId: string; }; semantics: DecisionSemantics; proof: { intentSignature: string; decisionSignature: string; artifactSignature: string; }; } export interface DecisionArtifactVerification { valid: boolean; contentHashValid: boolean; intentSignatureValid: boolean; decisionSignatureValid: boolean; artifactSignatureValid: boolean; errors: string[]; } //# sourceMappingURL=decision-semantics.d.ts.map