Added
- Tests for the MLX → canonical tool call bridge, which had none. They pin the payload contract:
ToolCall.argumentsis always a valid JSON object,{}for a call with no arguments rather
than empty bytes, and everyJSONValueshape MLX can hand over — nested objects, arrays, nulls,
quotes, escapes, non-ASCII — survives the round trip unchanged.