mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-05-15 22:30:38 +08:00
1123 lines
56 KiB
HTML
1123 lines
56 KiB
HTML
<div id="st-bme-panel-overlay">
|
||
<div id="st-bme-panel">
|
||
<div class="bme-panel-header">
|
||
<div class="bme-panel-title">
|
||
<i class="fa-solid fa-brain"></i>
|
||
<span>ST-BME 记忆图谱</span>
|
||
<span class="bme-panel-subtitle" id="bme-panel-status">SYSTEM_ACTIVE</span>
|
||
</div>
|
||
<div class="bme-theme-picker">
|
||
<button class="bme-theme-picker-btn" id="bme-theme-picker-btn" title="切换主题" type="button">
|
||
<i class="fa-solid fa-palette"></i>
|
||
</button>
|
||
<div class="bme-theme-dropdown" id="bme-theme-dropdown">
|
||
<button class="bme-theme-option" data-theme="crimson" type="button">
|
||
<span class="bme-theme-swatch" style="background: #e94560"></span>赤红合成
|
||
</button>
|
||
<button class="bme-theme-option" data-theme="cyan" type="button">
|
||
<span class="bme-theme-swatch" style="background: #00e5ff"></span>霓虹青蓝
|
||
</button>
|
||
<button class="bme-theme-option" data-theme="amber" type="button">
|
||
<span class="bme-theme-swatch" style="background: #ffb300"></span>琥珀终端
|
||
</button>
|
||
<button class="bme-theme-option" data-theme="violet" type="button">
|
||
<span class="bme-theme-swatch" style="background: #b388ff"></span>紫雾迷离
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<button class="bme-panel-close" id="bme-panel-close" title="关闭" type="button">
|
||
<i class="fa-solid fa-xmark"></i>
|
||
</button>
|
||
</div>
|
||
|
||
<div class="bme-panel-body">
|
||
<div class="bme-panel-sidebar">
|
||
<div class="bme-tab-list">
|
||
<button class="bme-tab-btn active" data-tab="dashboard" type="button">
|
||
<i class="fa-solid fa-chart-simple"></i>
|
||
<span>总览</span>
|
||
</button>
|
||
<button class="bme-tab-btn" data-tab="memory" type="button">
|
||
<i class="fa-solid fa-brain"></i>
|
||
<span>记忆</span>
|
||
</button>
|
||
<button class="bme-tab-btn" data-tab="injection" type="button">
|
||
<i class="fa-solid fa-syringe"></i>
|
||
<span>注入</span>
|
||
</button>
|
||
<button class="bme-tab-btn" data-tab="actions" type="button">
|
||
<i class="fa-solid fa-gear"></i>
|
||
<span>操作</span>
|
||
</button>
|
||
<button class="bme-tab-btn" data-tab="config" type="button">
|
||
<i class="fa-solid fa-sliders"></i>
|
||
<span>配置</span>
|
||
</button>
|
||
</div>
|
||
|
||
<div class="bme-config-sidebar" id="bme-config-sidebar">
|
||
<div class="bme-config-sidebar-header">
|
||
<div class="bme-config-sidebar-kicker">配置工作区</div>
|
||
<div class="bme-config-sidebar-title">ST-BME 设置</div>
|
||
<div class="bme-config-sidebar-help">
|
||
左侧切换配置页,右侧查看对应的完整设置表单。
|
||
</div>
|
||
</div>
|
||
<div class="bme-config-nav bme-config-nav-desktop">
|
||
<button class="bme-config-nav-btn active" data-config-section="api" type="button">
|
||
<i class="fa-solid fa-plug"></i>
|
||
<span>API 配置</span>
|
||
</button>
|
||
<button class="bme-config-nav-btn" data-config-section="toggles" type="button">
|
||
<i class="fa-solid fa-toggle-on"></i>
|
||
<span>功能开关</span>
|
||
</button>
|
||
<button class="bme-config-nav-btn" data-config-section="advanced" type="button">
|
||
<i class="fa-solid fa-sliders"></i>
|
||
<span>详细参数</span>
|
||
</button>
|
||
<button class="bme-config-nav-btn" data-config-section="prompts" type="button">
|
||
<i class="fa-solid fa-scroll"></i>
|
||
<span>系统提示词</span>
|
||
</button>
|
||
<button class="bme-config-nav-btn" data-config-section="appearance" type="button">
|
||
<i class="fa-solid fa-palette"></i>
|
||
<span>面板外观</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-tab-content">
|
||
<div class="bme-tab-pane active" id="bme-pane-dashboard">
|
||
<div class="bme-stats-grid">
|
||
<div class="bme-stat-card">
|
||
<div class="bme-stat-label">活跃节点</div>
|
||
<div class="bme-stat-value" id="bme-stat-nodes">0</div>
|
||
</div>
|
||
<div class="bme-stat-card">
|
||
<div class="bme-stat-label">边连接</div>
|
||
<div class="bme-stat-value" id="bme-stat-edges">0</div>
|
||
</div>
|
||
<div class="bme-stat-card">
|
||
<div class="bme-stat-label">已归档</div>
|
||
<div class="bme-stat-value" id="bme-stat-archived">0</div>
|
||
</div>
|
||
<div class="bme-stat-card">
|
||
<div class="bme-stat-label">碎片率</div>
|
||
<div class="bme-stat-value warning" id="bme-stat-frag">0%</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card">
|
||
<div class="bme-section-header">运行状态</div>
|
||
<div class="bme-config-row">
|
||
<label>当前聊天</label>
|
||
<div class="bme-recent-meta" id="bme-status-chat-id">—</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label>历史状态</label>
|
||
<div class="bme-recent-meta" id="bme-status-history">—</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label>向量状态</label>
|
||
<div class="bme-recent-meta" id="bme-status-vector">—</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label>最近恢复</label>
|
||
<div class="bme-recent-meta" id="bme-status-recovery">—</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-mobile-graph-preview" id="bme-mobile-graph-area">
|
||
<canvas id="bme-mobile-graph-canvas"></canvas>
|
||
<span class="bme-mobile-graph-label">REALTIME</span>
|
||
</div>
|
||
<div class="bme-graph-statusbar bme-mobile-graph-status" id="bme-mobile-graph-status">
|
||
<span><span class="bme-status-dot"></span>NODE_SYNC_ACTIVE</span>
|
||
</div>
|
||
|
||
<div class="bme-section-header">最近提取</div>
|
||
<ul class="bme-recent-list" id="bme-recent-extract"></ul>
|
||
|
||
<div class="bme-section-header">最近召回</div>
|
||
<ul class="bme-recent-list" id="bme-recent-recall"></ul>
|
||
</div>
|
||
|
||
<div class="bme-tab-pane" id="bme-pane-memory">
|
||
<div class="bme-search-bar">
|
||
<input
|
||
type="text"
|
||
class="bme-search-input"
|
||
id="bme-memory-search"
|
||
placeholder="搜索记忆节点..."
|
||
/>
|
||
<select class="bme-filter-select" id="bme-memory-filter">
|
||
<option value="all">全部</option>
|
||
<option value="character">角色</option>
|
||
<option value="event">事件</option>
|
||
<option value="location">地点</option>
|
||
<option value="thread">线索</option>
|
||
<option value="rule">规则</option>
|
||
<option value="synopsis">概要</option>
|
||
<option value="reflection">反思</option>
|
||
</select>
|
||
</div>
|
||
<ul class="bme-memory-list" id="bme-memory-list"></ul>
|
||
</div>
|
||
|
||
<div class="bme-tab-pane" id="bme-pane-injection">
|
||
<div id="bme-injection-content"></div>
|
||
<div class="bme-injection-token-count" id="bme-injection-tokens"></div>
|
||
</div>
|
||
|
||
<div class="bme-tab-pane" id="bme-pane-actions">
|
||
<div class="bme-action-grid">
|
||
<button class="bme-action-btn" id="bme-act-extract" type="button">
|
||
<i class="fa-solid fa-download"></i>
|
||
<span>手动提取</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-compress" type="button">
|
||
<i class="fa-solid fa-compress"></i>
|
||
<span>手动压缩</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-sleep" type="button">
|
||
<i class="fa-solid fa-moon"></i>
|
||
<span>执行遗忘</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-synopsis" type="button">
|
||
<i class="fa-solid fa-scroll"></i>
|
||
<span>更新概要</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-export" type="button">
|
||
<i class="fa-solid fa-file-export"></i>
|
||
<span>导出图谱</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-import" type="button">
|
||
<i class="fa-solid fa-file-import"></i>
|
||
<span>导入图谱</span>
|
||
</button>
|
||
<button class="bme-action-btn danger" id="bme-act-rebuild" type="button">
|
||
<i class="fa-solid fa-triangle-exclamation"></i>
|
||
<span>重建图谱</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-evolve" type="button">
|
||
<i class="fa-solid fa-dna"></i>
|
||
<span>强制进化</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-vector-rebuild" type="button">
|
||
<i class="fa-solid fa-database"></i>
|
||
<span>重建向量</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-vector-range" type="button">
|
||
<i class="fa-solid fa-layer-group"></i>
|
||
<span>范围重建</span>
|
||
</button>
|
||
<button class="bme-action-btn" id="bme-act-vector-reembed" type="button">
|
||
<i class="fa-solid fa-wand-magic-sparkles"></i>
|
||
<span>直连重嵌</span>
|
||
</button>
|
||
</div>
|
||
<div class="bme-config-card" style="margin-top: 16px">
|
||
<div class="bme-section-header">范围重建</div>
|
||
<div class="bme-config-help">
|
||
仅重建与指定楼层范围相交的节点向量。留空时默认按整段聊天处理。
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-range-start">起始楼层</label>
|
||
<input id="bme-range-start" class="bme-config-input" type="number" min="0" max="999999" />
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-range-end">结束楼层</label>
|
||
<input id="bme-range-end" class="bme-config-input" type="number" min="0" max="999999" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-tab-pane" id="bme-pane-config">
|
||
<div class="bme-config-placeholder">
|
||
<div class="bme-config-placeholder-title">配置已切换到右侧工作区</div>
|
||
<div class="bme-config-placeholder-help">
|
||
左侧子导航负责切页,右侧显示完整的配置表单。
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-resize-handle" id="bme-resize-handle"></div>
|
||
|
||
<div class="bme-panel-main">
|
||
<div class="bme-graph-workspace" id="bme-graph-workspace">
|
||
<div class="bme-graph-toolbar">
|
||
<div class="bme-graph-toolbar-title">
|
||
<i class="fa-solid fa-diagram-project"></i>
|
||
<span>实时图谱</span>
|
||
</div>
|
||
<div class="bme-graph-controls">
|
||
<button id="bme-graph-zoom-in" title="放大" type="button">
|
||
<i class="fa-solid fa-plus"></i>
|
||
</button>
|
||
<button id="bme-graph-zoom-out" title="缩小" type="button">
|
||
<i class="fa-solid fa-minus"></i>
|
||
</button>
|
||
<button id="bme-graph-reset" title="重置" type="button">
|
||
<i class="fa-solid fa-arrows-rotate"></i>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<canvas id="bme-graph-canvas"></canvas>
|
||
|
||
<div class="bme-graph-legend" id="bme-graph-legend"></div>
|
||
|
||
<div class="bme-graph-statusbar">
|
||
<span><span class="bme-status-dot"></span><span id="bme-status-text">READY</span></span>
|
||
<span id="bme-status-meta">NODES: 0 | EDGES: 0</span>
|
||
</div>
|
||
|
||
<div class="bme-node-detail" id="bme-node-detail">
|
||
<div class="bme-node-detail-header">
|
||
<h3 id="bme-detail-title">节点详情</h3>
|
||
<button class="bme-panel-close" id="bme-detail-close" type="button">
|
||
<i class="fa-solid fa-xmark"></i>
|
||
</button>
|
||
</div>
|
||
<div id="bme-detail-body"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-workspace" id="bme-config-workspace">
|
||
<div class="bme-config-workspace-header">
|
||
<div>
|
||
<div class="bme-config-workspace-kicker">配置</div>
|
||
<h2 class="bme-config-workspace-title">ST-BME 配置工作区</h2>
|
||
<p class="bme-config-workspace-desc">
|
||
在这里集中配置第二记忆模型、功能开关、细粒度参数、系统提示词和面板主题。
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-nav bme-config-nav-mobile">
|
||
<button class="bme-config-nav-btn active" data-config-section="api" type="button">
|
||
<i class="fa-solid fa-plug"></i>
|
||
<span>API 配置</span>
|
||
</button>
|
||
<button class="bme-config-nav-btn" data-config-section="toggles" type="button">
|
||
<i class="fa-solid fa-toggle-on"></i>
|
||
<span>功能开关</span>
|
||
</button>
|
||
<button class="bme-config-nav-btn" data-config-section="advanced" type="button">
|
||
<i class="fa-solid fa-sliders"></i>
|
||
<span>详细参数</span>
|
||
</button>
|
||
<button class="bme-config-nav-btn" data-config-section="prompts" type="button">
|
||
<i class="fa-solid fa-scroll"></i>
|
||
<span>系统提示词</span>
|
||
</button>
|
||
<button class="bme-config-nav-btn" data-config-section="appearance" type="button">
|
||
<i class="fa-solid fa-palette"></i>
|
||
<span>面板外观</span>
|
||
</button>
|
||
</div>
|
||
|
||
<div class="bme-config-sections">
|
||
<section class="bme-config-section active" data-config-section="api">
|
||
<div class="bme-config-section-head">
|
||
<div class="bme-config-section-kicker">API 配置</div>
|
||
<h3 class="bme-config-section-title">模型连接与向量接入</h3>
|
||
<p class="bme-config-section-desc">
|
||
统一管理独立记忆 LLM 和 Embedding 的连接方式,保留现有后端代理与直连兜底逻辑。
|
||
</p>
|
||
</div>
|
||
|
||
<div class="bme-config-grid bme-config-grid-2">
|
||
<div class="bme-config-card">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">记忆 LLM</div>
|
||
<div class="bme-config-card-subtitle">
|
||
留空时复用当前聊天模型;填写后走现有代理转发到 OpenAI 兼容接口。
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-llm-url">LLM API 地址</label>
|
||
<input
|
||
id="bme-setting-llm-url"
|
||
class="bme-config-input"
|
||
type="text"
|
||
placeholder="https://api.openai.com/v1"
|
||
/>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-llm-key">LLM API Key</label>
|
||
<input
|
||
id="bme-setting-llm-key"
|
||
class="bme-config-input"
|
||
type="password"
|
||
placeholder="sk-..."
|
||
/>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-llm-model">LLM 模型</label>
|
||
<input
|
||
id="bme-setting-llm-model"
|
||
class="bme-config-input"
|
||
type="text"
|
||
placeholder="gpt-4.1-mini / qwen-max / deepseek-chat"
|
||
/>
|
||
</div>
|
||
<div class="bme-config-actions">
|
||
<button class="bme-config-test-btn" id="bme-test-llm" type="button">
|
||
<i class="fa-solid fa-plug"></i>
|
||
<span>测试记忆 LLM</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">Embedding</div>
|
||
<div class="bme-config-card-subtitle">
|
||
后端模式优先复用酒馆向量源,直连模式保留独立 URL/Key/Model。
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-embed-mode">向量模式</label>
|
||
<select id="bme-setting-embed-mode" class="bme-config-input">
|
||
<option value="backend">后端索引</option>
|
||
<option value="direct">直连兜底</option>
|
||
</select>
|
||
</div>
|
||
|
||
<div id="bme-embed-backend-fields">
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-embed-backend-source">后端向量源</label>
|
||
<select id="bme-setting-embed-backend-source" class="bme-config-input">
|
||
<option value="openai">OpenAI</option>
|
||
<option value="openrouter">OpenRouter</option>
|
||
<option value="cohere">Cohere</option>
|
||
<option value="mistral">Mistral</option>
|
||
<option value="electronhub">Electron Hub</option>
|
||
<option value="chutes">Chutes</option>
|
||
<option value="nanogpt">NanoGPT</option>
|
||
<option value="ollama">Ollama</option>
|
||
<option value="llamacpp">llama.cpp</option>
|
||
<option value="vllm">vLLM</option>
|
||
</select>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-embed-backend-model">后端模型</label>
|
||
<input
|
||
id="bme-setting-embed-backend-model"
|
||
class="bme-config-input"
|
||
type="text"
|
||
placeholder="text-embedding-3-small / nomic-embed-text / BAAI/bge-m3"
|
||
/>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-embed-backend-url">后端 API 地址</label>
|
||
<input
|
||
id="bme-setting-embed-backend-url"
|
||
class="bme-config-input"
|
||
type="text"
|
||
placeholder="仅 Ollama / llama.cpp / vLLM 需要填写"
|
||
/>
|
||
</div>
|
||
<div class="bme-config-row inline">
|
||
<label class="checkbox_label" for="bme-setting-embed-auto-suffix">
|
||
<input id="bme-setting-embed-auto-suffix" type="checkbox" />
|
||
<span>自动补全 /embeddings 后缀</span>
|
||
</label>
|
||
</div>
|
||
<div class="bme-config-help">
|
||
如果当前页面是 HTTPS 而你填的是 HTTP,本地浏览器可能会拦截混合内容;远程部署时请优先使用 HTTPS 或宿主可访问的同源入口。
|
||
</div>
|
||
</div>
|
||
|
||
<div id="bme-embed-direct-fields">
|
||
<div class="bme-config-help">直连模式会使用下面这组独立配置。</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-embed-url">Embedding API 地址</label>
|
||
<input
|
||
id="bme-setting-embed-url"
|
||
class="bme-config-input"
|
||
type="text"
|
||
placeholder="https://api.openai.com/v1"
|
||
/>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-embed-key">Embedding API Key</label>
|
||
<input
|
||
id="bme-setting-embed-key"
|
||
class="bme-config-input"
|
||
type="password"
|
||
placeholder="sk-..."
|
||
/>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-embed-model">Embedding 模型</label>
|
||
<input
|
||
id="bme-setting-embed-model"
|
||
class="bme-config-input"
|
||
type="text"
|
||
placeholder="text-embedding-3-small"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-actions">
|
||
<button class="bme-config-test-btn" id="bme-test-embedding" type="button">
|
||
<i class="fa-solid fa-plug"></i>
|
||
<span>测试 Embedding</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bme-config-section" data-config-section="toggles">
|
||
<div class="bme-config-section-head">
|
||
<div class="bme-config-section-kicker">功能开关</div>
|
||
<h3 class="bme-config-section-title">主链路与增强能力</h3>
|
||
<p class="bme-config-section-desc">
|
||
先决定哪些能力参与记忆链路,再到详细参数里微调各模块行为。
|
||
</p>
|
||
</div>
|
||
|
||
<div class="bme-config-grid bme-config-grid-2">
|
||
<div class="bme-config-card">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">核心能力</div>
|
||
<div class="bme-config-card-subtitle">
|
||
决定主记忆链路是否运行,以及常用的强化能力是否开启。
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="bme-toggle-list">
|
||
<label class="bme-toggle-item" for="bme-setting-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用 ST-BME 自动记忆</span>
|
||
<span class="bme-toggle-desc">开启自动提取、图谱写入与维护。</span>
|
||
</span>
|
||
<input id="bme-setting-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-recall-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用生成前记忆召回</span>
|
||
<span class="bme-toggle-desc">在生成前检索相关记忆并注入 prompt。</span>
|
||
</span>
|
||
<input id="bme-setting-recall-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-evolution-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用记忆进化</span>
|
||
<span class="bme-toggle-desc">根据新提取结果反向修正既有记忆。</span>
|
||
</span>
|
||
<input id="bme-setting-evolution-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-precise-conflict-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用精确对照</span>
|
||
<span class="bme-toggle-desc">识别与既有记忆冲突或需要修订的片段。</span>
|
||
</span>
|
||
<input id="bme-setting-precise-conflict-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-synopsis-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用全局概要</span>
|
||
<span class="bme-toggle-desc">按周期生成故事级的全局总结节点。</span>
|
||
</span>
|
||
<input id="bme-setting-synopsis-enabled" type="checkbox" />
|
||
</label>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">增强能力</div>
|
||
<div class="bme-config-card-subtitle">
|
||
用于补充召回链路、压缩维护和长期叙事观察的可选模块。
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="bme-toggle-list">
|
||
<label class="bme-toggle-item" for="bme-setting-visibility-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用认知边界</span>
|
||
<span class="bme-toggle-desc">限制角色只访问自己可感知的记忆。</span>
|
||
</span>
|
||
<input id="bme-setting-visibility-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-cross-recall-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用交叉检索</span>
|
||
<span class="bme-toggle-desc">扩展到多跳邻域和跨线索召回。</span>
|
||
</span>
|
||
<input id="bme-setting-cross-recall-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-smart-trigger-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用惊奇触发</span>
|
||
<span class="bme-toggle-desc">在高信息量或指定模式时提升提取敏感度。</span>
|
||
</span>
|
||
<input id="bme-setting-smart-trigger-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-sleep-cycle-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用主动遗忘</span>
|
||
<span class="bme-toggle-desc">周期性执行压缩与长期记忆清理。</span>
|
||
</span>
|
||
<input id="bme-setting-sleep-cycle-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-prob-recall-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用概率召回</span>
|
||
<span class="bme-toggle-desc">允许少量弱相关记忆以概率方式入围。</span>
|
||
</span>
|
||
<input id="bme-setting-prob-recall-enabled" type="checkbox" />
|
||
</label>
|
||
<label class="bme-toggle-item" for="bme-setting-reflection-enabled">
|
||
<span class="bme-toggle-copy">
|
||
<span class="bme-toggle-title">启用反思</span>
|
||
<span class="bme-toggle-desc">按周期生成长期叙事反思与关注点。</span>
|
||
</span>
|
||
<input id="bme-setting-reflection-enabled" type="checkbox" />
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bme-config-section" data-config-section="advanced">
|
||
<div class="bme-config-section-head">
|
||
<div class="bme-config-section-kicker">详细参数</div>
|
||
<h3 class="bme-config-section-title">细粒度行为与评分策略</h3>
|
||
<p class="bme-config-section-desc">
|
||
这里承接旧设置页里的高级项。若对应功能关闭,参数会置灰并提示先到“功能开关”启用。
|
||
</p>
|
||
</div>
|
||
|
||
<div class="bme-config-grid bme-config-grid-2">
|
||
<div class="bme-config-card">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">提取</div>
|
||
<div class="bme-config-card-subtitle">控制自动提取的频率和按轮计的上下文窗口。默认 2 轮,通常约等于向前补 4 层普通消息。</div>
|
||
</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-extract-every">每 N 条回复提取</label>
|
||
<input id="bme-setting-extract-every" class="bme-config-input" type="number" min="1" max="50" />
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-extract-context-turns">提取上下文轮数</label>
|
||
<input
|
||
id="bme-setting-extract-context-turns"
|
||
class="bme-config-input"
|
||
type="number"
|
||
min="0"
|
||
max="20"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="recallEnabled">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">召回与注入</div>
|
||
<div class="bme-config-card-subtitle">控制最终注入层级。当前注入走 IN_CHAT@Depth,数值越大越靠前。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-inject-depth">注入深度(数值越大越靠前)</label>
|
||
<input id="bme-setting-inject-depth" class="bme-config-input" type="number" min="0" max="9999" />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
class="bme-config-card bme-guarded-card bme-stage-card"
|
||
data-guard-settings="recallEnabled"
|
||
data-stage-toggle-id="bme-setting-recall-vector-prefilter-enabled"
|
||
>
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">向量预筛</div>
|
||
<div class="bme-config-card-subtitle">控制是否启用向量候选检索,以及向量阶段输出的 Top-K 宽度。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<label class="bme-inline-checkbox" for="bme-setting-recall-vector-prefilter-enabled">
|
||
<input id="bme-setting-recall-vector-prefilter-enabled" type="checkbox" />
|
||
<span>启用向量预筛</span>
|
||
</label>
|
||
<div class="bme-config-row bme-stage-param">
|
||
<label for="bme-setting-recall-top-k">向量预筛 Top-K</label>
|
||
<input id="bme-setting-recall-top-k" class="bme-config-input" type="number" min="1" max="100" />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
class="bme-config-card bme-guarded-card bme-stage-card"
|
||
data-guard-settings="recallEnabled"
|
||
data-stage-toggle-id="bme-setting-recall-graph-diffusion-enabled"
|
||
>
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">图扩散</div>
|
||
<div class="bme-config-card-subtitle">控制是否沿图结构继续扩散候选,以及扩散阶段保留的候选上限。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<label class="bme-inline-checkbox" for="bme-setting-recall-graph-diffusion-enabled">
|
||
<input id="bme-setting-recall-graph-diffusion-enabled" type="checkbox" />
|
||
<span>启用图扩散</span>
|
||
</label>
|
||
<div class="bme-config-row bme-stage-param">
|
||
<label for="bme-setting-recall-diffusion-top-k">图扩散 Top-K</label>
|
||
<input id="bme-setting-recall-diffusion-top-k" class="bme-config-input" type="number" min="1" max="300" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="recallEnabled">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">混合评分</div>
|
||
<div class="bme-config-card-subtitle">评分层始终运行;下面 3 个权重共同决定图扩散、向量相似和重要度在召回中的占比。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-graph-weight">图扩散权重</label>
|
||
<input id="bme-setting-graph-weight" class="bme-config-input" type="number" min="0" max="1" step="0.05" />
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-vector-weight">向量权重</label>
|
||
<input id="bme-setting-vector-weight" class="bme-config-input" type="number" min="0" max="1" step="0.05" />
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-importance-weight">重要度权重</label>
|
||
<input
|
||
id="bme-setting-importance-weight"
|
||
class="bme-config-input"
|
||
type="number"
|
||
min="0"
|
||
max="1"
|
||
step="0.05"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
class="bme-config-card bme-guarded-card bme-stage-card"
|
||
data-guard-settings="recallEnabled"
|
||
data-stage-toggle-id="bme-setting-recall-llm"
|
||
>
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">LLM 精确召回</div>
|
||
<div class="bme-config-card-subtitle">控制是否启用 LLM 精排,以及传给 LLM 的候选池大小与最终保留上限。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<label class="bme-inline-checkbox" for="bme-setting-recall-llm">
|
||
<input id="bme-setting-recall-llm" type="checkbox" />
|
||
<span>启用 LLM 精排</span>
|
||
</label>
|
||
<div class="bme-config-row bme-stage-param">
|
||
<label for="bme-setting-recall-llm-candidate-pool">LLM 精排候选池</label>
|
||
<input id="bme-setting-recall-llm-candidate-pool" class="bme-config-input" type="number" min="1" max="100" />
|
||
</div>
|
||
<div class="bme-config-row bme-stage-param">
|
||
<label for="bme-setting-recall-max-nodes">LLM 最终选择上限</label>
|
||
<input id="bme-setting-recall-max-nodes" class="bme-config-input" type="number" min="1" max="50" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="enableEvolution">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">进化</div>
|
||
<div class="bme-config-card-subtitle">控制邻域搜索规模和整理频率。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-evo-neighbor-count">近邻数量</label>
|
||
<input id="bme-setting-evo-neighbor-count" class="bme-config-input" type="number" min="1" max="20" />
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-evo-consolidate-every">整理频率</label>
|
||
<input
|
||
id="bme-setting-evo-consolidate-every"
|
||
class="bme-config-input"
|
||
type="number"
|
||
min="1"
|
||
max="500"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="enablePreciseConflict">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">冲突对照</div>
|
||
<div class="bme-config-card-subtitle">调整对照阶段的判定阈值。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-conflict-threshold">对照阈值</label>
|
||
<input
|
||
id="bme-setting-conflict-threshold"
|
||
class="bme-config-input"
|
||
type="number"
|
||
min="0.5"
|
||
max="0.99"
|
||
step="0.01"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="enableSynopsis">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">概要</div>
|
||
<div class="bme-config-card-subtitle">控制全局概要节点的生成周期。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-synopsis-every">每 N 次提取更新</label>
|
||
<input id="bme-setting-synopsis-every" class="bme-config-input" type="number" min="1" max="100" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="enableSmartTrigger">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">惊奇触发</div>
|
||
<div class="bme-config-card-subtitle">高信息量触发规则和阈值。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-trigger-patterns">自定义触发模式</label>
|
||
<input
|
||
id="bme-setting-trigger-patterns"
|
||
class="bme-config-input"
|
||
type="text"
|
||
placeholder="突然,真相,秘密,背叛 或正则"
|
||
/>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-smart-trigger-threshold">触发阈值</label>
|
||
<input
|
||
id="bme-setting-smart-trigger-threshold"
|
||
class="bme-config-input"
|
||
type="number"
|
||
min="1"
|
||
max="10"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="enableSleepCycle">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">睡眠遗忘</div>
|
||
<div class="bme-config-card-subtitle">配置遗忘阈值和执行周期。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-forget-threshold">遗忘阈值</label>
|
||
<input
|
||
id="bme-setting-forget-threshold"
|
||
class="bme-config-input"
|
||
type="number"
|
||
min="0.1"
|
||
max="1"
|
||
step="0.05"
|
||
/>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-sleep-every">每 N 次提取执行</label>
|
||
<input id="bme-setting-sleep-every" class="bme-config-input" type="number" min="1" max="200" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="enableProbRecall">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">概率召回</div>
|
||
<div class="bme-config-card-subtitle">调整弱相关记忆被纳入召回的概率。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-prob-recall-chance">触发概率</label>
|
||
<input
|
||
id="bme-setting-prob-recall-chance"
|
||
class="bme-config-input"
|
||
type="number"
|
||
min="0.01"
|
||
max="0.5"
|
||
step="0.01"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-config-card bme-guarded-card" data-guard-settings="enableReflection">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">反思</div>
|
||
<div class="bme-config-card-subtitle">控制叙事反思节点的生成间隔。</div>
|
||
</div>
|
||
<div class="bme-config-guard-note">在“功能开关”中启用后生效。</div>
|
||
</div>
|
||
<div class="bme-config-row">
|
||
<label for="bme-setting-reflect-every">每 N 次提取生成</label>
|
||
<input id="bme-setting-reflect-every" class="bme-config-input" type="number" min="1" max="200" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bme-config-section" data-config-section="prompts">
|
||
<div class="bme-config-section-head">
|
||
<div class="bme-config-section-kicker">系统提示词</div>
|
||
<h3 class="bme-config-section-title">覆盖各阶段默认 system prompt</h3>
|
||
<p class="bme-config-section-desc">
|
||
留空即回退到内置默认提示词。点击“恢复默认”会清空对应设置并立即回填默认文本。
|
||
</p>
|
||
</div>
|
||
|
||
<div class="bme-config-grid">
|
||
<div class="bme-prompt-card" data-setting-key="extractPrompt" data-default-prompt="extract">
|
||
<div class="bme-prompt-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">记忆提取</div>
|
||
<div class="bme-config-card-subtitle">用于结构化抽取当前批次对话中的新增记忆。</div>
|
||
</div>
|
||
<div class="bme-prompt-card-actions">
|
||
<span class="bme-prompt-status"></span>
|
||
<button
|
||
class="menu_button bme-prompt-reset"
|
||
data-setting-key="extractPrompt"
|
||
data-default-prompt="extract"
|
||
data-target-id="bme-setting-extract-prompt"
|
||
type="button"
|
||
>
|
||
恢复默认
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<textarea id="bme-setting-extract-prompt" class="bme-config-textarea" placeholder="留空 = 默认提取 prompt"></textarea>
|
||
</div>
|
||
|
||
<div class="bme-prompt-card" data-setting-key="recallPrompt" data-default-prompt="recall">
|
||
<div class="bme-prompt-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">智能召回</div>
|
||
<div class="bme-config-card-subtitle">用于对候选记忆进行语义判断和精排解释。</div>
|
||
</div>
|
||
<div class="bme-prompt-card-actions">
|
||
<span class="bme-prompt-status"></span>
|
||
<button
|
||
class="menu_button bme-prompt-reset"
|
||
data-setting-key="recallPrompt"
|
||
data-default-prompt="recall"
|
||
data-target-id="bme-setting-recall-prompt"
|
||
type="button"
|
||
>
|
||
恢复默认
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<textarea id="bme-setting-recall-prompt" class="bme-config-textarea" placeholder="留空 = 默认召回 prompt"></textarea>
|
||
</div>
|
||
|
||
<div class="bme-prompt-card" data-setting-key="evolutionPrompt" data-default-prompt="evolution">
|
||
<div class="bme-prompt-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">记忆进化</div>
|
||
<div class="bme-config-card-subtitle">用于分析新记忆如何修正或连接既有节点。</div>
|
||
</div>
|
||
<div class="bme-prompt-card-actions">
|
||
<span class="bme-prompt-status"></span>
|
||
<button
|
||
class="menu_button bme-prompt-reset"
|
||
data-setting-key="evolutionPrompt"
|
||
data-default-prompt="evolution"
|
||
data-target-id="bme-setting-evolution-prompt"
|
||
type="button"
|
||
>
|
||
恢复默认
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<textarea id="bme-setting-evolution-prompt" class="bme-config-textarea" placeholder="留空 = 默认进化 prompt"></textarea>
|
||
</div>
|
||
|
||
<div class="bme-prompt-card" data-setting-key="compressPrompt" data-default-prompt="compress">
|
||
<div class="bme-prompt-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">记忆压缩</div>
|
||
<div class="bme-config-card-subtitle">用于合并高层摘要节点并保留关键信息。</div>
|
||
</div>
|
||
<div class="bme-prompt-card-actions">
|
||
<span class="bme-prompt-status"></span>
|
||
<button
|
||
class="menu_button bme-prompt-reset"
|
||
data-setting-key="compressPrompt"
|
||
data-default-prompt="compress"
|
||
data-target-id="bme-setting-compress-prompt"
|
||
type="button"
|
||
>
|
||
恢复默认
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<textarea id="bme-setting-compress-prompt" class="bme-config-textarea" placeholder="留空 = 默认压缩 prompt"></textarea>
|
||
</div>
|
||
|
||
<div class="bme-prompt-card" data-setting-key="synopsisPrompt" data-default-prompt="synopsis">
|
||
<div class="bme-prompt-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">全局概要</div>
|
||
<div class="bme-config-card-subtitle">用于生成故事主线的阶段性前情提要。</div>
|
||
</div>
|
||
<div class="bme-prompt-card-actions">
|
||
<span class="bme-prompt-status"></span>
|
||
<button
|
||
class="menu_button bme-prompt-reset"
|
||
data-setting-key="synopsisPrompt"
|
||
data-default-prompt="synopsis"
|
||
data-target-id="bme-setting-synopsis-prompt"
|
||
type="button"
|
||
>
|
||
恢复默认
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<textarea id="bme-setting-synopsis-prompt" class="bme-config-textarea" placeholder="留空 = 默认概要 prompt"></textarea>
|
||
</div>
|
||
|
||
<div class="bme-prompt-card" data-setting-key="reflectionPrompt" data-default-prompt="reflection">
|
||
<div class="bme-prompt-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">反思生成</div>
|
||
<div class="bme-config-card-subtitle">用于抽取长期叙事中的趋势、触发点和建议。</div>
|
||
</div>
|
||
<div class="bme-prompt-card-actions">
|
||
<span class="bme-prompt-status"></span>
|
||
<button
|
||
class="menu_button bme-prompt-reset"
|
||
data-setting-key="reflectionPrompt"
|
||
data-default-prompt="reflection"
|
||
data-target-id="bme-setting-reflection-prompt"
|
||
type="button"
|
||
>
|
||
恢复默认
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<textarea
|
||
id="bme-setting-reflection-prompt"
|
||
class="bme-config-textarea"
|
||
placeholder="留空 = 默认反思 prompt"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bme-config-section" data-config-section="appearance">
|
||
<div class="bme-config-section-head">
|
||
<div class="bme-config-section-kicker">面板外观</div>
|
||
<h3 class="bme-config-section-title">主题与视觉同步</h3>
|
||
<p class="bme-config-section-desc">
|
||
这里的主题选择会和顶部调色盘快捷入口保持同步,并立即刷新图谱配色。
|
||
</p>
|
||
</div>
|
||
|
||
<div class="bme-config-card">
|
||
<div class="bme-config-card-head">
|
||
<div>
|
||
<div class="bme-config-card-title">面板主题</div>
|
||
<div class="bme-config-card-subtitle">选择最适合当前故事氛围和阅读习惯的面板风格。</div>
|
||
</div>
|
||
</div>
|
||
<div class="bme-theme-card-grid">
|
||
<button class="bme-theme-card" data-theme="crimson" type="button">
|
||
<span class="bme-theme-card-swatch" style="background: #e94560"></span>
|
||
<span class="bme-theme-card-copy">
|
||
<span class="bme-theme-card-title">赤红合成</span>
|
||
<span class="bme-theme-card-desc">高对比、强调变化和警示感。</span>
|
||
</span>
|
||
<span class="bme-theme-card-check"><i class="fa-solid fa-check"></i></span>
|
||
</button>
|
||
<button class="bme-theme-card" data-theme="cyan" type="button">
|
||
<span class="bme-theme-card-swatch" style="background: #00e5ff"></span>
|
||
<span class="bme-theme-card-copy">
|
||
<span class="bme-theme-card-title">霓虹青蓝</span>
|
||
<span class="bme-theme-card-desc">更冷静的检视感,适合长时间排查。</span>
|
||
</span>
|
||
<span class="bme-theme-card-check"><i class="fa-solid fa-check"></i></span>
|
||
</button>
|
||
<button class="bme-theme-card" data-theme="amber" type="button">
|
||
<span class="bme-theme-card-swatch" style="background: #ffb300"></span>
|
||
<span class="bme-theme-card-copy">
|
||
<span class="bme-theme-card-title">琥珀终端</span>
|
||
<span class="bme-theme-card-desc">更像复古终端,阅读层次稳定。</span>
|
||
</span>
|
||
<span class="bme-theme-card-check"><i class="fa-solid fa-check"></i></span>
|
||
</button>
|
||
<button class="bme-theme-card" data-theme="violet" type="button">
|
||
<span class="bme-theme-card-swatch" style="background: #b388ff"></span>
|
||
<span class="bme-theme-card-copy">
|
||
<span class="bme-theme-card-title">紫雾迷离</span>
|
||
<span class="bme-theme-card-desc">更柔和的夜间质感,适合沉浸式浏览。</span>
|
||
</span>
|
||
<span class="bme-theme-card-check"><i class="fa-solid fa-check"></i></span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bme-mobile-content" id="bme-mobile-content" style="display: none"></div>
|
||
</div>
|
||
|
||
<div class="bme-panel-tabbar">
|
||
<button class="bme-tab-btn active" data-tab="dashboard" type="button">
|
||
<i class="fa-solid fa-chart-simple"></i>
|
||
<span>总览</span>
|
||
</button>
|
||
<button class="bme-tab-btn" data-tab="memory" type="button">
|
||
<i class="fa-solid fa-brain"></i>
|
||
<span>记忆</span>
|
||
</button>
|
||
<button class="bme-tab-btn" data-tab="injection" type="button">
|
||
<i class="fa-solid fa-syringe"></i>
|
||
<span>注入</span>
|
||
</button>
|
||
<button class="bme-tab-btn" data-tab="actions" type="button">
|
||
<i class="fa-solid fa-gear"></i>
|
||
<span>操作</span>
|
||
</button>
|
||
<button class="bme-tab-btn" data-tab="config" type="button">
|
||
<i class="fa-solid fa-sliders"></i>
|
||
<span>配置</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|