mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-12 03:00:50 +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
58
openclaw/extensions/memory-wiki/src/obsidian.test.ts
Normal file
58
openclaw/extensions/memory-wiki/src/obsidian.test.ts
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
import { describe, expect, it } from "vitest";
|
||||
import { resolveMemoryWikiConfig } from "./config.js";
|
||||
import { runObsidianDaily, runObsidianSearch } from "./obsidian.js";
|
||||
|
||||
describe("runObsidianSearch", () => {
|
||||
it("builds the official obsidian cli argv with the configured vault name", async () => {
|
||||
const config = resolveMemoryWikiConfig(
|
||||
{
|
||||
obsidian: {
|
||||
enabled: true,
|
||||
useOfficialCli: true,
|
||||
vaultName: "OpenClaw Wiki",
|
||||
},
|
||||
},
|
||||
{ homedir: "/Users/tester" },
|
||||
);
|
||||
const calls: Array<{ command: string; argv: string[] }> = [];
|
||||
const execImpl = async (command: string, argv?: readonly string[] | null) => {
|
||||
calls.push({ command, argv: argv ? [...argv] : [] });
|
||||
return { stdout: "search output\n", stderr: "" };
|
||||
};
|
||||
const exec = execImpl as unknown as NonNullable<
|
||||
NonNullable<Parameters<typeof runObsidianSearch>[0]["deps"]>["exec"]
|
||||
>;
|
||||
|
||||
const result = await runObsidianSearch({
|
||||
config,
|
||||
query: "agent memory",
|
||||
deps: {
|
||||
exec,
|
||||
resolveCommand: async () => "/usr/local/bin/obsidian",
|
||||
},
|
||||
});
|
||||
|
||||
expect(calls).toEqual([
|
||||
{
|
||||
command: "/usr/local/bin/obsidian",
|
||||
argv: ["vault=OpenClaw Wiki", "search", "query=agent memory"],
|
||||
},
|
||||
]);
|
||||
expect(result.stdout).toBe("search output\n");
|
||||
});
|
||||
});
|
||||
|
||||
describe("runObsidianDaily", () => {
|
||||
it("fails cleanly when the obsidian cli is not installed", async () => {
|
||||
const config = resolveMemoryWikiConfig(undefined, { homedir: "/Users/tester" });
|
||||
|
||||
await expect(
|
||||
runObsidianDaily({
|
||||
config,
|
||||
deps: {
|
||||
resolveCommand: async () => null,
|
||||
},
|
||||
}),
|
||||
).rejects.toThrow("Obsidian CLI is not available on PATH.");
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue