Files
gnome-jarvis/vendor/agent-harness/agent/perm-store.js
T
snxraven e9040d110a
Rolling release / release (push) Successful in 6m40s
Updates
2026-09-12 07:22:47 -04:00

43 lines
1.1 KiB
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));
}
function rememberAlways(tool) {
const args = String(tool) === 'run_terminal_cmd' ? { command: '*' } : { path: '*' };
return remember(tool, args, 'allow');
}
module.exports = { rulesFile, load, save, resolve, remember, rememberAlways };