@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
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /**
3
+ * Tool strings for agent template rendering.
4
+ *
5
+ * Each agent has a set of tools, and each tool has multiple placeholder strings
6
+ * that get inserted into the agent's system prompt template based on what
7
+ * tools the user chose to install.
8
+ *
9
+ * Placeholder naming convention:
10
+ * - TOOL_LIST_{TOOLNAME}: Tool description in the "available tools" list
11
+ * - TOOL_USAGE_{TOOLNAME}: How to use the tool in methodology sections
12
+ * - TOOL_RESULTS_{TOOLNAME}: Tool results section in report templates
13
+ * - TOOL_DESC_{TOOLNAME}: Additional tool description paragraphs
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.TOOL_STRINGS = void 0;
17
+ exports.getAgentToolStrings = getAgentToolStrings;
18
+ exports.getToolStrings = getToolStrings;
19
+ exports.getAgentTools = getAgentTools;
20
+ exports.TOOL_STRINGS = {
21
+ // ============================================================================
22
+ // MrZeroMapperOS - Attack Surface Mapping Agent
23
+ // ============================================================================
24
+ MrZeroMapperOS: {
25
+ opengrep: {
26
+ TOOL_LIST_OPENGREP: ' - **opengrep**: Pattern-based code analysis for vulnerability detection',
27
+ TOOL_USAGE_OPENGREP: '- Execute opengrep with security rulesets for the detected languages',
28
+ TOOL_RESULTS_OPENGREP: `### opengrep
29
+ [Summary of pattern-based findings]`,
30
+ },
31
+ gitleaks: {
32
+ TOOL_LIST_GITLEAKS: ' - **Gitleaks**: Scanning for hardcoded secrets and sensitive data',
33
+ TOOL_RESULTS_GITLEAKS: `### Gitleaks
34
+ [Summary of secrets scanning results]`,
35
+ },
36
+ codeql: {
37
+ TOOL_LIST_CODEQL: ' - **CodeQL**: Deep semantic code analysis and taint tracking',
38
+ TOOL_USAGE_CODEQL: '- Run CodeQL queries focused on taint analysis and injection vulnerabilities',
39
+ TOOL_RESULTS_CODEQL: `### CodeQL
40
+ [Summary of semantic analysis results]`,
41
+ },
42
+ joern: {
43
+ TOOL_LIST_JOERN: ' - **Joern**: Code property graph analysis for security flaws',
44
+ TOOL_USAGE_JOERN: '- Use Joern for control flow and data flow analysis',
45
+ TOOL_RESULTS_JOERN: `### Joern
46
+ [Summary of code property graph analysis]`,
47
+ },
48
+ bearer: {
49
+ TOOL_LIST_BEARER: ' - **Bearer**: Security and privacy scanning for sensitive data flows',
50
+ TOOL_USAGE_BEARER: '- Execute Bearer to identify sensitive data handling',
51
+ TOOL_RESULTS_BEARER: `### Bearer
52
+ [Summary of sensitive data flow findings]`,
53
+ },
54
+ linguist: {
55
+ TOOL_LIST_LINGUIST: ' - **Linguist**: Language detection and codebase composition analysis',
56
+ TOOL_USAGE_LINGUIST: '- Run Linguist to understand language composition',
57
+ },
58
+ },
59
+ // ============================================================================
60
+ // MrZeroVulnHunterOS - Vulnerability Hunting Agent
61
+ // ============================================================================
62
+ MrZeroVulnHunterOS: {
63
+ opengrep: {
64
+ TOOL_DESC_OPENGREP: `**Opengrep**: Use for pattern-based detection of common vulnerability patterns across multiple languages. Excellent for finding injection flaws, authentication issues, and cryptographic mistakes.`,
65
+ },
66
+ codeql: {
67
+ TOOL_DESC_CODEQL: `**CodeQL**: Deploy for deep semantic analysis and data flow tracking. Use to trace attacker-controlled input through the codebase to sensitive sinks.`,
68
+ },
69
+ joern: {
70
+ TOOL_DESC_JOERN: `**Joern**: Utilize for code property graph analysis, especially effective for discovering complex control-flow and data-flow vulnerabilities in C/C++ code.`,
71
+ },
72
+ infer: {
73
+ TOOL_DESC_INFER: `**Infer**: Apply for static analysis of memory safety issues, null pointer dereferences, and resource leaks in Java, C, C++, and Objective-C. Note: Only available on x86_64 Linux.`,
74
+ },
75
+ gitleaks: {
76
+ TOOL_DESC_GITLEAKS: `**Gitleaks**: Scan for accidentally committed secrets, private keys, API tokens, and sensitive credentials in git history.`,
77
+ },
78
+ slither: {
79
+ TOOL_DESC_SLITHER: `**Slither**: Use exclusively for Solidity smart contract analysis. Essential for detecting reentrancy, oracle manipulation, and other DeFi-specific vulnerabilities.`,
80
+ },
81
+ trivy: {
82
+ TOOL_DESC_TRIVY: `**Trivy**: Employ for dependency and container vulnerability scanning to identify known CVEs in third-party libraries.`,
83
+ },
84
+ },
85
+ // ============================================================================
86
+ // MrZeroExploitDeveloper - Exploit Development Agent
87
+ // ============================================================================
88
+ MrZeroExploitDeveloper: {
89
+ // CLI Tools
90
+ pwntools: {
91
+ TOOL_LIST_PWNTOOLS: '- **pwntools**: Python exploitation framework for CTF and exploit development',
92
+ TOOL_USAGE_PWNTOOLS: '- Use pwntools as the primary framework for binary exploitation',
93
+ },
94
+ ropper: {
95
+ TOOL_LIST_ROPPER: '- **ROPgadget/Ropper**: ROP chain gadget finder and builder',
96
+ TOOL_USAGE_ROPPER: '- Build ROP chains using ROPgadget and one_gadget findings or ropper via pwntools framework',
97
+ },
98
+ one_gadget: {
99
+ TOOL_LIST_ONEGADGET: '- **one_gadget**: Find one-shot RCE gadgets in libc',
100
+ },
101
+ // System tools (detected, not installed by us)
102
+ checksec: {
103
+ TOOL_LIST_CHECKSEC: '- **Standard Linux utilities**: objdump, readelf, checksec, strings, nm, ldd',
104
+ },
105
+ // MCP Servers
106
+ 'pwndbg-mcp': {
107
+ TOOL_LIST_PWNDBG: '- **GDB with pwndbg plugin**: Dynamic analysis, debugging, memory inspection (Linux)',
108
+ TOOL_USAGE_PWNDBG: '- Debug failures using GDB/pwndbg',
109
+ TOOL_DEBUG_PWNDBG: `### Debugging Integration
110
+ \`\`\`python
111
+ # Attach GDB for debugging
112
+ p = gdb.debug('./vulnerable', '''
113
+ break *main+100
114
+ continue
115
+ ''')
116
+ \`\`\``,
117
+ },
118
+ 'ghidra-mcp': {
119
+ TOOL_LIST_GHIDRA: '- **Ghidra**: Static analysis and reverse engineering disassembler',
120
+ },
121
+ 'metasploit-mcp': {
122
+ TOOL_LIST_METASPLOIT: '- **Metasploit Framework**: Exploit modules, payloads, encoders, and post-exploitation',
123
+ },
124
+ 'ida-pro-mcp': {
125
+ TOOL_LIST_IDA: '- **IDA Pro**: Advanced disassembler for static analysis and reverse engineering',
126
+ },
127
+ },
128
+ };
129
+ /**
130
+ * Get all tool strings for a specific agent
131
+ */
132
+ function getAgentToolStrings(agentName) {
133
+ return exports.TOOL_STRINGS[agentName];
134
+ }
135
+ /**
136
+ * Get tool strings for a specific tool within an agent
137
+ */
138
+ function getToolStrings(agentName, toolName) {
139
+ return exports.TOOL_STRINGS[agentName]?.[toolName];
140
+ }
141
+ /**
142
+ * Get all tools that have strings defined for a specific agent
143
+ */
144
+ function getAgentTools(agentName) {
145
+ const agentStrings = exports.TOOL_STRINGS[agentName];
146
+ return agentStrings ? Object.keys(agentStrings) : [];
147
+ }
148
+ //# sourceMappingURL=tool-strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-strings.js","sourceRoot":"","sources":["../../src/config/tool-strings.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AA6HH,kDAEC;AAKD,wCAEC;AAKD,sCAGC;AApIY,QAAA,YAAY,GAAqC;IAC5D,+EAA+E;IAC/E,gDAAgD;IAChD,+EAA+E;IAC/E,cAAc,EAAE;QACd,QAAQ,EAAE;YACR,kBAAkB,EAAE,4EAA4E;YAChG,mBAAmB,EAAE,sEAAsE;YAC3F,qBAAqB,EAAE;oCACO;SAC/B;QACD,QAAQ,EAAE;YACR,kBAAkB,EAAE,sEAAsE;YAC1F,qBAAqB,EAAE;sCACS;SACjC;QACD,MAAM,EAAE;YACN,gBAAgB,EAAE,iEAAiE;YACnF,iBAAiB,EAAE,8EAA8E;YACjG,mBAAmB,EAAE;uCACY;SAClC;QACD,KAAK,EAAE;YACL,eAAe,EAAE,iEAAiE;YAClF,gBAAgB,EAAE,qDAAqD;YACvE,kBAAkB,EAAE;0CACgB;SACrC;QACD,MAAM,EAAE;YACN,gBAAgB,EAAE,yEAAyE;YAC3F,iBAAiB,EAAE,sDAAsD;YACzE,mBAAmB,EAAE;0CACe;SACrC;QACD,QAAQ,EAAE;YACR,kBAAkB,EAAE,yEAAyE;YAC7F,mBAAmB,EAAE,mDAAmD;SACzE;KACF;IAED,+EAA+E;IAC/E,mDAAmD;IACnD,+EAA+E;IAC/E,kBAAkB,EAAE;QAClB,QAAQ,EAAE;YACR,kBAAkB,EAAE,qMAAqM;SAC1N;QACD,MAAM,EAAE;YACN,gBAAgB,EAAE,uJAAuJ;SAC1K;QACD,KAAK,EAAE;YACL,eAAe,EAAE,6JAA6J;SAC/K;QACD,KAAK,EAAE;YACL,eAAe,EAAE,qLAAqL;SACvM;QACD,QAAQ,EAAE;YACR,kBAAkB,EAAE,4HAA4H;SACjJ;QACD,OAAO,EAAE;YACP,iBAAiB,EAAE,sKAAsK;SAC1L;QACD,KAAK,EAAE;YACL,eAAe,EAAE,wHAAwH;SAC1I;KACF;IAED,+EAA+E;IAC/E,qDAAqD;IACrD,+EAA+E;IAC/E,sBAAsB,EAAE;QACtB,YAAY;QACZ,QAAQ,EAAE;YACR,kBAAkB,EAAE,+EAA+E;YACnG,mBAAmB,EAAE,iEAAiE;SACvF;QACD,MAAM,EAAE;YACN,gBAAgB,EAAE,6DAA6D;YAC/E,iBAAiB,EAAE,6FAA6F;SACjH;QACD,UAAU,EAAE;YACV,mBAAmB,EAAE,qDAAqD;SAC3E;QACD,+CAA+C;QAC/C,QAAQ,EAAE;YACR,kBAAkB,EAAE,8EAA8E;SACnG;QACD,cAAc;QACd,YAAY,EAAE;YACZ,gBAAgB,EAAE,sFAAsF;YACxG,iBAAiB,EAAE,mCAAmC;YACtD,iBAAiB,EAAE;;;;;;;OAOlB;SACF;QACD,YAAY,EAAE;YACZ,gBAAgB,EAAE,oEAAoE;SACvF;QACD,gBAAgB,EAAE;YAChB,oBAAoB,EAAE,wFAAwF;SAC/G;QACD,aAAa,EAAE;YACb,aAAa,EAAE,kFAAkF;SAClG;KACF;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,OAAO,oBAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,SAAiB,EAAE,QAAgB;IAChE,OAAO,oBAAY,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,SAAiB;IAC7C,MAAM,YAAY,GAAG,oBAAY,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC"}
@@ -6,10 +6,11 @@ export interface ToolConfig {
6
6
  checkCommand?: string;
7
7
  installCommand?: string;
8
8
  wrapperName?: string;
9
+ unsupportedOnLinuxArm64?: boolean;
9
10
  }
