/** * Requirement Ledger v1 — core operations. * * Pure, filesystem-independent, provider-neutral ledger operations. * All functions are immutable — they return new ledger instances. * * Mutation Model: * - Every accepted mutation (evidence or transition) increments revision by 1. * - Evidence gets addedAtRevision = ledger.revision + 1. * - Transitions require an explicit, caller-supplied transitionId. * - Global mutation sequence: evidence and transition revisions interleave. * * Trust Model (LH-1 hardened): * - Authorization is derived from TrustedLedgerMutationContext, not payload fields. * - The default untrusted context (agent, no capabilities) can only record claims * and perform non-privileged workflow transitions. * - SATISFIED requires transition:satisfy capability. * - Runtime NOT_APPLICABLE requires transition:not-applicable capability. * - Authoritative evidence requires matching evidence capability. * - Evidence freshness after regression enforced. * * Validation Model (LH-1 hardened, principal/source fixes applied): * - Authoritative validation requires a TrustedValidationContext. * - Trust checks are ALWAYS enforced when a context is provided. * - Stored verified provenance is verified against the context registry * using exact (principalId + principalKind) tuples. * - Source verification requires explicit trusted evidence-source grants. * - Contract evidence policy is re-evaluated during replay. * - Criterion evidence requirements are re-evaluated during replay. * - Missing required sources fail closed. * - Separate structural inspection is available for untrusted callers. */ import type { TrustedLedgerMutationContext, TrustedValidationContext } from "./trusted-context.js"; import type { LedgerEvidenceRecord, LedgerEvidenceRequest, MissionContractV1, OperationResult, RequirementLedgerV1, StructuralLedgerInspection, TransitionRequest } from "./types.js"; export declare function initializeRequirementLedger(contract: MissionContractV1): OperationResult; /** * Inspect a ledger's structural state without any trust verification. * * This is the untrusted inspection path. It validates structural integrity * (contract binding, mutation sequence, state reconstruction) but does NOT * verify principal provenance, capability grants, or evidence authority. * * completionCandidate is always "unavailable". */ export declare function inspectRequirementLedgerStructure(contract: MissionContractV1, ledger: RequirementLedgerV1): StructuralLedgerInspection; /** * Validate a ledger against its contract with full trust verification. * * The validationContext is MANDATORY for this function. * All trust and freshness checks are always enforced. * * The context's registry is used to verify: * - Every stored verifiedPrincipalId/verifiedPrincipalKind is known * - Every stored verifiedCapability was actually granted (exact tuple) * - Every evidence source matches a trusted grant * - Contract evidence policy is enforced * - Criterion evidence requirements are enforced * - Stored effectiveAuthority is consistent with verified capability */ export declare function validateRequirementLedger(contract: MissionContractV1, ledger: RequirementLedgerV1, validationContext: TrustedValidationContext): OperationResult; /** * Evaluate whether a set of evidence records satisfies every acceptance * criterion for a requirement. * * This is the ONE canonical evaluator used by: * - Mutation-time authorization (through isSatisfactionAuthorized) * - Historical authoritative replay (replayCriterionSatisfaction) * - Completion assessment * * It evaluates only the evidence explicitly provided — it does NOT * consult the full ledger. The caller is responsible for resolving * the canonical evidence set (transition.evidenceIds) into records * before calling this function. * * @returns An OperationResult with specific typed failures * for missing criteria, missing evidence rules, stale evidence, * and policy violations. */ export declare function evaluateSatisfiedTransition(params: { requirement: import("./types.js").MissionRequirement; evidenceRecords: LedgerEvidenceRecord[]; latestRegressionRevision?: number; }): OperationResult; /** * Authoritative validation returning a typed result with truthful semantics. * * Unlike validateRequirementLedger which returns a generic OperationResult, * this returns an AuthoritativeLedgerValidationResult whose types prove * that trust verification was attempted against a genuine registry. * * Fields: * - structuralValidation: "passed" or { status: "failed", code, message } * - provenanceValidation: "passed", { status: "failed", code, message }, or "not-reached" * * Structural failure cannot report structural validity true. * Provenance failure cannot report provenance validity true. * Provenance not executed is distinguishable from provenance passed. */ export declare function validateRequirementLedgerStrict(contract: MissionContractV1, ledger: RequirementLedgerV1, validationContext: TrustedValidationContext): import("./types.js").AuthoritativeLedgerValidationResult; export declare function addLedgerEvidence(contract: MissionContractV1, ledger: RequirementLedgerV1, request: LedgerEvidenceRequest, context?: TrustedLedgerMutationContext, validationContext?: TrustedValidationContext): OperationResult; export declare function applyRequirementTransition(contract: MissionContractV1, ledger: RequirementLedgerV1, request: TransitionRequest, context?: TrustedLedgerMutationContext, validationContext?: TrustedValidationContext): OperationResult; //# sourceMappingURL=requirement-ledger.d.ts.map