diff --git a/dot_pi/agent/extensions/project-trust/index.ts b/dot_pi/agent/extensions/project-trust/index.ts new file mode 100644 index 00000000..51665163 --- /dev/null +++ b/dot_pi/agent/extensions/project-trust/index.ts @@ -0,0 +1,26 @@ +import os from "node:os"; +import path from "node:path"; +import type { + ExtensionAPI, + ProjectTrustEventResult, +} from "@earendil-works/pi-coding-agent"; + +const trustedRoots = [ + path.join(os.homedir(), "Code/onomondo"), + path.join(os.homedir(), "Code/joelazar"), + path.join(os.homedir(), ".local/share/chezmoi"), +].map((root) => path.resolve(root)); + +function isTrustedPath(cwd: string): boolean { + const resolved = path.resolve(cwd); + return trustedRoots.some( + (root) => resolved === root || resolved.startsWith(`${root}${path.sep}`), + ); +} + +export default function (pi: ExtensionAPI) { + pi.on("project_trust", async (event): Promise => { + if (!isTrustedPath(event.cwd)) return { trusted: "undecided" }; + return { trusted: "yes", remember: true }; + }); +}