@integsec/agentic-pentest-proxy 0.3.9 → 0.4.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.
- package/README.md +2 -0
- package/cloudflare/src/worker.mjs +2 -2
- package/cloudflare/wrangler.jsonc +1 -1
- package/dist/bin/integsec-agentic-pentest-bridge.js +2 -2
- package/dist/bin/integsec-agentic-pentest-scanners-mcp.js +21 -7
- package/dist/bin/integsec-agentic-pentest-scanners-mcp.js.map +1 -1
- package/dist/src/config.js +1 -1
- package/dist/src/extractor.d.ts.map +1 -1
- package/dist/src/extractor.js +2 -0
- package/dist/src/extractor.js.map +1 -1
- package/dist/src/gateway/admin.js +2 -0
- package/dist/src/gateway/command.d.ts +1 -1
- package/dist/src/gateway/command.d.ts.map +1 -1
- package/dist/src/gateway/command.js +5 -4
- package/dist/src/gateway/command.js.map +1 -1
- package/dist/src/gateway/docs-home.html +1 -1
- package/dist/src/gateway/docs.d.ts.map +1 -1
- package/dist/src/gateway/docs.js +1 -0
- package/dist/src/gateway/docs.js.map +1 -1
- package/dist/src/gateway/jobs.d.ts +26 -0
- package/dist/src/gateway/jobs.d.ts.map +1 -0
- package/dist/src/gateway/jobs.js +97 -0
- package/dist/src/gateway/jobs.js.map +1 -0
- package/dist/src/gateway/runtime.d.ts +5 -0
- package/dist/src/gateway/runtime.d.ts.map +1 -1
- package/dist/src/gateway/runtime.js +209 -78
- package/dist/src/gateway/runtime.js.map +1 -1
- package/dist/src/gateway/server.d.ts.map +1 -1
- package/dist/src/gateway/server.js +56 -1
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/gateway/workbench-client.js +180 -0
- package/dist/src/gateway/workbench.css +3 -0
- package/dist/src/gateway/workbench.d.ts +51 -0
- package/dist/src/gateway/workbench.d.ts.map +1 -0
- package/dist/src/gateway/workbench.html +41 -0
- package/dist/src/gateway/workbench.js +157 -0
- package/dist/src/gateway/workbench.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/proxy.d.ts +1 -0
- package/dist/src/proxy.d.ts.map +1 -1
- package/dist/src/proxy.js +13 -0
- package/dist/src/proxy.js.map +1 -1
- package/dist/src/scanners/jobs.d.ts +25 -0
- package/dist/src/scanners/jobs.d.ts.map +1 -0
- package/dist/src/scanners/jobs.js +65 -0
- package/dist/src/scanners/jobs.js.map +1 -0
- package/dist/src/scanners/runner.d.ts +2 -1
- package/dist/src/scanners/runner.d.ts.map +1 -1
- package/dist/src/scanners/runner.js +10 -7
- package/dist/src/scanners/runner.js.map +1 -1
- package/dist/src/technique-checker.js +1 -1
- package/dist/src/technique-checker.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/docs/managed-gateway.md +4 -2
- package/docs/workbench.md +28 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,8 @@ An MCP proxy that checks tool calls against a pentest scope manifest before forw
|
|
|
8
8
|
|
|
9
9
|
**Managing several tools?** The [managed gateway](docs/managed-gateway.md) adds a browser UI with local MCP server presets, scope templates and technique checkboxes, JSON policy import and download, administrator approval and assignment, and a separate engagement choice for each user. It exposes scoped tools, an active engagement resource, and planning prompts. It supports one hosted MCP URL for ChatGPT and Claude and a local Burp route.
|
|
10
10
|
|
|
11
|
+
The [MCP workbench](docs/workbench.md) shows your live tool calls and background jobs. Intercept requests, edit arguments before forwarding, or drop a call. Long calls return a job ID that you can inspect or cancel without waiting for one MCP request to stay open. The gateway checks scope again after any edit.
|
|
12
|
+
|
|
11
13
|
## Quick start: add an MCP tool
|
|
12
14
|
|
|
13
15
|
1. Install the proxy:
|
|
@@ -15,7 +15,7 @@ function tokenMatches(header, expected) {
|
|
|
15
15
|
export class PentestGatewayContainer extends Container {
|
|
16
16
|
defaultPort = 9091;
|
|
17
17
|
pingEndpoint = 'localhost/healthz';
|
|
18
|
-
sleepAfter = '
|
|
18
|
+
sleepAfter = '35m';
|
|
19
19
|
writeQueue = Promise.resolve();
|
|
20
20
|
|
|
21
21
|
constructor(ctx, env) {
|
|
@@ -59,7 +59,7 @@ export class PentestGatewayContainer extends Container {
|
|
|
59
59
|
if (url.hostname !== new URL(this.env.GATEWAY_PUBLIC_URL).hostname) return text('Not found', 404);
|
|
60
60
|
if (url.pathname === '/api/audit' && request.method === 'GET') return this.listAudit(request);
|
|
61
61
|
if (url.pathname.startsWith('/__internal/')) return text('Not found', 404);
|
|
62
|
-
const mutatesState = url.pathname.startsWith('/api/') && ['POST', 'PUT', 'PATCH', 'DELETE'].includes(request.method);
|
|
62
|
+
const mutatesState = url.pathname.startsWith('/api/') && !url.pathname.startsWith('/api/workbench/') && ['POST', 'PUT', 'PATCH', 'DELETE'].includes(request.method);
|
|
63
63
|
if (!mutatesState) return this.containerFetch(request);
|
|
64
64
|
|
|
65
65
|
const result = this.writeQueue.then(() => this.persistMutation(request));
|
|
@@ -12,9 +12,9 @@ const url = new URL(process.argv[2] ?? process.env.GATEWAY_URL ?? "http://127.0.
|
|
|
12
12
|
if (!["127.0.0.1", "localhost", "[::1]"].includes(url.hostname) || url.protocol !== "http:") {
|
|
13
13
|
throw new Error("The local bridge only accepts a loopback HTTP gateway URL");
|
|
14
14
|
}
|
|
15
|
-
const upstream = new Client({ name: "agentic-pentest-bridge", version: "0.
|
|
15
|
+
const upstream = new Client({ name: "agentic-pentest-bridge", version: "0.4.0" });
|
|
16
16
|
await upstream.connect(new StreamableHTTPClientTransport(url));
|
|
17
|
-
const bridge = new Server({ name: "agentic-pentest-local", version: "0.
|
|
17
|
+
const bridge = new Server({ name: "agentic-pentest-local", version: "0.4.0" }, { capabilities: { tools: {} } });
|
|
18
18
|
bridge.setRequestHandler(ListToolsRequestSchema, async (request) => upstream.listTools(request.params));
|
|
19
19
|
bridge.setRequestHandler(CallToolRequestSchema, async (request) => upstream.callTool(request.params));
|
|
20
20
|
await bridge.connect(new StdioServerTransport());
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
5
|
-
import { nmapArgs,
|
|
5
|
+
import { nmapArgs, runScanner } from "../src/scanners/runner.js";
|
|
6
|
+
import { NucleiJobs } from "../src/scanners/jobs.js";
|
|
6
7
|
const mode = process.argv[2];
|
|
7
8
|
if (mode !== "nmap" && mode !== "nuclei") {
|
|
8
9
|
console.error("Usage: integsec-agentic-pentest-scanners-mcp <nmap|nuclei>");
|
|
@@ -16,20 +17,33 @@ const tool = mode === "nmap" ? {
|
|
|
16
17
|
serviceDetection: { type: "boolean", description: "Probe open ports for service versions." },
|
|
17
18
|
}, required: ["target"], additionalProperties: false },
|
|
18
19
|
} : {
|
|
19
|
-
name: "nuclei_scan", description: "
|
|
20
|
+
name: "nuclei_scan", description: "Start a bounded HTTP Nuclei scan against one approved URL. Returns a scan ID immediately; use nuclei_scan_status for results. Disables OAST and automatic updates.",
|
|
20
21
|
inputSchema: { type: "object", properties: {
|
|
21
22
|
url: { type: "string", description: "One authorized HTTP or HTTPS URL." },
|
|
22
23
|
}, required: ["url"], additionalProperties: false },
|
|
23
24
|
};
|
|
24
|
-
const
|
|
25
|
-
|
|
25
|
+
const jobs = new NucleiJobs();
|
|
26
|
+
const jobTool = (name, description) => ({ name, description, inputSchema: { type: "object", properties: {
|
|
27
|
+
scanId: { type: "string", description: "Scan ID returned by nuclei_scan." },
|
|
28
|
+
url: { type: "string", description: "The same authorized URL used to start the scan." },
|
|
29
|
+
}, required: ["scanId", "url"], additionalProperties: false } });
|
|
30
|
+
const server = new Server({ name: `integsec-${mode}-mcp`, version: "0.4.0" }, { capabilities: { tools: {} } });
|
|
31
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: mode === "nuclei" ? [tool,
|
|
32
|
+
jobTool("nuclei_scan_status", "Check progress and get results of a Nuclei scan for the same approved URL."),
|
|
33
|
+
jobTool("nuclei_scan_cancel", "Stop a running Nuclei scan for the same approved URL.")] : [tool] }));
|
|
26
34
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
27
|
-
if (request.params.name !== tool.name)
|
|
35
|
+
if (request.params.name !== tool.name && !(mode === "nuclei" && ["nuclei_scan_status", "nuclei_scan_cancel"].includes(request.params.name)))
|
|
28
36
|
return { content: [{ type: "text", text: "Unknown scanner tool." }], isError: true };
|
|
29
37
|
try {
|
|
30
38
|
const input = request.params.arguments ?? {};
|
|
31
|
-
|
|
32
|
-
|
|
39
|
+
if (mode === "nuclei") {
|
|
40
|
+
const result = request.params.name === "nuclei_scan_status" ? jobs.status(input.scanId, input.url)
|
|
41
|
+
: request.params.name === "nuclei_scan_cancel" ? jobs.cancel(input.scanId, input.url)
|
|
42
|
+
: jobs.start(input.url, input._gatewayDeadline);
|
|
43
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
44
|
+
}
|
|
45
|
+
const args = nmapArgs(input);
|
|
46
|
+
return { content: [{ type: "text", text: await runScanner("nmap", args) }] };
|
|
33
47
|
}
|
|
34
48
|
catch (error) {
|
|
35
49
|
return { content: [{ type: "text", text: error instanceof Error ? error.message : String(error) }], isError: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integsec-agentic-pentest-scanners-mcp.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-scanners-mcp.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"integsec-agentic-pentest-scanners-mcp.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-scanners-mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config.js
CHANGED
|
@@ -50,7 +50,7 @@ export function loadConfig() {
|
|
|
50
50
|
techniqueMapPath: process.env.TECHNIQUE_MAP_PATH,
|
|
51
51
|
dnsCacheTtl: parseInt(process.env.DNS_CACHE_TTL || "60", 10),
|
|
52
52
|
logLevel: process.env.LOG_LEVEL || "INFO",
|
|
53
|
-
proxyVersion: process.env.PROXY_VERSION || "0.
|
|
53
|
+
proxyVersion: process.env.PROXY_VERSION || "0.4.0",
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf;oDACgD;IAChD,YAAY,EAAE,OAAO,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf;oDACgD;IAChD,YAAY,EAAE,OAAO,CAAC;CACvB;AA+gBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,gBAAgB,EAAE,CA6DpB;AAMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,gBAAgB,GAAG,IAAI,CAmBzB"}
|
package/dist/src/extractor.js
CHANGED
|
@@ -105,6 +105,8 @@ const TOOL_MAPPINGS = [
|
|
|
105
105
|
// Hex Strike AI MCP — https://github.com/0x4m4/hexstrike-ai
|
|
106
106
|
{ match: "gobuster_scan", params: ["url", "target"] },
|
|
107
107
|
{ match: "nuclei_scan", params: ["target", "url"] },
|
|
108
|
+
{ match: "nuclei_scan_status", params: ["url"] },
|
|
109
|
+
{ match: "nuclei_scan_cancel", params: ["url"] },
|
|
108
110
|
{ match: "sqlmap_scan", params: ["url", "target"] },
|
|
109
111
|
{ match: "ffuf_scan", params: ["url", "target"] },
|
|
110
112
|
{ match: "feroxbuster_scan", params: ["url", "target"] },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -135,6 +135,8 @@ const osChoice = document.createElement('select'); osChoice.id = 'docs-os'; osCh
|
|
|
135
135
|
for (const [value, label] of Object.entries(osNames)) { const option = make('option', label); option.value = value; osChoice.append(option); }
|
|
136
136
|
osChoice.value = selectedOS; osLabel.append(osChoice); osBar.append(osLabel, make('span', 'Choose the tester’s operating system. The browser picked a starting value.'));
|
|
137
137
|
document.querySelector('header').after(osBar);
|
|
138
|
+
const workbenchLink = make('a', 'MCP workbench'); workbenchLink.href = '/workbench';
|
|
139
|
+
document.querySelector('header nav').prepend(workbenchLink, document.createTextNode(' · '));
|
|
138
140
|
const toolStyles = document.createElement('style');
|
|
139
141
|
toolStyles.textContent = '#upstreams-card{grid-column:1/-1}#presets,#local-tool-guide-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:12px}#presets .row,#local-tool-guide-items .row{display:block;border:1px solid #294454;border-radius:9px;padding:14px}#presets .row>*:first-child,#local-tool-guide-items .row>*:first-child{min-width:0}#presets pre,#local-tool-guide-items pre{font-size:13px}';
|
|
140
142
|
document.head.append(toolStyles);
|
|
@@ -16,5 +16,5 @@ export declare function commandTool(upstream: Upstream): {
|
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
export declare function commandTarget(upstream: Upstream, input: Record<string, unknown>): string;
|
|
19
|
-
export declare function runCommand(upstream: Upstream, target: string, signal?: AbortSignal): Promise<string>;
|
|
19
|
+
export declare function runCommand(upstream: Upstream, target: string, signal?: AbortSignal, maxDurationMs?: number): Promise<string>;
|
|
20
20
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/gateway/command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;EAQ7C;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAmBxF;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/gateway/command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;EAQ7C;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAmBxF;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,aAAa,SAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAkCxI"}
|
|
@@ -6,7 +6,7 @@ export const commandToolName = "run_local_command";
|
|
|
6
6
|
export function commandTool(upstream) {
|
|
7
7
|
return {
|
|
8
8
|
name: `${upstream.name}__${commandToolName}`,
|
|
9
|
-
description: `Run the administrator-configured ${upstream.name} command against one approved ${upstream.targetKind === "url" ? "HTTP URL" : "host or IP"}. Fixed arguments only; two-minute limit.`,
|
|
9
|
+
description: `Run the administrator-configured ${upstream.name} command against one approved ${upstream.targetKind === "url" ? "HTTP URL" : "host or IP"}. Fixed arguments only; direct calls have a two-minute limit. Use a background job for longer calls.`,
|
|
10
10
|
inputSchema: { type: "object", properties: {
|
|
11
11
|
target: { type: "string", description: upstream.targetKind === "url" ? "One authorized HTTP or HTTPS URL." : "One authorized hostname or IP address." },
|
|
12
12
|
}, required: ["target"], additionalProperties: false },
|
|
@@ -38,7 +38,7 @@ export function commandTarget(upstream, input) {
|
|
|
38
38
|
}
|
|
39
39
|
throw new Error("Command target type is missing.");
|
|
40
40
|
}
|
|
41
|
-
export async function runCommand(upstream, target, signal) {
|
|
41
|
+
export async function runCommand(upstream, target, signal, maxDurationMs = MAX_DURATION) {
|
|
42
42
|
if (upstream.transport !== "cli" || !upstream.command || upstream.args.filter((arg) => arg === "{target}").length !== 1)
|
|
43
43
|
throw new Error("Invalid command configuration.");
|
|
44
44
|
const args = upstream.args.map((arg) => arg === "{target}" ? target : arg);
|
|
@@ -55,7 +55,8 @@ export async function runCommand(upstream, target, signal) {
|
|
|
55
55
|
child.kill();
|
|
56
56
|
reject(new Error(message));
|
|
57
57
|
};
|
|
58
|
-
const
|
|
58
|
+
const duration = Math.min(Math.max(maxDurationMs, 1000), 30 * 60_000);
|
|
59
|
+
const timer = setTimeout(() => fail(`Command exceeded the ${Math.round(duration / 60_000)}-minute limit.`), duration);
|
|
59
60
|
const collect = (chunk) => {
|
|
60
61
|
size += chunk.length;
|
|
61
62
|
if (size > MAX_OUTPUT)
|
|
@@ -64,7 +65,7 @@ export async function runCommand(upstream, target, signal) {
|
|
|
64
65
|
};
|
|
65
66
|
child.stdout.on("data", collect);
|
|
66
67
|
child.stderr.on("data", collect);
|
|
67
|
-
child.on("error", () => fail(signal?.aborted ? "Command stopped because its server was
|
|
68
|
+
child.on("error", () => fail(signal?.aborted ? "Command stopped because its job, server, or engagement was canceled." : "Command could not start. Check the executable name and PATH on the local gateway computer."));
|
|
68
69
|
child.on("close", (code) => {
|
|
69
70
|
if (finished)
|
|
70
71
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/gateway/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhC,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7B,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAEnD,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO;QACL,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE;QAC5C,WAAW,EAAE,oCAAoC,QAAQ,CAAC,IAAI,iCAAiC,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/gateway/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<div class="note"><strong>The practical rule:</strong> Connect your AI app to the gateway beside the tool. The laptop gateway is for laptop tools. The hosted gateway is for remote HTTPS tools and shared team administration. If you need both kinds of tools, add both connections.</div>
|
|
13
13
|
<h2 id="local-start">Start with Burp on your laptop</h2>
|
|
14
14
|
<ol class="steps"><li>Enable Burp’s official MCP extension. Install Node.js 22 or newer.</li><li>Run <code>npm install -g @integsec/agentic-pentest-proxy</code>, then <code>integsec-gateway start</code> in a terminal on that same laptop. It starts in the background and prints your admin token. Use <code>integsec-gateway status</code> to check it and <code>integsec-gateway stop</code> to stop it. Your configuration is saved in your per-user data folder.</li><li>Open <code>http://127.0.0.1:9091/admin</code>. Paste the admin token printed in the terminal. Add the Burp preset and turn it on.</li><li>Import the approved engagement JSON, review and approve it locally, and select it under <strong>My engagement</strong>. This step is manual for now.</li><li>Connect Claude Desktop through the local bridge, ChatGPT through a secure tunnel, or a local model chat UI directly to the local MCP endpoint. Refresh the client’s tool list after changing the scope or upgrading the gateway.</li></ol>
|
|
15
|
-
<a class="button-link" href="/docs/managed-gateway#connect-mcp-clients">Client connection steps</a><a class="button-link secondary" href="/docs/tui">Terminal dashboard guide</a>
|
|
15
|
+
<a class="button-link" href="/docs/managed-gateway#connect-mcp-clients">Client connection steps</a><a class="button-link secondary" href="/workbench">Open MCP workbench</a><a class="button-link secondary" href="/docs/tui">Terminal dashboard guide</a>
|
|
16
16
|
<h2 id="hosted-start">Start with a team connection</h2>
|
|
17
17
|
<ol class="steps"><li>Sign in to the <a href="/admin">team dashboard</a> through Cloudflare Access.</li><li>An admin adds your exact email, approves an engagement, assigns it to you, and turns on a compatible remote HTTPS MCP server.</li><li>Choose that engagement under <strong>My engagement</strong>. Your choice applies to your own MCP calls.</li><li>Connect ChatGPT or Claude to <code>https://agentic-proxy.pentestprepper.com/mcp</code> through its supported team connector.</li></ol>
|
|
18
18
|
<a class="button-link" href="/docs/managed-gateway">Managed gateway guide</a><a class="button-link secondary" href="/admin">Open dashboard</a>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/gateway/docs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/gateway/docs.ts"],"names":[],"mappings":"AAkFA,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAU7D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK9D"}
|
package/dist/src/gateway/docs.js
CHANGED
|
@@ -5,6 +5,7 @@ import MarkdownIt from "markdown-it";
|
|
|
5
5
|
const DOCS = [
|
|
6
6
|
{ slug: "readme", path: "README.md", label: "Project overview" },
|
|
7
7
|
{ slug: "managed-gateway", path: "docs/managed-gateway.md", label: "Managed gateway" },
|
|
8
|
+
{ slug: "workbench", path: "docs/workbench.md", label: "MCP workbench and jobs" },
|
|
8
9
|
{ slug: "configuration", path: "docs/configuration.md", label: "Configuration and scopes" },
|
|
9
10
|
{ slug: "integrations", path: "docs/integrations.md", label: "Clients and Docker" },
|
|
10
11
|
{ slug: "tui", path: "docs/tui.md", label: "Terminal dashboard" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/gateway/docs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/gateway/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,UAAU,MAAM,aAAa,CAAC;AASrC,MAAM,IAAI,GAAU;IAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE;IAChE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACtF,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,wBAAwB,EAAE;IACjF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,0BAA0B,EAAE;IAC3F,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACnF,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACjE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,0BAA0B,EAAE;IACjF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,EAAE;IAC1E,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpI,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,sDAAsD,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjJ,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,yDAAyD,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5I,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,kDAAkD,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjI,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,8DAA8D,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnK,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,uDAAuD,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;CACzJ,CAAC;AAEF,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;OAC1I,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/E,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAC5E,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAChF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhE,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAE,CAAC,CAAC;AACzI,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,UAAkB;IAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAClF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,GAAG;QAAE,OAAO,SAAS,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACrE,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACnG,OAAO,gBAAgB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,GAAG,CAAC;IAClF,OAAO,iEAAiE,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACxH,CAAC;AAED,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;AACtD,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI;QAAE,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACjH,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AACnD,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,GAAG;QAAE,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACnH,CAAC,CAAC;AACF,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;SACtE,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,SAAS,UAAU,CAAC,MAAc;IAChC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;IAClK,OAAO,4CAA4C,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,yGAAyG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC;AAChY,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,IAAI,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,qBAAqB,CAAC;IAClD,MAAM,OAAO,GAAG,GAAG;QACjB,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,oGAAoG,CAAC,CAAC,CAAC,EAAE,6BAA6B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,GAAG,EAAkB,EAAE,CAAC,YAAY;QAC5S,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC/H,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,IAAI,GAAG,sCAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface GatewayJob {
|
|
2
|
+
id: string;
|
|
3
|
+
user: string;
|
|
4
|
+
scopeId: string;
|
|
5
|
+
scopeUpdatedAt: string;
|
|
6
|
+
tool: string;
|
|
7
|
+
startedAt: string;
|
|
8
|
+
finishedAt?: string;
|
|
9
|
+
status: "running" | "completed" | "failed" | "canceled";
|
|
10
|
+
result?: unknown;
|
|
11
|
+
error?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const MAX_JOB_MS: number;
|
|
14
|
+
export declare class GatewayJobs {
|
|
15
|
+
private jobs;
|
|
16
|
+
start(user: string, scopeId: string, scopeUpdatedAt: string, scopeEnd: string, tool: string, execute: (signal: AbortSignal) => Promise<unknown>): GatewayJob;
|
|
17
|
+
list(user: string, scopeId: string): GatewayJob[];
|
|
18
|
+
get(user: string, scopeId: string, id: string): GatewayJob;
|
|
19
|
+
cancel(user: string, scopeId: string, id: string): GatewayJob;
|
|
20
|
+
cancelInvalid(isValid: (job: GatewayJob) => boolean): void;
|
|
21
|
+
close(): void;
|
|
22
|
+
private cancelInternal;
|
|
23
|
+
private public;
|
|
24
|
+
private prune;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/gateway/jobs.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AASD,eAAO,MAAM,UAAU,QAAc,CAAC;AAEtC,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAiC;IAE7C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EACzF,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,UAAU;IA0BjE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE;IAOjD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU;IAM1D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU;IAO7D,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,GAAG,IAAI;IAI1D,KAAK,IAAI,IAAI;IAEb,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,KAAK;CASd"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
const MAX_RUNNING = 32;
|
|
3
|
+
const MAX_PER_USER = 4;
|
|
4
|
+
export const MAX_JOB_MS = 30 * 60_000;
|
|
5
|
+
export class GatewayJobs {
|
|
6
|
+
jobs = new Map();
|
|
7
|
+
start(user, scopeId, scopeUpdatedAt, scopeEnd, tool, execute) {
|
|
8
|
+
const running = [...this.jobs.values()].filter((job) => job.status === "running");
|
|
9
|
+
if (running.length >= MAX_RUNNING || running.filter((job) => job.user === user).length >= MAX_PER_USER)
|
|
10
|
+
throw new Error("Too many background jobs are running; wait or cancel one.");
|
|
11
|
+
const remaining = Math.min(MAX_JOB_MS, Date.parse(scopeEnd) - Date.now());
|
|
12
|
+
if (!Number.isFinite(remaining) || remaining < 1000)
|
|
13
|
+
throw new Error("Engagement window ends too soon to start a job.");
|
|
14
|
+
const controller = new AbortController();
|
|
15
|
+
const job = { id: randomUUID(), user, scopeId, scopeUpdatedAt, tool,
|
|
16
|
+
startedAt: new Date().toISOString(), status: "running", controller,
|
|
17
|
+
timer: setTimeout(() => this.cancelInternal(job, "Time limit or engagement window reached."), remaining) };
|
|
18
|
+
this.jobs.set(job.id, job);
|
|
19
|
+
this.prune();
|
|
20
|
+
void Promise.resolve().then(() => execute(controller.signal)).then((result) => {
|
|
21
|
+
if (job.status !== "running")
|
|
22
|
+
return;
|
|
23
|
+
const serialized = JSON.stringify(result) ?? "null";
|
|
24
|
+
if (Buffer.byteLength(serialized) > 256 * 1024) {
|
|
25
|
+
job.status = "failed";
|
|
26
|
+
job.error = "Result exceeded 256 KiB; narrow the tool request.";
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
job.status = result && typeof result === "object" && "isError" in result && result.isError ? "failed" : "completed";
|
|
30
|
+
job.result = result;
|
|
31
|
+
}
|
|
32
|
+
job.finishedAt = new Date().toISOString();
|
|
33
|
+
clearTimeout(job.timer);
|
|
34
|
+
}, (error) => {
|
|
35
|
+
if (job.status !== "running")
|
|
36
|
+
return;
|
|
37
|
+
job.status = "failed";
|
|
38
|
+
job.error = error instanceof Error ? error.message : String(error);
|
|
39
|
+
job.finishedAt = new Date().toISOString();
|
|
40
|
+
clearTimeout(job.timer);
|
|
41
|
+
});
|
|
42
|
+
return this.public(job);
|
|
43
|
+
}
|
|
44
|
+
list(user, scopeId) {
|
|
45
|
+
return [...this.jobs.values()].filter((job) => job.user === user && job.scopeId === scopeId).reverse().map((job) => {
|
|
46
|
+
const { result: _result, ...summary } = this.public(job);
|
|
47
|
+
return summary;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
get(user, scopeId, id) {
|
|
51
|
+
const job = this.jobs.get(id);
|
|
52
|
+
if (!job || job.user !== user || job.scopeId !== scopeId)
|
|
53
|
+
throw new Error("Job not found for this user and engagement.");
|
|
54
|
+
return this.public(job);
|
|
55
|
+
}
|
|
56
|
+
cancel(user, scopeId, id) {
|
|
57
|
+
const job = this.jobs.get(id);
|
|
58
|
+
if (!job || job.user !== user || job.scopeId !== scopeId)
|
|
59
|
+
throw new Error("Job not found for this user and engagement.");
|
|
60
|
+
this.cancelInternal(job, "Canceled by user.");
|
|
61
|
+
return this.public(job);
|
|
62
|
+
}
|
|
63
|
+
cancelInvalid(isValid) {
|
|
64
|
+
for (const job of this.jobs.values())
|
|
65
|
+
if (job.status === "running" && !isValid(job))
|
|
66
|
+
this.cancelInternal(job, "Engagement or access changed.");
|
|
67
|
+
}
|
|
68
|
+
close() { for (const job of this.jobs.values())
|
|
69
|
+
if (job.status === "running")
|
|
70
|
+
this.cancelInternal(job, "Gateway is shutting down."); }
|
|
71
|
+
cancelInternal(job, reason) {
|
|
72
|
+
if (job.status !== "running")
|
|
73
|
+
return;
|
|
74
|
+
job.status = "canceled";
|
|
75
|
+
job.error = reason;
|
|
76
|
+
job.finishedAt = new Date().toISOString();
|
|
77
|
+
clearTimeout(job.timer);
|
|
78
|
+
job.controller.abort();
|
|
79
|
+
}
|
|
80
|
+
public(job) {
|
|
81
|
+
const { controller: _controller, timer: _timer, ...visible } = job;
|
|
82
|
+
return visible;
|
|
83
|
+
}
|
|
84
|
+
prune() {
|
|
85
|
+
const now = Date.now();
|
|
86
|
+
for (const [id, job] of this.jobs)
|
|
87
|
+
if (job.finishedAt && now - Date.parse(job.finishedAt) > 60 * 60_000)
|
|
88
|
+
this.jobs.delete(id);
|
|
89
|
+
while (this.jobs.size > 100) {
|
|
90
|
+
const completed = [...this.jobs].find(([, job]) => job.status !== "running");
|
|
91
|
+
if (!completed)
|
|
92
|
+
break;
|
|
93
|
+
this.jobs.delete(completed[0]);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/gateway/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoBzC,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,CAAC;AAEtC,MAAM,OAAO,WAAW;IACd,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE7C,KAAK,CAAC,IAAY,EAAE,OAAe,EAAE,cAAsB,EAAE,QAAgB,EAAE,IAAY,EACzF,OAAkD;QAClD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAClF,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,YAAY;YACpG,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACxH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,GAAG,GAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI;YAC7E,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;YAClE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,0CAA0C,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7G,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;YACpD,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;gBAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;gBAAC,GAAG,CAAC,KAAK,GAAG,mDAAmD,CAAC;YAAC,CAAC;iBACtI,CAAC;gBAAC,GAAG,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,CAAC;YAClJ,GAAG,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YACrC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YAAC,GAAG,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1F,GAAG,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,OAAe;QAChC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACjH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAU;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACzH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,OAAe,EAAE,EAAU;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACzH,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,OAAqC;QACjD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;IACjJ,CAAC;IAED,KAAK,KAAW,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAEpI,cAAc,CAAC,GAAe,EAAE,MAAc;QACpD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACrC,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC;QAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC;QAAC,GAAG,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvF,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC;IAEO,MAAM,CAAC,GAAe;QAC5B,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9H,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;YAC7E,IAAI,CAAC,SAAS;gBAAE,MAAM;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
2
|
import type { AuditEntry } from "../types.js";
|
|
3
3
|
import { GatewayStore } from "./state.js";
|
|
4
|
+
import { Workbench } from "./workbench.js";
|
|
5
|
+
import { GatewayJobs } from "./jobs.js";
|
|
4
6
|
export declare class GatewayRuntime {
|
|
5
7
|
readonly store: GatewayStore;
|
|
6
8
|
private readonly hosted;
|
|
7
9
|
private readonly requiredAuditSink?;
|
|
8
10
|
private readonly isActorAllowed?;
|
|
11
|
+
readonly workbench: Workbench;
|
|
12
|
+
readonly jobs: GatewayJobs;
|
|
9
13
|
private clients;
|
|
10
14
|
private pending;
|
|
11
15
|
private proxies;
|
|
12
16
|
private statuses;
|
|
13
17
|
private runningCommands;
|
|
18
|
+
private nucleiJobs;
|
|
14
19
|
constructor(store: GatewayStore, hosted: boolean, requiredAuditSink?: ((entry: AuditEntry) => Promise<void>) | undefined, isActorAllowed?: ((email?: string) => boolean) | undefined);
|
|
15
20
|
sync(): Promise<void>;
|
|
16
21
|
upstreamStatuses(): Record<string, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/gateway/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAiE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/gateway/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAiE,MAAM,YAAY,CAAC;AAEzG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAc,MAAM,WAAW,CAAC;AAUpD,qBAAa,cAAc;IAUb,QAAQ,CAAC,KAAK,EAAE,YAAY;IAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAW,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAAwC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IATvL,QAAQ,CAAC,SAAS,YAAmB;IACrC,QAAQ,CAAC,IAAI,cAAqB;IAClC,OAAO,CAAC,OAAO,CAA4D;IAC3E,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,QAAQ,CAA+G;IAC/H,OAAO,CAAC,eAAe,CAA8E;IACrG,OAAO,CAAC,UAAU,CAAiH;gBAE9G,KAAK,EAAE,YAAY,EAAmB,MAAM,EAAE,OAAO,EAAmB,iBAAiB,CAAC,GAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,aAAA,EAAmB,cAAc,CAAC,GAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,aAAA;IAE9M,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC3B,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAK9J,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9C,OAAO,CAAC,UAAU;YAYJ,SAAS;IA2BvB,OAAO,CAAC,SAAS;IAOjB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAiO9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
|