集成 OpenHub 与 WeKnora Page AI
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env node
|
||||
"use strict";
|
||||
|
||||
const assert = require("node:assert");
|
||||
const fs = require("node:fs");
|
||||
const path = require("node:path");
|
||||
|
||||
const ROOT = process.cwd();
|
||||
const OUTPUT_DIR = path.join(ROOT, "tmp", "task769-weknora-knowledge-settings-ui-static-smoke");
|
||||
const RESULT_PATH = path.join(OUTPUT_DIR, "result.json");
|
||||
const UI_PATH = "rust/crates/mnote-web/browser/sidebar-page-settings-runtime.js";
|
||||
|
||||
function read(relativePath) {
|
||||
return fs.readFileSync(path.join(ROOT, relativePath), "utf8");
|
||||
}
|
||||
|
||||
function assertContains(content, needle, label) {
|
||||
assert(content.includes(needle), `${label} 缺少: ${needle}`);
|
||||
}
|
||||
|
||||
function assertNotContains(content, needle, label) {
|
||||
assert(!content.includes(needle), `${label} 不应包含: ${needle}`);
|
||||
}
|
||||
|
||||
function assertOrdered(content, first, second, label) {
|
||||
const firstIndex = content.indexOf(first);
|
||||
const secondIndex = content.indexOf(second);
|
||||
assert(firstIndex >= 0, `${label} 缺少: ${first}`);
|
||||
assert(secondIndex >= 0, `${label} 缺少: ${second}`);
|
||||
assert(firstIndex < secondIndex, `${label} 顺序错误: ${first} 应优先于 ${second}`);
|
||||
}
|
||||
|
||||
function main() {
|
||||
fs.mkdirSync(OUTPUT_DIR, { recursive: true });
|
||||
const ui = read(UI_PATH);
|
||||
|
||||
for (const forbidden of [
|
||||
"打开 LightRAG",
|
||||
"相似度阈值",
|
||||
"相关度:",
|
||||
"本地 (Local)",
|
||||
"全局 (Global)",
|
||||
"朴素 (Naive)",
|
||||
"混合模式 (Mix)",
|
||||
"正在读取 LightRAG 状态",
|
||||
"无法连接 LightRAG 服务",
|
||||
]) {
|
||||
assertNotContains(ui, forbidden, "WeKnora knowledge settings UI");
|
||||
}
|
||||
|
||||
for (const required of [
|
||||
"WeKnora",
|
||||
"WeKnora hybrid",
|
||||
"data-testid=\"mnote-weknora-knowledge-settings-panel\"",
|
||||
"data-knowledge-rag-default-provider=\"weknora\"",
|
||||
"data-knowledge-rag-legacy-fallback-provider=\"lightrag\"",
|
||||
"data-knowledge-rag-source-registry=\"mnote\"",
|
||||
"data-knowledge-rag-provider-index=\"weknora-kb-chunk-index\"",
|
||||
"data-knowledge-rag-active-provider",
|
||||
"data-knowledge-rag-reference-boundary",
|
||||
"data-knowledge-rag-provider=\"weknora\"",
|
||||
"data-knowledge-rag-provider-id",
|
||||
"data-knowledge-rag-provider-ids",
|
||||
"data-knowledge-rag-knowledge-id",
|
||||
"data-knowledge-rag-chunk-count",
|
||||
"data-knowledge-rag-processing-status",
|
||||
"data-knowledge-rag-open-reference-mode",
|
||||
"data-knowledge-rag-delete-local-file-policy=\"preserve-local-file\"",
|
||||
"data-kb-rag-score-label=\"provider-ranking-score\"",
|
||||
"data-kb-rag-score-is-similarity-percent=\"false\"",
|
||||
"provider 排序分",
|
||||
"MNote source registry",
|
||||
"WeKnora KB chunk index",
|
||||
"provider=weknora",
|
||||
"provider ids",
|
||||
"knowledgeId",
|
||||
"chunkCount",
|
||||
"processingStatus",
|
||||
"定位降级",
|
||||
"删除 provider index 与 registry 映射,不删除本地文件",
|
||||
"打开知识库",
|
||||
"Provider 检索策略",
|
||||
"兼容阈值字段保留在请求层,不作为默认主控",
|
||||
]) {
|
||||
assertContains(ui, required, "WeKnora knowledge settings UI");
|
||||
}
|
||||
|
||||
assertOrdered(
|
||||
ui,
|
||||
"(weknora && weknora.dashboardUrl)",
|
||||
"status && (status.dashboardUrl || status.endpoint)",
|
||||
"dashboardUrl 优先级"
|
||||
);
|
||||
|
||||
const result = {
|
||||
ok: true,
|
||||
checkedFiles: [UI_PATH],
|
||||
assertions: {
|
||||
noDefaultLightRagCopy: true,
|
||||
noSimilarityThresholdPrimaryControl: true,
|
||||
noRelevancePercentCopy: true,
|
||||
weknoraHybridSearchCopy: true,
|
||||
providerSelectorCoverage: true,
|
||||
sourceRegistrySelectorCoverage: true,
|
||||
processingSelectorCoverage: true,
|
||||
citationOpenReferenceSelectorCoverage: true,
|
||||
providerRankingScoreCopy: true,
|
||||
sourceRegistryBoundaryCopy: true,
|
||||
deleteIndexDoesNotDeleteLocalFileCopy: true,
|
||||
dashboardUrlPriority: true,
|
||||
},
|
||||
};
|
||||
fs.writeFileSync(RESULT_PATH, `${JSON.stringify(result, null, 2)}\n`, "utf8");
|
||||
console.log(JSON.stringify(result, null, 2));
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user