feat: 重构配置工作区

This commit is contained in:
Youzini-afk
2026-03-24 19:12:30 +08:00
parent 04ef48dbcd
commit e71305dc8b
6 changed files with 1711 additions and 1183 deletions

248
index.js
View File

@@ -1568,254 +1568,6 @@ async function onReembedDirect() {
await onRebuildVectorIndex();
}
// ==================== 设置 UI ====================
function bindSettingsUI() {
const settings = getSettings();
// 开关
$("#st_bme_enabled")
.prop("checked", settings.enabled)
.on("change", function () {
settings.enabled = $(this).prop("checked");
saveSettingsDebounced();
});
// 提取频率
$("#st_bme_extract_every")
.val(settings.extractEvery)
.on("input", function () {
settings.extractEvery = clampInt($(this).val(), 1, 1, 50);
saveSettingsDebounced();
});
$("#st_bme_extract_context_turns")
.val(settings.extractContextTurns)
.on("input", function () {
settings.extractContextTurns = clampInt($(this).val(), 2, 0, 20);
saveSettingsDebounced();
});
// 召回开关
$("#st_bme_recall_enabled")
.prop("checked", settings.recallEnabled)
.on("change", function () {
settings.recallEnabled = $(this).prop("checked");
saveSettingsDebounced();
});
// LLM 精确召回
$("#st_bme_recall_llm")
.prop("checked", settings.recallEnableLLM)
.on("change", function () {
settings.recallEnableLLM = $(this).prop("checked");
saveSettingsDebounced();
});
$("#st_bme_recall_top_k")
.val(settings.recallTopK)
.on("input", function () {
settings.recallTopK = clampInt($(this).val(), 15, 1, 100);
saveSettingsDebounced();
});
$("#st_bme_recall_max_nodes")
.val(settings.recallMaxNodes)
.on("input", function () {
settings.recallMaxNodes = clampInt($(this).val(), 8, 1, 50);
saveSettingsDebounced();
});
// 注入深度
$("#st_bme_inject_depth")
.val(settings.injectDepth)
.on("input", function () {
settings.injectDepth = clampInt($(this).val(), 4, 0, 9999);
saveSettingsDebounced();
});
// 评分权重
$("#st_bme_graph_weight")
.val(settings.graphWeight)
.on("input", function () {
settings.graphWeight = clampFloat($(this).val(), 0.6, 0, 1);
saveSettingsDebounced();
});
$("#st_bme_vector_weight")
.val(settings.vectorWeight)
.on("input", function () {
settings.vectorWeight = clampFloat($(this).val(), 0.3, 0, 1);
saveSettingsDebounced();
});
$("#st_bme_importance_weight")
.val(settings.importanceWeight)
.on("input", function () {
settings.importanceWeight = clampFloat($(this).val(), 0.1, 0, 1);
saveSettingsDebounced();
});
// Embedding API
$("#st_bme_embed_url")
.val(settings.embeddingApiUrl)
.on("input", function () {
settings.embeddingApiUrl = $(this).val().trim();
saveSettingsDebounced();
});
$("#st_bme_embed_key")
.val(settings.embeddingApiKey)
.on("input", function () {
settings.embeddingApiKey = $(this).val().trim();
saveSettingsDebounced();
});
$("#st_bme_embed_model")
.val(settings.embeddingModel)
.on("input", function () {
settings.embeddingModel = $(this).val().trim();
saveSettingsDebounced();
});
// 操作按钮
$("#st_bme_btn_view_graph").on("click", onViewGraph);
$("#st_bme_btn_rebuild").on("click", onRebuild);
$("#st_bme_btn_compress").on("click", onManualCompress);
$("#st_bme_btn_export").on("click", onExportGraph);
$("#st_bme_btn_import").on("click", onImportGraph);
$("#st_bme_btn_view_injection").on("click", onViewLastInjection);
$("#st_bme_btn_test_embed").on("click", onTestEmbedding);
// ====== v2 增强设置 UI 绑定 ======
// P0: 记忆进化
$("#st_bme_evolution")
.prop("checked", settings.enableEvolution)
.on("change", function () {
settings.enableEvolution = $(this).prop("checked");
saveSettingsDebounced();
});
$("#st_bme_evo_neighbors")
.val(settings.evoNeighborCount)
.on("input", function () {
settings.evoNeighborCount = clampInt($(this).val(), 5, 1, 20);
saveSettingsDebounced();
});
$("#st_bme_evo_consolidate_every")
.val(settings.evoConsolidateEvery)
.on("input", function () {
settings.evoConsolidateEvery = clampInt($(this).val(), 50, 1, 500);
saveSettingsDebounced();
});
// P0: 精确对照
$("#st_bme_precise_conflict")
.prop("checked", settings.enablePreciseConflict)
.on("change", function () {
settings.enablePreciseConflict = $(this).prop("checked");
saveSettingsDebounced();
});
$("#st_bme_conflict_threshold")
.val(settings.conflictThreshold)
.on("input", function () {
settings.conflictThreshold = clampFloat($(this).val(), 0.85, 0.5, 0.99);
saveSettingsDebounced();
});
// P0: 全局概要
$("#st_bme_synopsis")
.prop("checked", settings.enableSynopsis)
.on("change", function () {
settings.enableSynopsis = $(this).prop("checked");
saveSettingsDebounced();
});
$("#st_bme_synopsis_every")
.val(settings.synopsisEveryN)
.on("input", function () {
settings.synopsisEveryN = clampInt($(this).val(), 5, 1, 100);
saveSettingsDebounced();
});
// P1: 认知边界
$("#st_bme_visibility")
.prop("checked", settings.enableVisibility ?? false)
.on("change", function () {
settings.enableVisibility = $(this).prop("checked");
saveSettingsDebounced();
});
// P1: 交叉检索
$("#st_bme_cross_recall")
.prop("checked", settings.enableCrossRecall ?? false)
.on("change", function () {
settings.enableCrossRecall = $(this).prop("checked");
saveSettingsDebounced();
});
// P2: 惊奇度分割
$("#st_bme_smart_trigger")
.prop("checked", settings.enableSmartTrigger)
.on("change", function () {
settings.enableSmartTrigger = $(this).prop("checked");
saveSettingsDebounced();
});
$("#st_bme_trigger_patterns")
.val(settings.triggerPatterns || "")
.on("input", function () {
settings.triggerPatterns = $(this).val();
saveSettingsDebounced();
});
$("#st_bme_smart_trigger_threshold")
.val(settings.smartTriggerThreshold)
.on("input", function () {
settings.smartTriggerThreshold = clampInt($(this).val(), 2, 1, 10);
saveSettingsDebounced();
});
// P2: 主动遗忘
$("#st_bme_sleep_cycle")
.prop("checked", settings.enableSleepCycle)
.on("change", function () {
settings.enableSleepCycle = $(this).prop("checked");
saveSettingsDebounced();
});
$("#st_bme_forget_threshold")
.val(settings.forgetThreshold)
.on("input", function () {
settings.forgetThreshold = clampFloat($(this).val(), 0.5, 0.1, 1);
saveSettingsDebounced();
});
$("#st_bme_sleep_every")
.val(settings.sleepEveryN)
.on("input", function () {
settings.sleepEveryN = clampInt($(this).val(), 10, 1, 200);
saveSettingsDebounced();
});
// P2: 概率触发
$("#st_bme_prob_recall")
.prop("checked", settings.enableProbRecall)
.on("change", function () {
settings.enableProbRecall = $(this).prop("checked");
saveSettingsDebounced();
});
$("#st_bme_prob_chance")
.val(settings.probRecallChance)
.on("input", function () {
settings.probRecallChance = clampFloat($(this).val(), 0.15, 0.01, 0.5);
saveSettingsDebounced();
});
// P2: 反思条目
$("#st_bme_reflection")
.prop("checked", settings.enableReflection)
.on("change", function () {
settings.enableReflection = $(this).prop("checked");
saveSettingsDebounced();
});
$("#st_bme_reflect_every")
.val(settings.reflectEveryN)
.on("input", function () {
settings.reflectEveryN = clampInt($(this).val(), 10, 1, 200);
saveSettingsDebounced();
});
}
// ==================== 初始化 ====================
(async function init() {