31 lines
958 B
JavaScript
31 lines
958 B
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const { ORCHESTRATION } = require('@nexusai/shared');
|
|
|
|
const SETTINGS_PATH = path.join(__dirname, '../../data/settings.json');
|
|
|
|
const DEFAULTS = {
|
|
recentEpisodeLimit: ORCHESTRATION.RECENT_EPISODE_LIMIT,
|
|
semanticLimit: ORCHESTRATION.SEMANTIC_LIMIT,
|
|
scoreThreshold: ORCHESTRATION.SCORE_THRESHOLD,
|
|
modelsFolderPath: getEnv('MODELS_MANIFEST_PATH', '/mnt/nexus-models')
|
|
};
|
|
|
|
function load() {
|
|
try {
|
|
const raw = fs.readFileSync(SETTINGS_PATH, 'utf8');
|
|
return { ...DEFAULTS, ...JSON.parse(raw) };
|
|
} catch {
|
|
return { ...DEFAULTS }; // file doesn't exist yet — use defaults
|
|
}
|
|
}
|
|
|
|
function save(updates) {
|
|
const current = load();
|
|
const next = { ...current, ...updates };
|
|
fs.mkdirSync(path.dirname(SETTINGS_PATH), { recursive: true });
|
|
fs.writeFileSync(SETTINGS_PATH, JSON.stringify(next, null, 2));
|
|
return next;
|
|
}
|
|
|
|
module.exports = { load, save, DEFAULTS }; |