@aarmos/starter-policies
v0.1.2
Published
Six Aarmatix-signed starter policy bundles for Aarmos — PII redaction, budget cap, no external network, approval-required-for-writes, tenant isolation, and kill-switch on anomaly.
Maintainers
Readme
@aarmos/starter-policies
Six Aarmatix-signed policy bundles that give any Aarmos install a sane
default posture in one command. Each bundle is Ed25519-signed against the
canonical form defined in src/lib/policy/bundle.ts and verified on-device
by bundle-verify.ts — the same code path the runtime uses.
Contents
| File | What it enforces |
|------|------------------|
| pii-redaction.signed.json | Redacts emails, phones, SSN, card numbers, and common API-key prefixes in tool inputs/outputs. |
| budget-cap.signed.json | Autonomous scope capped at $5/day and 20 steps/run for every agent. |
| no-external-network.signed.json | Only localhost / 127.0.0.1 servers allowed. Denies generic http, shell, and fetch tools. |
| approval-required-for-writes.signed.json | Blocks every write_*, delete_*, update_*, create_*, put_*, post_*, patch_*, send_*, pay_*, transfer_* tool. Approve them explicitly at runtime. |
| tenant-isolation.signed.json | Read-only scopes for github/slack/notion/gdrive; denies *_admin_*, *_org_*, *_workspace_delete_*. |
| kill-switch-on-anomaly.signed.json | Ships with killSwitchDefault: true — the agent boots halted. Denies shell_*, *_exec_*, *_eval_*. |
Trust root
Public key (base64, 32 raw bytes, Ed25519):
EVDaKS7hlv6RF89WHUHVywDSxB0j3VgFJp8wJNAfCWQ=Also in PUBKEY. The private seed lives offline with Aarmatix
and is not in this repo. Rotating this key is a versioned event — the next
starter-pack release will ship a new PUBKEY and re-signed bundles.
Verify offline
npx @aarmos/starter-policies verify
# or
node ./verify.mjsExits 0 if every bundle's signature verifies against PUBKEY. This uses
the same canonicalization as the on-device verifier — a passing local check
means the runtime will also accept the bundle.
Use in Aarmos
Drop any signed bundle into your device's policy store, or load it via CLI:
aarmos policy load ./signed/pii-redaction.signed.json
aarmos policy load ./signed/budget-cap.signed.jsonBundles are additive: loading multiple stacks their allow/deny/redaction
rules. The runtime evaluates them with deny > allow and every decision is
recorded in the AVAR receipt with the exact policy_hash used.
Sources
Unsigned bodies live under src/ so you can diff what the
signature covers.
