Skip to main content
GET
Describe the host process

Response

Host metadata.

The host process's identity and operating mode.

version
string
required

The host binary's version.

uptimeSeconds
integer
required

Seconds since the host started.

Required range: x >= 0
mode
enum<string>
required

How the host serves this API. local names the Unix socket in the Narya home, which is the only transport the host listens on.

Available options:
local
storePath
string
required

Absolute path of the local store.

pid
integer

The serving process's own id, so a client can cross-check the machine's host registration file against the host that actually answers. That file is a claim written by a process which may be long dead, and its pid is the part that rots: the operating system hands a dead host's number to an unrelated live program, and a client trusting the file alone would report a host as serving when nothing is. Optional because a host older than this field cannot answer it; absent means the cross-check cannot be made, which is not the same as a mismatch.

Required range: x >= 1
signIns
object[]

Sign-ins the host is waiting on a PERSON to complete right now — an OAuth-protected tool server whose authorization page nobody has visited yet. Present on this operation, rather than only on the per-server tool-server readout, because this is the cheap handshake every client already polls: the URL has to reach whoever is at a terminal within seconds of the host asking for it, and a client cannot be asked to ping every tool server to discover that somebody is being waited on. Empty or absent means nobody is waiting.

diagnostics
string[]

What went wrong while this host loaded, in the order it was discovered: a config key nothing reads, an [extensions] tie-break naming a slot no installed package claims, a package whose manifest could not be read and whose hooks were therefore skipped. Every entry is non-fatal BY CONSTRUCTION — anything fatal fails composition and the process never starts, so there is no severity to carry and no client decision to make about one. Host-scoped, not session-scoped: these are facts about the process, settled once before it served anything and unchanged for its whole life, which is why they ride the handshake rather than a session's own response. A client shows them once per connection, because the host that a shell spawns has its stderr on /dev/null and every interactive client covers the terminal the operator would otherwise read them on. Empty or absent means the host loaded cleanly. Bounded on the host side: at most 64 lines of at most 512 runes each are retained, with overflow announced in the final line, so a loader gone wrong cannot bloat every handshake. The host's own stderr always carries the full text.

Maximum array length: 64
Maximum string length: 512