blitzstrike 1.0.49 → 1.0.50

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 CHANGED
@@ -5,6 +5,19 @@ 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.50] — 2026-09-13
9
+
10
+ ### Added — Autonomous Security Engine (phase 10: cross-agent memory)
11
+
12
+ - **Cross-agent Memory** (`src/mission/memory.ts`, §20):
13
+ - `persistMissionMemory()` — persists confirmed findings (verified),
14
+ rejected findings, and failed approaches (with `future_policy`) into the
15
+ long-term memory store; pending hypotheses are NOT persisted (unverified).
16
+ - `recallForTarget()` — retrieves memory relevant to a target, to seed a
17
+ fresh mission.
18
+ - Mission Control's `finalize` now persists reusable knowledge and records the
19
+ saved/deduped count in `memory_refs`.
20
+
8
21
  ## [1.0.49] — 2026-09-13
9
22
 
10
23
  ### Added — Autonomous Security Engine (phase 9: failure recovery)
package/dist/index.js CHANGED
@@ -18716,6 +18716,34 @@ var init_recovery = __esm(() => {
18716
18716
  };
18717
18717
  });
18718
18718
 
18719
+ // src/mission/memory.ts
18720
+ function recordHypothesisOutcome(type, target, status, evidence) {
18721
+ return remember(`finding:${type}`, `[${status}] ${type} @ ${target}: ${evidence}`, status === "validated" ? "signature" : "lesson", [type.toLowerCase(), status], "mission", status === "validated").saved === true;
18722
+ }
18723
+ function recordFailedApproach(fa) {
18724
+ return remember(`failed:${fa.technique}`, `${fa.technique} failed (${fa.category}): ${fa.reason} — ${fa.future_policy}`, "lesson", ["failed", fa.category], "mission", false).saved === true;
18725
+ }
18726
+ function persistMissionMemory(mission) {
18727
+ let attempted = 0;
18728
+ let saved = 0;
18729
+ for (const h of mission.hypotheses) {
18730
+ if (h.status !== "validated" && h.status !== "rejected")
18731
+ continue;
18732
+ attempted += 1;
18733
+ if (recordHypothesisOutcome(h.type, h.target, h.status, h.evidence))
18734
+ saved += 1;
18735
+ }
18736
+ for (const fa of mission.failed_approaches) {
18737
+ attempted += 1;
18738
+ if (recordFailedApproach(fa))
18739
+ saved += 1;
18740
+ }
18741
+ return { saved, deduped: attempted - saved };
18742
+ }
18743
+ var init_memory2 = __esm(() => {
18744
+ init_memory();
18745
+ });
18746
+
18719
18747
  // src/mission/control.ts
18720
18748
  import { existsSync as existsSync8, statSync as statSync4 } from "node:fs";
18721
18749
  function scopeAllowed(mission) {
@@ -18878,6 +18906,10 @@ function finalize2(mission) {
18878
18906
  tasks: allResolved(m.tasks) ? 1 : 0,
18879
18907
  hypotheses_validated: m.hypotheses.length > 0 ? m.hypotheses.filter((h) => h.status === "validated").length / m.hypotheses.length : 0
18880
18908
  };
18909
+ const mem = persistMissionMemory(m);
18910
+ if (mem.saved > 0) {
18911
+ m = { ...m, memory_refs: [...m.memory_refs, `persisted:${mem.saved} (${mem.deduped} deduped)`] };
18912
+ }
18881
18913
  return saveMission(m);
18882
18914
  }
18883
18915
  async function startMission(target, mode, opts = {}) {
@@ -18900,6 +18932,7 @@ var init_control = __esm(() => {
18900
18932
  init_planner();
18901
18933
  init_coverage();
18902
18934
  init_recovery();
18935
+ init_memory2();
18903
18936
  MODE_PROFILES = {
18904
18937
  web: { agents: ["recon", "web", "api", "auth", "validator", "reviewer", "reporter"], verify: true, risk: "medium" },
18905
18938
  api: { agents: ["recon", "api", "auth", "validator", "reviewer", "reporter"], verify: true, risk: "medium" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blitzstrike",
3
- "version": "1.0.49",
3
+ "version": "1.0.50",
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": {