# `ASM.HostTool.Spec`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.10.0/lib/asm/host_tool.ex#L45)

Host dynamic tool declaration.

# `t`

```elixir
@type t() :: %ASM.HostTool.Spec{
  description: String.t() | nil,
  input_schema: map(),
  metadata: map(),
  name: String.t(),
  output_schema: map() | nil
}
```

# `new`

```elixir
@spec new(keyword() | map() | t()) :: {:ok, t()} | {:error, term()}
```

# `new!`

```elixir
@spec new!(keyword() | map() | t()) :: t()
```

# `normalize_list`

```elixir
@spec normalize_list([keyword() | map() | t()] | nil) ::
  {:ok, [t()]} | {:error, term()}
```

# `to_dynamic_tool`

```elixir
@spec to_dynamic_tool(t()) :: map()
```

---

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