10
11
  export declare const DOCKER_TOOLS: Record<string, ToolConfig>;
11
12
  export declare const PYTHON_TOOLS: Record<string, ToolConfig>;
12
13
  export declare const RUBY_TOOLS: Record<string, ToolConfig>;
13
14
  export declare const SYSTEM_TOOLS: Record<string, ToolConfig>;
14
- export declare const DOCKER_IMAGE = "ghcr.io/bengabay1994/mrzero-tools:latest";
15
+ export declare const DOCKER_IMAGE: string;
15
16
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAuEnD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAiBnD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CASjD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAwBnD,CAAC;AAEF,eAAO,MAAM,YAAY,6CAA6C,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAyFnD,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAM,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAM,CAAC;AAEzD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAwBnD,CAAC;AAIF,eAAO,MAAM,YAAY,QAAmD,CAAC"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DOCKER_IMAGE = exports.SYSTEM_TOOLS = exports.RUBY_TOOLS = exports.PYTHON_TOOLS = exports.DOCKER_TOOLS = void 0;
4
+ const platform_js_1 = require("../utils/platform.js");
4
5
  exports.DOCKER_TOOLS = {
6
+ // Static Analysis Tools
5
7
  opengrep: {
6
8
  name: 'opengrep',
7
9
  displayName: 'Opengrep',
@@ -19,9 +21,10 @@ exports.DOCKER_TOOLS = {
19
21
  codeql: {
20
22
  name: 'codeql',
21
23
  displayName: 'CodeQL',
22
- description: 'Deep semantic code analysis and taint tracking',
24
+ description: 'Deep semantic code analysis and taint tracking (not available on Linux ARM64)',
23
25
  installMethod: 'docker',
24
26
  wrapperName: 'codeql',
27
+ unsupportedOnLinuxArm64: true,
25
28
  },
26
29
  joern: {
27
30
  name: 'joern',
@@ -33,9 +36,10 @@ exports.DOCKER_TOOLS = {
33
36
  infer: {
34
37
  name: 'infer',
35
38
  displayName: 'Infer',
36
- description: 'Static analysis for memory safety issues',
39
+ description: 'Static analysis for memory safety issues (not available on Linux ARM64)',
37
40
  installMethod: 'docker',
38
41
  wrapperName: 'infer',
42
+ unsupportedOnLinuxArm64: true,
39
43
  },
40
44
  bearer: {
41
45
  name: 'bearer',
@@ -65,42 +69,33 @@ exports.DOCKER_TOOLS = {
65
69
  installMethod: 'docker',
66
70
  wrapperName: 'linguist',
67
71
  },
68
- 'tree-sitter': {
69
- name: 'tree-sitter',
70
- displayName: 'Tree-sitter',
71
- description: 'Syntax tree parsing for code understanding',
72
- installMethod: 'docker',
73
- wrapperName: 'tree-sitter',
74
- },
75
- };
76
- exports.PYTHON_TOOLS = {
72
+ // Exploitation Tools
77
73
  pwntools: {
78
74
  name: 'pwntools',
79
75
  displayName: 'pwntools',
80
76
  description: 'CTF framework and exploit development library',
81
- installMethod: 'uv',
82
- checkCommand: 'pwn version',
83
- installCommand: 'uv tool install --python 3.12 pwntools',
77
+ installMethod: 'docker',
78
+ wrapperName: 'pwn',
84
79
  },
85
80
  ropper: {
86
81
  name: 'ropper',
87
82
  displayName: 'Ropper',
88
83
  description: 'ROP gadget finder and binary analysis',
89
- installMethod: 'uv',
90
- checkCommand: 'ropper --version',
91
- installCommand: 'uv tool install --python 3.12 ropper',
84
+ installMethod: 'docker',
85
+ wrapperName: 'ropper',
92
86
  },
93
- };
94
- exports.RUBY_TOOLS = {
95
87
  one_gadget: {
96
88
  name: 'one_gadget',
97
89
  displayName: 'one_gadget',
98
90
  description: 'Find one-shot RCE gadgets in libc',
99
- installMethod: 'gem',
100
- checkCommand: 'one_gadget --version',
101
- installCommand: 'gem install one_gadget',
91
+ installMethod: 'docker',
92
+ wrapperName: 'one_gadget',
102
93
  },
103
94
  };
95
+ // Keep these for backward compatibility but they're now empty
96
+ // All tools are Docker-based except for MCP-connected tools
97
+ exports.PYTHON_TOOLS = {};
98
+ exports.RUBY_TOOLS = {};
104
99
  exports.SYSTEM_TOOLS = {
105
100
  docker: {
106
101
  name: 'docker',
@@ -112,7 +107,7 @@ exports.SYSTEM_TOOLS = {
112
107
  gdb: {
113
108
  name: 'gdb',
114
109
  displayName: 'GDB',
115
- description: 'GNU Debugger',
110
+ description: 'GNU Debugger (required for pwndbg MCP)',
116
111
  installMethod: 'apt',
117
112
  checkCommand: 'gdb --version',
118
113
  installCommand: 'sudo apt-get install -y gdb',
@@ -126,5 +121,7 @@ exports.SYSTEM_TOOLS = {
126
121
  installCommand: 'sudo apt-get install -y checksec',
127
122
  },
128
123
  };
129
- exports.DOCKER_IMAGE = 'ghcr.io/bengabay1994/mrzero-tools:latest';
124
+ const version = (0, platform_js_1.getPackageVersion)();
125
+ const dockerTag = version === 'latest' ? 'latest' : `v${version}`;
126
+ exports.DOCKER_IMAGE = `ghcr.io/bengabay1994/mrzero-tools:${dockerTag}`;
130
127
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":";;;AAAA,sDAAyD;AAa5C,QAAA,YAAY,GAA+B;IACtD,wBAAwB;IACxB,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,yDAAyD;QACtE,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,UAAU;KACxB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,mDAAmD;QAChE,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,UAAU;KACxB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,+EAA+E;QAC5F,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,QAAQ;QACrB,uBAAuB,EAAE,IAAI;KAC9B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,iDAAiD;QAC9D,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,OAAO;KACrB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,yEAAyE;QACtF,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,OAAO;QACpB,uBAAuB,EAAE,IAAI;KAC9B;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,wDAAwD;QACrE,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,QAAQ;KACtB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,kCAAkC;QAC/C,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,SAAS;KACvB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,iDAAiD;QAC9D,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,OAAO;KACrB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,sDAAsD;QACnE,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,UAAU;KACxB;IACD,qBAAqB;IACrB,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,+CAA+C;QAC5D,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,KAAK;KACnB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,uCAAuC;QACpD,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,QAAQ;KACtB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,mCAAmC;QAChD,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,YAAY;KAC1B;CACF,CAAC;AAEF,8DAA8D;AAC9D,4DAA4D;AAC/C,QAAA,YAAY,GAA+B,EAAE,CAAC;AAE9C,QAAA,UAAU,GAA+B,EAAE,CAAC;AAE5C,QAAA,YAAY,GAA+B;IACtD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,sCAAsC;QACnD,aAAa,EAAE,QAAQ;QACvB,YAAY,EAAE,kBAAkB;KACjC;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,wCAAwC;QACrD,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,eAAe;QAC7B,cAAc,EAAE,6BAA6B;KAC9C;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,gCAAgC;QAC7C,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,oBAAoB;QAClC,cAAc,EAAE,kCAAkC;KACnD;CACF,CAAC;AAEF,MAAM,OAAO,GAAG,IAAA,+BAAiB,GAAE,CAAC;AACpC,MAAM,SAAS,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;AACrD,QAAA,YAAY,GAAG,qCAAqC,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/installer/docker.ts"],"names":[],"mappings":"AA2BA,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAYxD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CA8BzD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO1D;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8C5E;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBtE;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAcnE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO1D"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/installer/docker.ts"],"names":[],"mappings":"AA2BA,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAYxD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CA8BzD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO1D;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4C5E;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBtE;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAcnE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO1D"}
@@ -120,11 +120,12 @@ async function createWrapperScript(toolName) {
120
120
  return false;
121
121
  }
122
122
  const wrappersDir = (0, platform_js_1.getWrappersDir)();
123
- const wrapperPath = path.join(wrappersDir, tool.wrapperName || toolName);
123
+ const wrapperName = tool.wrapperName || toolName;
124
+ const wrapperPath = path.join(wrappersDir, wrapperName);
124
125
  // Ensure wrappers directory exists
125
126
  fs.mkdirSync(wrappersDir, { recursive: true });
126
127
  // Generate wrapper content
127
- let toolCommand = toolName;
128
+ let toolCommand = wrapperName;
128
129
  // Some tools need special handling
129
130
  switch (toolName) {
130
131
  case 'joern':
@@ -136,14 +137,11 @@ async function createWrapperScript(toolName) {
136
137
  case 'linguist':
137
138
  toolCommand = 'github-linguist';
138
139
  break;
139
- case 'tree-sitter':
140
- toolCommand = 'python3 -m tree_sitter';
141
- break;
142
140
  default:
143
- toolCommand = toolName;
141
+ toolCommand = wrapperName;
144
142
  }
145
143
  const wrapperContent = WRAPPER_TEMPLATE
146
- .replace(/{{TOOL_NAME}}/g, toolName)
144
+ .replace(/{{TOOL_NAME}}/g, wrapperName)
147
145
  .replace(/{{TOOL_COMMAND}}/g, toolCommand);
148
146
  try {
149
147
  fs.writeFileSync(wrapperPath, wrapperContent, { mode: 0o755 });
@@ -151,7 +149,7 @@ async function createWrapperScript(toolName) {
151
149
  return true;
152
150
  }
153
151
  catch (error) {
154
- logger_js_1.logger.error(`Failed to create wrapper for ${toolName}: ${error}`);
152
+ logger_js_1.logger.error(`Failed to create wrapper for ${wrapperName}: ${error}`);
155
153
  return false;
156
154
  }
157
155
  }
@@ -159,16 +157,17 @@ async function createAllWrappers(tools) {
159
157
  logger_js_1.logger.header('Installing CLI wrappers');
160
158
  const wrappersDir = (0, platform_js_1.getWrappersDir)();
161
159
  logger_js_1.logger.info(`Wrappers directory: ${wrappersDir}`);
162
- for (const tool of tools) {
163
- await createWrapperScript(tool);
160
+ for (const toolName of tools) {
161
+ await createWrapperScript(toolName);
164
162
  }
165
163
  // Check if wrappers dir is in PATH
166
164
  const pathEnv = process.env.PATH || '';
167
165
  if (!pathEnv.includes(wrappersDir)) {
168
166
  logger_js_1.logger.blank();
169
- logger_js_1.logger.warning(`${wrappersDir} is not in your PATH`);
170
- logger_js_1.logger.info(`Add this to your shell config (~/.bashrc or ~/.zshrc):`);
171
- logger_js_1.logger.info(` export PATH="$HOME/.local/bin:$PATH"`);
167
+ logger_js_1.logger.info(`Note: Tools installed to ${wrappersDir}`);
168
+ logger_js_1.logger.info(`Use the MrZero launcher to ensure correct PATH:`);
169
+ logger_js_1.logger.info(` mrzero opencode`);
170
+ logger_js_1.logger.info(` mrzero claude`);
172
171
  }
173
172
  }
174
173
  async function removeWrappers(tools) {
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/installer/docker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/installer/docker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Download and install the MrZero launcher binary
3
+ */
4
+ export declare function downloadLauncher(): Promise<boolean>;
5
+ /**
6
+ * Remove the MrZero launcher binary
7
+ */
8
+ export declare function removeLauncher(): Promise<void>;
9
+ /**
10
+ * Check if the launcher is installed
11
+ */
12
+ export declare function isLauncherInstalled(): boolean;
13
+ //# sourceMappingURL=launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/installer/launcher.ts"],"names":[],"mappings":"AA0DA;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAsCzD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAOpD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAG7C"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.downloadLauncher = downloadLauncher;
37
+ exports.removeLauncher = removeLauncher;
38
+ exports.isLauncherInstalled = isLauncherInstalled;
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const https = __importStar(require("https"));
42
+ const logger_js_1 = require("../utils/logger.js");
43
+ const platform_js_1 = require("../utils/platform.js");
44
+ const LAUNCHER_REPO = 'bengabay1994/MrZero';
45
+ /**
46
+ * Download a file from URL, following redirects
47
+ */
48
+ function downloadFile(url, dest) {
49
+ return new Promise((resolve, reject) => {
50
+ const file = fs.createWriteStream(dest);
51
+ const request = (currentUrl, redirectCount = 0) => {
52
+ if (redirectCount > 5) {
53
+ reject(new Error('Too many redirects'));
54
+ return;
55
+ }
56
+ const protocol = currentUrl.startsWith('https') ? https : require('http');
57
+ protocol.get(currentUrl, (response) => {
58
+ // Handle redirects
59
+ if (response.statusCode === 302 || response.statusCode === 301) {
60
+ const redirectUrl = response.headers.location;
61
+ if (redirectUrl) {
62
+ request(redirectUrl, redirectCount + 1);
63
+ return;
64
+ }
65
+ }
66
+ if (response.statusCode !== 200) {
67
+ fs.unlink(dest, () => { });
68
+ reject(new Error(`HTTP ${response.statusCode}: Failed to download`));
69
+ return;
70
+ }
71
+ response.pipe(file);
72
+ file.on('finish', () => {
73
+ file.close();
74
+ resolve();
75
+ });
76
+ file.on('error', (err) => {
77
+ fs.unlink(dest, () => { });
78
+ reject(err);
79
+ });
80
+ }).on('error', (err) => {
81
+ fs.unlink(dest, () => { });
82
+ reject(err);
83
+ });
84
+ };
85
+ request(url);
86
+ });
87
+ }
88
+ /**
89
+ * Download and install the MrZero launcher binary
90
+ */
91
+ async function downloadLauncher() {
92
+ const binaryName = (0, platform_js_1.getLauncherBinaryName)();
93
+ const launcherPath = (0, platform_js_1.getLauncherPath)();
94
+ const launcherDir = path.dirname(launcherPath);
95
+ const version = (0, platform_js_1.getPackageVersion)();
96
+ logger_js_1.logger.step(`Downloading MrZero launcher (${binaryName}, v${version})`);
97
+ // Ensure directory exists
98
+ fs.mkdirSync(launcherDir, { recursive: true });
99
+ // Build download URL for specific version
100
+ const versionTag = version === 'latest' ? 'latest' : `v${version}`;
101
+ const url = `https://github.com/${LAUNCHER_REPO}/releases/download/${versionTag}/${binaryName}`;
102
+ try {
103
+ await downloadFile(url, launcherPath);
104
+ // Make executable (Linux/macOS)
105
+ if (process.platform !== 'win32') {
106
+ fs.chmodSync(launcherPath, 0o755);
107
+ }
108
+ logger_js_1.logger.success(`Installed launcher to ${launcherPath}`);
109
+ return true;
110
+ }
111
+ catch (error) {
112
+ logger_js_1.logger.error(`Failed to download launcher: ${error}`);
113
+ logger_js_1.logger.blank();
114
+ logger_js_1.logger.warning('The launcher could not be installed.');
115
+ logger_js_1.logger.warning('Without the launcher, tools installed on your system may take');
116
+ logger_js_1.logger.warning('precedence over MrZero\'s containerized tools, which could cause');
117
+ logger_js_1.logger.warning('unexpected behavior.');
118
+ logger_js_1.logger.blank();
119
+ logger_js_1.logger.info('You can still use MrZero tools by manually setting your PATH:');
120
+ logger_js_1.logger.info(' export PATH="$HOME/.local/bin/mrzero-tools:$PATH"');
121
+ logger_js_1.logger.info('Then run opencode or claude directly.');
122
+ return false;
123
+ }
124
+ }
125
+ /**
126
+ * Remove the MrZero launcher binary
127
+ */
128
+ async function removeLauncher() {
129
+ const launcherPath = (0, platform_js_1.getLauncherPath)();
130
+ if (fs.existsSync(launcherPath)) {
131
+ fs.unlinkSync(launcherPath);
132
+ logger_js_1.logger.success('Removed MrZero launcher');
133
+ }
134
+ }
135
+ /**
136
+ * Check if the launcher is installed
137
+ */
138
+ function isLauncherInstalled() {
139
+ const launcherPath = (0, platform_js_1.getLauncherPath)();
140
+ return fs.existsSync(launcherPath);
141
+ }
142
+ //# sourceMappingURL=launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/installer/launcher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/installer/mcp.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAsOD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwCpF;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAYzF;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgC7E"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/installer/mcp.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AA8LD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+BpF;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAYzF;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgC7E"}
@@ -42,45 +42,6 @@ const shell_js_1 = require("../utils/shell.js");
42
42
  const logger_js_1 = require("../utils/logger.js");
43
43
  const platform_js_1 = require("../utils/platform.js");
44
44
  const mcp_servers_js_1 = require("../config/mcp-servers.js");
45
- const detector_js_1 = require("./detector.js");
46
- async function checkPrerequisite(serverName) {
47
- const server = mcp_servers_js_1.MCP_SERVERS[serverName];
48
- if (!server?.requiresPrerequisite) {
49
- return { met: true };
50
- }
51
- switch (server.requiresPrerequisite) {
52
- case 'pwndbg': {
53
- const status = await (0, detector_js_1.detectPwndbg)();
54
- if (!status.installed) {
55
- return { met: false, reason: 'pwndbg is not installed' };
56
- }
57
- return { met: true };
58
- }
59
- case 'ghidra': {
60
- const status = await (0, detector_js_1.detectGhidra)();
61
- if (!status.installed) {
62
- return { met: false, reason: 'Ghidra is not installed' };
63
- }
64
- return { met: true };
65
- }
66
- case 'metasploit': {
67
- const status = await (0, detector_js_1.detectMetasploit)();
68
- if (!status.installed) {
69
- return { met: false, reason: 'Metasploit is not installed' };
70
- }
71
- return { met: true };
72
- }
73
- case 'ida-pro': {
74
- const status = await (0, detector_js_1.detectIdaPro)();
75
- if (!status.installed) {
76
- return { met: false, reason: 'IDA Pro is not installed' };
77
- }
78
- return { met: true };
79
- }
80
- default:
81
- return { met: true };
82
- }
83
- }
84
45
  async function installPwndbgMcp() {
85
46
  const server = mcp_servers_js_1.MCP_SERVERS['pwndbg-mcp'];
86
47
  const mcpDir = (0, platform_js_1.getMcpServersDir)();
@@ -252,17 +213,8 @@ async function installMcpServer(serverName) {
252
213
  reason: `Unknown MCP server: ${serverName}`,
253
214
  };
254
215
  }
255
- // Check prerequisite
256
- const prereq = await checkPrerequisite(serverName);
257
- if (!prereq.met) {
258
- logger_js_1.logger.warning(`Skipping ${server.displayName}: ${prereq.reason}`);
259
- return {
260
- name: server.name,
261
- installed: false,
262
- skipped: true,
263
- reason: prereq.reason,
264
- };
265
- }
216
+ // Note: We no longer check prerequisites here since user explicitly chose to install
217
+ // The warning about prerequisites is shown during MCP server selection
266
218
  switch (serverName) {
267
219
  case 'pwndbg-mcp':
268
220
  return installPwndbgMcp();