@integsec/agentic-pentest-proxy 0.2.6 → 0.2.7

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.
@@ -10,6 +10,22 @@ import { CloudWatchAuditLogger } from "../src/audit/cloudwatch.js";
10
10
  import { AzureMonitorAuditLogger } from "../src/audit/azure-monitor.js";
11
11
  import { GcpAuditLogger } from "../src/audit/gcp-logging.js";
12
12
  async function main() {
13
+ if (process.argv.includes("--help") || process.argv.includes("-h")) {
14
+ console.log(`IntegSec Agentic Pentest Proxy
15
+
16
+ Every MCP tool call is checked against your scope manifest before forwarding.
17
+
18
+ Get started:
19
+ 1. integsec-agentic-pentest-manifest new -o scope.json
20
+ 2. integsec-agentic-pentest-setup --name my-tool --manifest ./scope.json -- <tool-command> [args...]
21
+ 3. Paste the generated mcpServers entry into your MCP client's configuration.
22
+ 4. integsec-agentic-pentest-tui --audit-path ./audit
23
+
24
+ The proxy starts when your MCP client launches its configured tool.
25
+ Docs: https://github.com/IntegSec/agentic-pentest-proxy#quick-start
26
+ `);
27
+ return;
28
+ }
13
29
  console.error("[integsec-agentic-pentest-proxy] Starting...");
14
30
  const config = loadConfig();
15
31
  const manifest = await loadManifest();
@@ -31,6 +47,14 @@ async function main() {
31
47
  console.error("[integsec-agentic-pentest-proxy] Azure Monitor logging enabled");
32
48
  }
33
49
  if (config.gcpProject) {
50
+ try {
51
+ const moduleName = "@google-cloud/logging";
52
+ await import(/* @vite-ignore */ moduleName);
53
+ }
54
+ catch {
55
+ throw new Error("GOOGLE_CLOUD_PROJECT is set but @google-cloud/logging is unavailable. " +
56
+ "Install it alongside the proxy before starting GCP audit logging.");
57
+ }
34
58
  auditLogger.addBackend(new GcpAuditLogger(config.gcpProject));
35
59
  console.error("[integsec-agentic-pentest-proxy] GCP Cloud Logging enabled");
36
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"integsec-agentic-pentest-proxy.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integsec-agentic-pentest-proxy.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=integsec-agentic-pentest-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integsec-agentic-pentest-setup.d.ts","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-setup.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, statSync } from "node:fs";
3
+ import { dirname, resolve } from "node:path";
4
+ const HELP = `IntegSec Agentic Pentest Proxy - add an MCP tool
5
+
6
+ Usage:
7
+ integsec-agentic-pentest-setup --name <name> --manifest <scope.json> [--audit-dir <dir>] -- <command> [args...]
8
+ integsec-agentic-pentest-setup --name <name> --manifest <scope.json> [--audit-dir <dir>] --sse <url>
9
+
10
+ Examples:
11
+ integsec-agentic-pentest-setup --name scanner-scoped --manifest ./scope.json -- npx -y @example/scanner-mcp
12
+ integsec-agentic-pentest-setup --name burp-scoped --manifest ./scope.json --sse http://127.0.0.1:9876
13
+
14
+ Paste the printed mcpServers entry into your MCP client's config. Repeat for each tool.
15
+ Audit logs default to an audit directory beside your manifest.
16
+ `;
17
+ function fail(message) {
18
+ console.error(`Setup error: ${message}\n\n${HELP}`);
19
+ process.exit(1);
20
+ }
21
+ function main() {
22
+ const args = process.argv.slice(2);
23
+ if (args.includes("--help") || args.includes("-h")) {
24
+ console.log(HELP);
25
+ return;
26
+ }
27
+ const separator = args.indexOf("--");
28
+ const options = separator === -1 ? args : args.slice(0, separator);
29
+ const command = separator === -1 ? [] : args.slice(separator + 1);
30
+ let name;
31
+ let manifest;
32
+ let sse;
33
+ let auditDir;
34
+ for (let i = 0; i < options.length; i += 2) {
35
+ const key = options[i];
36
+ const value = options[i + 1];
37
+ if (!value || value.startsWith("--"))
38
+ fail(`Missing value for ${key}.`);
39
+ if (key === "--name")
40
+ name = value;
41
+ else if (key === "--manifest")
42
+ manifest = value;
43
+ else if (key === "--audit-dir")
44
+ auditDir = value;
45
+ else if (key === "--sse")
46
+ sse = value;
47
+ else
48
+ fail(`Unknown option ${key}.`);
49
+ }
50
+ if (!name?.trim())
51
+ fail("--name is required.");
52
+ if (!manifest?.trim())
53
+ fail("--manifest is required.");
54
+ if ((sse && command.length > 0) || (!sse && command.length === 0)) {
55
+ fail("Provide either --sse <url> or a tool command after --.");
56
+ }
57
+ const manifestPath = resolve(manifest);
58
+ if (!existsSync(manifestPath) || !statSync(manifestPath).isFile()) {
59
+ fail(`Manifest file was not found: ${manifestPath}`);
60
+ }
61
+ if (sse) {
62
+ let url;
63
+ try {
64
+ url = new URL(sse);
65
+ }
66
+ catch {
67
+ fail("--sse must be a valid http:// or https:// URL.");
68
+ }
69
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
70
+ fail("--sse must be a valid http:// or https:// URL.");
71
+ }
72
+ }
73
+ const env = {
74
+ SCOPE_MANIFEST_PATH: manifestPath,
75
+ MCP_TRANSPORT: sse ? "sse" : "stdio",
76
+ AUDIT_LOG_PATH: auditDir ? resolve(auditDir) : resolve(dirname(manifestPath), "audit"),
77
+ };
78
+ if (sse) {
79
+ env.UPSTREAM_MCP_URL = sse;
80
+ }
81
+ else {
82
+ env.UPSTREAM_MCP_COMMAND = command[0];
83
+ env.UPSTREAM_MCP_ARGS_JSON = JSON.stringify(command.slice(1));
84
+ }
85
+ console.log(JSON.stringify({ mcpServers: { [name]: {
86
+ command: "integsec-agentic-pentest-proxy",
87
+ env,
88
+ } } }, null, 2));
89
+ console.error(`\nMonitor: integsec-agentic-pentest-tui --audit-path "${env.AUDIT_LOG_PATH}"`);
90
+ }
91
+ main();
92
+ //# sourceMappingURL=integsec-agentic-pentest-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integsec-agentic-pentest-setup.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-logging.d.ts","sourceRoot":"","sources":["../../../src/audit/gcp-logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAoB;IAClC,oEAAoE;IACpE,OAAO,CAAC,OAAO,CAAQ;gBAEX,SAAS,CAAC,EAAE,MAAM;IAIxB,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA+C7B"}
1
+ {"version":3,"file":"gcp-logging.d.ts","sourceRoot":"","sources":["../../../src/audit/gcp-logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAiB/C;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAoB;IAClC,oEAAoE;IACpE,OAAO,CAAC,OAAO,CAAQ;gBAEX,SAAS,CAAC,EAAE,MAAM;IAIxB,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAgD7B"}
@@ -30,7 +30,8 @@ export class GcpAuditLogger {
30
30
  const toSend = this.buffer.splice(0);
31
31
  let sdk;
32
32
  try {
33
- sdk = await import("@google-cloud/logging");
33
+ const moduleName = "@google-cloud/logging";
34
+ sdk = await import(/* @vite-ignore */ moduleName);
34
35
  }
35
36
  catch {
36
37
  console.warn("[GcpAuditLogger] @google-cloud/logging is not installed. " +
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-logging.js","sourceRoot":"","sources":["../../../src/audit/gcp-logging.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AAEnC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IACjB,SAAS,CAAqB;IAC9B,MAAM,GAAiB,EAAE,CAAC;IAClC,oEAAoE;IAC5D,OAAO,GAAG,IAAI,CAAC;IAEvB,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEtD,8DAA8D;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,GAA2C,CAAC;QAChD,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CACV,2DAA2D;gBACzD,gCAAgC,CACnC,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,sEAAsE;YACtE,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS;YAClC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3E,OAAO,GAAG,CAAC,KAAK,CACd;oBACE,QAAQ;oBACR,MAAM,EAAE;wBACN,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,MAAM,EAAE,KAAK,CAAC,MAAM;qBACrB;oBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC7B,EACD,KAAK,CACN,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACvD,kEAAkE;YAClE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"gcp-logging.js","sourceRoot":"","sources":["../../../src/audit/gcp-logging.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AAenC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IACjB,SAAS,CAAqB;IAC9B,MAAM,GAAiB,EAAE,CAAC;IAClC,oEAAoE;IAC5D,OAAO,GAAG,IAAI,CAAC;IAEvB,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEtD,8DAA8D;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,GAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,uBAAuB,CAAC;YAC3C,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAqB,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CACV,2DAA2D;gBACzD,gCAAgC,CACnC,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,sEAAsE;YACtE,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS;YAClC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3E,OAAO,GAAG,CAAC,KAAK,CACd;oBACE,QAAQ;oBACR,MAAM,EAAE;wBACN,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,MAAM,EAAE,KAAK,CAAC,MAAM;qBACrB;oBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC7B,EACD,KAAK,CACN,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACvD,kEAAkE;YAClE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAIjD,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gHAAgH;IAChH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAYD,wBAAgB,UAAU,IAAI,WAAW,CA6BxC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAIjD,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gHAAgH;IAChH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AA6BD,wBAAgB,UAAU,IAAI,WAAW,CA6BxC"}
@@ -6,6 +6,23 @@ function parseTransport(value) {
6
6
  }
7
7
  return t;
8
8
  }
9
+ function parseUpstreamArgs() {
10
+ const json = process.env.UPSTREAM_MCP_ARGS_JSON;
11
+ if (json !== undefined) {
12
+ let args;
13
+ try {
14
+ args = JSON.parse(json);
15
+ }
16
+ catch {
17
+ throw new Error("UPSTREAM_MCP_ARGS_JSON must be a JSON array of strings.");
18
+ }
19
+ if (!Array.isArray(args) || !args.every((arg) => typeof arg === "string")) {
20
+ throw new Error("UPSTREAM_MCP_ARGS_JSON must be a JSON array of strings.");
21
+ }
22
+ return args;
23
+ }
24
+ return process.env.UPSTREAM_MCP_ARGS?.split(",");
25
+ }
9
26
  export function loadConfig() {
10
27
  return {
11
28
  manifestPath: process.env.SCOPE_MANIFEST_PATH,
@@ -16,7 +33,7 @@ export function loadConfig() {
16
33
  transport: parseTransport(process.env.MCP_TRANSPORT),
17
34
  upstreamMcpUrl: process.env.UPSTREAM_MCP_URL,
18
35
  upstreamMcpCommand: process.env.UPSTREAM_MCP_COMMAND,
19
- upstreamMcpArgs: process.env.UPSTREAM_MCP_ARGS?.split(","),
36
+ upstreamMcpArgs: parseUpstreamArgs(),
20
37
  upstreamStartupDelayMs: parseInt(process.env.UPSTREAM_STARTUP_DELAY_MS || "0", 10),
21
38
  proxyPort: parseInt(process.env.PROXY_PORT || "9090", 10),
22
39
  proxyHost: process.env.PROXY_HOST || "127.0.0.1",
@@ -33,7 +50,7 @@ export function loadConfig() {
33
50
  techniqueMapPath: process.env.TECHNIQUE_MAP_PATH,
34
51
  dnsCacheTtl: parseInt(process.env.DNS_CACHE_TTL || "60", 10),
35
52
  logLevel: process.env.LOG_LEVEL || "INFO",
36
- proxyVersion: process.env.PROXY_VERSION || "0.2.6",
53
+ proxyVersion: process.env.PROXY_VERSION || "0.2.7",
37
54
  };
38
55
  }
39
56
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAmClE,SAAS,cAAc,CAAC,KAAyB;IAC/C,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,CAAE,UAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,0BAA0B,KAAK,kBAAkB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,CAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC7C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC7C,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACxD,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;QAC5D,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACxD,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QACpD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC5C,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACpD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC;QAC1D,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,GAAG,EAAE,EAAE,CAAC;QAClF,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,EAAE,EAAE,CAAC;QACzD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;QAChD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC5C,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,MAAM;QAC7E,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,UAAU;QACtD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACtC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QACjC,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;QACvD,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B;QACnE,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;QACvD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,yBAAyB;QAClF,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAC5C,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAChD,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5D,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACzC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO;KACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-tailer.d.ts","sourceRoot":"","sources":["../../../src/tui/audit-tailer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CA4B3E;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,UAAU,CAqBZ"}
1
+ {"version":3,"file":"audit-tailer.d.ts","sourceRoot":"","sources":["../../../src/tui/audit-tailer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CA4B3E;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,UAAU,CAqBZ"}
@@ -1,5 +1,6 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
+ import { engagementFileStem } from "../safe-filename.js";
3
4
  export function readNewEntries(filePath, offset) {
4
5
  if (!fs.existsSync(filePath)) {
5
6
  return { entries: [], newOffset: offset };
@@ -33,7 +34,7 @@ export function scanExistingEntries(auditDir, engagementId) {
33
34
  const allEntries = [];
34
35
  const offsets = new Map();
35
36
  for (const file of files) {
36
- if (engagementId && file !== `${engagementId}.jsonl`) {
37
+ if (engagementId && file !== `${engagementFileStem(engagementId)}.jsonl`) {
37
38
  continue;
38
39
  }
39
40
  const filePath = path.join(auditDir, file);
@@ -1 +1 @@
1
- {"version":3,"file":"audit-tailer.js","sourceRoot":"","sources":["../../../src/tui/audit-tailer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-tailer.js","sourceRoot":"","sources":["../../../src/tui/audit-tailer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuditWatcher.d.ts","sourceRoot":"","sources":["../../../src/tui/useAuditWatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,UAAU,YAAY;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,CAiCrF"}
1
+ {"version":3,"file":"useAuditWatcher.d.ts","sourceRoot":"","sources":["../../../src/tui/useAuditWatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,UAAU,YAAY;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,CAiCrF"}
@@ -2,6 +2,7 @@ import { useState, useEffect, useRef } from "react";
2
2
  import * as fs from "node:fs";
3
3
  import * as path from "node:path";
4
4
  import { readNewEntries, scanExistingEntries } from "./audit-tailer.js";
5
+ import { engagementFileStem } from "../safe-filename.js";
5
6
  export function useAuditWatcher(auditDir, engagementId) {
6
7
  const [entries, setEntries] = useState([]);
7
8
  const offsetsRef = useRef(new Map());
@@ -15,7 +16,7 @@ export function useAuditWatcher(auditDir, engagementId) {
15
16
  const watcher = fs.watch(auditDir, (_event, filename) => {
16
17
  if (!filename || !filename.endsWith(".jsonl"))
17
18
  return;
18
- if (engagementId && filename !== `${engagementId}.jsonl`)
19
+ if (engagementId && filename !== `${engagementFileStem(engagementId)}.jsonl`)
19
20
  return;
20
21
  const filePath = path.join(auditDir, filename);
21
22
  const currentOffset = offsetsRef.current.get(filePath) ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"useAuditWatcher.js","sourceRoot":"","sources":["../../../src/tui/useAuditWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAMxE,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,YAAqB;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAe,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,CAAsB,IAAI,GAAG,EAAE,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAElC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACtD,IAAI,YAAY,IAAI,QAAQ,KAAK,GAAG,YAAY,QAAQ;gBAAE,OAAO;YAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnD,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7B,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"useAuditWatcher.js","sourceRoot":"","sources":["../../../src/tui/useAuditWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,YAAqB;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAe,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,CAAsB,IAAI,GAAG,EAAE,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAElC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACtD,IAAI,YAAY,IAAI,QAAQ,KAAK,GAAG,kBAAkB,CAAC,YAAY,CAAC,QAAQ;gBAAE,OAAO;YAErF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnD,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7B,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
@@ -1,14 +1,12 @@
1
1
  {
2
2
  "mcpServers": {
3
3
  "burp-scoped": {
4
- "command": "npx",
5
- "args": ["-y", "@integsec/agentic-pentest-proxy"],
4
+ "command": "integsec-agentic-pentest-proxy",
6
5
  "env": {
7
- "SCOPE_MANIFEST_PATH": "C:/path/to/scope.json",
8
- "MCP_TRANSPORT": "stdio",
9
- "UPSTREAM_MCP_COMMAND": "java",
10
- "UPSTREAM_MCP_ARGS": "-jar,C:/path/to/mcp-proxy-all.jar,--sse-url,http://127.0.0.1:9876",
11
- "AUDIT_LOG_PATH": "C:/path/to/audit"
6
+ "SCOPE_MANIFEST_PATH": "/path/to/scope.json",
7
+ "MCP_TRANSPORT": "sse",
8
+ "UPSTREAM_MCP_URL": "http://127.0.0.1:9876",
9
+ "AUDIT_LOG_PATH": "/path/to/audit"
12
10
  }
13
11
  }
14
12
  }
@@ -1,14 +1,13 @@
1
1
  {
2
2
  "mcpServers": {
3
3
  "turbopentest-scoped": {
4
- "command": "npx",
5
- "args": ["-y", "@integsec/agentic-pentest-proxy"],
4
+ "command": "integsec-agentic-pentest-proxy",
6
5
  "env": {
7
6
  "SCOPE_MANIFEST_PATH": "/path/to/scope.json",
8
7
  "MCP_TRANSPORT": "stdio",
9
8
  "UPSTREAM_MCP_COMMAND": "npx",
10
- "UPSTREAM_MCP_ARGS": "-y,@turbopentest/mcp-server",
11
- "AUDIT_LOG_PATH": "./audit/"
9
+ "UPSTREAM_MCP_ARGS_JSON": "[\"-y\",\"@turbopentest/mcp-server\"]",
10
+ "AUDIT_LOG_PATH": "/path/to/audit"
12
11
  }
13
12
  }
14
13
  }
@@ -1,18 +1,18 @@
1
1
  {
2
- "engagement_id": "ENG-2025-0142",
3
- "client": "Acme Corp",
4
- "operator": "operator@integsec.com",
2
+ "engagement_id": "DEMO-001",
3
+ "client": "Example Labs",
4
+ "operator": "tester@example.test",
5
5
  "authorized_targets": {
6
- "ip_ranges": ["10.10.10.0/24", "203.0.113.0/28"],
7
- "domains": ["*.acme.com", "acme-staging.example.com"],
8
- "urls": ["https://app.acme.com", "https://api.acme.com"],
9
- "cloud_accounts": ["aws:123456789012", "azure:sub-xxxx"]
6
+ "ip_ranges": ["192.0.2.0/24"],
7
+ "domains": ["*.example.test"],
8
+ "urls": ["https://app.example.test"],
9
+ "cloud_accounts": []
10
10
  },
11
- "excluded_targets": ["203.0.113.5", "hr.acme.com"],
12
- "authorized_techniques": ["recon", "web_app", "api_testing"],
11
+ "excluded_targets": ["192.0.2.5", "hr.example.test"],
12
+ "authorized_techniques": ["recon", "web_app"],
13
13
  "excluded_techniques": ["dos", "destructive", "social_engineering"],
14
14
  "engagement_window": {
15
- "start": "2026-03-26T08:00:00Z",
16
- "end": "2026-04-09T17:00:00Z"
15
+ "start": "2030-01-01T08:00:00Z",
16
+ "end": "2030-01-02T17:00:00Z"
17
17
  }
18
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integsec/agentic-pentest-proxy",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "IntegSec Agentic Pentest MCP Proxy — enforce penetration testing engagement scope for AI agents",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,13 +8,16 @@
8
8
  },
9
9
  "type": "module",
10
10
  "bin": {
11
+ "agentic-pentest-proxy": "dist/bin/integsec-agentic-pentest-proxy.js",
11
12
  "integsec-agentic-pentest-proxy": "dist/bin/integsec-agentic-pentest-proxy.js",
13
+ "integsec-agentic-pentest-setup": "dist/bin/integsec-agentic-pentest-setup.js",
12
14
  "integsec-agentic-pentest-tui": "dist/bin/integsec-agentic-pentest-tui.js",
13
15
  "integsec-agentic-pentest-manifest": "dist/bin/integsec-agentic-pentest-manifest.js"
14
16
  },
15
17
  "files": [
16
18
  "dist/",
17
19
  "examples/",
20
+ "scripts/postinstall.cjs",
18
21
  "README.md",
19
22
  "LICENSE"
20
23
  ],
@@ -27,7 +30,8 @@
27
30
  "test:watch": "vitest",
28
31
  "driver": "vitest run --config vitest.driver.config.ts",
29
32
  "lint": "tsc --noEmit",
30
- "start": "node dist/bin/integsec-agentic-pentest-proxy.js"
33
+ "start": "node dist/bin/integsec-agentic-pentest-proxy.js",
34
+ "postinstall": "node scripts/postinstall.cjs"
31
35
  },
32
36
  "keywords": [
33
37
  "mcp",
@@ -63,10 +67,16 @@
63
67
  "@aws-sdk/client-secrets-manager": "^3.1164.0",
64
68
  "@azure/identity": "^4.5.0",
65
69
  "@azure/keyvault-secrets": "^4.12.0",
66
- "@azure/monitor-ingestion": "^1.1.0",
70
+ "@azure/monitor-ingestion": "^1.1.0"
71
+ },
72
+ "peerDependencies": {
67
73
  "@google-cloud/logging": "^12.3.0",
68
74
  "@google-cloud/secret-manager": "^7.2.0"
69
75
  },
76
+ "peerDependenciesMeta": {
77
+ "@google-cloud/logging": { "optional": true },
78
+ "@google-cloud/secret-manager": { "optional": true }
79
+ },
70
80
  "engines": {
71
81
  "node": ">=22.0.0"
72
82
  }
@@ -0,0 +1,14 @@
1
+ // This optional welcome note performs no network requests or file writes.
2
+ if (!process.env.CI && process.env.INTEGSEC_NO_INSTALL_MESSAGE !== "1") {
3
+ const version = require("../package.json").version;
4
+ console.log(`
5
+ ┌─────────────────────────────────────────────────────┐
6
+ │ IntegSec Agentic Pentest Proxy v${version.padEnd(19)}│
7
+ │ Scope first. Tools second. Audit every decision. │
8
+ └─────────────────────────────────────────────────────┘
9
+
10
+ Next: integsec-agentic-pentest-manifest new
11
+ Add an MCP tool: integsec-agentic-pentest-setup --help
12
+ Watch decisions: integsec-agentic-pentest-tui
13
+ `);
14
+ }
@@ -1,32 +0,0 @@
1
- {
2
- "engagement_id": "ENG-2026-TEST-001",
3
- "client": "IntegSec Internal",
4
- "operator": "security@integsec.com",
5
- "authorized_targets": {
6
- "ip_ranges": [],
7
- "domains": [
8
- "turbopentest.com",
9
- "*.turbopentest.com",
10
- "integsec.com",
11
- "*.integsec.com",
12
- "lfo.pw",
13
- "*.lfo.pw",
14
- "pentestprepper.com",
15
- "*.pentestprepper.com"
16
- ],
17
- "urls": [
18
- "https://turbopentest.com",
19
- "https://integsec.com",
20
- "https://lfo.pw",
21
- "https://pentestprepper.com"
22
- ],
23
- "cloud_accounts": []
24
- },
25
- "excluded_targets": [],
26
- "authorized_techniques": ["recon", "web_app", "api_testing", "ssl_tls"],
27
- "excluded_techniques": ["dos", "destructive", "social_engineering"],
28
- "engagement_window": {
29
- "start": "2026-03-27T00:00:00Z",
30
- "end": "2026-04-27T23:59:59Z"
31
- }
32
- }