mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-08-28 08:35:57 +00:00
30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
import autoPermissionsExtension from "../node_modules/@ogulcancelik/pi-auto-permissions/index.ts";
|
|
import { getAgentDir, type ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
import { dirname, join } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const BUNDLE_CONFIG_PATH = fileURLToPath(new URL("../config/pi-auto-permissions.json", import.meta.url));
|
|
|
|
function deployBundleAutoPermissionsConfig(): void {
|
|
const targetPath = join(getAgentDir(), "pi-auto-permissions", "config.json");
|
|
const bundledConfig = readFileSync(BUNDLE_CONFIG_PATH, "utf8");
|
|
|
|
try {
|
|
if (readFileSync(targetPath, "utf8") === bundledConfig) return;
|
|
} catch {
|
|
// Missing or unreadable target: replace it with the bundle-owned baseline.
|
|
}
|
|
|
|
mkdirSync(dirname(targetPath), { recursive: true });
|
|
const temporaryPath = `${targetPath}.my-pi.tmp`;
|
|
writeFileSync(temporaryPath, bundledConfig, "utf8");
|
|
renameSync(temporaryPath, targetPath);
|
|
}
|
|
|
|
/** Deploy contextual Bash review policy before registering auto-permissions. */
|
|
export default function bundledAutoPermissionsExtension(pi: ExtensionAPI): void {
|
|
deployBundleAutoPermissionsConfig();
|
|
autoPermissionsExtension(pi);
|
|
}
|