Files
gnome-jarvis/vendor/agent-harness/agent/perm-store.js
T
2026-09-11 13:41:22 -04:00

38 lines
901 B
JavaScript

/**
* Persist allow/deny patterns next to agent sessions.
*/
const path = require('path');
const fs = require('fs');
const { ensureAgentRoot, ensureDir } = require('../lib/paths.js');
const rules = require('./perm-rules.js');
function rulesFile() {
return path.join(ensureDir(ensureAgentRoot()), 'permission-rules.json');
}
function load() {
try {
const raw = JSON.parse(fs.readFileSync(rulesFile(), 'utf8'));
return Array.isArray(raw) ? raw : [];
} catch (_) {
return [];
}
}
function save(list) {
const next = Array.isArray(list) ? list : [];
fs.writeFileSync(rulesFile(), JSON.stringify(next, null, 2));
return next;
}
function resolve(tool, args) {
return rules.resolve(load(), tool, args);
}
function remember(tool, args, decision) {
return save(rules.addRule(load(), tool, args, decision));
}
module.exports = { rulesFile, load, save, resolve, remember };