Agent Control Commands¶
Commands that bound what an agent may do: peer risk signals, logic attestations, process mediation, overlay discovery, communication privacy and context integrity.
Commands are stable unless marked Beta; Public Contract lists the level of every command. A beta command may change in a minor release.
Peer Risk Signal Commands¶
This is not a reputation system. Each sovereign maintains its own local, independent signals for its counterparties. There is no shared ledger, no global ranking, and no cross-sovereign comparison.
The genesis-mesh trust risk sub-group (v0.37) implements locally-computed,
time-decaying EWMA signals over ExecutionEvidence outcomes. The
RiskSignalGate is an opt-in gate — adding it to a BoundaryEngine
requires it; the default engine path is unchanged.
Algorithm: decay signal × exp(-λ × elapsed_days), then EWMA
α × outcome_value + (1 - α) × decayed_signal. Anomaly raised when
|Δ - mean(last_10)| > 3σ.
genesis-mesh trust risk create¶
Beta.
Create a new signed PeerRiskSignal for a counterparty.
genesis-mesh trust risk create \
--from-sovereign sovereign-a \
--to-sovereign counterparty-b \
--signing-key keys/sov-a.key \
--output signals/b.json
Options: --initial-signal (default 0.5), --alpha (default 0.2),
--decay-lambda (default 0.05).
genesis-mesh trust risk update¶
Beta.
Update signal from an ExecutionEvidence outcome. Emits anomaly JSON if
a sudden drop is detected.
genesis-mesh trust risk update \
--signal signals/b.json \
--evidence evidence.json \
--signing-key keys/sov-a.key \
--output signals/b-updated.json \
--output-anomaly anomaly.json
Outcomes accepted: success (→ 1.0), partial (→ 0.5), failure (→ 0.0).
genesis-mesh trust risk decay¶
Beta.
Apply exponential time decay without an evidence update (scheduled jobs).
genesis-mesh trust risk decay \
--signal signals/b-updated.json \
--signing-key keys/sov-a.key \
--output signals/b-decayed.json
genesis-mesh trust risk show¶
Beta.
Display current signal state.
genesis-mesh trust risk show --signal signals/b.json --format json
genesis-mesh trust risk assess-seed¶
Beta.
Assess whether a counterparty’s RiskSignalUpdate history matches adversarial
seed patterns (credit farming, volatility discontinuity, streak fragility).
genesis-mesh trust risk assess-seed \
--signal signals/b.json \
--history updates/u0001.json \
--history updates/u0002.json \
--seed-threshold 0.5 \
--format human
Exits 0 if not isolated, 1 if isolated.
Three pattern scores are computed from the full update history:
CFS (Credit Farming Score): early history is significantly better than the late history — the counterparty built credit before degrading.
VDS (Volatility Discontinuity Score): variance in deltas changed abruptly at some midpoint — a behavioral mode switch.
SFS (Streak Fragility Score): an implausibly long consecutive success streak, inconsistent with a benign EWMA history.
seed_probability = 0.4 × CFS + 0.3 × VDS + 0.3 × SFS
Returns isolated=False with all scores 0.0 when history < 20 updates (no
evidence yet). Assessment is entirely local — two sovereigns may reach different
conclusions about the same counterparty based on their independent histories.
The SeedIsolationGate can be added to a BoundaryEngine to block execution
automatically once seed_probability exceeds the threshold.
Options: --seed-threshold (default 0.5), --format human|json.
Verifiable Logic Attestation Commands¶
The genesis-mesh trust attest sub-group (v0.40) implements pre-execution
configuration binding: an agent signs a ModelAttestation declaring its
exact model, system prompt, and tool list before a capability runs. The
LogicAttestationGate validates it against an operator AttestationPolicy.
The attestation is the agent’s own signed declaration of its model, prompt
and tools, not a measurement. LogicAttestationGate is opt-in: it is not one
of the default BoundaryEngine gates, so add it to an engine to refuse an
agent whose declaration does not match the policy. It cannot detect an agent
that declares falsely.
genesis-mesh trust attest create¶
Beta.
Create a signed ModelAttestation for the current execution context.
genesis-mesh trust attest create \
--agent-sovereign agent-a \
--model-id example-model-v2 \
--model-version 20251001 \
--system-prompt-file prompts/system.txt \
--tool-id tool_read --tool-id tool_write \
--signing-key keys/agent.key \
--output attestation.json
Options: --token-id (optional IBCT binding), --valid-for (seconds, default 300).
The system prompt is hashed (SHA-256, UTF-8) — the raw prompt is never stored. Tool IDs are sorted before hashing so declaration order does not affect the hash.
genesis-mesh trust attest verify¶
Beta.
Verify a ModelAttestation against an AttestationPolicy. Exits 0 if valid, 1 if not.
genesis-mesh trust attest verify \
--attestation attestation.json \
--policy policy.json \
--public-key <agent-pub-b64> \
--format human
Reason codes on failure: missing_signature, invalid_signature, expired,
model_not_permitted, system_prompt_not_permitted, tool_manifest_not_permitted,
token_binding_required.
genesis-mesh trust attest policy¶
Beta.
Create a signed AttestationPolicy defining permitted execution contexts.
genesis-mesh trust attest policy \
--operator-sovereign operator-x \
--allow-model example-model-v2 \
--allow-prompt-hash <sha256-hex> \
--valid-until 2027-01-01T00:00:00Z \
--signing-key keys/operator.key \
--output policy.json
Empty --allow-* lists mean “any value permitted” for that dimension.
Options: --allow-model, --allow-prompt-hash, --allow-tool-hash (all repeatable),
--require-bound-token (flag).
Process-Level Execution Mediation Commands¶
The genesis-mesh trust guard sub-group (v0.45) provides a local enforcement
sidecar that validates authorization artifacts before spawning subprocesses.
See Example: Process-Level Execution Mediation for the advisory vs. mandatory mediation mode distinction and the 5-point mandatory enforcement checklist.
genesis-mesh trust guard start¶
Beta.
Start the GenesisGuard daemon (foreground; Ctrl-C to stop).
genesis-mesh trust guard start \
--guard-sovereign guard-1 \
--signing-key keys/guard.key \
--port 8700 \
--agent-key 'agent-b=keys/agent.pub.b64' \
--operator-key 'operator-a=keys/operator.pub.b64' \
--token-issuer-key 'operator-a=keys/operator.pub.b64' \
--decision decision.json \
--command-allowlist 'python --version' \
--command-allowlist 'python /opt/report.py ...'
--command-allowlist is required and repeatable. Each entry is a full
command line matched against the whole command, not the program name; a
trailing ... allows a variable tail. The guard refuses to start without it.
See Process-Level Mediation for the
entry format.
--token-issuer-key is repeatable and takes issuer-id=base64-public-key or
issuer-id=path-to-key-file. Every request must carry the requesting agent’s
signed InvocationToken; a token whose issuer_sovereign_id has no key here is
rejected with unknown_token_issuer.
The guard also checks the request and the decision it names (v1.0.2):
--agent-key agent-id=key-or-path(repeatable): an agent whose signed requests the guard accepts. The agent ID is the bearer itsInvocationTokennames.--operator-key operator-id=key-or-path(repeatable): an operator whose signedBoundaryDecisions the guard accepts. The ID is the decision’soperator_sovereign_id.--decision decision.json(repeatable) loads a signed decision at start;--decision-dir DIRnames a directory the guard reads when a request names a decision it has not loaded (<decision_id>.json, or any file holding it).
Without any one of these the guard starts, warns for each one missing, and rejects every request.
genesis-mesh trust guard request¶
Beta.
Submit an ExecutionMediationRequest to a running daemon and write the
response (receipt or rejection) to a file.
genesis-mesh trust guard request \
--capability run-python \
--decision decision.json \
--token invocation-token.json \
--command python --command script.py \
--signing-key keys/agent.key \
--socket-host 127.0.0.1 \
--socket-port 8700 \
--output receipt.json
Pass --command once per argument of the subprocess command.
--token is the agent’s signed InvocationToken and is required in
practice: the whole token is attached to the request (the agent’s signature
covers it), and the guard rejects a request without one as
missing_invocation_token. The token names its bearer, which is how the guard
knows the request comes from the agent it was issued to — a BoundaryDecision
names no agent at all.
genesis-mesh trust guard verify¶
Beta.
Verify a signed MediatedExecutionReceipt. Exits non-zero if invalid. When
the guard refused the request, trust guard request wrote the rejection to
the output file instead; verify then reports not_a_receipt with the
rejection’s reason.
genesis-mesh trust guard verify \
--receipt receipt.json \
--guard-key "$(cat keys/guard.pub.b64)" \
--format json
Sovereign Overlay Discovery Commands¶
The genesis-mesh trust discover sub-group (v0.44) enables DNS-free peer
discovery via gossip over existing Noise XX connections.
genesis-mesh trust discover announce¶
Beta.
Create a signed OverlayDiscoveryRecord.
genesis-mesh trust discover announce \
--sovereign-id agent-a \
--na-public-key "$(cat keys/agent-a.pub.b64)" \
--endpoint http://agent-a.mesh:8443 \
--capabilities-hash <hash> \
--signing-key keys/agent-a.key \
--output record.json
Options: --sequence-no N (default 1), --valid-for-hours N (default 24).
genesis-mesh trust discover verify¶
Beta.
Verify a received OverlayDiscoveryRecord. Exits non-zero if invalid.
genesis-mesh trust discover verify \
--record record.json \
--known-sequence-no 5 \
--format json
genesis-mesh trust discover feed¶
Beta.
Build a signed DiscoveryFeed from one or more record files.
genesis-mesh trust discover feed \
--record r1.json --record r2.json \
--operator-sovereign operator-1 \
--signing-key keys/operator.key \
--output feed.json
genesis-mesh trust discover merge¶
Beta.
Merge incoming records into a local cache file (highest sequence_no wins).
genesis-mesh trust discover merge \
--cache cache.json \
--incoming peer-record.json \
--output cache.json
Communication Privacy Commands¶
The genesis-mesh trust privacy sub-group (v0.43) normalizes outbound message
metadata to eliminate the easiest SALA (Stylometry-Assisted LLM Analysis)
fingerprinting vectors at the mesh layer.
genesis-mesh trust privacy profile¶
Beta.
Create a signed CommunicationPrivacyProfile.
genesis-mesh trust privacy profile \
--sovereign-id agent-a \
--bucket-seconds 5 \
--block-bytes 256 \
--allow-header x-correlation-id \
--signing-key keys/agent.key \
--output profile.json
Options: --no-strip-headers, --no-normalize-timestamps, --no-normalize-length.
genesis-mesh trust privacy apply¶
Beta.
Apply a privacy profile to an outbound payload + headers.
genesis-mesh trust privacy apply \
--payload message.bin \
--headers headers.json \
--profile profile.json \
--signing-key keys/agent.key \
--output-envelope envelope.json \
--output-payload normalized.bin
Produces a signed MetadataEnvelope and a block-padded payload file.
genesis-mesh trust privacy scan¶
Beta.
List header keys that would be stripped. Non-blocking — informational only.
genesis-mesh trust privacy scan \
--headers headers.json \
--profile profile.json \
--format human
Context-Injection Defense Commands¶
The genesis-mesh trust integrity sub-group (v0.41) implements pre-execution
context commitment. An agent commits to its base context hash and the typed,
bounded segments it expects to receive. Any undeclared, oversized, or tampered
segment in the final context is a gate violation.
ContextInjectionGate is opt-in: it is not one of the default
BoundaryEngine gates, so add it to an engine. It refuses a final context
whose base was changed, or that holds an undeclared or oversized segment, or a
segment whose provenance differs from the declared one. It does not inspect
what a declared segment says, so adversarial text inside a declared segment,
within its budget, passes.
genesis-mesh trust integrity commit¶
Beta.
Commit to a base context before execution begins.
genesis-mesh trust integrity commit \
--agent-sovereign agent-a \
--decision-id decision-xyz \
--system-prompt-file prompts/system.txt \
--max-turns 20 \
--max-tool-results 50 \
--max-total-tokens 8192 \
--signing-key keys/agent.key \
--output record.json
Options: --valid-for (seconds, default 600).
The system prompt hash is captured at commit time; the raw prompt is not stored.
genesis-mesh trust integrity verify¶
Beta.
Verify final context matches committed base plus declared segments. Exits 0 if valid, 1 if any check fails.
genesis-mesh trust integrity verify \
--record record.json \
--final-context final-context.json \
--public-key <agent-pub-b64> \
--format human
Reason codes on failure: missing_signature, invalid_signature, expired,
base_context_tampered, undeclared_segment, segment_provenance_mismatch
(an observed segment’s provenance digest differs from the declared one),
segment_token_exceeded, total_token_exceeded.
Optional --segment (JSON string, repeatable) passes observed
ContextAppendSegment objects for per-segment token checking.