R0001–R0030 declare `applies_to: [command]` and match per command, not per session. The worker now translates one `attacker.session.ended` payload carrying a `commands: list` into: - one source_kind="session" event (behavioral / cross-event lifters) - one source_kind="command" event per command (RuleEngineTagger) Both string and dict command shapes are accepted; dicts contribute their `id` / `uuid` / `command_id` as the per-command source_id so the deterministic `compute_tag_uuid` keeps replays idempotent. Tags from session + per-command dispatch are aggregated into a single `ttp.tagged` envelope per upstream session.
3.6 KiB
3.6 KiB