# wardrik_protocol v0.1.0-rc.1 - API Reference

## Modules

- [Wardrik.Activity](Wardrik.Activity.md): What an agent is doing now.
- [Wardrik.Agent](Wardrik.Agent.md): An agent, and the operations on one.
- [Wardrik.AgentID](Wardrik.AgentID.md): Parses agent IDs.
- [Wardrik.Agents](Wardrik.Agents.md): Operations on every agent the scope can see.
- [Wardrik.Amount](Wardrik.Amount.md): An amount in US dollars (`usd`), tokens (`tokens`), or both. A limit leaves out what it doesn't limit.
- [Wardrik.Audit](Wardrik.Audit.md): Operations on the deployment's audit log.
- [Wardrik.Authorization](Wardrik.Authorization.md): Where a person signs in for a call that waits on it: the `url`, and the `code` for a device sign-in.
- [Wardrik.Call](Wardrik.Call.md): A tool call an agent is running: its `id`, the tool's `name`, and `elapsed_ms`.
- [Wardrik.Ceilings](Wardrik.Ceilings.md): Operations on an org's ceilings: the budgets its agents share.
- [Wardrik.Channel](Wardrik.Channel.md): A behaviour for chat apps, like Slack, that people reach agents through.
- [Wardrik.Channel.Installation](Wardrik.Channel.Installation.md): A channel added to one workspace, such as a Slack app added to one Slack workspace.
- [Wardrik.Channel.Installations](Wardrik.Channel.Installations.md): A behaviour for storing the workspaces a channel is added to, each with its token.
- [Wardrik.ChannelResponse](Wardrik.ChannelResponse.md): A channel's response to its chat app: the `status`, `headers` and `body` to send unchanged.
- [Wardrik.Connecting](Wardrik.Connecting.md): The result of connecting an account. If it isn't `connected` yet, `authorization` says where
the owner signs in.

- [Wardrik.Connection](Wardrik.Connection.md): An account an owner can connect: its `provider`, and whether it's `connected`.
- [Wardrik.Connections](Wardrik.Connections.md): Operations on the accounts an org or person connects for their agents, by provider.
- [Wardrik.Decision](Wardrik.Decision.md): A decided call: its `id`, and its `decision`, `:approved` or `:rejected`.
- [Wardrik.Definition](Wardrik.Definition.md): What an agent is and what it may do: an agent file's frontmatter, as a struct.
- [Wardrik.Deployment](Wardrik.Deployment.md): Operations on the deployment: listing its nodes and reloading every agent's definition.
- [Wardrik.Event](Wardrik.Event.md): One event, as a CloudEvent.
- [Wardrik.Events](Wardrik.Events.md): Operations on the events of every agent the scope can see.
- [Wardrik.Forgotten](Wardrik.Forgotten.md): The result of forgetting many agents. `forgotten` lists the IDs forgotten. `kept` and `failed`
list `{id, why}` pairs.

- [Wardrik.Hook](Wardrik.Hook.md): Delivers a service's request to an agent's webhook trigger.
- [Wardrik.Interrupt](Wardrik.Interrupt.md): A call an agent waits on a person for.
- [Wardrik.Interrupts](Wardrik.Interrupts.md): Operations on the calls waiting on a person, across every agent the scope can see.
- [Wardrik.MCPServer](Wardrik.MCPServer.md): An MCP server an owner added for their agents: its `name`, `url`, and `auth`. `auth` is how
agents sign in to it: `:oauth`, `:secret` or `:none`.

- [Wardrik.MCPServerAdded](Wardrik.MCPServerAdded.md): The result of adding an MCP server. If it isn't `connected` yet, `authorization` says where
someone signs in first.

- [Wardrik.MCPServers](Wardrik.MCPServers.md): Operations on the MCP servers an org or person adds for their agents at runtime.
- [Wardrik.Message](Wardrik.Message.md): A message sent to an agent: its `id`, and the `cursor` its answer comes after.
- [Wardrik.Node](Wardrik.Node.md): One of the deployment's nodes: its `name`, and how many `agents` run on it.
- [Wardrik.Nodes](Wardrik.Nodes.md): The deployment's `nodes`, and how many agents are `asleep`.
- [Wardrik.Notice](Wardrik.Notice.md): Tells someone what an agent did while nobody watched.
- [Wardrik.Operations.Types](Wardrik.Operations.Types.md): Converts each operation's input and output between Elixir and the protocol's JSON.
- [Wardrik.Page](Wardrik.Page.md): A page of `events`, and `next`, where to read on from.
- [Wardrik.Reply](Wardrik.Reply.md): An agent's answer: its `text`, the `message` it answers, and the `run` that wrote it.
- [Wardrik.Resource](Wardrik.Resource.md): Names what an action acts on, as IAM resources do.
- [Wardrik.Run](Wardrik.Run.md): One run of an agent: how it ended, how long it took, and what it used and cost.
- [Wardrik.Runs](Wardrik.Runs.md): An agent's `runs`, newest first, and their `totals`.
- [Wardrik.Runs.Totals](Wardrik.Runs.Totals.md): Totals across an agent's runs.
- [Wardrik.Scope](Wardrik.Scope.md): Who is acting through Wardrik, and what they may do.
- [Wardrik.Secret](Wardrik.Secret.md): A secret an owner holds, by `name`. `kind` is `:secret` for one they sealed, or `:grant` for an account they connected.
- [Wardrik.Secrets](Wardrik.Secrets.md): Operations on an owner's secrets: sealing one, listing them by name, and removing one.
- [Wardrik.Server](Wardrik.Server.md): A behaviour for what runs Wardrik's operations.
- [Wardrik.Spend](Wardrik.Spend.md): What an org's agents have spent against one ceiling in its current period.
See `Wardrik.Ceiling`.
- [Wardrik.Statement](Wardrik.Statement.md): Allows actions on the resources its patterns match, like an IAM statement.
- [Wardrik.Timeline](Wardrik.Timeline.md): An agent's conversation as a person reads it, oldest first.
- [Wardrik.Token](Wardrik.Token.md): An API token, without its secret.
- [Wardrik.TokenIssued](Wardrik.TokenIssued.md): A new token and its `secret`. The secret is returned only once. Send it as `Authorization: Bearer <secret>`.
- [Wardrik.Tokens](Wardrik.Tokens.md): Operations on the deployment's API tokens. People and programs use them to reach Wardrik over
HTTP.
- [Wardrik.Trigger](Wardrik.Trigger.md): Asks an agent something without anyone typing. A trigger fires
- [Wardrik.Trigger.Webhook](Wardrik.Trigger.Webhook.md): Where a service sends a trigger requests. `secret` is the secret it holds, as `${NAME}`.
`verify` is how a request proves it: `:shared` or `:standard`.

- [WardrikProtocol](WardrikProtocol.md): Wardrik's wire format: events as CloudEvents, and operations as OpenAPI.

- Exceptions
  - [Wardrik.Error](Wardrik.Error.md): An operation's failure, as the protocol's `error`.

