AIEF (AI Execution Integrity Framework)
AIEF v0.2.5 is a framework projection that verifies an AI Execution CER (V1 or V2) and reports a single PASS/FAIL result with a reason.
Overview
AIEF (AI Execution Integrity Framework) is a projection over an AI Execution CER (either V1 or V2). Instead of exposing the full VerificationResult surface, AIEF re-derives and checks a fixed set of integrity properties and reports a single PASS or FAIL result, together with a machine-readable reason. The current version is AIEF v0.2.5.
verifyAief
verifyAief(bundle) accepts either a V1 or a V2 CER bundle and returns:
type AiefResult = {
result: 'PASS' | 'FAIL';
reason: string | null;
checks: {
schemaSupported: boolean;
integrityValid: boolean;
protectedSetValid: boolean;
chainValid: boolean;
};
field?: string;
expected?: unknown;
observed?: unknown;
notes?: string;
};The four checks are:
- schemaSupported. The bundle's
bundleType(cer.ai.execution.v1orcer.ai.execution.v2) is one AIEF v0.2.5 recognizes. - integrityValid. The bundle's
certificateHashis consistent with the canonical bundle contents. - protectedSetValid. For V2 bundles, the re-derived
protectedSetmatches the one declared in the bundle. - chainValid. Any declared step-chain linkage (for example,
prevStepHash) is intact.
mapToAiefReason(code) maps a CerVerifyCode (see AI Execution CER) to the human-readable string surfaced as reason.
import { verifyAief } from "@nexart/ai-execution";
const aief = await verifyAief(bundle);
if (aief.result === "FAIL") {
console.error(aief.reason, aief.checks);
} else {
console.log("AIEF PASS", aief.checks);
}CLI --aief Projection (Section 9)
The CLI 1.3.0 exposes the same AIEF v0.2.5 Section 9 projection via a flag on the verify command:
nexart ai verify --aief bundle.json
# exit code 0 = PASS
# exit code 1 = FAIL--aief can be combined with --json, --anchors, and --timestamps. An unsupported protocolVersion still resolves to a SCHEMA_ERROR / SCHEMA_VERSION_UNSUPPORTED outcome with exit code 1, independent of the AIEF projection.
AiefProfile Is a Different Concept
AiefProfile is the union 'flexible' | 'AIEF_L2' | 'AIEF_L3' | 'AIEF_L4'. It is consumed by validateProfile(target, profile), a separate function. There is NO { profile: 'AIEF_L4' } argument to verifyAief. Do not pass a profile to verifyAief; call validateProfile separately when a profile-level check is required.import { verifyAief, validateProfile } from "@nexart/ai-execution";
const aief = await verifyAief(bundle);
const profileCheck = validateProfile(bundle, "AIEF_L3");
// aief and profileCheck are independent results; neither call takes the other's inputAIEF Version, Package Version, and Protocol Version Are Independent
AIEF version (currently v0.2.5), NexArt package versions (for example @nexart/ai-execution 1.4.0), and the canonicalisation protocolVersion (for example 1.3.1) are independent axes. A bump to any one of them does not imply a bump to the others. See Versions for the full breakdown of these axes and the current baseline.
Next
- Policy SDK: how a sealed policyEvaluation participates in a CER that AIEF later verifies.
- Versions: the four independent version axes.
- Release Notes: what changed in the current baseline.