# Support Tools

Small helper tools for calculation, secrets and guidance.

| Tool | Concurrent | Description |
|---|---|---|
| `calculate` | ✓ | Batch expression evaluator for literal numbers: operators `+ - * / % ^` and the functions `sqrt`, `abs`, `ceil`, `floor`, `round`, `log` (natural), `log2`, `log10`, `sin` / `cos` / `tan` (radians), `pow` and variadic `min` / `max`. Integer / integer truncates (`7 / 2` = 3; write `7.0 / 2` for a fraction). There is no unit conversion, and no variables or dates — a conversion is written out with its rate as a literal. Returns `{expression: result}`; a failed expression returns an error string instead of failing the whole call. It computes but never looks anything up — a rate or price comes from its own tool first and is passed in as a literal |
| `store_secret` | | Captures a value via masked input and writes directly to keychain — **the value never enters the LLM context, history, or logs**. The schema does **not** accept a `value` parameter; the agent passes only `key` (the keychain entry name) and an optional `question`, and the result returns the key name, never the value. Fires on an auth failure (missing key, 401, 403, expired token): take the key name from the error, call this, then re-invoke the tool that failed. Max 2 rounds per tool per turn |
