mirror of
https://github.com/affaan-m/ECC.git
synced 2026-10-26 18:35:05 +00:00
30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
#!/usr/bin/env node
|
|
const { readStdin, hookEnabled } = require('./adapter');
|
|
readStdin().then(raw => {
|
|
if (!hookEnabled('pre:prompt:secret-warning', ['minimal', 'standard', 'strict'])) {
|
|
process.stdout.write(raw);
|
|
return;
|
|
}
|
|
try {
|
|
const input = JSON.parse(raw);
|
|
const prompt = input.prompt || input.content || input.message || '';
|
|
const secretPatterns = [
|
|
/sk-[a-zA-Z0-9]{20,}/, // OpenAI API keys
|
|
/ghp_[a-zA-Z0-9]{36,}/, // GitHub personal access tokens
|
|
/AKIA[A-Z0-9]{16}/, // AWS access keys
|
|
/xox[bpsa]-[a-zA-Z0-9-]+/, // Slack tokens
|
|
/-----BEGIN (RSA |EC )?PRIVATE KEY-----/, // Private keys
|
|
];
|
|
for (const pattern of secretPatterns) {
|
|
if (pattern.test(prompt)) {
|
|
console.error('[ECC] WARNING: Potential secret detected in prompt!');
|
|
console.error('[ECC] Remove secrets before submitting. Use environment variables instead.');
|
|
break;
|
|
}
|
|
}
|
|
} catch {
|
|
// This warning hook remains advisory when Cursor sends malformed input.
|
|
}
|
|
process.stdout.write(raw);
|
|
}).catch(() => process.exit(0));
|