# `SuperPi.AI.ToolSchemas`
[🔗](https://github.com/oleksandr/super-pi-beam/blob/v0.1.0/lib/super_pi/ai/tool_schemas.ex#L1)

JSON Schema (`"type": "object"`) for the built-in tools, which are registered with a name and a
description only. The providers send these as the tool's parameter schema.

The Gemini client converts these to the upper-case dialect that Gemini wants.

# `for_tool`

```elixir
@spec for_tool(String.t()) :: map()
```

The parameter schema for tool `name`. An unknown tool gets an empty object schema.

# `parameters`

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

The parameter schema of a tool spec, under any of the keys in use (`parameters`, MCP
`input_schema`/`inputSchema`), else the built-in schema for `name`.

---

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