Repository navigation
llmAntidote v3.1.0
Hardens the runtime policy path and adds enforced fleet admission, validated against a real Hermes v0.21.6 install.
Highlights
- Capability classification (
llm_antidote/capabilities.py): a versioned classifier reasons about what a tool can do, not only its argument text. Outbound connector/message tools and unknown plugin tools are treated as egress-capable. - Safe/sensitive roots: reads outside operator-configured
safe_read_rootsrequire approval even for unrecognized filenames;sensitive_rootsalways do. - Pending taint reservation: sensitive reads reserve access atomically before execution and outbound calls check pending-in-flight or completed taint, closing the concurrent-read decision window.
- Enforced fleet admission: a signed fleet policy and verified deployed-model binding are required at plugin startup; signed
runtime.mode/taint_ttl_minutesare authoritative and conflicting local overrides are refused. Tool calls are blocked when the served model route stops matching the admitted model. fleet runtime-verify: an external supervisor gate for environments where a failed plugin register leaves the host running unguarded.- Spark endpoints: explicit
--trusted-hostplaintext HTTP opt-in (loopback default retained, redirects refused).
Packaging fixes
- Moved development tooling to
requirements-dev.txt; the previous[dev]extra was folded into Hermes'--all-extrasinstall and conflicted with its pinned pytest. - Relaxed the
cryptographypin so the plugin co-installs with the version Hermes ships (previously excluded50.0.1).
Compatibility
- Python 3.11+; Hermes Agent 0.21.x.
- New settings:
safe_read_roots,sensitive_roots, and theadmission_*family (seedocs/FLEET_ADMISSION.md).
Validation
hermes plugins validate/doctor --ci: pass (6 hooks).- Runtime hook E2E via real Hermes dispatch and enforced-mode admission (signed
strict, route-swap block, tamper fail-closed, external gate exit 1). pytest: 143 passed;ruff check .clean.
Full details in CHANGELOG.md.