Lumi/plugins/lumi_ai/backend/paths.js
2026-06-13 20:28:06 +02:00

24 lines
792 B
JavaScript

const path = require("path");
const fs = require("fs");
const PLUGIN_ROOT = path.resolve(__dirname, "..");
const PLUGIN_DATA = path.join(PLUGIN_ROOT, "data");
const DIRS = [
"config", "models", "runtime", "logs", "metrics", "rag", "repo_index", "cache", "tmp",
"diagnostics", "feedback", "corrections", "evals", "exports", "tools"
];
function ensureDataDirs() {
for (const dir of DIRS) fs.mkdirSync(path.join(PLUGIN_DATA, dir), { recursive: true });
}
function resolveData(...parts) {
const target = path.resolve(PLUGIN_DATA, ...parts);
if (target !== PLUGIN_DATA && !target.startsWith(`${PLUGIN_DATA}${path.sep}`)) {
throw new Error("Path escapes Lumi AI plugin storage.");
}
return target;
}
module.exports = { PLUGIN_ROOT, PLUGIN_DATA, ensureDataDirs, resolveData };