feat: 7-61 Yuxi reference — extensions panel, KB detail, manifest split, event router, dashboard

Batch B: settings popover 新增"扩展"tab,按知识库/Skills/MCP/Agent工具分面板
Batch C: knowledge-rag popover 新增"资料源管理/检索测试/检索参数"三tab
Batch A: manifest.rs 按能力域拆为 10 个分组函数(context/doc/knowledge_rag/block/page/mindmap/office/onlyoffice/artifact)
Batch D: 新增 agent-stream-event-router.js 共享模块(事件状态机 + SSE 帧解析)
Batch E: settings popover 新增"仪表盘"tab — 知识库文件数/Skills数量/MCP连接状态/Agent run次数

836/838 Rust 测试通过(仅 2 个预存失败)
This commit is contained in:
lix-2026
2026-06-13 22:59:24 +08:00
parent 4a7efd4a30
commit 06327d59f5
7 changed files with 1029 additions and 19 deletions
@@ -219,6 +219,13 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
const ingestSingleKnowledgeRagSource = (...args) => sidebarPageSettings.ingestSingleKnowledgeRagSource(...args);
const loadKnowledgeRagStatus = (...args) => sidebarPageSettings.loadKnowledgeRagStatus(...args);
const openKnowledgeRagDashboard = (...args) => sidebarPageSettings.openKnowledgeRagDashboard(...args);
const setActiveKnowledgeRagDetailTab = (...args) => sidebarPageSettings.setActiveKnowledgeRagDetailTab(...args);
const performKnowledgeRagSearch = (...args) => sidebarPageSettings.performKnowledgeRagSearch(...args);
const saveKnowledgeRagSearchParams = (...args) => sidebarPageSettings.saveKnowledgeRagSearchParams(...args);
const loadKnowledgeRagSearchParamsToForm = (...args) => sidebarPageSettings.loadKnowledgeRagSearchParamsToForm(...args);
const syncKnowledgeRagThresholdDisplay = (...args) => sidebarPageSettings.syncKnowledgeRagThresholdDisplay(...args);
const refreshDashboardPanel = (...args) => sidebarPageSettings.refreshDashboardPanel(...args);
const pruneKnowledgeRagRegistry = (...args) => sidebarPageSettings.pruneKnowledgeRagRegistry(...args);
const setKnowledgeRagSourceFilter = (...args) => sidebarPageSettings.setKnowledgeRagSourceFilter(...args);
const useKnowledgeRagFileTreeSelection = (...args) => sidebarPageSettings.useKnowledgeRagFileTreeSelection(...args);
@@ -2999,6 +3006,14 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
e.preventDefault();
setActivePageSettingsTab(pageSettingsTab.getAttribute('data-page-settings-tab') || 'page');
return;
var extensionsSubtab = closestAction(e.target, '[data-extensions-subtab]');
if (extensionsSubtab) {
e.preventDefault();
setActiveExtensionsSubtab(extensionsSubtab.getAttribute('data-extensions-subtab') || 'knowledge');
return;
}
}
var localIndexAction = closestAction(e.target, '[data-local-index-action]');
@@ -3027,6 +3042,15 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
if (knowledgeRagAction) {
e.preventDefault();
var knowledgeRagActionName = knowledgeRagAction.getAttribute('data-knowledge-rag-action') || '';
if (knowledgeRagActionName === 'manage') {
void openKnowledgeRagSettingsPopover();
return;
}
if (knowledgeRagActionName === 'refresh-status') {
void refreshKnowledgeExtensionsPanel();
return;
}
if (knowledgeRagActionName === 'refresh') {
void loadKnowledgeRagStatus(true);
return;
@@ -3069,6 +3093,51 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
}
}
var kbRagDetailTab = closestAction(e.target, '[data-kb-rag-tab]');
if (kbRagDetailTab) {
e.preventDefault();
var tabName = kbRagDetailTab.getAttribute('data-kb-rag-tab') || 'sources';
setActiveKnowledgeRagDetailTab(tabName);
if (tabName === 'params') loadKnowledgeRagSearchParamsToForm();
return;
}
var kbRagAction = closestAction(e.target, '[data-kb-rag-action]');
if (kbRagAction) {
e.preventDefault();
var kbRagActionName = kbRagAction.getAttribute('data-kb-rag-action') || '';
if (kbRagActionName === 'search') {
void performKnowledgeRagSearch();
return;
}
if (kbRagActionName === 'save-params') {
saveKnowledgeRagSearchParams();
return;
}
}
var kbRagSearchInput = closestAction(e.target, '[data-kb-rag-search-input]');
if (kbRagSearchInput && e.key === 'Enter') {
e.preventDefault();
void performKnowledgeRagSearch();
return;
}
var kbRagThresholdRange = closestAction(e.target, '[data-kb-rag-param="similarity_threshold"]');
if (kbRagThresholdRange && e.type === 'input') {
syncKnowledgeRagThresholdDisplay();
return;
}
var dashboardAction = closestAction(e.target, '[data-dashboard-action="refresh"]');
if (dashboardAction) {
e.preventDefault();
refreshDashboardPanel();
return;
}
var pageSettingsAction = closestAction(e.target, '[data-page-settings-action]');
if (pageSettingsAction) {
e.preventDefault();