ReviewQueue Agent Submit
$0.25/callRoute risky agent actions to human approval.
POST /api/agent-services/reviewqueue/submitWhat it does
Submit an autonomous-agent command for paid risk triage and human-approval routing. Returns a deterministic risk decision, a request id, whether a human is required, and a recommended action — pause-and-escalate on critical risk. Evidence-backed, nothing fabricated.
- Paid risk triage + approval routing
- Request id and recommended action
- Pause-and-escalate on critical risk
Example request
POST /api/agent-services/reviewqueue/submit
{
"command": "git push --force origin main",
"repo": "github.com/acme/app",
"branch": "main",
"actor": "codex",
"reason": "release automation requested deploy",
"diffStat": "12 files changed, 240 insertions(+), 17 deletions(-)"
}Example response (HTTP 200)
Deterministic — the same inputs always return the same audited output.
{
"status": "review_queued",
"service": "reviewqueue-agent-submit",
"requestId": "rq_<uuid>",
"risk": "critical",
"requiresHuman": true,
"recommendedAction": "pause_agent_and_request_human_approval"
}Input schema
Top-level request fields. Nested shapes are shown in the example above and the OpenAPI spec.
| Field | Type | Required | Description |
|---|---|---|---|
| command | string | Yes | Shell command or agent action being requested |
| repo | string | — | |
| branch | string | — | |
| actor | string | — | |
| reason | string | — | |
| diffStat | string | — |
How to call it over x402
- 1. Send the request. The first unpaid call returns HTTP 402 with an x402 payment challenge — $0.25, USDC on Base, and the recipient.
- 2. Pay per call. Your x402 client signs the USDC payment and retries automatically — no API key, no account, no subscription. New to x402?
- 3. Read the result. HTTP 200 returns the computed values plus evidence-backed findings.
With the x402 fetch client (Node / TypeScript)
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.AGENT_WALLET_KEY);
const pay = wrapFetchWithPayment(fetch, account); // USDC on Base
const res = await pay("https://hermesplant.com/api/agent-services/reviewqueue/submit", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
"command": "git push --force origin main",
"repo": "github.com/acme/app",
"branch": "main",
"actor": "codex",
"reason": "release automation requested deploy",
"diffStat": "12 files changed, 240 insertions(+), 17 deletions(-)"
}),
});
const result = await res.json();Inspect the 402 with curl
curl -i -X POST https://hermesplant.com/api/agent-services/reviewqueue/submit \
-H "content-type: application/json" \
-d '{"command":"git push --force origin main","repo":"github.com/acme/app","branch":"main","actor":"codex","reason":"release automation requested deploy","diffStat":"12 files changed, 240 insertions(+), 17 deletions(-)"}'
# → HTTP/1.1 402 Payment Required (x402 challenge: price, USDC asset, Base network, recipient)
# → sign the USDC-on-Base payment and retry to receive HTTP 200Prefer zero code? This endpoint is also exposed as a tool on the Hermes Plant MCP server, so an MCP-capable agent can call it with its own x402 wallet.
Other agent services
NPV, IRR, XIRR & DCF valuation in a single call.
LP/GP distribution waterfalls, solved exactly.
Black-Scholes option pricing with the full Greeks.
Yield, duration, convexity & loan amortization.
Portfolio risk scored straight from holdings.
Wallet AML & compliance risk screening.
Full deal underwriting — DCF, returns, sensitivity & waterfall in one call.
Score an MCP server before your agent installs it.
Catch destructive agent commands before they run.
Deterministic email & contact data validation.
Need a calculator that isn’t here yet? contact@hermesplant.com