chore: relicense to AGPL-3.0-or-later and add SPDX headers
Replaces LICENSE (GPLv3 -> AGPLv3) and prepends `SPDX-License-Identifier: AGPL-3.0-or-later` to every source file across decnet/, decnet_web/, tests/, scripts/, and tools/. Rationale: closes the GPLv3 ASP loophole so any party operating a modified DECNET as a network service must offer their modified source. Personal copyright (Samuel Paschuan) + inbound=outbound contributions make a future unilateral relicense infeasible. - LICENSE: full AGPL-3.0 text (gnu.org/licenses/agpl-3.0.txt) - COPYRIGHT: project copyright notice - tools/add_spdx_headers.py: idempotent header injector (shebang- and PEP 263-aware) Touches 1565 source files (.py, .ts, .tsx, .js, .jsx, .css, .sh). No behavior change; comments only.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""DECNET profiler — standalone attacker profile builder worker."""
|
||||
|
||||
from decnet.profiler.worker import attacker_profile_worker
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""BEHAVE-SHELL extraction engine — DECNET's official implementation.
|
||||
|
||||
Per ``development/BEHAVE-EXTRACTOR.md``: this package is a pure
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""SessionContext: precomputed bundle every feature function reads from.
|
||||
|
||||
A naïve engine re-walks the event stream once per primitive. We don't
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Registered feature functions.
|
||||
|
||||
Each entry takes a ``SessionContext`` and yields zero or more
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Helper for building registry-valid :class:`Observation` records.
|
||||
|
||||
Every feature module would otherwise repeat the same Window /
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""``cognitive.*`` feature functions.
|
||||
|
||||
Step 5: ``cognitive.inter_command_latency_class``.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""``emotional_valence.*`` feature functions (Phase G, soft block).
|
||||
|
||||
All four primitives in this module ride a hard 0.5 confidence cap
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""``environmental.*`` feature functions.
|
||||
|
||||
Phase F ships the five environmental primitives plus F.0's shared
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""``motor.*`` feature functions.
|
||||
|
||||
Step 2: ``motor.input_modality`` — typed / pasted / mixed.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""``operational.*`` feature functions (Phase G).
|
||||
|
||||
Step G.1: ``operational.objective``.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""``temporal.*`` feature functions — per-session subset.
|
||||
|
||||
Phase E ships the four ``temporal.*`` primitives that don't need
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""``attacker.session.ended`` handler — Phase 4 wiring.
|
||||
|
||||
Pure handler module: takes a payload (from bus or poll fallback),
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Phase G — shared command-intent + lexical-counter vocabulary.
|
||||
|
||||
Used by:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Asciinema event types + shard-line parsing helpers.
|
||||
|
||||
Shard lines are JSON objects ``{"sid": ..., "t": float, "ch": "i"|"o",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Numeric thresholds for BEHAVE-SHELL primitive classification.
|
||||
|
||||
Each constant cites its calibration source. When the registry's
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Public extraction entry point.
|
||||
|
||||
``extract_session`` is the only function workers call. It builds a
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Behavioral and timing analysis for DECNET attacker profiles.
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Coarse behavior classification for DECNET attacker profiles."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""OS / TCP fingerprint rollup for DECNET attacker profiles.
|
||||
|
||||
Consumes sniffer-emitted `tcp_syn_fingerprint` / `tcp_flow_timing` events and
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Identity-level fingerprint rollup.
|
||||
|
||||
The clusterer mints :class:`AttackerIdentity` rows (and merges them) from
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Recon → exfil phase sequencing for DECNET attacker profiles."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Inter-arrival timing statistics for DECNET attacker profiles."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Tool attribution for DECNET attacker profiles.
|
||||
|
||||
Two detection paths:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Attacker profile builder — incremental background worker.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user