@bengabay94/mrzero 0.1.1-alpha.1 → 0.2.0-alpha.2

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 (45) hide show
  1. package/agents/templates/MrZeroExploitDeveloper.template.md +258 -0
  2. package/agents/templates/MrZeroMapperOS.template.md +180 -0
  3. package/agents/templates/MrZeroVulnHunterOS.template.md +174 -0
  4. package/dist/commands/install.d.ts.map +1 -1
  5. package/dist/commands/install.js +137 -44
  6. package/dist/commands/install.js.map +1 -1
  7. package/dist/commands/uninstall.d.ts.map +1 -1
  8. package/dist/commands/uninstall.js +12 -11
  9. package/dist/commands/uninstall.js.map +1 -1
  10. package/dist/config/agents.d.ts +0 -4
  11. package/dist/config/agents.d.ts.map +1 -1
  12. package/dist/config/agents.js +4 -22
  13. package/dist/config/agents.js.map +1 -1
  14. package/dist/config/tool-strings.d.ts +33 -0
  15. package/dist/config/tool-strings.d.ts.map +1 -0
  16. package/dist/config/tool-strings.js +148 -0
  17. package/dist/config/tool-strings.js.map +1 -0
  18. package/dist/config/tools.d.ts +2 -1
  19. package/dist/config/tools.d.ts.map +1 -1
  20. package/dist/config/tools.js +21 -24
  21. package/dist/config/tools.js.map +1 -1
  22. package/dist/installer/docker.d.ts.map +1 -1
  23. package/dist/installer/docker.js +12 -13
  24. package/dist/installer/docker.js.map +1 -1
  25. package/dist/installer/launcher.d.ts +13 -0
  26. package/dist/installer/launcher.d.ts.map +1 -0
  27. package/dist/installer/launcher.js +142 -0
  28. package/dist/installer/launcher.js.map +1 -0
  29. package/dist/installer/mcp.d.ts.map +1 -1
  30. package/dist/installer/mcp.js +2 -50
  31. package/dist/installer/mcp.js.map +1 -1
  32. package/dist/installer/platforms.d.ts +3 -3
  33. package/dist/installer/platforms.d.ts.map +1 -1
  34. package/dist/installer/platforms.js +92 -17
  35. package/dist/installer/platforms.js.map +1 -1
  36. package/dist/installer/template-renderer.d.ts +28 -0
  37. package/dist/installer/template-renderer.d.ts.map +1 -0
  38. package/dist/installer/template-renderer.js +210 -0
  39. package/dist/installer/template-renderer.js.map +1 -0
  40. package/dist/utils/platform.d.ts +10 -0
  41. package/dist/utils/platform.d.ts.map +1 -1
  42. package/dist/utils/platform.js +64 -1
  43. package/dist/utils/platform.js.map +1 -1
  44. package/docker/Dockerfile +37 -15
  45. package/package.json +1 -1
@@ -41,13 +41,21 @@ exports.getHomeDir = getHomeDir;
41
41
  exports.getMrZeroDir = getMrZeroDir;
42
42
  exports.getMcpServersDir = getMcpServersDir;
43
43
  exports.getWrappersDir = getWrappersDir;
44
+ exports.getLauncherPath = getLauncherPath;
45
+ exports.getLauncherBinaryName = getLauncherBinaryName;
44
46
  exports.getClaudeConfigDir = getClaudeConfigDir;
45
47
  exports.getClaudeAgentsDir = getClaudeAgentsDir;
46
48
  exports.getOpenCodeConfigDir = getOpenCodeConfigDir;
47
49
  exports.getOpenCodeAgentsDir = getOpenCodeAgentsDir;
48
50
  exports.getDistroInfo = getDistroInfo;
51
+ exports.getArch = getArch;
52
+ exports.isArm64 = isArm64;
53
+ exports.isX64 = isX64;
54
+ exports.isLinuxArm64 = isLinuxArm64;
55
+ exports.getPackageVersion = getPackageVersion;
49
56
  const os = __importStar(require("os"));
50
57
  const path = __importStar(require("path"));
