Skip to main content

bastioncorpus

The shared prompt-injection corpus for the bastion trilogy. One canonical, versioned dataset — attack strings, false-positive traps, taxonomy — that all three tools pull from instead of each rolling its own.

tool role reads bastioncorpus as
agentbastion prevent block these strings (SemanticDetector templates + benchmark corpus)
bastionprobe attack fire these payloads
bastiontrace investigate match these signatures in a trace

Same taxonomy, three directions. No LLM, no cloud, no dependencies — pure data plus a loader and three format adapters.

Install

pip install bastioncorpus

Use

Inspect:

bastioncorpus stats
bastioncorpus list --category indirect_injection
bastioncorpus validate

Export into each tool's native file:

bastioncorpus export --format probe    --out payloads.jsonl     # bastionprobe loads this
bastioncorpus export --format trace    --out signatures.jsonl   # bastiontrace matches these
bastioncorpus export --format semantic --out corpus.jsonl --templates templates.jsonl  # agentbastion

From Python:

from bastioncorpus import load_corpus, to_probe, to_semantic, to_trace

rows = load_corpus()
payloads   = to_probe(rows)       # fireable attack payloads
semantic   = to_semantic(rows)    # {"templates": [...], "corpus": [...]}
signatures = to_trace(rows)       # canary-stripped substring signatures

Schema

One row per attack (or benign trap). text may carry a single {canary} placeholder the attack runner fills per run; defense and forensics adapters strip it.

field meaning
id stable unique id
text the string (optional {canary} slot)
category canonical class: direct_injection, indirect_injection, instruction_override, jailbreak_persona, exfiltration, delimiter_injection, obfuscation, or benign_*
label malicious | benign (benign = false-positive trap, to measure over-blocking)
lang language code (en, it, de, …) — never baked into category
tactic framing tactic (authority, data-field, egress-legit, …)
channel where planted (tool_output, user_input)
check how a hit is scored (canary, tool, none)
forbidden_tool tool a check=tool payload tries to trigger
severity 0–5
intent plain-language restatement, for semantic templates

Direct/user_input rows are defense and forensics material; only tool_output payloads with a scoring check are fired as attacks.

Why

Before this, each tool hand-maintained overlapping payload lists that drifted apart. bastioncorpus makes one of them authoritative: fix a payload here, every tool in the trilogy gets it on the next export.

License

MIT

Metadata

Release files for bastioncorpus 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bastioncorpus 0.1.0
File Size Uploaded
bastioncorpus-0.1.0.tar.gz 12.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bastioncorpus 0.1.0
File Interpreter ABI Platform
bastioncorpus-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.1 kB

Release files / bastioncorpus-0.1.0.tar.gz

Download URL bastioncorpus-0.1.0.tar.gz
Size 12.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2c9c8f4fb3b1eaac4df6ed2d1a4af260e59a0ccecaa8492636e37b2b01f43101
BLAKE2b-256 checksum
How to use checksums
423bfe62a2557273aca94f6b57b49b3b80cd580fd3929631d065319c6644b1fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / bastioncorpus-0.1.0-py3-none-any.whl

Download URL bastioncorpus-0.1.0-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6dfa29b639450e5186367d14e20492ec60fc9b97575076dea1865092763a910d
BLAKE2b-256 checksum
How to use checksums
48cd0338d3d47d083babc45678f1bd47841407ad8eafb748e01be9e6a149286e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page