File size: 1,512 Bytes
0427fad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import test from "node:test";
import assert from "node:assert/strict";
import { fileURLToPath } from "node:url";
import { loadTrustDeed } from "../src/trustDeed.js";
import { checkSyscall } from "../src/policyGate.js";
import { normalizeModelOutput } from "../src/normalize.js";
import { resolvePreferredModel } from "../src/ollama.js";

test("enabled syscall is allowed", () => {
  const deed = loadTrustDeed(fileURLToPath(new URL("../trust-deed.json", import.meta.url)));
  const decision = checkSyscall(deed, "lean_gate");
  assert.equal(decision.status, "ALLOW");
  assert.equal(decision.requiresReceipt, true);
});

test("disabled dangerous syscall requires approval", () => {
  const deed = loadTrustDeed(fileURLToPath(new URL("../trust-deed.json", import.meta.url)));
  const decision = checkSyscall(deed, "bash_exec");
  assert.equal(decision.status, "APPROVAL_REQUIRED");
});

test("normalizer extracts syscall tokens and uncertainty", () => {
  const normalized = normalizeModelOutput("<|lean_gate|>\nSPEC\n<|receipt_seal|>");
  assert.deepEqual(normalized.syscalls, ["lean_gate", "receipt_seal"]);
  assert.equal(normalized.uncertainty, "SPEC");
});

test("preferred model resolves to installed snapkitty variant", () => {
  const selected = resolvePreferredModel([
    { name: "nemotron-mini:latest", model: "nemotron-mini:latest" },
    { name: "snapkitty-nemotron:latest", model: "snapkitty-nemotron:latest" }
  ], undefined, "nemotron");
  assert.equal(selected, "snapkitty-nemotron:latest");
});