fix(opencode-plugin): recover MEM0_API_KEY from shell profiles (#6404)

This commit is contained in:
Rod Boev
2026-07-20 20:41:41 +05:30
committed by GitHub
parent 8a57967c8a
commit b05cce581b
3 changed files with 185 additions and 1 deletions
@@ -0,0 +1,30 @@
import {readFileSync} from "fs";
import {homedir} from "os";
import {join} from "path";
const PROFILE_FILES = [".zshrc", ".bashrc", ".zprofile", ".bash_profile", ".profile"];
export function parseApiKeyLine(line: string): string | undefined {
const match = line.match(/^\s*(?:export\s+)?MEM0_API_KEY=(.*)$/);
if (!match) return undefined;
const value = match[1].replace(/#.*$/, "").trim().replace(/^("|')(.*)\1$/, "$2").trim();
return value && !value.startsWith("$") ? value : undefined;
}
export function resolveApiKey(env: NodeJS.ProcessEnv = process.env, homeDir = homedir()): string {
const explicit = env.MEM0_API_KEY?.trim();
if (explicit) return explicit;
for (const profile of PROFILE_FILES) {
try {
for (const line of readFileSync(join(homeDir, profile), "utf8").split(/\r?\n/)) {
const key = parseApiKeyLine(line);
if (key) return key;
}
} catch {
}
}
return "";
}