Identity registry
Every agent is issued an opaque id, a deterministic fingerprint, declared capabilities, an issuer, and
metadata. Records are immutable and frozen; the registry is fully deterministic.
A complete, queryable inventory of your fleet: who exists, who created them, and what
they can touch, available in one call.
Capability authorization
Each agent declares the capabilities it may exercise, scoped by action and resource pattern.
can() and authorize() answer fail-closed.
An over-reaching agent never silently performs an action it was not granted. Default-deny,
not default-allow.
Lifecycle state machine
Six states (provisioned, active, suspended, revoked,
expired, archived) with a single legal-transition table. Illegal moves are rejected
whole.
An agent can only ever be in a state you intended, and only an active one can act.
Rotation and expiry
Rotate a credential to a new fingerprint, expire an identity at an instant, sweep past-expiry agents, and
renew to bring one back. Expiry is enforced fail-closed on the read.
No long-lived, never-reviewed agent credentials lingering in production indefinitely.
Cryptographic identity
Optional Ed25519 signing of an agent's passport, with interchangeable Node and Web Crypto signers and
A2A-aligned Signed Agent Cards that verify against a pinned issuer key anywhere.
A receiving party that has pinned the issuer's key can confirm an agent is who it claims
to be before any interaction, across organizational boundaries.
Telemetry
Every lifecycle and access event is emitted to in-process listeners (agent.issued,
agent.revoked, access.denied, and more), zero OpenTelemetry dependency.
Drop events into the logger or metrics pipeline you already run; no new agent, no new
vendor.
Hash-chained audit trail
Every operation appends one frozen, hash-chained event. verifyAuditChain() detects
tampering. The trail is append-only and is never pruned.
Reconstruct who could do what, and when, with a record that flags any retroactive
edit.
Pluggable state
Memory backend by default; opt-in file backend with atomic writes and corrupt-snapshot quarantine, or any
key-value store. Mirror to Postgres, SQLite, or KV for cross-process query.
Durability and cross-service inventory without coupling Krikos to any database driver.
SLSA provenance
Every published version signed with npm publish --provenance through GitHub Actions OIDC.
Lockfile committed; supply-chain policy enforces minimum release age on new dependency versions.
Verify in one command that the tarball you installed was built from the source commit you
trust.