58
+ const fs = __importStar(require("fs"));
51
59
  function getPlatform() {
52
60
  const platform = os.platform();
53
61
  if (platform === 'linux' || platform === 'darwin' || platform === 'win32') {
@@ -74,7 +82,30 @@ function getMcpServersDir() {
74
82
  return path.join(getMrZeroDir(), 'mcp-servers');
75
83
  }
76
84
  function getWrappersDir() {
77
- return path.join(getHomeDir(), '.local', 'bin');
85
+ return path.join(getHomeDir(), '.local', 'bin', 'mrzero-tools');
86
+ }
87
+ function getLauncherPath() {
88
+ return path.join(getHomeDir(), '.local', 'bin', 'mrzero');
89
+ }
90
+ function getLauncherBinaryName() {
91
+ const platform = os.platform(); // 'linux', 'darwin', 'win32'
92
+ const arch = os.arch(); // 'x64', 'arm64'
93
+ const osMap = {
94
+ 'linux': 'linux',
95
+ 'darwin': 'darwin',
96
+ 'win32': 'windows',
97
+ };
98
+ const archMap = {
99
+ 'x64': 'amd64',
100
+ 'arm64': 'arm64',
101
+ };
102
+ const goos = osMap[platform];
103
+ const goarch = archMap[arch];
104
+ if (!goos || !goarch) {
105
+ throw new Error(`Unsupported platform: ${platform}-${arch}`);
106
+ }
107
+ const ext = platform === 'win32' ? '.exe' : '';
108
+ return `mrzero-${goos}-${goarch}${ext}`;
78
109
  }
79
110
  function getClaudeConfigDir() {
80
111
  return path.join(getHomeDir(), '.claude');
@@ -107,4 +138,36 @@ function getDistroInfo() {
107
138
  catch { }
108
139
  return null;
109
140
  }
141
+ function getArch() {
142
+ return os.arch();
143
+ }
144
+ function isArm64() {
145
+ return os.arch() === 'arm64';
146
+ }
147
+ function isX64() {
148
+ return os.arch() === 'x64';
149
+ }
150
+ function isLinuxArm64() {
151
+ return isLinux() && isArm64();
152
+ }
153
+ /**
154
+ * Get the current package version from package.json
155
+ */
156
+ function getPackageVersion() {
157
+ try {
158
+ // Try to find package.json relative to this file
159
+ const packagePaths = [
160
+ path.join(__dirname, '..', '..', 'package.json'),
161
+ path.join(__dirname, '..', '..', '..', 'package.json'),
162
+ ];
163
+ for (const packagePath of packagePaths) {
164
+ if (fs.existsSync(packagePath)) {
165
+ const pkg = JSON.parse(fs.readFileSync(packagePath, 'utf-8'));
166
+ return pkg.version;
167
+ }
168
+ }
169
+ }
170
+ catch { }
171
+ return 'latest';
172
+ }
110
173
  //# sourceMappingURL=platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,kCAMC;AAED,0BAEC;AAED,sBAEC;AAED,8BAEC;AAED,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,wCAEC;AAED,gDAEC;AAED,gDAEC;AAED,oDAEC;AAED,oDAEC;AAED,sCAiBC;AA1ED,uCAAyB;AACzB,2CAA6B;AAI7B,SAAgB,WAAW;IACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAgB,OAAO;IACrB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;AACnC,CAAC;AAED,SAAgB,KAAK;IACnB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC;AACpC,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;AACnC,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,aAAa;IAC3B,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACtC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;gBACjC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;aACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"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"}
package/docker/Dockerfile CHANGED
@@ -43,7 +43,8 @@ WORKDIR /tools
43
43
  # Gitleaks - Secrets scanning
44
44
  # ============================================
45
45
  RUN GITLEAKS_VERSION=$(curl -sL https://api.github.com/repos/gitleaks/gitleaks/releases/latest | jq -r '.tag_name' | sed 's/v//') && \
46
- curl -sSL "https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz" | tar xz -C /usr/local/bin gitleaks
46
+ ARCH=$(uname -m | sed 's/x86_64/x64/;s/aarch64/arm64/') && \
47
+ curl -sSL "https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_${ARCH}.tar.gz" | tar xz -C /usr/local/bin gitleaks
47
48
 
48
49
  # ============================================
49
50
  # Trivy - Vulnerability scanning
@@ -63,16 +64,25 @@ RUN curl -fsSL https://raw.githubusercontent.com/opengrep/opengrep/main/install.
63
64
  # ============================================
64
65
  # Slither - Solidity smart contract analysis
65
66
  # ============================================
66
- RUN uv pip install --system slither-analyzer solc-select
67
+ RUN uv tool install slither-analyzer
68
+ RUN uv tool install solc-select
69
+ ENV PATH="/root/.local/bin:$PATH"
67
70
  RUN solc-select install latest && solc-select use latest
68
71
 
69
72
  # ============================================
70
73
  # CodeQL - Semantic code analysis
71
- # ============================================
72
- RUN mkdir -p /opt/codeql && \
73
- curl -sSL -o /tmp/codeql.zip https://github.com/github/codeql-cli-binaries/releases/latest/download/codeql-linux64.zip && \
74
- unzip -q /tmp/codeql.zip -d /opt && \
75
- rm /tmp/codeql.zip
74
+ # Note: CodeQL only provides linux64 (x86_64), skip on ARM64
75
+ # ============================================
76
+ RUN ARCH=$(uname -m) && \
77
+ if [ "$ARCH" = "x86_64" ]; then \
78
+ mkdir -p /opt/codeql && \
79
+ CODEQL_VERSION=$(curl -sL https://api.github.com/repos/github/codeql-action/releases/latest | jq -r '.tag_name') && \
80
+ curl -sSL -o /tmp/codeql.tar.gz "https://github.com/github/codeql-action/releases/download/${CODEQL_VERSION}/codeql-bundle-linux64.tar.gz" && \
81
+ tar xzf /tmp/codeql.tar.gz -C /opt && \
82
+ rm /tmp/codeql.tar.gz; \
83
+ else \
84
+ echo "CodeQL not available for $ARCH, skipping"; \
85
+ fi
76
86
  ENV PATH="/opt/codeql:$PATH"
77
87
 
78
88
  # ============================================
@@ -87,13 +97,17 @@ ENV PATH="/opt/joern/joern-cli:$PATH"
87
97
 
88
98
  # ============================================
89
99
  # Infer - Static analysis (Facebook)
100
+ # Note: Infer only provides linux-x86_64, skip on ARM64
90
101
  # ============================================
91
- # Note: Infer doesn't support /releases/latest/download/ pattern due to version in filename
92
- # Using specific version to avoid API rate limits
93
- RUN curl -sSL -o /tmp/infer.tar.xz https://github.com/facebook/infer/releases/download/v1.2.0/infer-linux-x86_64-v1.2.0.tar.xz && \
94
- tar xJf /tmp/infer.tar.xz -C /opt && \
95
- rm /tmp/infer.tar.xz && \
96
- ln -s /opt/infer-*/bin/infer /usr/local/bin/infer
102
+ RUN ARCH=$(uname -m) && \
103
+ if [ "$ARCH" = "x86_64" ]; then \
104
+ curl -sSL -o /tmp/infer.tar.xz https://github.com/facebook/infer/releases/download/v1.2.0/infer-linux-x86_64-v1.2.0.tar.xz && \
105
+ tar xJf /tmp/infer.tar.xz -C /opt && \
106
+ rm /tmp/infer.tar.xz && \
107
+ ln -s /opt/infer-*/bin/infer /usr/local/bin/infer; \
108
+ else \
109
+ echo "Infer not available for $ARCH, skipping"; \
110
+ fi
97
111
 
98
112
  # ============================================
99
113
  # Linguist - Language detection
@@ -101,9 +115,17 @@ RUN curl -sSL -o /tmp/infer.tar.xz https://github.com/facebook/infer/releases/do
101
115
  RUN gem install github-linguist
102
116
 
103
117
  # ============================================
104
- # Tree-sitter - Syntax parsing
118
+ # Exploitation Tools
105
119
  # ============================================
106
- RUN uv pip install --system tree-sitter
120
+
121
+ # pwntools - CTF framework and exploit development
122
+ RUN uv tool install pwntools
123
+
124
+ # Ropper - ROP gadget finder
125
+ RUN uv tool install ropper
126
+
127
+ # one_gadget - Find one-shot RCE gadgets in libc
128
+ RUN gem install one_gadget
107
129
 
108
130
  # ============================================
109
131
  # Cleanup
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bengabay94/mrzero",
3
- "version": "0.1.1-alpha.1",
3
+ "version": "0.2.0-alpha.2",
4
4
  "description": "AI-powered security research agents for vulnerability hunting and exploit development",
5
5
  "main": "dist/index.js",
6
6
  "bin": {