farai 0.3.6 → 0.3.8
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 +12 -0
- package/dist/cli/index.js +6849 -3345
- package/dist/cli/index.js.map +138 -124
- package/docker/kali/Dockerfile +17 -2
- package/docker/kali/farai_mitmproxy_mcp.py +0 -1
- package/package.json +12 -12
package/docker/kali/Dockerfile
CHANGED
|
@@ -83,14 +83,24 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh \
|
|
|
83
83
|
|
|
84
84
|
RUN UV_TOOL_DIR=/opt/uv/tools UV_TOOL_BIN_DIR=/opt/uv/bin uv tool install --with 'mcp>=1.25.0,<2' mitmproxy-mcp==0.6.1 \
|
|
85
85
|
&& chmod -R a+rX /opt/uv \
|
|
86
|
-
&&
|
|
87
|
-
@playwright/mcp@latest \
|
|
86
|
+
&& npm install -g \
|
|
88
87
|
typescript@${TYPESCRIPT_VERSION} \
|
|
89
88
|
typescript-language-server@${TYPESCRIPT_LANGUAGE_SERVER_VERSION} \
|
|
90
89
|
pyright@${PYRIGHT_VERSION} \
|
|
91
90
|
&& uv cache clean \
|
|
92
91
|
&& npm cache clean --force
|
|
93
92
|
|
|
93
|
+
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/ms-playwright
|
|
94
|
+
|
|
95
|
+
RUN mkdir -p /opt/playwright-mcp \
|
|
96
|
+
&& printf '%s' '{"name":"farai-playwright-mcp","private":true,"dependencies":{"@playwright/mcp":"latest","patchright":"latest"},"overrides":{"playwright":"npm:patchright@latest","playwright-core":"npm:patchright-core@latest"}}' > /opt/playwright-mcp/package.json \
|
|
97
|
+
&& cd /opt/playwright-mcp \
|
|
98
|
+
&& npm install --omit=dev --no-audit --no-fund \
|
|
99
|
+
&& if [ -e node_modules/.bin/mcp-server-playwright ]; then ln -sf /opt/playwright-mcp/node_modules/.bin/mcp-server-playwright /usr/local/bin/playwright-mcp; else ln -sf /opt/playwright-mcp/node_modules/@playwright/mcp/cli.js /usr/local/bin/playwright-mcp; fi \
|
|
100
|
+
&& node_modules/.bin/patchright install --with-deps chromium \
|
|
101
|
+
&& chmod -R a+rX /opt/ms-playwright /opt/playwright-mcp \
|
|
102
|
+
&& npm cache clean --force
|
|
103
|
+
|
|
94
104
|
COPY --from=lsp-builder /out/gopls /usr/local/bin/gopls
|
|
95
105
|
COPY --from=lsp-builder /out/rust-analyzer /usr/local/bin/rust-analyzer
|
|
96
106
|
|
|
@@ -168,6 +178,11 @@ RUN git clone --depth 1 https://github.com/worawit/blutter.git /opt/blutter \
|
|
|
168
178
|
|
|
169
179
|
RUN git clone --depth 1 https://github.com/danielmiessler/SecLists.git /usr/share/seclists
|
|
170
180
|
|
|
181
|
+
RUN apt-get update \
|
|
182
|
+
&& apt-get install -y --no-install-recommends xvfb xauth \
|
|
183
|
+
&& apt-get clean \
|
|
184
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
185
|
+
|
|
171
186
|
COPY redsocks.conf.tmpl /usr/local/share/farai/redsocks.conf.tmpl
|
|
172
187
|
COPY farai-proxy-init.sh /usr/local/bin/farai-proxy-init
|
|
173
188
|
COPY farai-proxy-teardown.sh /usr/local/bin/farai-proxy-teardown
|
|
@@ -772,7 +772,6 @@ async def proxy_replay_correlated(
|
|
|
772
772
|
if not isinstance(headers, dict) or not all(isinstance(key, str) and isinstance(value, str) for key, value in headers.items()):
|
|
773
773
|
return json.dumps({"ok": False, "error": "headers_json must encode a string-to-string object."})
|
|
774
774
|
|
|
775
|
-
# Upstream treats None as "reuse the captured body"; an empty string omits it.
|
|
776
775
|
resolved_body = "" if body == "__omit__" else body
|
|
777
776
|
variables = getattr(server.controller, "session_variables", {})
|
|
778
777
|
resolver = getattr(server, "_resolve_template", None)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "farai",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.8",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "AI Harness for Security Assessments",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"test": "bun test ./test/*.test.ts ./test/*.test.tsx",
|
|
49
49
|
"verify": "bun run typecheck && bun run test && bun run test:package",
|
|
50
50
|
"release:check": "bun run verify && bun audit",
|
|
51
|
-
"eval:smoke": "bun run
|
|
51
|
+
"eval:smoke": "bun run src/cli/index.ts eval",
|
|
52
52
|
"prepare": "bun run scripts/prepare-package.ts",
|
|
53
53
|
"prepublishOnly": "bun run verify",
|
|
54
54
|
"prepack": "bun run build",
|
|
@@ -61,22 +61,22 @@
|
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
63
63
|
"@napi-rs/keyring": "2.0.0",
|
|
64
|
-
"@opentui/core": "0.5.
|
|
64
|
+
"@opentui/core": "0.5.11",
|
|
65
65
|
"ajv": "8.20.0",
|
|
66
66
|
"bun-pty": "0.4.10",
|
|
67
|
-
"entities": "
|
|
67
|
+
"entities": "8.1.0",
|
|
68
68
|
"figlet": "1.11.4",
|
|
69
|
-
"fuzzysort": "
|
|
70
|
-
"highlight.js": "11.
|
|
71
|
-
"imapflow": "1.7.
|
|
72
|
-
"mailparser": "3.9.
|
|
73
|
-
"solid-js": "1.9.
|
|
69
|
+
"fuzzysort": "4.0.2",
|
|
70
|
+
"highlight.js": "11.12.0",
|
|
71
|
+
"imapflow": "1.7.8",
|
|
72
|
+
"mailparser": "3.9.20",
|
|
73
|
+
"solid-js": "1.9.15"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@opentui/solid": "0.5.
|
|
77
|
-
"@types/bun": "
|
|
76
|
+
"@opentui/solid": "0.5.11",
|
|
77
|
+
"@types/bun": "1.4.1",
|
|
78
78
|
"@types/mailparser": "3.4.6",
|
|
79
|
-
"typescript": "
|
|
79
|
+
"typescript": "7.0.2"
|
|
80
80
|
},
|
|
81
81
|
"overrides": {
|
|
82
82
|
"@babel/core": "7.29.7",
|