Add sovereign-mamba source: Modelfile, kernel Prolog gates, sovereign_crypto Rust, Lean4, corpus policy
0427fad verified | import { TrustDeed } from "./trustDeed.js"; | |
| import { Syscall } from "./syscall.js"; | |
| export type GateDecision = { | |
| syscall: Syscall; | |
| status: "ALLOW" | "REJECT" | "APPROVAL_REQUIRED"; | |
| reason: string; | |
| requiresReceipt: boolean; | |
| }; | |
| export function checkSyscall( | |
| deed: TrustDeed, | |
| syscall: Syscall | |
| ): GateDecision { | |
| const policy = deed.allowed_syscalls[syscall]; | |
| if (!policy) { | |
| return { | |
| syscall, | |
| status: "REJECT", | |
| reason: "Syscall is not defined in trust deed.", | |
| requiresReceipt: true | |
| }; | |
| } | |
| if (!policy.enabled) { | |
| return { | |
| syscall, | |
| status: policy.requires_approval ? "APPROVAL_REQUIRED" : "REJECT", | |
| reason: "Syscall is disabled by trust deed.", | |
| requiresReceipt: policy.requires_receipt | |
| }; | |
| } | |
| if (policy.requires_approval) { | |
| return { | |
| syscall, | |
| status: "APPROVAL_REQUIRED", | |
| reason: "Syscall requires explicit approval.", | |
| requiresReceipt: policy.requires_receipt | |
| }; | |
| } | |
| return { | |
| syscall, | |
| status: "ALLOW", | |
| reason: "Syscall allowed by trust deed.", | |
| requiresReceipt: policy.requires_receipt | |
| }; | |
| } | |
| export function checkAllSyscalls( | |
| deed: TrustDeed, | |
| syscalls: Syscall[] | |
| ): GateDecision[] { | |
| return syscalls.map((s) => checkSyscall(deed, s)); | |
| } | |