mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-05-15 22:30:38 +08:00
Refine automatic consolidation and compression triggers
This commit is contained in:
@@ -34,7 +34,53 @@ this.defaultSettings = defaultSettings;
|
||||
return context.defaultSettings;
|
||||
}
|
||||
|
||||
async function loadSettingsCompatHelpers() {
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const indexPath = path.resolve(__dirname, "../index.js");
|
||||
const source = await fs.readFile(indexPath, "utf8");
|
||||
const settingsMatch = source.match(/const defaultSettings = \{[\s\S]*?^\};/m);
|
||||
const compatMatch = source.match(
|
||||
/function migrateLegacyAutoMaintenanceSettings\(loaded = \{\}\) \{[\s\S]*?^}\n/m,
|
||||
);
|
||||
const mergeMatch = source.match(
|
||||
/function mergePersistedSettings\(loaded = \{\}\) \{[\s\S]*?^}\n/m,
|
||||
);
|
||||
|
||||
if (!settingsMatch || !compatMatch || !mergeMatch) {
|
||||
throw new Error("无法从 index.js 提取设置兼容辅助函数");
|
||||
}
|
||||
|
||||
const context = vm.createContext({
|
||||
clampInt: (value, fallback = 0, min = 0, max = 9999) => {
|
||||
const numeric = Number(value);
|
||||
if (!Number.isFinite(numeric)) return fallback;
|
||||
return Math.min(max, Math.max(min, Math.trunc(numeric)));
|
||||
},
|
||||
createDefaultTaskProfiles() {
|
||||
return {
|
||||
extract: { activeProfileId: "default", profiles: [] },
|
||||
recall: { activeProfileId: "default", profiles: [] },
|
||||
compress: { activeProfileId: "default", profiles: [] },
|
||||
synopsis: { activeProfileId: "default", profiles: [] },
|
||||
reflection: { activeProfileId: "default", profiles: [] },
|
||||
consolidation: { activeProfileId: "default", profiles: [] },
|
||||
};
|
||||
},
|
||||
});
|
||||
const script = new vm.Script(`
|
||||
${settingsMatch[0]}
|
||||
${compatMatch[0]}
|
||||
${mergeMatch[0]}
|
||||
this.mergePersistedSettings = mergePersistedSettings;
|
||||
`);
|
||||
script.runInContext(context);
|
||||
return {
|
||||
mergePersistedSettings: context.mergePersistedSettings,
|
||||
};
|
||||
}
|
||||
|
||||
const defaultSettings = await loadDefaultSettings();
|
||||
const { mergePersistedSettings } = await loadSettingsCompatHelpers();
|
||||
|
||||
assert.equal(defaultSettings.extractContextTurns, 2);
|
||||
assert.equal(defaultSettings.recallTopK, 20);
|
||||
@@ -79,11 +125,20 @@ assert.equal(defaultSettings.injectObjectiveGlobalMemory, true);
|
||||
assert.equal(defaultSettings.injectDepth, 9999);
|
||||
assert.equal(defaultSettings.enabled, true);
|
||||
assert.equal(defaultSettings.enableReflection, true);
|
||||
assert.equal(defaultSettings.maintenanceAutoMinNewNodes, 3);
|
||||
assert.equal(defaultSettings.consolidationAutoMinNewNodes, 2);
|
||||
assert.equal(defaultSettings.compressionEveryN, 10);
|
||||
assert.equal("maintenanceAutoMinNewNodes" in defaultSettings, false);
|
||||
assert.equal(defaultSettings.embeddingTransportMode, "direct");
|
||||
assert.equal(defaultSettings.taskProfilesVersion, 3);
|
||||
assert.ok(defaultSettings.taskProfiles);
|
||||
assert.ok(defaultSettings.taskProfiles.extract);
|
||||
assert.ok(defaultSettings.taskProfiles.recall);
|
||||
|
||||
const migratedSettings = mergePersistedSettings({
|
||||
maintenanceAutoMinNewNodes: 7,
|
||||
});
|
||||
assert.equal(migratedSettings.consolidationAutoMinNewNodes, 7);
|
||||
assert.equal(migratedSettings.compressionEveryN, 10);
|
||||
assert.equal("maintenanceAutoMinNewNodes" in migratedSettings, false);
|
||||
|
||||
console.log("default-settings tests passed");
|
||||
|
||||
Reference in New Issue
Block a user