mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-15 07:30:46 +08:00
重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。 Made-with: Cursor
This commit is contained in:
parent
4a23b715a2
commit
dbbe3add6a
14438 changed files with 2693620 additions and 2546 deletions
75
openclaw/test/vitest/vitest.channel-paths.mjs
Normal file
75
openclaw/test/vitest/vitest.channel-paths.mjs
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
import path from "node:path";
|
||||
import {
|
||||
BUNDLED_PLUGIN_PATH_PREFIX,
|
||||
bundledPluginRoot,
|
||||
} from "../../scripts/lib/bundled-plugin-paths.mjs";
|
||||
|
||||
const normalizeRepoPath = (value) => value.split(path.sep).join("/");
|
||||
|
||||
export const extensionRoutedChannelTestFiles = [];
|
||||
|
||||
const extensionRoutedChannelTestFileSet = new Set(extensionRoutedChannelTestFiles);
|
||||
|
||||
export const channelTestRoots = [
|
||||
"src/channels",
|
||||
bundledPluginRoot("discord"),
|
||||
bundledPluginRoot("slack"),
|
||||
bundledPluginRoot("signal"),
|
||||
bundledPluginRoot("imessage"),
|
||||
bundledPluginRoot("line"),
|
||||
];
|
||||
|
||||
export const extensionChannelTestRoots = channelTestRoots.filter((root) =>
|
||||
root.startsWith(BUNDLED_PLUGIN_PATH_PREFIX),
|
||||
);
|
||||
export const coreChannelTestRoots = channelTestRoots.filter(
|
||||
(root) => !root.startsWith(BUNDLED_PLUGIN_PATH_PREFIX),
|
||||
);
|
||||
export const channelTestPrefixes = channelTestRoots.map((root) => `${root}/`);
|
||||
export const channelTestInclude = channelTestRoots.map((root) => `${root}/**/*.test.ts`);
|
||||
export const extensionChannelTestInclude = extensionChannelTestRoots.map(
|
||||
(root) => `${root}/**/*.test.ts`,
|
||||
);
|
||||
export const coreChannelTestInclude = coreChannelTestRoots.map((root) => `${root}/**/*.test.ts`);
|
||||
export const channelTestExclude = channelTestRoots.map((root) => `${root}/**`);
|
||||
|
||||
const extensionChannelRootOverrideBasenames = new Map();
|
||||
for (const file of extensionRoutedChannelTestFiles) {
|
||||
if (!file.startsWith(BUNDLED_PLUGIN_PATH_PREFIX)) {
|
||||
continue;
|
||||
}
|
||||
const relativeFile = file.slice(BUNDLED_PLUGIN_PATH_PREFIX.length);
|
||||
const separator = relativeFile.indexOf("/");
|
||||
if (separator === -1) {
|
||||
continue;
|
||||
}
|
||||
const root = relativeFile.slice(0, separator);
|
||||
const baseName = path.basename(relativeFile, ".test.ts");
|
||||
const current = extensionChannelRootOverrideBasenames.get(root) ?? [];
|
||||
current.push(baseName);
|
||||
extensionChannelRootOverrideBasenames.set(root, current);
|
||||
}
|
||||
|
||||
export const extensionExcludedChannelTestGlobs = channelTestRoots
|
||||
.filter((root) => root.startsWith(BUNDLED_PLUGIN_PATH_PREFIX))
|
||||
.map((root) => root.slice(BUNDLED_PLUGIN_PATH_PREFIX.length))
|
||||
.map((relativeRoot) => {
|
||||
const allowedBasenames = extensionChannelRootOverrideBasenames.get(relativeRoot) ?? [];
|
||||
if (allowedBasenames.length === 0) {
|
||||
return `${relativeRoot}/**`;
|
||||
}
|
||||
const alternation = allowedBasenames.join("|");
|
||||
return `${relativeRoot}/**/!(${alternation}).test.ts`;
|
||||
});
|
||||
|
||||
export const extensionChannelOverrideExcludeGlobs = extensionRoutedChannelTestFiles
|
||||
.filter((file) => file.startsWith(BUNDLED_PLUGIN_PATH_PREFIX))
|
||||
.map((file) => file.slice(BUNDLED_PLUGIN_PATH_PREFIX.length));
|
||||
|
||||
export function isChannelSurfaceTestFile(filePath) {
|
||||
const normalizedFile = normalizeRepoPath(filePath);
|
||||
return (
|
||||
channelTestPrefixes.some((prefix) => normalizedFile.startsWith(prefix)) &&
|
||||
!extensionRoutedChannelTestFileSet.has(normalizedFile)
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue