pentesting 0.2.5 → 0.2.6
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/dist/index.js +60 -21
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1376,7 +1376,7 @@ const { chromium } = require('playwright');
|
|
|
1376
1376
|
}
|
|
1377
1377
|
|
|
1378
1378
|
// src/config/constants.ts
|
|
1379
|
-
var APP_VERSION = "0.2.
|
|
1379
|
+
var APP_VERSION = "0.2.6";
|
|
1380
1380
|
var APP_DESCRIPTION = "Autonomous Penetration Testing AI Agent";
|
|
1381
1381
|
var LLM_API_KEY = process.env.PENTEST_API_KEY || process.env.ANTHROPIC_API_KEY || "";
|
|
1382
1382
|
var LLM_BASE_URL = process.env.PENTEST_BASE_URL || void 0;
|
|
@@ -4327,6 +4327,7 @@ var App = ({ autoApprove = false, target }) => {
|
|
|
4327
4327
|
const [elapsedTime, setElapsedTime] = useState(0);
|
|
4328
4328
|
const [pendingApproval, setPendingApproval] = useState(null);
|
|
4329
4329
|
const [tokenUsage, setTokenUsage] = useState({ input: 0, output: 0, total: 0 });
|
|
4330
|
+
const [showCommandHints, setShowCommandHints] = useState(false);
|
|
4330
4331
|
const [agent] = useState(() => new AutonomousHackingAgent(void 0, { autoApprove }));
|
|
4331
4332
|
const sessionManager2 = getSessionManager();
|
|
4332
4333
|
const approvalManager2 = getApprovalManager({ yoloMode: autoApprove });
|
|
@@ -4397,10 +4398,15 @@ var App = ({ autoApprove = false, target }) => {
|
|
|
4397
4398
|
setPendingApproval({
|
|
4398
4399
|
id: data.id,
|
|
4399
4400
|
toolName: data.toolName,
|
|
4401
|
+
toolInput: data.toolInput,
|
|
4400
4402
|
riskLevel: data.riskLevel
|
|
4401
4403
|
});
|
|
4402
4404
|
addMessage(MESSAGE_TYPE.SYSTEM, `\u26A0\uFE0F APPROVAL NEEDED: ${data.toolName} (${data.riskLevel} risk)`);
|
|
4403
|
-
|
|
4405
|
+
const inputPreview = Object.entries(data.toolInput).slice(0, 2).map(([k, v]) => `${k}=${typeof v === "string" ? v.slice(0, 40) : JSON.stringify(v).slice(0, 40)}`).join(", ");
|
|
4406
|
+
if (inputPreview) {
|
|
4407
|
+
addMessage(MESSAGE_TYPE.SYSTEM, ` Args: ${inputPreview}`);
|
|
4408
|
+
}
|
|
4409
|
+
addMessage(MESSAGE_TYPE.SYSTEM, " /y = approve, /n = deny, /ya = always approve");
|
|
4404
4410
|
});
|
|
4405
4411
|
agent.on(AGENT_EVENT.COMPLETE, () => {
|
|
4406
4412
|
const duration = stopTimer();
|
|
@@ -4417,11 +4423,12 @@ var App = ({ autoApprove = false, target }) => {
|
|
|
4417
4423
|
setPendingApproval({
|
|
4418
4424
|
id: req.id,
|
|
4419
4425
|
toolName: req.toolName,
|
|
4426
|
+
toolInput: req.toolInput,
|
|
4420
4427
|
riskLevel: req.riskLevel
|
|
4421
4428
|
});
|
|
4422
4429
|
addMessage(MESSAGE_TYPE.SYSTEM, `\u26A0\uFE0F APPROVAL NEEDED: ${req.toolName} (${req.riskLevel} risk)`);
|
|
4423
4430
|
addMessage(MESSAGE_TYPE.SYSTEM, ` ${req.reason}`);
|
|
4424
|
-
addMessage(MESSAGE_TYPE.SYSTEM, "
|
|
4431
|
+
addMessage(MESSAGE_TYPE.SYSTEM, " /y = approve, /n = deny, /ya = always approve");
|
|
4425
4432
|
});
|
|
4426
4433
|
return () => {
|
|
4427
4434
|
if (timerRef.current) clearInterval(timerRef.current);
|
|
@@ -4430,13 +4437,29 @@ var App = ({ autoApprove = false, target }) => {
|
|
|
4430
4437
|
const handleSubmit = useCallback(async (value) => {
|
|
4431
4438
|
const trimmed = value.trim();
|
|
4432
4439
|
if (!trimmed) return;
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
+
setShowCommandHints(false);
|
|
4441
|
+
if (pendingApproval) {
|
|
4442
|
+
if (trimmed === "/approve" || trimmed === "/y") {
|
|
4443
|
+
approvalManager2.respond(pendingApproval.id, "approve");
|
|
4444
|
+
addMessage(MESSAGE_TYPE.SYSTEM, "\u2713 Approved");
|
|
4445
|
+
setPendingApproval(null);
|
|
4446
|
+
setInput("");
|
|
4447
|
+
return;
|
|
4448
|
+
}
|
|
4449
|
+
if (trimmed === "/deny" || trimmed === "/n") {
|
|
4450
|
+
approvalManager2.respond(pendingApproval.id, "deny");
|
|
4451
|
+
addMessage(MESSAGE_TYPE.SYSTEM, "\u2717 Denied");
|
|
4452
|
+
setPendingApproval(null);
|
|
4453
|
+
setInput("");
|
|
4454
|
+
return;
|
|
4455
|
+
}
|
|
4456
|
+
if (trimmed === "/ya") {
|
|
4457
|
+
approvalManager2.respond(pendingApproval.id, "approve_always");
|
|
4458
|
+
addMessage(MESSAGE_TYPE.SYSTEM, `\u2713 Approved (always for ${pendingApproval.toolName})`);
|
|
4459
|
+
setPendingApproval(null);
|
|
4460
|
+
setInput("");
|
|
4461
|
+
return;
|
|
4462
|
+
}
|
|
4440
4463
|
}
|
|
4441
4464
|
if (isProcessing && !trimmed.startsWith("/")) return;
|
|
4442
4465
|
setInput("");
|
|
@@ -4654,17 +4677,33 @@ var App = ({ autoApprove = false, target }) => {
|
|
|
4654
4677
|
"s)"
|
|
4655
4678
|
] })
|
|
4656
4679
|
] })
|
|
4657
|
-
] }) : /* @__PURE__ */ jsxs(Box, { children: [
|
|
4658
|
-
/* @__PURE__ */ jsx(
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4680
|
+
] }) : /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
4681
|
+
showCommandHints && input.startsWith("/") && /* @__PURE__ */ jsx(Box, { flexDirection: "column", marginBottom: 1, children: /* @__PURE__ */ jsx(Text, { dimColor: true, children: [
|
|
4682
|
+
"/target <ip>",
|
|
4683
|
+
"/start",
|
|
4684
|
+
"/stop",
|
|
4685
|
+
"/findings",
|
|
4686
|
+
"/sessions",
|
|
4687
|
+
"/yolo",
|
|
4688
|
+
"/clear",
|
|
4689
|
+
"/exit",
|
|
4690
|
+
pendingApproval ? "/y /n /ya" : ""
|
|
4691
|
+
].filter((cmd) => cmd && cmd.toLowerCase().includes(input.toLowerCase().slice(1))).slice(0, 5).join(" \u2502 ") }) }),
|
|
4692
|
+
/* @__PURE__ */ jsxs(Box, { children: [
|
|
4693
|
+
/* @__PURE__ */ jsx(Text, { color: THEME.status.success, children: "\u276F " }),
|
|
4694
|
+
/* @__PURE__ */ jsx(
|
|
4695
|
+
TextInput,
|
|
4696
|
+
{
|
|
4697
|
+
value: input,
|
|
4698
|
+
onChange: (val) => {
|
|
4699
|
+
setInput(val);
|
|
4700
|
+
setShowCommandHints(val.startsWith("/") && val.length > 0);
|
|
4701
|
+
},
|
|
4702
|
+
onSubmit: handleSubmit,
|
|
4703
|
+
placeholder: "Message or /help..."
|
|
4704
|
+
}
|
|
4705
|
+
)
|
|
4706
|
+
] })
|
|
4668
4707
|
] }),
|
|
4669
4708
|
/* @__PURE__ */ jsxs(Box, { marginTop: 1, justifyContent: "space-between", children: [
|
|
4670
4709
|
/* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
|