fix(plugins): read the mem0 CLI key and ignore unexpanded host placeholders
The Python plugin core and the opencode, pi and deepseek plugins now fall back to the key `mem0 init` saves in ~/.mem0/config.json, so a configured CLI is enough to authenticate. The Python core also stops using or caching a literal ${api_key} left behind when a host (Cursor) does not expand its plugin variables, which is what kept asking for auth after the key was set.
Fixes #7346
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
||||
import * as fs from "node:fs";
|
||||
import * as path from "node:path";
|
||||
import { loadConfig } from "../src/config/index.ts";
|
||||
|
||||
vi.mock("node:fs");
|
||||
@@ -33,6 +34,17 @@ describe("loadConfig", () => {
|
||||
expect(config.apiKey).toBe("");
|
||||
});
|
||||
|
||||
it("falls back to the key mem0 init saved", () => {
|
||||
delete process.env.MEM0_API_KEY;
|
||||
vi.mocked(fs.readFileSync).mockImplementation((file) => {
|
||||
if (String(file).endsWith(path.join(".mem0", "config.json"))) {
|
||||
return JSON.stringify({ platform: { api_key: "m0-cli-key" } });
|
||||
}
|
||||
throw new Error("ENOENT");
|
||||
});
|
||||
expect(loadConfig().apiKey).toBe("m0-cli-key");
|
||||
});
|
||||
|
||||
it("reads config file and merges with defaults", () => {
|
||||
delete process.env.MEM0_API_KEY;
|
||||
delete process.env.MEM0_USER_ID;
|
||||
|
||||
Reference in New Issue
Block a user