# `Jido.AI.Quota.Store`
[🔗](https://github.com/agentjido/jido_ai/blob/v2.4.0/lib/jido_ai/quota/store.ex#L1)

In-process quota counters backed by ETS.

# `usage`

```elixir
@type usage() :: %{
  window_started_at_ms: non_neg_integer(),
  requests: non_neg_integer(),
  total_tokens: non_neg_integer()
}
```

# `add_usage`

```elixir
@spec add_usage(String.t(), non_neg_integer(), non_neg_integer()) :: usage()
```

Adds usage to the rolling quota counter for a scope.

# `ensure_table!`

```elixir
@spec ensure_table!() :: :ok
```

Ensures the quota ETS table exists.

# `get`

```elixir
@spec get(String.t()) :: usage()
```

Returns current usage snapshot for a scope.

# `reset`

```elixir
@spec reset(String.t()) :: :ok
```

Resets quota counters for a scope.

# `status`

```elixir
@spec status(String.t(), map(), non_neg_integer()) :: map()
```

Returns quota status including limits, usage, and remaining budget.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
