OSS reference implementation of the agent activity-log taxonomy from the Glide OSS plan §M4. Every event type that the MCP layer appends toDocumentation Index
Fetch the complete documentation index at: https://glide-9da73dea.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
activity_log
lives here as a Zod schema in a discriminated union. The closed vocabulary is
intentional: audit log consumers — compliance exporters, explainer narrators,
anomaly detectors — switch on eventType; adding a new event type requires a
deliberate schema update and a corresponding render path.
The package ships the v1 surface of the
AgentActivityEvent JSON Schema
published at glide.co/schemas/agent-banking/v1/.
Install
Why a closed vocab?
An open event taxonomy is a footgun for every downstream consumer. If any string is a valideventType, the compliance exporter can’t tell the difference between
a known event and a fabricated one, and the anomaly detector’s switch statement
silently falls through to a no-op default.
The discriminated union here enforces that every eventType literal has a known
schema. Unrecognized event types fail AgentEventSchema.parse() at the boundary
where the event enters the system — typically inside the MCP tool handler — not
later when a reviewer tries to render it.
Adding a new event type is a two-line change (literal + schema + union entry)
that produces a TypeScript compile error everywhere the switch is exhaustive.
That friction is the point.
Event types (v1)
| Event type | Payload schema | When it fires |
|---|---|---|
tool_call | ToolCallEventSchema | Tool handler completes (pass or flag) |
tool_call_blocked | ToolCallEventSchema | Policy engine returns deny before execution |
tool_call_failed | ToolCallEventSchema | Tool handler throws (infra error, not policy) |
reasoning_step | ReasoningStepEventSchema | Agent emits a reasoning excerpt (≤200 chars, secrets-safe) |
risk_verdict | RiskVerdictEventSchema | Risk layer returns pass / flag / block |
anomaly_detected | AnomalyDetectedEventSchema | @glideco/anomaly heuristic fires |
step_up_requested | StepUpRequestedEventSchema | Tool needs principal step-up before proceeding |
step_up_completed | StepUpCompletedEventSchema | Principal completes biometric / passkey / hardware-key |
step_up_declined | StepUpRequestedEventSchema | Principal declines or times out (same shape as requested) |
policy_change | PolicyChangeEventSchema | Operator updates the vault’s policy envelope |
policy_stale | PolicyChangeEventSchema | Agent detects its cached policy is behind current version |
agent_install | inline | Skill installed on an entity |
agent_uninstall | inline | Skill removed |
kill_switch | KillSwitchEventSchema | Forensic kill-switch activated (all-agents or scoped) |
dsar_redaction_applied | DsarRedactionEventSchema | @glideco/dsar partial redaction applied |
dsar_tombstone_applied | DsarRedactionEventSchema | @glideco/dsar full-erasure tombstone applied |
Key payload shapes
TheToolCallEvent is the most data-rich shape. It carries the SHA-256 digests
of input and output (never the raw values), the risk verdict, policy version,
grant ID, and optional on-chain tx hash + amount:
requested,
completed, and declined triple into a single audit thread:
Safe parsing
parseAgentEvent throws on invalid input. For a non-throwing path use
AgentEventSchema.safeParse:
Adding a new event type
- Add the literal to
AGENT_EVENT_TYPES. - Write a Zod schema for the payload.
- Add a union member to
AgentEventSchema. - Update the
activity_logwriter and any switch-exhaustive consumers.
glide.co/schemas/agent-banking/v1/.
Reading list
- AgentActivityEvent JSON Schema — the canonical v1 schema derived from this package.
@glideco/anomaly— emitsanomaly_detectedevents consumed by this taxonomy.@glideco/dsar— emitsdsar_redaction_appliedanddsar_tombstone_appliedevents; same payload shape.@glideco/compliance-export— readsactivity_logrows typed against these schemas for export.- Source on GitHub