ferrox-api 0.15.0

Shared route constants and wire DTOs for the Ferrox HTTP surface and its clients
Documentation

ferrox-api

The wire contract between ferrox-server and its clients.

Route constants and serde DTOs shared by the server, Ferrox Studio (the separate web app in ui/), the desktop shell that spawns the server, and ferrox chat. A path or a payload shape gets exactly one definition instead of one per end.

Contents:

  • routes: every path the server serves, named once.
  • health: the three-state /health handshake (ready, detecting, unavailable) with a machine reason code and a human sentence per capability.
  • lifecycle: the ferrox.server.ready stdout line carrying the address the server ended up bound to and its pid, which is what makes --port 0 usable by a supervising process.
  • usage: token accounting plus llama.cpp-style timings, with prefill and decode kept separate.
  • request_id: server-assigned ids, stated in the first streamed chunk.
  • progress: a rolling-window transfer rate and ETA that reports nothing until it has something true to report.

Depends on serde and nothing else, so a CLI, a desktop shell and a browser-targeted frontend all link it.