Add blackwall-guard example — BLACK_WALL pre-action risk gate for OpenClaw agents#52
Open
bluetieroperations-create wants to merge 3 commits into
Conversation
…nClaw agents A community integration that hooks before_tool_call and screens every tool call through the external BLACK_WALL forecast() service (GO / CAUTION / STOP + a signed, offline-verifiable receipt) before it runs. Observe mode by default; enforce mode blocks STOP (and CAUTION, by default) with the red-flag detail. Ships the plugin (index.ts), manifest, two skills, and a vitest suite covering the decision state machine, the HTTPS-only credential guard, and the proxy CONNECT-header cap. Moved here from a nemoclaw-blueprint PR (NVIDIA/NemoClaw#4692) per maintainer guidance that third-party integrations belong in this repository. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Samuel Trujillo <270213615+bluetieroperations-create@users.noreply.github.com>
Closed
6 tasks
Collaborator
|
Thanks @bluetieroperations-create; apologies for the delay in review. Could you please add an entry in the top-level README table? Also left a few minor comments |
slopp
reviewed
Jul 19, 2026
|
|
||
| ## Security properties | ||
|
|
||
| - **No credential over plaintext.** The API key is only sent over `https://` (or an |
Collaborator
There was a problem hiding this comment.
It would be better if the credential was never in the sandbox at all. Is it possible to create an openshell provider and openshell policy that allows the blackwall API requests explicitly, and performs the cred injection at the openshell proxy egress?
slopp
reviewed
Jul 19, 2026
| prompt-injected agent might attempt — destructive shell commands, irreversible | ||
| writes, data exfiltration, fund movement — independent of the model's own judgment. | ||
|
|
||
| > This is an independent, third-party integration contributed as a community |
Collaborator
There was a problem hiding this comment.
Please make it clear in this note who a user would contact for support and that this PR requires a paid API key
… injection Per @slopp's review on NVIDIA#52: - Add a BLACK_WALL Preflight Guardrail row to the top-level Reference Examples table. - Disclose in the example README that it requires a BLACK_WALL API key (free tier, usage-based pricing above it) and that support is BlueTier Operations, not NVIDIA. - Add an OpenShell provider (providers/blackwall.yaml, auth_style: bearer) and a sandbox network policy (policy.yaml) so the API key is injected at the L7 proxy on egress and never enters the sandbox, scoped to only the forecast endpoints the plugin calls. Mirrors the personal-community-sentiment-triage pattern and is documented as the recommended deployment. The plugin needs no change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Samuel Trujillo <270213615+bluetieroperations-create@users.noreply.github.com>
Author
|
Thanks @slopp — addressed all three:
Appreciate the thorough review. |
…-example Signed-off-by: Samuel Trujillo <270213615+bluetieroperations-create@users.noreply.github.com> # Conflicts: # README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
examples/blackwall-guard/— a community integration that adds a pre-action risk gate to an OpenClaw agent running under NemoClaw. It hooksbefore_tool_calland screens every tool call through the external BLACK_WALLforecast()service before it runs — returning GO / CAUTION / STOP, a risk score, named red flags, and an Ed25519-signed, offline-verifiable receipt.cautionAction.Contents
index.ts(plugin),openclaw.plugin.json(manifest),skills/blackwall-policy+skills/blackwall-verify, andindex.test.ts— a Vitest suite covering thebefore_tool_calldecision state machine, the HTTPS-only credential guard, and the proxy CONNECT-header size cap.Context
This began as a
nemoclaw-blueprintplugin PR on the main repo (NVIDIA/NemoClaw#4692). Per the maintainer's guidance there — that an independent third-party runtime integration belongs innemoclaw-communityrather than core — I've moved it here, as I offered on that PR. The code is unchanged from the version reviewed there (including the security fixes from that review). The README frames it clearly as an independent third-party integration calling an external service, not a NemoClaw-supported surface.Checks
scripts/check_license_headers.py --checkpasses locally (.tsfiles carry SPDX headers).THIRD-PARTY-NOTICES.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com