{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://velox.dev/schema/methods/session.hello.schema.json", "title": "session.hello", "description": "First call on every connection, on every transport. The daemon compares protocolVersion majors and refuses a mismatch with -32001 so a stale GUI or extension fails loudly on connect instead of subtly at the tenth field. On the WebSocket transport a valid token is required unless the client is about to call session.pair.", "x-privileged": false, "x-transports": ["uds", "ws"], "x-deadlineMs": 2000, "x-errors": [-32001, -32002], "type": "object", "properties": { "params": { "type": "object", "additionalProperties": false, "required": ["clientType", "clientName", "protocolVersion"], "properties": { "clientType": { "type": "string", "enum": ["gui", "cli", "extension", "nmhost", "test"] }, "clientName": { "type": "string", "maxLength": 64, "description": "Human-readable, shown in the pairing prompt and the logs." }, "protocolVersion": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(-[0-9A-Za-z.-]+)?$" }, "token": { "type": ["string", "null"], "description": "Required on the WebSocket transport once paired. Ignored on the Unix socket, where SO_PEERCRED is the authorization." } } }, "result": { "type": "object", "additionalProperties": false, "required": ["daemonVersion", "protocolVersion", "capabilities", "sessionId"], "properties": { "daemonVersion": { "type": "string" }, "protocolVersion": { "type": "string" }, "capabilities": { "type": "array", "items": { "type": "string" }, "description": "Optional features this build has, e.g. 'media', 'grabber', 'secretservice'. A client must degrade gracefully when one is absent rather than assuming it." }, "sessionId": { "type": "string", "format": "uuid" }, "transport": { "type": "string", "enum": ["uds", "ws"], "description": "How the daemon sees this connection. Lets a client know up front which privileged methods will be refused." } } } } }