blitzstrike 2.4.9 → 2.4.10
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/CHANGELOG.md +16 -0
- package/dist/index.js +14 -9
- package/package.json +1 -1
- package/tools-catalog.json +5633 -5631
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ All notable changes to Blitz Strike are documented here.
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
7
7
|
|
|
8
|
+
## [2.4.10] — 2026-09-14
|
|
9
|
+
|
|
10
|
+
### Added — auto-install external MCP servers to every agent
|
|
11
|
+
|
|
12
|
+
- chrome-devtools-mcp is now flagged `installable` in the catalog: `install-tools`
|
|
13
|
+
/ `install_all_tools` provision it (npm i -g) instead of skipping all MCP
|
|
14
|
+
servers. burp-suite-mcp stays skipped (GUI/daemon — build + run manually).
|
|
15
|
+
- `blitzstrike install` (register to every agent) now also auto-installs
|
|
16
|
+
chrome-devtools-mcp so all agents can drive a real browser immediately.
|
|
17
|
+
|
|
18
|
+
### Fixed — doctor git stderr leak
|
|
19
|
+
|
|
20
|
+
- `validateRelease` suppresses git/npm stderr, so `blitzstrike doctor` no longer
|
|
21
|
+
prints a stray `fatal: not a git repository` / `No tags can describe` line when
|
|
22
|
+
run outside a git checkout.
|
|
23
|
+
|
|
8
24
|
## [2.4.9] — 2026-09-14
|
|
9
25
|
|
|
10
26
|
### Added — evidence-first enforcement (findings are never born empty)
|
package/dist/index.js
CHANGED
|
@@ -7633,9 +7633,9 @@ function ensureToolAsync(name, timeoutMs = 120000) {
|
|
|
7633
7633
|
}
|
|
7634
7634
|
async function installAllTools(opts = {}) {
|
|
7635
7635
|
const tools = loadTools();
|
|
7636
|
-
const
|
|
7636
|
+
const skippedMcp = tools.filter((t) => t.category === "mcp-server" && t.installable !== true).map((t) => t.name);
|
|
7637
7637
|
const cat = opts.category?.toLowerCase();
|
|
7638
|
-
const targets = tools.filter((t) => t.category !== "mcp-server" && (!cat || t.category === cat));
|
|
7638
|
+
const targets = tools.filter((t) => (t.category !== "mcp-server" || t.installable === true) && (!cat || t.category === cat));
|
|
7639
7639
|
const concurrency = Math.max(1, opts.concurrency ?? 4);
|
|
7640
7640
|
const results = [];
|
|
7641
7641
|
let idx = 0;
|
|
@@ -7657,7 +7657,7 @@ async function installAllTools(opts = {}) {
|
|
|
7657
7657
|
installed,
|
|
7658
7658
|
already_installed: already,
|
|
7659
7659
|
failed,
|
|
7660
|
-
skipped_mcp_servers:
|
|
7660
|
+
skipped_mcp_servers: skippedMcp,
|
|
7661
7661
|
results
|
|
7662
7662
|
};
|
|
7663
7663
|
}
|
|
@@ -15579,13 +15579,13 @@ function validateRelease() {
|
|
|
15579
15579
|
checks.push({ name: "CHANGELOG version", ok: false, detail: "CHANGELOG.md not found" });
|
|
15580
15580
|
}
|
|
15581
15581
|
try {
|
|
15582
|
-
const tag = execSync4("git describe --tags --abbrev=0", { cwd: ROOT8, encoding: "utf8" }).trim();
|
|
15582
|
+
const tag = execSync4("git describe --tags --abbrev=0", { cwd: ROOT8, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
15583
15583
|
checks.push({ name: "Git tag", ok: tag === `v${VERSION}`, detail: tag, soft: true });
|
|
15584
15584
|
} catch {
|
|
15585
|
-
checks.push({ name: "Git tag", ok: true, detail: "unavailable (no git)", soft: true });
|
|
15585
|
+
checks.push({ name: "Git tag", ok: true, detail: "unavailable (no git/tags)", soft: true });
|
|
15586
15586
|
}
|
|
15587
15587
|
try {
|
|
15588
|
-
const published = execSync4("npm view blitzstrike version", { encoding: "utf8", timeout: 8000 }).trim();
|
|
15588
|
+
const published = execSync4("npm view blitzstrike version", { encoding: "utf8", timeout: 8000, stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
15589
15589
|
checks.push({ name: "npm registry version", ok: published === VERSION, detail: published, soft: true });
|
|
15590
15590
|
} catch {
|
|
15591
15591
|
checks.push({ name: "npm registry version", ok: true, detail: "unavailable (offline)", soft: true });
|
|
@@ -15958,6 +15958,11 @@ Agent-specific formats: see docs/installation.md`);
|
|
|
15958
15958
|
console.log(`
|
|
15959
15959
|
Registered with ${ok}/${installed.length} agent(s).`);
|
|
15960
15960
|
console.log("Restart your agent, then call `run_engagement` or any `blitzstrike` tool.");
|
|
15961
|
+
console.log(`
|
|
15962
|
+
External MCP servers:`);
|
|
15963
|
+
const devtools = ensureTool("chrome-devtools-mcp");
|
|
15964
|
+
console.log(` ${devtools.installed ? "OK " : "FAIL"} chrome-devtools-mcp ${devtools.installed ? "installed (browser MCP ready for all agents)" : devtools.command ?? "install failed"}`);
|
|
15965
|
+
console.log(` SKIP burp-suite-mcp GUI/daemon — build manually (PortSwigger/mcp-server) + load in Burp (connect, not install)`);
|
|
15961
15966
|
}
|
|
15962
15967
|
async function runInstallTools(args) {
|
|
15963
15968
|
const getArg = (flag) => {
|
|
@@ -15975,9 +15980,9 @@ async function runInstallTools(args) {
|
|
|
15975
15980
|
await Promise.resolve().then(() => init_catalog());
|
|
15976
15981
|
if (dryRun) {
|
|
15977
15982
|
const tools = loadTools();
|
|
15978
|
-
const mcp = tools.filter((t) => t.category === "mcp-server");
|
|
15979
|
-
const targets = tools.filter((t) => t.category !== "mcp-server" && (!category || t.category === category.toLowerCase()));
|
|
15980
|
-
console.log(`Dry run — would attempt ${targets.length} tool(s); ${mcp.length} MCP server(s) skipped (connect, not install):`);
|
|
15983
|
+
const mcp = tools.filter((t) => t.category === "mcp-server" && t.installable !== true);
|
|
15984
|
+
const targets = tools.filter((t) => (t.category !== "mcp-server" || t.installable === true) && (!category || t.category === category.toLowerCase()));
|
|
15985
|
+
console.log(`Dry run — would attempt ${targets.length} tool(s); ${mcp.length} MCP server(s) skipped (GUI/daemon — connect, not install):`);
|
|
15981
15986
|
for (const t of targets)
|
|
15982
15987
|
console.log(` ${t.category.padEnd(11)} ${t.name}`);
|
|
15983
15988
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blitzstrike",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.10",
|
|
4
4
|
"description": "Blitz Strike — a universal MCP security-audit toolbelt. BLITZ sweeps the attack surface, EAGLE-EYE traces source-to-sink, STRIKE verifies live. 57 attack chains, 130-tool catalog, intelligence data layer. One server, every agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|