blitzstrike 1.0.72 → 1.0.73
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 +11 -0
- package/dist/index.js +42 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,17 @@ 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
|
+
## [1.0.73] — 2026-09-13
|
|
9
|
+
|
|
10
|
+
### Added — orchestrator "in control" banner + live progress
|
|
11
|
+
|
|
12
|
+
- `run_engagement` now returns a terminal-friendly banner announcing the
|
|
13
|
+
engagement ("orchestrator in control") with the target, mode, and the
|
|
14
|
+
canonical scope→recon→analyze→verify→review→report pipeline.
|
|
15
|
+
- New `blitz_status` MCP tool: format a live progress snapshot (current stage,
|
|
16
|
+
checkmark/active/pending markers, finding counts, task status) so a driving
|
|
17
|
+
agent can announce progress to the user as it works.
|
|
18
|
+
|
|
8
19
|
## [1.0.72] — 2026-09-13
|
|
9
20
|
|
|
10
21
|
### Changed — coordinated agent guidance
|
package/dist/index.js
CHANGED
|
@@ -30787,6 +30787,33 @@ function resolveFinding(finding, verdict) {
|
|
|
30787
30787
|
}
|
|
30788
30788
|
|
|
30789
30789
|
// src/orchestrator.ts
|
|
30790
|
+
var ENGAGEMENT_STAGES = ["scope", "recon", "analyze", "verify", "review", "report"];
|
|
30791
|
+
function engagementBanner(target, mode) {
|
|
30792
|
+
return [
|
|
30793
|
+
"⚡ BLITZ engagement — orchestrator in control",
|
|
30794
|
+
` target: ${target}`,
|
|
30795
|
+
` mode: ${mode}`,
|
|
30796
|
+
` stages: ${ENGAGEMENT_STAGES.join(" → ")}`
|
|
30797
|
+
].join(`
|
|
30798
|
+
`);
|
|
30799
|
+
}
|
|
30800
|
+
function formatStatus(opts) {
|
|
30801
|
+
const lines = [];
|
|
30802
|
+
const idx = opts.phase ? ENGAGEMENT_STAGES.indexOf(opts.phase) : -1;
|
|
30803
|
+
lines.push(`BLITZ engagement${idx >= 0 ? ` — ${opts.phase} (${idx + 1}/${ENGAGEMENT_STAGES.length})` : ""}`);
|
|
30804
|
+
if (idx >= 0) {
|
|
30805
|
+
lines.push(` stages: ${ENGAGEMENT_STAGES.map((s, i) => i < idx ? `${s} ✓` : i === idx ? `${s} ▶` : `${s} ☐`).join(" ")}`);
|
|
30806
|
+
}
|
|
30807
|
+
if (opts.findings) {
|
|
30808
|
+
const f = opts.findings;
|
|
30809
|
+
lines.push(` findings: ${[`${f.detected ?? 0} detected`, `${f.hypothesis ?? 0} hypothesis`, `${f.confirmed ?? 0} confirmed`, `${f.false_positive ?? 0} false_positive`].join(" · ")}`);
|
|
30810
|
+
}
|
|
30811
|
+
if (opts.tasks && opts.tasks.length) {
|
|
30812
|
+
lines.push(` tasks: ${opts.tasks.map((t) => `${t.objective} (${t.status})`).join(" · ")}`);
|
|
30813
|
+
}
|
|
30814
|
+
return lines.join(`
|
|
30815
|
+
`);
|
|
30816
|
+
}
|
|
30790
30817
|
var _chainsCache = null;
|
|
30791
30818
|
function loadChains() {
|
|
30792
30819
|
if (_chainsCache)
|
|
@@ -30904,6 +30931,7 @@ function enrichScan(path, maxFiles = 2000) {
|
|
|
30904
30931
|
}
|
|
30905
30932
|
function runEngagement(target, scope = "", mode = "bug-bounty", maxFiles = 2000, remember = true) {
|
|
30906
30933
|
const report = {
|
|
30934
|
+
banner: engagementBanner(target, mode),
|
|
30907
30935
|
target,
|
|
30908
30936
|
mode,
|
|
30909
30937
|
tiers: {},
|
|
@@ -31057,7 +31085,7 @@ function listChains() {
|
|
|
31057
31085
|
}
|
|
31058
31086
|
var LIVE_SWEEP_PARAMS = ["q", "search", "query", "s", "id", "url", "redirect", "name", "page"];
|
|
31059
31087
|
async function runLiveEngagement(url, scope = "", mode = "bug-bounty") {
|
|
31060
|
-
const report = { target: url, mode, findings: [], scope: null, status: "" };
|
|
31088
|
+
const report = { banner: engagementBanner(url, mode), target: url, mode, findings: [], scope: null, status: "" };
|
|
31061
31089
|
const sc = scopeCheck(url, scope, mode);
|
|
31062
31090
|
report.scope = sc;
|
|
31063
31091
|
if (!sc.allowed) {
|
|
@@ -53494,6 +53522,19 @@ function createServer() {
|
|
|
53494
53522
|
content: [{ type: "text", text: JSON.stringify(r) }]
|
|
53495
53523
|
};
|
|
53496
53524
|
});
|
|
53525
|
+
server.registerTool("blitz_status", {
|
|
53526
|
+
title: "Engagement progress banner",
|
|
53527
|
+
description: "Format a terminal-friendly live progress snapshot of the running engagement — current stage (of the scope→recon→analyze→verify→review→report pipeline), finding counts, and task status. Call it to announce progress to the user as you drive the audit.",
|
|
53528
|
+
inputSchema: {
|
|
53529
|
+
phase: string2().optional().describe("Current stage: scope/recon/analyze/verify/review/report"),
|
|
53530
|
+
findings: record(string2(), number2()).optional().describe("Finding counts, e.g. {detected:4,hypothesis:2,confirmed:1,false_positive:0}"),
|
|
53531
|
+
tasks: array(object2({ id: string2(), objective: string2(), status: string2() })).optional().describe("Task list with status")
|
|
53532
|
+
}
|
|
53533
|
+
}, async ({ phase, findings, tasks }) => {
|
|
53534
|
+
return {
|
|
53535
|
+
content: [{ type: "text", text: formatStatus({ phase, findings, tasks }) }]
|
|
53536
|
+
};
|
|
53537
|
+
});
|
|
53497
53538
|
server.registerTool("list_chains", {
|
|
53498
53539
|
title: "STRIKE list chains",
|
|
53499
53540
|
description: "STRIKE: list all escalation chains in the data layer (chains.json).",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blitzstrike",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.73",
|
|
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": {
|