riciplay 1.8.81

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.
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # Riciplay
2
+
3
+ AI-powered bug bounty reconnaissance and penetration testing agent. This npm package is a launcher for the Python implementation ([`riciplay-cli` on PyPI](https://pypi.org/project/riciplay-cli/)) — postinstall installs it via pip, and the `riciplay` command behaves identically to a native pip install.
4
+
5
+ ## What it does
6
+
7
+ - **Agent sessions** — an AI agent that plans and executes full investigations: recon → browsing → interception → findings
8
+ - **Real browser control** — trusted-input mouse/keyboard (hover menus, slider drags, canvas clicks), form-state autosave/restore, Cloudflare handling
9
+ - **MiniProxy v4 interception** — capture with TTFB/total timing, scope guard, Burp-style replay with response diffing, bounded payload sweeps
10
+ - **Recon pipeline** — subdomain/endpoint/tech discovery with durable per-program storage
11
+ - **Notebook + findings** — evidence-linked reporting across sessions
12
+
13
+ ## Install
14
+
15
+ ```bash
16
+ npm install -g riciplay
17
+ # or the native Python path:
18
+ pip install riciplay-cli
19
+ ```
20
+
21
+ Requires Python 3.10+ (installed automatically when possible). Chrome and mitmproxy integrations are pulled in as Python dependencies.
22
+
23
+ ## Usage
24
+
25
+ ```bash
26
+ riciplay login # interactive login with key
27
+ riciplay chat # start an agent session
28
+ ```
29
+
30
+ ## The npm wrapper
31
+
32
+ `bin/riciplay` prefers the pip-installed console script on PATH and falls back to invoking `riciplay_cli.main:app` through `python3`. `scripts/postinstall.js` pip-installs `riciplay-cli` if the module isn't importable — and degrades to a printed manual instruction when it can't (no network, `--ignore-scripts`, managed Python).
33
+
34
+ Repository: [Zaidux/Riciplay](https://github.com/Zaidux/Riciplay)
package/bin/riciplay ADDED
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+ // Riciplay launcher — delegates to the Python package (riciplay-cli).
3
+ //
4
+ // riciplay <args> → the pip-installed console script, else
5
+ // python3 -c "from riciplay_cli.main import app; app()"
6
+ //
7
+ // The Python package is installed by scripts/postinstall.js (pip install
8
+ // riciplay-cli). When the pip console script exists on PATH, exec it
9
+ // directly (identical behavior to a native install); otherwise invoke
10
+ // the app entry through python3 with argv[0] normalized so the CLI's
11
+ // own help/version output stays correct.
12
+
13
+ const { spawn } = require('child_process');
14
+ const { existsSync } = require('fs');
15
+ const path = require('path');
16
+ const { EOL } = require('os');
17
+
18
+ const args = process.argv.slice(2);
19
+
20
+ function fail(msg) {
21
+ process.stderr.write(`Error: ${msg}${EOL}`);
22
+ process.exit(1);
23
+ }
24
+
25
+ function run(cmd, argv) {
26
+ const proc = spawn(cmd, argv, { stdio: 'inherit' });
27
+ proc.on('error', (err) => fail(err.code === 'ENOENT'
28
+ ? 'python3 not found. Riciplay is a Python tool — install Python 3.10+ first.'
29
+ : err.message));
30
+ proc.on('close', (code) => process.exit(code ?? 1));
31
+ }
32
+
33
+ // Prefer an installed console script (same PATH resolution pip used).
34
+ const isWin = process.platform === 'win32';
35
+ const exe = isWin ? 'riciplay.exe' : 'riciplay';
36
+ for (const dir of ['/usr/local/bin', '/usr/bin', path.join(process.env.HOME || '', '.local', 'bin')]) {
37
+ const candidate = path.join(dir, exe);
38
+ if (existsSync(candidate)) {
39
+ run(candidate, args);
40
+ return;
41
+ }
42
+ }
43
+
44
+ // Module fallback — app() reads sys.argv; normalize argv[0] so usage
45
+ // strings and version output match the real console script.
46
+ run('python3', [
47
+ '-c',
48
+ "import sys; sys.argv[0] = 'riciplay'; from riciplay_cli.main import app; app()",
49
+ ...args,
50
+ ]);
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "riciplay",
3
+ "version": "1.8.81",
4
+ "description": "AI-powered bug bounty reconnaissance and penetration testing agent — browser, proxy interception, recon, and exploit workflows",
5
+ "main": "index.js",
6
+ "bin": {
7
+ "riciplay": "./bin/riciplay"
8
+ },
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1",
11
+ "prepublishOnly": "echo \"Ensure riciplay-cli is published to PyPI first\"",
12
+ "postinstall": "node scripts/postinstall.js"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/Zaidux/Riciplay.git"
17
+ },
18
+ "keywords": [
19
+ "bugbounty",
20
+ "pentesting",
21
+ "security",
22
+ "recon",
23
+ "osint",
24
+ "proxy",
25
+ "mitmproxy",
26
+ "ai-agent",
27
+ "riciplay"
28
+ ],
29
+ "author": "Zaidux <zaiduabubakar777@gmail.com>",
30
+ "license": "MIT",
31
+ "bugs": {
32
+ "url": "https://github.com/Zaidux/Riciplay/issues"
33
+ },
34
+ "homepage": "https://github.com/Zaidux/Riciplay#readme",
35
+ "engines": {
36
+ "node": ">=14.0.0"
37
+ },
38
+ "os": [
39
+ "darwin",
40
+ "linux"
41
+ ],
42
+ "files": [
43
+ "bin/",
44
+ "scripts/postinstall.js",
45
+ "README.md"
46
+ ],
47
+ "dependencies": {},
48
+ "peerDependencies": {}
49
+ }
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ // Riciplay npm postinstall — installs the Python package from PyPI.
3
+ //
4
+ // This npm package is a launcher; the implementation is the Python
5
+ // package `riciplay-cli` (PyPI). If it is not importable, pip install
6
+ // it. Failures are warnings, not errors: the user may be installing
7
+ // with --ignore-scripts, without network, or managing Python manually —
8
+ // print the manual command instead of failing the install.
9
+
10
+ const { execSync, spawnSync } = require('child_process');
11
+ const os = require('os');
12
+
13
+ console.log('\n🕷️ Installing Riciplay (bug bounty AI agent)...\n');
14
+
15
+ const isWin = os.platform() === 'win32';
16
+ const python = isWin ? 'python' : 'python3';
17
+ const pip = isWin ? 'pip' : 'pip3';
18
+
19
+ function probe(module) {
20
+ const r = spawnSync(python, ['-c', `import ${module}`], { stdio: 'ignore' });
21
+ return r.status === 0;
22
+ }
23
+
24
+ try {
25
+ if (probe('riciplay_cli')) {
26
+ console.log('✓ Python package `riciplay_cli` already importable.');
27
+ } else {
28
+ console.log('Installing riciplay-cli from PyPI (this also pulls Chrome/mitmproxy deps)...');
29
+ execSync(`${pip} install --upgrade riciplay-cli`, { stdio: 'inherit' });
30
+ console.log('✓ Installed riciplay-cli.');
31
+ }
32
+ } catch (err) {
33
+ console.warn(
34
+ `\n⚠ Could not install the Python package automatically (${err.message}).\n` +
35
+ ' Riciplay needs Python 3.10+. Install manually with:\n' +
36
+ ' pip install riciplay-cli\n'
37
+ );
38
+ }
39
+
40
+ console.log('\nUsage: riciplay chat # start an agent session\n');