jailbreakr 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +71 -0
  2. package/package.json +12 -0
package/index.js ADDED
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env node
2
+ const fs = require('fs');
3
+ const glob = require('glob');
4
+ const axios = require('axios');
5
+
6
+ async function run() {
7
+ const args = process.argv.slice(2);
8
+ const command = args[0] || 'scan'; // default to scan
9
+
10
+ const userApiKey = process.env.JAILBREAKR_KEY;
11
+ if (!userApiKey) {
12
+ console.log("āŒ Error: Please set your JAILBREAKR_KEY in your environment variables.");
13
+ console.log("Example: JAILBREAKR_KEY=your_key npx jailbreakr scan");
14
+ return;
15
+ }
16
+
17
+ console.log("\nšŸ” [Jailbreakr] Scanning project files for prompt & security flaws...");
18
+
19
+ // Search for local JS, TS, and Python files
20
+ const files = glob.sync("**/*.{js,ts,py}", { ignore: "node_modules/**" });
21
+ let codeSnippets = [];
22
+
23
+ files.forEach(file => {
24
+ const content = fs.readFileSync(file, 'utf8');
25
+ if (content.includes("system") || content.includes("prompt") || content.includes("openai") || content.includes("anthropic")) {
26
+ codeSnippets.push({ file, snippet: content.slice(0, 1500) });
27
+ }
28
+ });
29
+
30
+ if (codeSnippets.length === 0) {
31
+ console.log("āš ļø No AI system prompts or LLM configurations detected in local files.");
32
+ return;
33
+ }
34
+
35
+ try {
36
+ // Send snippets to your live Vercel Backend API
37
+ const response = await axios.post('https://jailbreakr-backend.vercel.app/api/scan', {
38
+ apiKey: userApiKey,
39
+ codeSnippets
40
+ });
41
+
42
+ const { userPlan, analysis } = response.data;
43
+
44
+ console.log("\n================ JAILBREAKR SECURITY AUDIT ================");
45
+ console.log(`šŸ›”ļø Hacker Vulnerability Score: ${analysis.vulnerabilityScore}/100`);
46
+ console.log(`āš–ļø Legal Liability Risk Score: ${analysis.legalScore}/100`);
47
+ console.log("\nšŸ“‹ Flaws Found:");
48
+ if (analysis.vulnerabilities && analysis.vulnerabilities.length > 0) {
49
+ analysis.vulnerabilities.forEach(v => console.log(` - ${v}`));
50
+ } else {
51
+ console.log(" - No major flaws detected!");
52
+ }
53
+
54
+ if (command === 'fix') {
55
+ if (userPlan !== 'pro') {
56
+ console.log("\nšŸ”’ Auto-fix is a PRO feature!");
57
+ console.log("šŸ‘‰ Upgrade at https://jailbreakr.com to unlock automated prompt patching.");
58
+ } else {
59
+ console.log("\nāœ… [PRO] Automated fixes for your code:");
60
+ console.log(analysis.fixes || "No patches required.");
61
+ }
62
+ } else {
63
+ console.log("\nšŸ’” Tip: Run `JAILBREAKR_KEY=... npx jailbreakr fix` to automatically patch these flaws.");
64
+ }
65
+
66
+ } catch (err) {
67
+ console.error("\nāŒ Scan failed:", err.response?.data?.message || err.message);
68
+ }
69
+ }
70
+
71
+ run();
package/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "jailbreakr",
3
+ "version": "1.0.0",
4
+ "description": "AI Security and Legal Risk CLI Scanner",
5
+ "bin": {
6
+ "jailbreakr": "./index.js"
7
+ },
8
+ "dependencies": {
9
+ "axios": "^1.6.0",
10
+ "glob": "^10.0.0"
11
+ }
12
+ }