Files
english/.opencode/plugin/privacy-block.ts
2026-04-12 01:06:31 +07:00

33 lines
965 B
TypeScript

import type { Plugin } from "@opencode-ai/plugin";
// Import shared CJS module
const { checkPrivacy } = require("./lib/privacy-checker.cjs");
/**
* Privacy Block Plugin - Block access to sensitive files
*
* Equivalent to Claude's privacy-block.cjs hook.
* Blocks .env, credentials, keys unless explicitly approved.
*/
export const PrivacyBlockPlugin: Plugin = async ({ directory }) => {
return {
"tool.execute.before": async (input: any, output: any) => {
const result = checkPrivacy({
toolName: input.tool,
toolInput: output.args,
options: { configDir: `${directory}/.opencode` }
});
if (result.blocked && !result.approved) {
throw new Error(
`[Privacy Block] Access to ${result.filePath} requires approval.\n` +
`File may contain sensitive data (API keys, passwords).\n` +
`Reason: ${result.reason}`
);
}
}
};
};
export default PrivacyBlockPlugin;