"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TRUST_LANES = exports.TRUST_LANE_ORDER = void 0;
exports.getTrustLane = getTrustLane;
exports.TRUST_LANE_ORDER = [
    "product-policy",
    "command-metadata",
    "user-intent",
    "selected-artifact",
    "repository-prose",
    "generated-evidence",
    "environment-input"
];
const definitions = {
    "product-policy": lane("product-policy", "policy-authority", 700, false, false, false),
    "command-metadata": lane("command-metadata", "command-authority", 600, true, false, false),
    "user-intent": lane("user-intent", "intent-authority", 500, false, true, false),
    "selected-artifact": lane("selected-artifact", "evidence-only", 400, false, false, true),
    "repository-prose": lane("repository-prose", "evidence-only", 300, false, false, true),
    "generated-evidence": lane("generated-evidence", "evidence-only", 200, false, false, true),
    "environment-input": lane("environment-input", "evidence-only", 100, false, false, true)
};
exports.TRUST_LANES = Object.freeze(exports.TRUST_LANE_ORDER.map((id) => definitions[id]));
function getTrustLane(id) {
    return definitions[id];
}
function lane(id, authorityRole, authorityRank, mayAuthorizeAction, maySatisfyConfirmation, instructionLikeContentIsData) {
    return Object.freeze({
        id,
        authorityRole,
        authorityRank,
        mayAuthorizeAction,
        maySatisfyConfirmation,
        instructionLikeContentIsData
    });
}
