# `MingaEditor.Shell.Traditional.ToolPrompts`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/shell/traditional/tool_prompts.ex#L1)

Pure owner of Traditional missing-tool prompt decisions and queue state.

Tool discovery and installation checks remain in handlers. This value only
owns the user's session-local decisions and ordered prompt lifecycle.

# `t`

```elixir
@type t() :: %MingaEditor.Shell.Traditional.ToolPrompts{
  declined: MapSet.t(atom()),
  queue: [atom()],
  suppressed?: boolean()
}
```

# `advance`

```elixir
@spec advance(t()) :: t()
```

Drops the current queued prompt.

# `decided?`

```elixir
@spec decided?(t(), atom()) :: boolean()
```

Returns whether a tool was declined or is already queued.

# `declined`

```elixir
@spec declined(t()) :: MapSet.t(atom())
```

Returns the set of tools declined during this editor session.

# `enqueue`

```elixir
@spec enqueue(t(), atom()) :: t()
```

Queues a tool once.

# `queue`

```elixir
@spec queue(t()) :: [atom()]
```

Returns the ordered pending tool queue.

# `replace`

```elixir
@spec replace(t(), [atom()], MapSet.t(atom())) :: t()
```

Replaces prompt decisions and queue atomically.

# `suppress`

```elixir
@spec suppress(t(), boolean()) :: t()
```

Controls whether missing-tool prompts are suppressed.

# `suppressed?`

```elixir
@spec suppressed?(t()) :: boolean()
```

Returns whether prompts are suppressed.

---

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