

























@@ -42,10 +42,36 @@ describe("active-memory plugin", () => {
4242const runEmbeddedPiAgent = vi.fn();
4343let stateDir = "";
4444let configFile: Record<string, unknown> = {};
45+let pluginConfig: Record<string, unknown> = {
46+agents: ["main"],
47+logging: true,
48+};
49+const syncRuntimePluginConfig = (nextPluginConfig: Record<string, unknown>) => {
50+pluginConfig = nextPluginConfig;
51+const plugins = configFile.plugins as Record<string, unknown> | undefined;
52+const entries = plugins?.entries as Record<string, unknown> | undefined;
53+const existingEntry = entries?.["active-memory"] as Record<string, unknown> | undefined;
54+configFile = {
55+ ...configFile,
56+plugins: {
57+ ...plugins,
58+entries: {
59+ ...entries,
60+"active-memory": {
61+ ...existingEntry,
62+enabled: true,
63+config: nextPluginConfig,
64+},
65+},
66+},
67+};
68+};
4569const api: any = {
46-pluginConfig: {
47-agents: ["main"],
48-logging: true,
70+get pluginConfig() {
71+return pluginConfig;
72+},
73+set pluginConfig(nextPluginConfig: Record<string, unknown>) {
74+syncRuntimePluginConfig(nextPluginConfig);
4975},
5076config: {},
5177id: "active-memory",
@@ -93,10 +119,10 @@ describe("active-memory plugin", () => {
93119},
94120},
95121};
96-api.pluginConfig = {
122+syncRuntimePluginConfig({
97123agents: ["main"],
98124logging: true,
99-};
125+});
100126api.config = {
101127agents: {
102128defaults: {
@@ -310,6 +336,35 @@ describe("active-memory plugin", () => {
310336expect(runEmbeddedPiAgent).toHaveBeenCalledTimes(1);
311337});
312338339+it("uses live runtime config for before_prompt_build enablement", async () => {
340+configFile = {
341+plugins: {
342+entries: {
343+"active-memory": {
344+enabled: true,
345+config: {
346+enabled: false,
347+agents: ["main"],
348+},
349+},
350+},
351+},
352+};
353+354+const result = await hooks.before_prompt_build(
355+{ prompt: "what wings should i order after a live config disable?", messages: [] },
356+{
357+agentId: "main",
358+trigger: "user",
359+sessionKey: "agent:main:live-config-disable",
360+messageProvider: "webchat",
361+},
362+);
363+364+expect(result).toBeUndefined();
365+expect(runEmbeddedPiAgent).not.toHaveBeenCalled();
366+});
367+313368it("does not run for agents that are not explicitly targeted", async () => {
314369const result = await hooks.before_prompt_build(
315370{ prompt: "what wings should i order?", messages: [] },
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。