@cognexuslabs/n8n-nodes-artzain
v0.1.6
Published
n8n nodes for the CogNEXUS Decision API and envelope proxy. Fail closed on HTTP 503. review does not wait inside n8n.
Maintainers
Readme
@cognexuslabs/n8n-nodes-artzain
n8n community nodes that wrap CogNEXUS Decision (pattern A) and Envelope (pattern B) so operators do not hand-assemble JSON.
Nodes
| Node | What it does |
|---|---|
| CogNEXUS Decision | POST /api/v1/decisions. Three outputs: Allow / Review / Deny. HTTP 503 / 401 / 422 land on Deny, and so does a redirect (3xx), which is not followed. Review does not wait inside n8n — a human owns it in the dashboard Review Queue. Wire side effects only to Allow. |
| CogNEXUS Envelope | POST /api/v1/envelope/v1/chat/completions with a cnxe_… key. Screens model traffic. It does not gate a later Stripe/Gmail node. |
Request ID (Decision node)
The Decision node's Request ID field is the server's idempotency key.
Leave it empty and the node derives n8n-<executionId>-<item> — unique per
n8n execution, so two runs of the same workflow never share a key (0.1.1 and
earlier sent n8n-<item>-<action>, which was identical for item 0 of every
execution and could replay another run's sealed verdict). Set it explicitly
to your own business key — an order id, an invoice number — when you want
server-side replay across retries: for 48 hours (the server's default
window) a repeat of the same request id with the same inputs — Agent DID,
Action, Target, Payload and Payload Kind — returns the sealed decision
instead of deciding again, and a repeat whose inputs differ is decided and
sealed afresh. Still never reuse a key for a different customer or amount:
engines built before 21 September 2026 replay the prior decision whatever the
inputs. Max 64 characters.
How the fallback is built (fallbackRequestId in src/decision.ts): for
each item the node reads the Request ID parameter (requestId); when it
is empty it calls n8n's this.getExecutionId() and sends
n8n-<executionId>-<item> (execution id trimmed, <item> the zero-based
item index). If the running n8n does not expose getExecutionId, or it
returns an empty or blank string, a random UUID stands in for the execution
id — n8n-<uuid>-<item> — so the key is still unique per call. Either way
the value is cut to the server's cap of 64 characters before it is sent as
request_id.
What this is not
- Not a Connectors-panel card named n8n.
- Not published to npm from the engine repository. Dest
(
CogNEXUSlabs/cognexus-tools) publishes it through npm Trusted Publishing, with provenance, on ann8n-v*tag. - Not a Wait node that pretends CogNEXUS
reviewresolved inside n8n. - Not an OpenClaw community node. OpenClaw Chat nodes drive the Gateway; this package sits in front of your side effects.
Install
In n8n: Settings → Community nodes → Install from npm, package
@cognexuslabs/n8n-nodes-artzain.
To try a change that is not released yet, build from a checkout of dest
(n8n/) or the engine dual-home (sdk/n8n/) and point n8n at that folder
per n8n's custom-node docs (N8N_CUSTOM_EXTENSIONS, or npm pack + install
the tarball):
npm ci && npm run buildCredential for Decision: Header X-Api-Key = sandbox key from /get-a-key.
Not a dashboard JWT. Envelope uses Authorization: Bearer cnxe_…. Neither
node follows a redirect, and the Decision credential's Test fails on one,
naming the status: set Base URL to the address the API answers on.
